/* ============================================================
   Planificador Think Tank EdugalIA
   Identidad Xunta de Galicia · azul corporativo #007bc4
   ============================================================ */

/* Xunta Sans (opcional): coloca los .woff2 en assets/fonts/ */
@font-face{font-family:'Xunta Sans';src:url('assets/fonts/XuntaSans-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Xunta Sans';src:url('assets/fonts/XuntaSans-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Xunta Sans';src:url('assets/fonts/XuntaSans-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}

:root{
  --blue:#007bc4;          /* Color principal · Pantone 7461C */
  --blue-dark:#002b4a;     /* Secundario · Pantone 7463C */
  --blue-50:#80bde2;
  --blue-25:#bfdef0;
  --blue-10:#e9f3fb;
  --ink:#1b2a36;
  --muted:#5a7384;
  --line:#d7e3ec;
  --bg:#f3f7fa;
  --white:#fff;
  --danger:#b3261e;
  --radius:12px;
  --shadow:0 1px 3px rgba(0,43,74,.08),0 8px 24px rgba(0,43,74,.06);
  --font:'Xunta Sans',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
}

*{box-sizing:border-box;}
html,body{margin:0;}
body{
  font-family:var(--font); color:var(--ink); background:var(--bg);
  line-height:1.55; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0;color:var(--blue-dark);line-height:1.2;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}

/* ---------- Topbar ---------- */
.topbar{background:var(--white);border-bottom:3px solid var(--blue);}
.topbar-inner{
  max-width:1180px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand-logo{height:42px;width:auto;}
.lang-toggle{display:inline-flex;border:1px solid var(--blue);border-radius:999px;overflow:hidden;}
.lang-btn{
  border:0;background:var(--white);color:var(--blue);
  padding:6px 14px;font-size:13px;font-weight:700;letter-spacing:.04em;
}
.lang-btn.is-active{background:var(--blue);color:var(--white);}

/* ---------- Hero ---------- */
.hero{
  background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);
  color:var(--white);
}
.hero-inner{max-width:1180px;margin:0 auto;padding:34px 24px 38px;}
.hero-kicker{
  display:inline-block;font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;background:rgba(255,255,255,.15);
  padding:4px 12px;border-radius:4px;margin-bottom:14px;
}
.hero h1{color:var(--white);font-size:30px;max-width:22ch;}
.hero-sub{margin:8px 0 0;font-size:17px;color:rgba(255,255,255,.92);font-weight:500;max-width:60ch;}
.hero-q{
  margin-top:20px;background:rgba(255,255,255,.10);
  border-left:4px solid var(--white);padding:14px 18px;border-radius:0 8px 8px 0;max-width:80ch;
}
.hero-q-label{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin-bottom:4px;}
.hero-q em{font-style:italic;font-size:15px;}

/* ---------- Layout ---------- */
.layout{
  max-width:1180px;margin:26px auto;padding:0 24px;
  display:grid;grid-template-columns:1fr 380px;gap:24px;align-items:start;
}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);}
@media(max-width:920px){.layout{grid-template-columns:1fr;}.plan{position:static!important;}}

/* ---------- Tabs ---------- */
.tabs{display:flex;border-bottom:1px solid var(--line);}
.tab{
  flex:1;border:0;background:transparent;padding:16px 12px;font-size:15px;font-weight:600;
  color:var(--muted);border-bottom:3px solid transparent;transition:.15s;
}
.tab:hover{color:var(--blue);}
.tab.is-active{color:var(--blue-dark);border-bottom-color:var(--blue);}
.tabpanel{padding:20px;}
.is-hidden{display:none!important;}

/* ---------- Toolbar ---------- */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:16px;}
.toolbar-hint{color:var(--muted);font-size:14px;}
.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;}
.btn-ghost{
  border:1px solid var(--line);background:var(--white);color:var(--blue-dark);
  padding:7px 12px;border-radius:8px;font-size:13px;font-weight:600;transition:.15s;
}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue);}
.btn-ghost--danger{color:var(--danger);}
.btn-ghost--danger:hover{border-color:var(--danger);color:var(--danger);}
.btn-ghost--accent{color:var(--blue);border-color:var(--blue-25);background:var(--blue-10);}
.btn-ghost--accent:hover{border-color:var(--blue);color:var(--blue);}

/* ---------- Catálogo ---------- */
.day-group{margin-bottom:22px;}
.day-group:last-child{margin-bottom:0;}
.day-title{
  font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);
  margin-bottom:10px;display:flex;align-items:center;gap:8px;
}
.day-title::after{content:"";flex:1;height:1px;background:var(--line);}
.dyn-card{
  display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);
  border-radius:10px;padding:12px 14px;margin-bottom:10px;cursor:pointer;
  transition:.15s;background:var(--white);
}
.dyn-card:hover{border-color:var(--blue-50);box-shadow:0 2px 10px rgba(0,123,196,.08);}
.dyn-card.is-selected{border-color:var(--blue);background:var(--blue-10);}
.dyn-card.is-pausa{background:#fafcfe;border-style:dashed;}
.dyn-check{
  flex:0 0 22px;height:22px;width:22px;border:2px solid var(--blue-25);border-radius:6px;margin-top:2px;
  display:flex;align-items:center;justify-content:center;color:var(--white);transition:.15s;
}
.dyn-card.is-selected .dyn-check{background:var(--blue);border-color:var(--blue);}
.dyn-check svg{width:14px;height:14px;opacity:0;}
.dyn-card.is-selected .dyn-check svg{opacity:1;}
.dyn-body{flex:1;min-width:0;}
.dyn-top{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;}
.dyn-name{font-weight:700;color:var(--blue-dark);font-size:15px;}
.dyn-code{color:var(--blue);font-weight:700;font-size:13px;}
.dyn-summary{color:var(--muted);font-size:13.5px;margin-top:3px;}
.dyn-tags{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap;}
.badge{
  font-size:11px;font-weight:700;color:var(--blue);border:1px solid var(--blue-25);
  border-radius:999px;padding:2px 9px;background:var(--white);
}
.badge--dur{color:var(--muted);border-color:var(--line);}

/* ---------- Panel IA ---------- */
.ai-label{display:block;font-weight:600;margin-bottom:8px;color:var(--blue-dark);}
#aiText{
  width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14.5px;
  resize:vertical;color:var(--ink);min-height:120px;
}
#aiText:focus{outline:2px solid var(--blue-25);border-color:var(--blue);}
.ai-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0 16px;font-size:13px;color:var(--muted);}
.chip{
  border:1px dashed var(--blue-25);background:var(--blue-10);color:var(--blue-dark);
  border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:500;transition:.15s;
}
.chip:hover{border-style:solid;border-color:var(--blue);color:var(--blue);}
.btn-primary{
  border:0;background:var(--blue);color:var(--white);font-weight:700;font-size:15px;
  padding:12px 20px;border-radius:10px;transition:.15s;
}
.btn-primary:hover{background:#0069a8;}
.btn-primary:disabled{background:var(--blue-50);cursor:wait;}
.ai-result{margin-top:18px;border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--blue-10);}
.ai-result .ai-engine{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--blue);margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.ai-result .ai-engine.is-heuristic{color:#9a6b00;}
.ai-result p{margin:0 0 8px;font-size:14px;}
.ai-result .ai-adjust{color:var(--muted);font-size:13px;font-style:italic;}
.ai-warning{color:#9a6b00;font-size:13px;margin-top:6px;}

/* ---------- Plan ---------- */
.plan{position:sticky;top:18px;padding:0;overflow:hidden;}
.plan-head{
  background:var(--blue-dark);color:var(--white);padding:16px 18px;
  display:flex;justify-content:space-between;align-items:center;
}
.plan-head h2{color:var(--white);font-size:18px;}
.plan-total{font-size:13px;font-weight:700;background:rgba(255,255,255,.15);padding:4px 10px;border-radius:999px;}
.plan-times{display:flex;gap:10px;padding:14px 18px 4px;}
.plan-times--d1{padding-top:6px;}
.plan-times--d1::before{content:"";}
.dur-fixed{font-size:11px;color:var(--muted);font-style:italic;}
.time-field{flex:1;display:flex;flex-direction:column;font-size:12px;color:var(--muted);font-weight:600;gap:4px;}
.time-field input{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:14px;color:var(--ink);}
.time-field input:focus{outline:2px solid var(--blue-25);border-color:var(--blue);}

#planList{padding:8px 14px;max-height:54vh;overflow:auto;}
.plan-day{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--blue);margin:12px 4px 6px;display:flex;justify-content:space-between;}
.plan-item{display:flex;gap:10px;align-items:flex-start;padding:9px 8px;border-bottom:1px solid var(--line);}
.plan-item.is-pausa{opacity:.8;}
.plan-time{font-size:12px;font-weight:700;color:var(--blue);white-space:nowrap;font-variant-numeric:tabular-nums;min-width:78px;}
.plan-item-body{flex:1;min-width:0;}
.plan-item-name{font-weight:600;font-size:13.5px;color:var(--blue-dark);}
.plan-item-fmt{font-size:11.5px;color:var(--muted);}
.plan-dur{display:flex;align-items:center;gap:4px;margin-top:4px;}
.plan-dur input{width:54px;border:1px solid var(--line);border-radius:6px;padding:3px 6px;font-size:12px;text-align:right;}
.plan-dur span{font-size:11px;color:var(--muted);}
.plan-ctrl{display:flex;flex-direction:column;gap:2px;}
.icon-btn{border:0;background:transparent;color:var(--muted);padding:2px;border-radius:5px;line-height:0;}
.icon-btn:hover{color:var(--blue);background:var(--blue-10);}
.icon-btn.del:hover{color:var(--danger);background:#fbeaea;}
.icon-btn svg{width:15px;height:15px;}
.icon-btn:disabled{opacity:.25;cursor:default;}

.plan-empty{color:var(--muted);font-size:13.5px;padding:20px 18px;text-align:center;}
.plan-actions{display:flex;gap:10px;padding:14px 18px 18px;border-top:1px solid var(--line);}
.pdf-mode{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:13.5px;color:var(--ink);background:var(--white);}
.btn-pdf{white-space:nowrap;}

/* ---------- Footer ---------- */
.foot{text-align:center;color:var(--muted);font-size:12.5px;padding:24px;}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);
  background:var(--blue-dark);color:var(--white);padding:12px 20px;border-radius:10px;
  font-size:14px;box-shadow:var(--shadow);opacity:0;transition:.25s;z-index:50;pointer-events:none;
}
.toast.is-show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast.is-error{background:var(--danger);}
