@font-face{font-family:"Nunito";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/nunito-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/nunito-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/nunito-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:800;font-display:swap;src:url("fonts/nunito-latin-800-normal.woff2") format("woff2")}
:root{
  --sky:#F6F2FC; --surface:#FFFFFF; --surface-2:#FAF8FE; --ink:#4A4063; --muted:#857BA0;
  --line:#E6DEF5; --primary:#7E6AB5; --primary-hover:#6F5BA6; --on-primary:#FFFFFF; --primary-soft:#EFE9FA;
  --pink:#FBE3EB; --mint:#E2F4EC; --butter:#FDF3D6; --peach:#F7CDB4; --lav:#C3B5EC;
  --safe:#3E8A71; --alert:#B5475B; --alert-soft:#FCE9ED;
  --radius-lg:22px; --radius:14px;
  color-scheme: light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --sky:#211C30; --surface:#2A243C; --surface-2:#312A46; --ink:#EEE8FA; --muted:#B5AACF;
    --line:#40375A; --primary:#C9BBF2; --primary-hover:#D7CCF6; --on-primary:#2A2140; --primary-soft:#3A3152;
    --pink:#45303A; --mint:#26392F; --butter:#3E3826; --peach:#D9A98C; --lav:#9C8BD6;
    --safe:#8ED1B8; --alert:#F2A1B0; --alert-soft:#4A2730; color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --sky:#211C30; --surface:#2A243C; --surface-2:#312A46; --ink:#EEE8FA; --muted:#B5AACF;
  --line:#40375A; --primary:#C9BBF2; --primary-hover:#D7CCF6; --on-primary:#2A2140; --primary-soft:#3A3152;
  --pink:#45303A; --mint:#26392F; --butter:#3E3826; --peach:#D9A98C; --lav:#9C8BD6;
  --safe:#8ED1B8; --alert:#F2A1B0; --alert-soft:#4A2730; color-scheme: dark;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--sky);color:var(--ink);font:400 16px/1.55 Nunito,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--sky)}
h1,h2,h3{font-weight:800;line-height:1.2;margin:0 0 .5rem;color:var(--primary)}
:root[data-theme="dark"] h1, :root[data-theme="dark"] h2{color:var(--ink)}
h1{font-size:2rem} h2{font-size:1.3rem} h3{font-size:1.08rem}
p{margin:0 0 .75rem}
a{color:var(--primary);font-weight:700}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--lav);outline-offset:2px;border-radius:8px}
.wrap{max-width:560px;margin:0 auto;padding:0 18px 110px}
.wrap.wide{max-width:1080px}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--sky);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 10px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.15rem;color:var(--primary)}
.sos{background:var(--alert-soft);color:var(--alert);border:1.5px solid var(--alert);border-radius:999px;padding:7px 14px;font-weight:800;font-size:.88rem;cursor:pointer}
.card{background:var(--surface);border-radius:var(--radius-lg);padding:20px;margin:0 0 14px;border:1px solid var(--line)}
.muted{color:var(--muted)} .small{font-size:.9rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:12px 20px;font-weight:800;cursor:pointer;background:var(--primary);color:var(--on-primary);min-height:48px;text-decoration:none}
.btn:hover{background:var(--primary-hover)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.ghost{background:var(--surface);color:var(--primary);border:1.5px solid var(--lav)}
.btn.ghost:hover{background:var(--primary-soft)}
.btn.danger{background:transparent;color:var(--alert);border:1.5px solid var(--alert)}
.btn.sm{min-height:38px;padding:7px 14px;font-size:.9rem;border-radius:11px}
.btn.block{width:100%}
.row{display:flex;gap:10px;flex-wrap:wrap}
label.field{display:block;margin:0 0 14px}
label.field>span{display:block;font-weight:800;margin-bottom:6px;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=datetime-local],input[type=number],select,textarea{width:100%;padding:12px 14px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface);min-height:48px}
input:focus,select:focus,textarea:focus{border-color:var(--lav);outline:none;box-shadow:0 0 0 4px var(--primary-soft)}
textarea{resize:vertical;min-height:110px;line-height:1.5}
.check{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}
.check:first-of-type{border-top:0}
.check input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--primary)}
.tag{display:inline-block;font-size:.76rem;font-weight:800;padding:2px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.tag.req{background:var(--butter);color:var(--ink);border-color:transparent}
.tag.you{background:var(--mint);color:var(--safe);border-color:transparent}
.seg{display:flex;background:var(--primary-soft);border-radius:999px;padding:4px;gap:4px;margin:0 0 14px;overflow-x:auto}
.seg button{flex:1 0 auto;border:0;background:transparent;border-radius:999px;padding:9px 14px;cursor:pointer;font-weight:800;color:var(--muted);white-space:nowrap}
.seg button[aria-pressed=true]{background:var(--surface);color:var(--primary)}
nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--surface);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px))}
nav.tabs .in{max-width:640px;margin:0 auto;display:grid;grid-auto-flow:column;grid-auto-columns:1fr}
nav.tabs button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:.74rem;font-weight:800;color:var(--muted);cursor:pointer;border-radius:12px}
nav.tabs button[aria-current=page]{color:var(--primary)}
nav.tabs button[aria-current=page] .dot{background:var(--primary-soft)}
nav.tabs .dot{width:34px;height:28px;border-radius:999px;display:grid;place-items:center}
nav.tabs svg{width:20px;height:20px}
/* Ingreso */
.login{max-width:470px;margin:0 auto;padding:34px 0 40px}
.login .brandrow{display:flex;align-items:center;gap:14px;margin:0 0 22px}
.login .brandrow .name{font-weight:800;font-size:1.45rem;color:var(--primary);line-height:1.1}
.login .brandrow .sub{color:var(--muted);font-size:.95rem}
.login h1{font-size:2.1rem}
.invite{border:1.5px dashed var(--lav);background:var(--primary-soft);border-radius:var(--radius-lg);padding:18px 20px;margin:22px 0 18px}
.invite h3{color:var(--ink)}
.verified{display:flex;gap:10px;align-items:center;background:var(--mint);border-radius:var(--radius);padding:12px 14px;margin:0 0 14px;font-size:.92rem}
.hero{background:linear-gradient(160deg,var(--primary-soft),var(--pink));border:0;position:relative;overflow:hidden;padding:24px 22px}
.hero .bear{position:absolute;right:6px;bottom:-8px;opacity:.95}
.hero h1{max-width:72%;color:var(--ink)} .hero p{max-width:70%}
ul.clean{list-style:none;padding:0;margin:0}
ul.clean li{padding:10px 0;border-top:1px solid var(--line)}
ul.clean li:first-child{border-top:0}
.note{background:var(--butter);border-radius:var(--radius);padding:12px 14px;font-size:.9rem;margin:0 0 14px}
.note.ok{background:var(--mint)}
.alert{background:var(--alert-soft);border:1.5px solid var(--alert);border-radius:var(--radius-lg);padding:18px;margin:0 0 14px}
.alert h3{color:var(--alert)}
.safe{background:var(--mint);border-radius:var(--radius);padding:12px 14px}
.ribbon .day{display:grid;grid-template-columns:56px 1fr;align-items:center;gap:10px;margin:0 0 8px}
.ribbon .lab{font-size:.8rem;color:var(--muted);font-weight:700}
.ribbon .bar{position:relative;height:26px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}
.ribbon .seg-n{position:absolute;top:0;bottom:0;background:var(--lav);border-radius:7px}
.ribbon .seg-s{position:absolute;top:4px;bottom:4px;background:var(--peach);border-radius:7px}
.ribbon .axis{display:grid;grid-template-columns:56px 1fr;gap:10px;font-size:.72rem;color:var(--muted)}
.ribbon .axis .t{display:flex;justify-content:space-between}
.legend{display:flex;gap:16px;font-size:.82rem;color:var(--muted);margin-top:8px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.entry{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.entry:first-child{border-top:0}
.entry button{border:0;background:none;color:var(--alert);cursor:pointer;font-weight:800;padding:8px}
.chat{display:flex;flex-direction:column;gap:10px;margin:0 0 14px}
.msg{padding:12px 14px;border-radius:16px;max-width:92%;white-space:pre-wrap;word-wrap:break-word}
.msg.me{align-self:flex-end;background:var(--primary);color:var(--on-primary);border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}
.msg .lvl{display:block;font-size:.78rem;font-weight:800;margin-bottom:4px}
.lvl.consulta{color:#B07A1E} .lvl.urgencia{color:var(--alert)} .lvl.info{color:var(--safe)}
.tablewrap{overflow-x:auto;margin:0 -4px}
table.users{width:100%;border-collapse:collapse;min-width:900px}
table.users th{text-align:left;font-size:.88rem;color:var(--muted);font-weight:800;padding:8px 8px;border-bottom:1px solid var(--line)}
table.users td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
table.users input[type=text],table.users input[type=email],table.users input[type=tel],table.users select{min-height:40px;padding:8px 10px;font-size:.92rem}
table.users .acts{display:flex;flex-direction:column;gap:6px;min-width:120px}
.timer{text-align:center}
.timer .big{font-size:2.6rem;font-weight:800;color:var(--primary);line-height:1.1;margin:6px 0 4px}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.stat{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:12px}
.stat b{display:block;font-size:1.2rem;color:var(--ink)}
.stat span{font-size:.82rem;color:var(--muted)}
.bars{display:flex;align-items:flex-end;gap:8px;height:160px;margin:16px 0 4px}
.bars .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.bars .stack{width:100%;max-width:38px;min-height:4px;display:flex;flex-direction:column-reverse;border-radius:8px;overflow:hidden;background:var(--surface-2)}
.bars .n{background:var(--lav)} .bars .s{background:var(--peach)}
.bars .v{font-size:.75rem;font-weight:800;color:var(--ink);min-height:1em}
.bars .d{font-size:.72rem;color:var(--muted)}
.stepper{display:inline-flex;align-items:center;gap:12px}
.stepper button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--lav);background:var(--surface);color:var(--primary);font-weight:800;font-size:1.2rem;cursor:pointer}
.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:var(--ink);color:var(--sky);padding:10px 16px;border-radius:999px;font-weight:700;font-size:.9rem;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.show{opacity:1}
.loading{display:grid;place-items:center;min-height:60vh;color:var(--muted);gap:12px;text-align:center}
.hidden{display:none!important}
.err{color:var(--alert);font-size:.9rem;font-weight:700;min-height:1px}
dialog{border:0;border-radius:var(--radius-lg);padding:0;max-width:520px;width:calc(100% - 32px);background:var(--surface);color:var(--ink)}
dialog::backdrop{background:rgba(40,30,70,.45)}
dialog .in{padding:22px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
.linkbtn{background:none;border:0;padding:0;color:var(--primary);font-weight:800;cursor:pointer;text-decoration:underline}
.pw{position:relative}
.pw button{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--muted);font-weight:800;cursor:pointer;padding:6px}
input[type=password]{width:100%;padding:12px 14px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface);min-height:48px}
.sp8{height:8px}.sp10{height:10px}
.mt10{margin-top:10px}
#sosTitle{color:var(--alert)}
