/* AyudantIA — tema cálido, claro y oscuro. Los colores viven en variables; lo demás no sabe de tema. */
:root { font-size:17px; -webkit-text-size-adjust:100%; }
:root[data-size="chico"] { font-size:15px; } :root[data-size="grande"] { font-size:19px; } :root[data-size="muy-grande"] { font-size:21px; }
:root {
  --bg:#f7f3ec; --card:#fffdf9; --ink:#2b2622; --muted:#7a7068; --line:#e6ddd1; --soft:#f0e9df;
  --accent:#9c4a2a; --accent-ink:#fff; --accent-soft:#f3e2d6; --user:#ece2d6;
  --ok:#3f7d3a; --ok-soft:#e8f1e3; --warn-soft:#fbf1d6; --warn-line:#eedcaa; --danger:#b23a2e; --danger-soft:#f8e3df;
  --tab-h:3.625rem; --serif: ui-serif, "Noto Serif", Georgia, "Times New Roman", serif;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --bg:#1f1b18; --card:#2a2521; --ink:#ece6dd; --muted:#a69c91; --line:#3b342e; --soft:#332d28;
  --accent:#d9825c; --accent-ink:#1f1b18; --accent-soft:#3d2c24; --user:#3a322b;
  --ok:#8fcf86; --ok-soft:#27352a; --warn-soft:#3a3322; --warn-line:#5a4d2a; --danger:#e07b70; --danger-soft:#43292a;
} }
:root[data-theme="dark"] {
  --bg:#1f1b18; --card:#2a2521; --ink:#ece6dd; --muted:#a69c91; --line:#3b342e; --soft:#332d28;
  --accent:#d9825c; --accent-ink:#1f1b18; --accent-soft:#3d2c24; --user:#3a322b;
  --ok:#8fcf86; --ok-soft:#27352a; --warn-soft:#3a3322; --warn-line:#5a4d2a; --danger:#e07b70; --danger-soft:#43292a;
}
* { box-sizing:border-box; }
html { height:100%; } body { margin:0; min-height:100%; }   /* min-height, no height: el relleno inferior debe quedar DESPUÉS del contenido para que la barra de pestañas no tape el final de la página */
select { max-width:100%; }
body { overflow-x:hidden; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background:var(--bg); color:var(--ink); font-size:1rem; line-height:1.5;
  padding-bottom: calc(var(--tab-h) + env(safe-area-inset-bottom)); -webkit-tap-highlight-color: transparent; }
a { color:var(--accent); }
svg { width:1.375rem; height:1.375rem; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
svg.ic { width:1rem; height:1rem; vertical-align:-0.1875rem; }

/* cabecera */
.top { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; padding: calc(0.5rem + env(safe-area-inset-top)) 0.875rem 0.5rem; background:var(--bg); }
.brand { display:flex; align-items:center; gap:0.5rem; text-decoration:none; color:var(--ink); }
.brand .name { font-family:var(--serif); font-size:1.3125rem; letter-spacing:0.0125rem; }
.mark { display:inline-flex; width:1.625rem; height:1.625rem; border-radius:0.5rem; background:var(--accent); color:var(--accent-ink); align-items:center; justify-content:center; }
.mark svg { width:1rem; height:1rem; stroke-width:2.6; }
.topr { display:flex; align-items:center; gap:0.375rem; } .who { color:var(--muted); font-size:0.875rem; }
.iconbtn { display:inline-flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; border-radius:50%; border:0; background:transparent; color:var(--muted); cursor:pointer; }
.iconbtn:hover, .iconbtn:active { background:var(--soft); color:var(--ink); }

.page { max-width:45rem; margin:0 auto; padding:0.5rem 0.875rem 1rem; }
.card { background:var(--card); border:1px solid var(--line); border-radius:1rem; padding:1rem; margin-bottom:0.75rem; }
.card.two { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
h1 { font-family:var(--serif); font-weight:600; font-size:1.375rem; margin:0 0 0.5rem; color:var(--ink); } h2 { font-family:var(--serif); font-weight:600; font-size:1.0625rem; margin:0 0 0.5rem; color:var(--ink); }
.small { font-size:0.8125rem; color:var(--muted); } .danger { color:var(--danger); }
label { display:block; font-size:0.875rem; color:var(--muted); margin:0.625rem 0; }
label.row { display:flex; align-items:center; gap:0.5rem; color:var(--ink); }
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=url], input[type=file], textarea, select, input[type=date], input[type=time], input[type=number] {
  width:100%; font:inherit; padding:0.625rem 0.75rem; border:1px solid var(--line); border-radius:0.75rem; margin-top:0.25rem; background:var(--card); color:var(--ink); color-scheme: light dark; }
input[type=date], input[type=time], input[type=number] { width:auto; margin-top:0; }
textarea { resize:vertical; }
.btn { display:inline-block; font:inherit; font-weight:600; background:var(--accent); color:var(--accent-ink); border:0; border-radius:0.75rem; padding:0.625rem 1rem; margin:0.375rem 0.375rem 0 0; cursor:pointer; text-decoration:none; }
.btn.secondary { background:var(--soft); color:var(--ink); } .btn.danger { background:var(--danger); color:#fff; }
.btn.file { background:var(--ok); color:#fff; }
button.link { background:none; border:0; color:var(--accent); font:inherit; font-size:0.8125rem; padding:0 0.25rem; cursor:pointer; text-decoration:underline; }
.notice { background:var(--ok-soft); border:1px solid var(--line); border-radius:0.75rem; padding:0.625rem 0.75rem; font-size:0.875rem; overflow-wrap:anywhere; }
.pill { background:var(--soft); border-radius:62.4375rem; padding:0.125rem 0.625rem; }

/* pestañas */
.tabs { position:fixed; left:0; right:0; bottom:0; height:calc(var(--tab-h) + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); display:flex; background:var(--card); border-top:1px solid var(--line); z-index:5; }
.tabs a { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.125rem; font-size:0.6875rem; color:var(--muted); text-decoration:none; }
.tabs a.on { color:var(--accent); font-weight:600; } .tabs a.on svg { stroke-width:2.3; }

/* chat */
.chat { display:flex; flex-direction:column; }
.meta { display:flex; align-items:center; gap:0.5rem; font-size:0.8125rem; color:var(--muted); margin-bottom:0.625rem; }
.meta details { flex:1; } .meta summary { cursor:pointer; list-style:none; } .meta summary::-webkit-details-marker { display:none; }
.meta ul { list-style:none; padding:0.375rem 0 0; margin:0; } .meta li { padding:0.1875rem 0; }
.msgs { flex:1; display:flex; flex-direction:column; gap:1.125rem; padding-bottom:8.125rem; }
.msg { display:flex; flex-direction:column; max-width:100%; }
.msg.user { align-self:flex-end; align-items:flex-end; max-width:85%; }
.msg.assistant { align-self:stretch; }
.byline { display:flex; align-items:center; gap:0.375rem; font-family:var(--serif); font-size:0.8125rem; color:var(--muted); margin-bottom:0.25rem; }
.byline .mark { width:1.125rem; height:1.125rem; border-radius:0.3125rem; } .byline .mark svg { width:0.6875rem; height:0.6875rem; }
.bubble { white-space:pre-wrap; word-wrap:break-word; }
.msg.user .bubble { padding:0.625rem 0.875rem; border-radius:1.125rem; border-bottom-right-radius:0.375rem; background:var(--user); color:var(--ink); }
.msg.assistant .bubble { padding:0 0.125rem; line-height:1.6; }
.bubble ul { margin:0.25rem 0; padding-left:1.125rem; white-space:normal; } .bubble p { margin:0 0 0.5rem; white-space:normal; } .bubble p:last-child { margin-bottom:0; }
.cites { display:flex; flex-wrap:wrap; gap:0.375rem; margin-top:0.375rem; }
.cite { font-size:0.75rem; background:var(--ok-soft); color:var(--ok); border-radius:62.4375rem; padding:0.125rem 0.5625rem; }
.rate { display:flex; gap:0.125rem; margin-top:0.25rem; margin-left:-0.5rem; }
.rate button { background:none; border:0; cursor:pointer; color:var(--muted); width:2rem; height:2rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; }
.rate button svg { width:1rem; height:1rem; } .rate button.down svg { transform:rotate(180deg); }
.rate button.on { color:var(--accent); background:var(--accent-soft); }
.welcome { color:var(--muted); padding-top:1.125rem; } .welcome .hello { font-family:var(--serif); font-size:1.625rem; color:var(--ink); margin:0 0 0.375rem; }
.starters { display:flex; flex-wrap:wrap; gap:0.5rem; margin-top:0.625rem; }
.starter { font:inherit; font-size:0.875rem; background:var(--card); border:1px solid var(--line); border-radius:62.4375rem; padding:0.4375rem 0.8125rem; cursor:pointer; color:var(--ink); }

/* redactor */
.ask { position:fixed; left:0; right:0; bottom: calc(var(--tab-h) + env(safe-area-inset-bottom)); background:var(--bg); padding:0.375rem 0.75rem 0.5rem; z-index:4; }
@media (min-width:46.5rem) { .ask { left:calc(50% - 22.5rem); right:calc(50% - 22.5rem); } }
.composer { display:flex; align-items:flex-end; gap:0.25rem; background:var(--card); border:1px solid var(--line); border-radius:1.625rem; padding:0.3125rem 0.375rem 0.3125rem 0.25rem; box-shadow:0 1px 0.125rem rgba(0,0,0,.04); }
.composer textarea { flex:1; margin:0; border:0; background:transparent; resize:none; min-height:2.5rem; max-height:8.75rem; line-height:1.375rem; padding:0.5625rem 0.375rem; border-radius:0; overflow-y:auto; }
.composer textarea:focus { outline:none; }
.composer .attach { margin:0; align-self:flex-end; color:var(--muted); }
.mic, .send { width:2.5rem; height:2.5rem; border-radius:50%; border:0; cursor:pointer; flex:none; display:inline-flex; align-items:center; justify-content:center; }
.mic { background:transparent; color:var(--ink); } .mic.rec { background:var(--danger); color:#fff; animation:pulse 1s infinite; }
.mic svg, .send svg { width:1.25rem; height:1.25rem; stroke-width:2.2; }
.send { background:var(--accent); color:var(--accent-ink); display:none; }
.ask.has-text .send { display:inline-flex; } .ask.has-text .mic { display:none; }
.dictar .mic, .sheet .mic { background:var(--accent); color:var(--accent-ink); width:2.875rem; height:2.875rem; }
@keyframes pulse { 0%{transform:scale(1)} 50%{transform:scale(1.12)} 100%{transform:scale(1)} }
.hint { position:fixed; left:0; right:0; bottom: calc(var(--tab-h) + env(safe-area-inset-bottom) + 4rem); font-size:0.8125rem; color:var(--muted); text-align:center; pointer-events:none; background:var(--bg); padding:0.25rem 0.75rem 0.125rem; z-index:4; }
.hint:empty { display:none; } .hint a { pointer-events:auto; }
@media (min-width:46.5rem) { .hint { left:calc(50% - 22.5rem); right:calc(50% - 22.5rem); } }
.thinking .bubble::after { content:'…'; animation:blink 1s infinite; } @keyframes blink { 50%{opacity:.2} }

/* hoja de sugerencias */
.sheet { position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:20; display:flex; align-items:flex-end; justify-content:center; }
.sheet[hidden] { display:none; }
.sheet-box { width:100%; max-width:45rem; background:var(--card); border-radius:1.25rem 1.25rem 0 0; padding:0.875rem 1rem calc(1rem + env(safe-area-inset-bottom)); }
.sheet-head { display:flex; align-items:center; justify-content:space-between; } .sheet-head h2 { margin:0; }
.sheet-row { display:flex; align-items:center; gap:0.625rem; margin-top:0.5rem; } .sheet-row .small { flex:1; } .sheet-row .btn { margin:0; }

/* biblioteca */
.docs { list-style:none; padding:0; margin:0; } .docs li { padding:0.625rem 0; border-bottom:1px solid var(--line); }
.docs .dt { display:flex; flex-direction:column; } .docs .ds { display:flex; align-items:center; gap:0.625rem; margin-top:0.25rem; }
.docs form { display:inline; }
.st { font-size:0.75rem; border-radius:62.4375rem; padding:0.125rem 0.5rem; background:var(--soft); }
.st-listo { background:var(--ok-soft); color:var(--ok); } .st-procesando, .st-pendiente { background:var(--warn-soft); } .st-error, .st-sin_texto { background:var(--danger-soft); color:var(--danger); }
.nota summary { cursor:pointer; color:var(--accent); margin:0.625rem 0; }
.facts { list-style:none; padding:0; margin:0; } .facts li { display:flex; align-items:center; gap:0.5rem; padding:0.5rem 0; border-bottom:1px solid var(--line); } .facts li span:first-child { flex:1; }
.facts form { display:inline; }
.tbl { width:100%; border-collapse:collapse; font-size:0.8125rem; } .tbl th, .tbl td { text-align:left; padding:0.375rem 0.25rem; border-bottom:1px solid var(--line); vertical-align:top; } tr.off { opacity:.5; }
.inline { display:flex; gap:0.5rem; align-items:center; } .inline.wrap { flex-wrap:wrap; } .inline input, .inline select { width:auto; margin:0; flex:1 1 8.75rem; min-width:0; } .inline .btn { margin:0; }
.danger-zone { border-top:1px dashed var(--line); margin-top:0.75rem; padding-top:0.5rem; }
.login { max-width:26.25rem; margin:1.875rem auto; }
@media (max-width:35rem) { .card.two { grid-template-columns:1fr; } .tbl { font-size:0.75rem; } }
.quota .pill { margin-right:0.375rem; }
.limits { border-bottom:1px solid var(--line); padding:0.375rem 0; } .limits .who { flex:0 0 6.25rem; } .limits input[type=number] { max-width:6.875rem; }
.scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; } .scroll .tbl { min-width:40rem; }

/* práctica */
.quiz-head { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
.qtext { font-size:1.0625rem; font-weight:600; margin:0.75rem 0; }
.opts { display:flex; flex-direction:column; gap:0.5rem; }
.opt { display:flex; align-items:flex-start; gap:0.625rem; text-align:left; font:inherit; font-size:0.9375rem; padding:0.75rem 0.875rem; border:1px solid var(--line); border-radius:0.75rem; background:var(--card); color:var(--ink); cursor:pointer; }
.opt .letter { flex:none; width:1.5rem; height:1.5rem; border-radius:50%; background:var(--soft); color:var(--accent); font-weight:700; font-size:0.8125rem; display:flex; align-items:center; justify-content:center; }
.opt.ok { border-color:var(--ok); background:var(--ok-soft); } .opt.ok .letter { background:var(--ok); color:#fff; }
.opt.bad { border-color:var(--danger); background:var(--danger-soft); } .opt.bad .letter { background:var(--danger); color:#fff; }
.opt:disabled { cursor:default; opacity:.95; }
.qfb { margin-top:0.75rem; } .okt { color:var(--ok); font-weight:700; } .badt { color:var(--danger); font-weight:700; }
#qmissed ul { padding-left:1.125rem; }
.qfb .btn { display:block; width:100%; text-align:center; margin:0.75rem 0 0; padding:0.8125rem; font-size:1rem; }
#quiz { padding-bottom:2.5rem; }

/* agenda / calendario */
.day { margin:0.875rem 0 0.25rem; font-size:0.875rem; text-transform:capitalize; color:var(--muted); } .day.late { color:var(--danger); } .day.mes { text-transform:none; } .day.mes::first-letter { text-transform:uppercase; }
.strip { display:flex; gap:0.25rem; margin:0.5rem 0 0.25rem; }
.strip .chip { flex:1; display:flex; flex-direction:column; align-items:center; padding:0.375rem 0; border-radius:0.75rem; background:var(--soft); color:var(--ink); text-decoration:none; line-height:1.15; min-width:0; }
.strip .chip .wd { font-size:0.625rem; text-transform:uppercase; color:var(--muted); letter-spacing:0.02em; }
.strip .chip .num { font-size:1.0625rem; font-weight:600; font-variant-numeric:tabular-nums; }
.strip .chip .n { font-size:0.625rem; color:var(--accent); min-height:0.875rem; font-weight:700; }
.strip .chip.today { outline:1.5px solid var(--accent); outline-offset:-1.5px; }
.strip .chip.sel { background:var(--accent); color:var(--accent-ink); } .strip .chip.sel .wd, .strip .chip.sel .n { color:var(--accent-ink); }
.month { display:grid; grid-template-columns:repeat(7, 1fr); gap:0.125rem; margin:0.25rem 0 0.75rem; }
.month .wd { text-align:center; font-size:0.625rem; color:var(--muted); text-transform:uppercase; padding:0.25rem 0; }
.month .cell { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; aspect-ratio:1; border-radius:0.625rem; font-size:0.875rem; color:var(--ink); text-decoration:none; background:var(--soft); font-variant-numeric:tabular-nums; }
.month .cell b { font-size:0.875rem; line-height:0.5; color:var(--accent); letter-spacing:-0.05em; margin-top:0.125rem; }
.month .cell.today { outline:1.5px solid var(--accent); outline-offset:-1.5px; font-weight:700; }
.month .cell.off { background:transparent; color:var(--muted); opacity:0.55; } .month .cell.other { opacity:0.25; }
.facts.agenda li span.when small { font-size:0.6875rem; }
.facts.agenda li small.small { color:var(--muted); }
.facts.agenda a.plain { color:inherit; text-decoration:none; } .facts.agenda a.plain:active { color:var(--accent); }
.facts.agenda li.editing { display:block; background:var(--soft); border-radius:0.75rem; padding:0.625rem; } .facts.agenda li.editing form { display:flex; }
.more { position:relative; } .more summary { list-style:none; cursor:pointer; color:var(--danger); } .more summary::-webkit-details-marker { display:none; }
.more[open] summary { display:none; } .more form { display:block; } .more form .link { padding:0.125rem 0; display:block; white-space:nowrap; }
.alta label.small { display:flex; align-items:center; gap:0.25rem; margin:0; } .alta label.small input[type=time] { width:auto; margin:0; }
.alta select { width:auto; margin:0; } .alta input[type=date] { width:auto; }
.dias { display:flex; gap:0.25rem; } .dias label { margin:0; } .dias input { position:absolute; opacity:0; width:0; height:0; }
.dias span { display:inline-flex; width:1.875rem; height:1.875rem; align-items:center; justify-content:center; border-radius:50%; background:var(--soft); font-size:0.75rem; cursor:pointer; }
.dias input:checked + span { background:var(--accent); color:var(--accent-ink); }
.tabs a { position:relative; } .tabs a .badge { position:absolute; top:0.25rem; left:calc(50% + 0.375rem); min-width:1rem; height:1rem; padding:0 0.25rem; border-radius:0.5rem; background:var(--accent); color:var(--accent-ink); font-size:0.625rem; font-style:normal; font-weight:700; display:flex; align-items:center; justify-content:center; }
.facts.agenda li span.when { flex:0 0 3.25rem; font-variant-numeric:tabular-nums; color:var(--muted); font-size:0.875rem; }
.agenda li.done span { text-decoration:line-through; color:var(--muted); }
.facts.agenda li span:nth-child(2) { flex:1; }
.propose { margin-top:0.5rem; background:var(--warn-soft); border:1px solid var(--warn-line); border-radius:0.875rem; padding:0.625rem 0.75rem; font-size:0.875rem; }
.propose ul { list-style:none; margin:0 0 0.375rem; padding:0; } .propose li { padding:0.1875rem 0; } .propose label.row { margin:0; }
.propose .row { display:flex; gap:0.5rem; } .btn.small { padding:0.4375rem 0.75rem; font-size:0.875rem; margin-top:0.25rem; }
.propose.resolved { background:var(--ok-soft); border-color:var(--line); }
.dictar .row { display:flex; align-items:center; gap:0.75rem; } .dictar .mic { flex:none; }

/* sugerencias en admin / perfil */
.sug { padding:0.625rem 0; border-bottom:1px solid var(--line); } .sug .meta2 { font-size:0.75rem; color:var(--muted); display:flex; gap:0.5rem; flex-wrap:wrap; align-items:center; }
.sug.nuevo { border-left:0.1875rem solid var(--accent); padding-left:0.625rem; }
.iconbtn.on { color:var(--accent); }
.mod.activo { border-color:var(--accent); } .mod.solicitado { border-style:dashed; }
details > summary.btn { list-style:none; display:inline-block; } details > summary.btn::-webkit-details-marker { display:none; }
.item { border-bottom:1px solid var(--line); padding:8px 0; } .item input[type=text] { margin-bottom:6px; } .item .inline input, .item .inline select { flex:1 1 4rem; min-width:0; }

/* barra de consumo premium */
.meter{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin:4px 0 8px}
.meter span{display:block;height:100%;background:var(--accent);border-radius:3px}

/* entrevista */
.entq { background:var(--soft); border-radius:1rem; padding:1rem 1rem 0.5rem; margin:0.75rem 0; }
.entq .entqt { font-size:1.125rem; line-height:1.45; margin:0 0 0.5rem; }
.entans { display:flex; align-items:center; gap:0.75rem; margin:0.75rem 0; }
.mic.big { width:4rem; height:4rem; background:var(--accent); color:var(--accent-ink); } .mic.big svg { width:1.75rem; height:1.75rem; } .mic.big.rec { background:var(--danger); }
.ent details textarea { margin-top:0.5rem; }

/* bienvenida e inicio de negocio */
.perfiles { display:flex; flex-direction:column; gap:0.5rem; margin:0.75rem 0; }
.perfil { display:flex; align-items:flex-start; gap:0.625rem; padding:0.75rem; border-radius:0.875rem; background:var(--soft); margin:0; cursor:pointer; }
.perfil input { margin-top:0.25rem; width:auto; } .perfil em { color:var(--muted); font-style:normal; font-size:0.8125rem; } .perfil small { color:var(--muted); }
.perfil:has(input:checked) { outline:1.5px solid var(--accent); outline-offset:-1.5px; }
.bigbtn { display:flex; align-items:center; gap:0.875rem; padding:1rem; border-radius:1rem; background:var(--accent); color:var(--accent-ink); text-decoration:none; margin:0.75rem 0; }
.bigbtn svg { width:2.25rem; height:2.25rem; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.bigbtn strong { font-size:1.125rem; } .bigbtn small { opacity:0.85; }
.tiles { display:grid; grid-template-columns:1fr 1fr; gap:0.5rem; }
.tile { display:flex; flex-direction:column; padding:0.75rem; border-radius:0.875rem; background:var(--soft); color:var(--ink); text-decoration:none; }
.tile .num { font-size:1.375rem; font-weight:700; font-variant-numeric:tabular-nums; } .tile .lbl { font-size:0.75rem; color:var(--muted); }
.chips { display:flex; flex-wrap:wrap; gap:0.375rem; } .chip2 { padding:0.375rem 0.75rem; border-radius:1rem; background:var(--soft); color:var(--ink); text-decoration:none; font-size:0.875rem; }
