/* ===== Tokens: blanco y turquesa ===== */
/* ===== Tokens: fondo blanco, letra y mascota verde turquesa, semáforo de gravedad ===== */
:root{
  color-scheme:light;
  --bg:#FFFFFF; --wash:#FFFFFF; --surface:#FFFFFF;
  --ink:#0B4744;          /* texto principal: verde turquesa muy oscuro (legible) */
  --muted:#3F7F79;        /* texto secundario: verde turquesa medio */
  --line:#CDEBE7;
  --brand:#0A9384; --brand-strong:#067A6E; --brand-bright:#19BFAE; --brand-soft:#EAF8F6; --on-brand:#FFFFFF;
  --noc:#0A7C8C; --noc-soft:#E6F6F8;
  --nic:#4F7F2E; --nic-soft:#EFF7E8;
  /* Semáforo de gravedad */
  --sev-red:#C62828;    --sev-red-soft:#FDECEC;
  --sev-orange:#D35400; --sev-orange-soft:#FFF1E6;
  --sev-yellow:#8A6A00; --sev-yellow-soft:#FFF8D9; --sev-yellow-line:#F2C200;
  --sev-green:#2E7D32;  --sev-green-soft:#EAF6EA;
  --danger:var(--sev-red); --danger-soft:var(--sev-red-soft);
  --ok:var(--sev-green); --ok-soft:var(--sev-green-soft);
  --shadow:0 1px 2px rgba(11,71,68,.05),0 4px 14px rgba(11,71,68,.05);
  --radius:12px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
html{scroll-padding-top:env(safe-area-inset-top,0px);height:100%}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.55;min-height:100%;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:Manrope,"Atkinson Hyperlegible",system-ui,sans-serif;line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:1.65rem;font-weight:800;color:var(--brand-strong)}h2,h3,h4{color:var(--brand-strong)}h2{font-size:1.2rem;font-weight:700}h3{font-size:1.05rem;font-weight:700}
p{margin:0 0 .8em;max-width:75ch}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--brand-bright);outline-offset:2px}
img{max-width:100%}

/* ===== Mascota y carga ===== */
.boot{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:.8rem;color:var(--muted);font-weight:700}
.mascot-bob{animation:bob 1.1s ease-in-out infinite;transform-origin:50% 100%}
@keyframes bob{0%,100%{transform:translateY(0) scale(1,1)}45%{transform:translateY(-10px) scale(.98,1.02)}55%{transform:translateY(-10px)}85%{transform:translateY(0) scale(1.03,.97)}}
.loading-dots::after{content:"";display:inline-block;width:1.2em;text-align:left;animation:dots 1.2s steps(4) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
.loader{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:2rem;color:var(--muted);font-weight:700}
.loader img{width:110px}
.btn .btn-mascot{width:1.6em;height:1.6em;object-fit:contain;margin:-.3em .45em -.3em -.2em;vertical-align:middle;animation:hop .6s ease-in-out infinite alternate}
@keyframes hop{from{transform:translateY(1px) rotate(-6deg)}to{transform:translateY(-3px) rotate(6deg)}}
.save-state{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--muted)}
.save-state img{width:20px;height:20px;object-fit:contain}
.save-state.busy img{animation:hop .5s ease-in-out infinite alternate}

/* ===== Login ===== */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.login-art{background:#FFFFFF;display:grid;place-content:center;justify-items:center;padding:2rem;gap:1rem;border-right:1px solid var(--line)}
.login-art img{width:min(300px,60%)}
.login-art p{text-align:center;color:var(--muted);max-width:32ch;font-size:1.05rem}
.login-side{display:grid;place-items:center;padding:1.5rem}
.login{width:100%;max-width:380px}
.login .err{display:flex;gap:.6rem;align-items:center;background:var(--danger-soft);color:var(--danger);padding:.6rem .8rem;border-radius:10px;font-weight:700;margin-bottom:1rem}
.login .err img{width:40px}
@media (max-width:820px){.login-wrap{grid-template-columns:1fr}.login-art{border-right:0;border-bottom:1px solid var(--line);padding:1.5rem}.login-art img{width:120px}.login-art p{display:none}}

/* ===== Estructura ===== */
.app{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}
nav.side{background:#FFFFFF;border-right:1px solid var(--line);padding:1.1rem .8rem;position:sticky;top:env(safe-area-inset-top,0px);height:100vh;overflow-y:auto;display:flex;flex-direction:column}
.brand{display:flex;gap:.65rem;align-items:center;padding:0 .4rem 1.1rem}
.brand img{width:44px;height:44px;object-fit:contain;flex:none}
.brand b{font-family:Manrope,sans-serif;font-weight:800;font-size:1.15rem;display:block;color:var(--brand-strong);letter-spacing:-.02em}
.brand small{color:var(--muted);font-size:.8rem}
.nav-group{margin-top:.9rem}
.nav-group h3{font-size:.78rem;color:var(--muted);font-weight:700;margin:0 0 .2rem .7rem;letter-spacing:0}
nav.side .navbtn{display:block;width:100%;text-align:left;background:none;border:0;border-left:3px solid transparent;padding:.45rem .7rem;border-radius:0 8px 8px 0;cursor:pointer;color:var(--brand-strong);font-weight:400}
nav.side .navbtn:hover{background:var(--brand-soft)}
nav.side .navbtn[aria-current="true"]{background:var(--brand-soft);border-left-color:var(--brand);color:var(--brand-strong);font-weight:700}
.userbox{margin-top:auto;padding:1rem .4rem 0;font-size:.88rem;display:flex;flex-direction:column;gap:.35rem;border-top:1px solid var(--line)}
main{padding:1.6rem clamp(1rem,3.2vw,2.6rem) 4rem;max-width:1140px;width:100%}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.2rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}
.page-head p{color:var(--muted);margin:0 0 .6rem}
.page-head img{height:120px;width:auto;flex:none;margin-bottom:-.45rem}
.disclaimer{display:flex;gap:.6rem;align-items:flex-start;background:var(--sev-yellow-soft);border-left:4px solid var(--sev-yellow-line);color:var(--ink);border-radius:10px;padding:.6rem .9rem;font-size:.86rem;margin-bottom:1.2rem}
.disclaimer b{color:var(--sev-yellow)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.3rem;margin-bottom:1.1rem;box-shadow:var(--shadow)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0 1rem}
label.f{display:block;font-size:.86rem;color:var(--muted);font-weight:700;margin-bottom:.8rem}
label.f input,label.f select,label.f textarea,.input{display:block;width:100%;margin-top:.25rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:9px;background:var(--bg);font-weight:400;color:var(--ink)}
label.f input:focus,label.f select:focus,label.f textarea:focus,.input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}
textarea{min-height:80px;resize:vertical}
textarea.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;min-height:180px}
.btn{display:inline-flex;align-items:center;border:0;border-radius:9px;padding:.58rem 1rem;font-weight:700;cursor:pointer;background:var(--brand);color:var(--on-brand);text-decoration:none}
.btn:hover{background:var(--brand-strong)}
.btn:disabled{opacity:.75;cursor:progress}
.btn.ghost{background:transparent;color:var(--brand-strong);border:1px solid var(--brand)}
.btn.ghost:hover{background:var(--brand-soft)}
.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}
.btn.sm{padding:.32rem .7rem;font-size:.86rem}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.spread{justify-content:space-between}
.muted{color:var(--muted)}
.small{font-size:.86rem}
.tag{display:inline-block;font-size:.78rem;font-weight:700;padding:.12rem .55rem;border-radius:999px;background:var(--brand-soft);color:var(--brand-strong);white-space:nowrap}
.tag.noc{background:var(--noc-soft);color:var(--noc)}
.tag.nic{background:var(--nic-soft);color:var(--nic)}
.tag.red{background:var(--sev-red);color:#fff}
.tag.orange{background:var(--sev-orange);color:#fff}
.tag.yellow{background:var(--sev-yellow-soft);color:var(--sev-yellow);box-shadow:inset 0 0 0 1.5px var(--sev-yellow-line)}
.tag.amber{background:var(--sev-orange);color:#fff}
.tag.green{background:var(--sev-green-soft);color:var(--sev-green)}
.empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.6rem;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius)}
.empty img{width:110px}
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;justify-content:space-between;gap:.6rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.list li:last-child{border-bottom:0}

/* ===== Inicio ===== */
.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;background:#FFFFFF;border:1px solid var(--line);border-radius:18px;padding:1.6rem 1.8rem;margin-bottom:1.4rem}
.hero h1{font-size:1.9rem;color:var(--brand-strong)}
.hero p{color:var(--muted);font-size:1.05rem}
.hero img{height:190px;width:auto;margin:-1rem 0 -1.6rem}
.search-big{width:100%;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:1.02rem;box-shadow:var(--shadow)}
.search-big:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.results{margin-top:.6rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.results button{display:flex;width:100%;gap:.6rem;align-items:baseline;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:.6rem .9rem;cursor:pointer}
.results button:hover,.results button:focus-visible{background:var(--brand-soft)}
.results button:last-child{border-bottom:0}
.modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem}
.module{display:grid;grid-template-columns:minmax(0,1fr) 72px;align-items:start;gap:.4rem;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem 1rem .2rem;cursor:pointer;box-shadow:var(--shadow);min-height:120px;transition:border-color .15s}
.module:hover{border-color:var(--brand)}
.module b{display:block;font-family:Manrope,sans-serif;color:var(--brand-strong);margin-bottom:.2rem}
.module span{display:block;font-size:.88rem;color:var(--muted);padding-bottom:.8rem}
.module img{width:72px;height:96px;object-fit:contain;object-position:bottom;align-self:end}

/* ===== Plan de cuidados ===== */
.dx-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.5rem}
.dx-pick label{display:flex;gap:.55rem;align-items:flex-start;padding:.55rem .7rem;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:.92rem;background:var(--bg)}
.dx-pick input{margin-top:.25rem;accent-color:var(--brand)}
.dx-pick label.on{border-color:var(--brand);background:var(--brand-soft)}
.chain{border:1px solid var(--line);border-radius:14px;margin-bottom:1.2rem;background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}
.chain-head{padding:1rem 1.2rem;border-left:6px solid var(--brand)}
.chain-head .code{font-weight:700;color:var(--brand-strong)}
.chain-body{display:grid;grid-template-columns:1fr 1fr}
.col{padding:1rem 1.2rem;border-top:1px solid var(--line);min-width:0}
.col.noc{border-left:6px solid var(--noc)}
.col.nic{border-left:6px solid var(--nic)}
.col h4{margin:.2rem 0 .5rem;font-size:1rem}
.col.noc h4{color:var(--noc)}.col.nic h4{color:var(--nic)}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{text-align:left;padding:.45rem .45rem;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:700}
.scroll{overflow-x:auto}
td select,td input[type=text]{padding:.25rem;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.acts{list-style:none;margin:0 0 .8rem;padding:0}
.acts li{display:flex;gap:.5rem;align-items:flex-start;padding:.3rem 0;font-size:.92rem}
.acts input{margin-top:.28rem;accent-color:var(--brand);flex:none}
.acts li.done label{color:var(--muted);text-decoration:line-through}
.factors{font-size:.9rem;color:var(--muted)}
.result{margin-top:.8rem;padding:.8rem 1rem;border-radius:10px;background:var(--brand-soft);color:var(--brand-strong);font-weight:700}
.result{border-left:5px solid var(--brand)}
.result.red{background:var(--sev-red-soft);color:var(--sev-red);border-left-color:var(--sev-red)}
.result.orange,.result.amber{background:var(--sev-orange-soft);color:var(--sev-orange);border-left-color:var(--sev-orange)}
.result.yellow{background:var(--sev-yellow-soft);color:var(--sev-yellow);border-left-color:var(--sev-yellow-line)}
.result.green{background:var(--sev-green-soft);color:var(--sev-green);border-left-color:var(--sev-green)}
.result.alert{display:flex;gap:.8rem;align-items:center}
.result.alert img{width:64px;flex:none}
.steps{counter-reset:s;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;position:relative;padding:.5rem 0 .5rem 2.4rem;border-bottom:1px solid var(--line)}
.steps li::before{content:counter(s);position:absolute;left:0;top:.5rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--brand);color:var(--on-brand);font-weight:700;display:grid;place-items:center;font-size:.85rem}
.steps.urgent li::before{background:var(--sev-red);color:#fff}
.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:.4rem 0}
.progress div{height:100%;background:var(--brand-bright);transition:width .25s}

/* ===== Fichas ===== */
details.card{border:1px solid var(--line);border-radius:12px;margin-bottom:.6rem;background:var(--surface);box-shadow:var(--shadow)}
details.card>summary{cursor:pointer;padding:.8rem 1rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;list-style:none}
details.card>summary::-webkit-details-marker{display:none}
details.card>summary::before{content:"";width:.5rem;height:.5rem;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(-45deg);transition:transform .15s;flex:none;margin-right:.2rem}
details.card[open]>summary::before{transform:rotate(45deg)}
details.card>summary b{font-weight:700}
details.card .body{padding:0 1.1rem 1rem 1.9rem}
details.card.flash{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem 1rem;margin:.2rem 0 .8rem}
.facts div{font-size:.9rem}.facts dt{color:var(--muted);font-size:.8rem;font-weight:700}.facts dd{margin:0}
.rich ul{margin:.2rem 0 .8rem;padding-left:1.2rem}.rich li{margin:.15rem 0}
.chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}
.chips button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.35rem .85rem;font-weight:700;color:var(--muted);cursor:pointer}
.chips button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.filter{width:100%;padding:.65rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:1rem}
.subnav{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.2rem}
.subnav button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.38rem .9rem;font-weight:700;color:var(--muted);cursor:pointer}
.subnav button[aria-current="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.rec-row{border:1px solid var(--line);border-radius:10px;margin-bottom:.6rem;background:var(--bg)}
.rec-row>summary{padding:.6rem .9rem;cursor:pointer;font-weight:700}
.rec-row .body{padding:.2rem .9rem .9rem}

/* ===== Toast ===== */
.toast{position:fixed;bottom:calc(1rem + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%,8px);display:flex;align-items:center;gap:.6rem;background:var(--ink);color:var(--bg);padding:.45rem 1.1rem .45rem .5rem;border-radius:999px;font-weight:700;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:92vw;z-index:30}
.toast img{width:38px;height:38px;object-fit:contain}
.toast.show{opacity:1;transform:translate(-50%,0)}
.mobile-nav{display:none}
.print-only{display:none}
@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  nav.side{display:none}
  .mobile-nav{display:flex;gap:.4rem;overflow-x:auto;position:sticky;top:0;padding:.55rem .8rem;background:var(--surface);border-bottom:1px solid var(--line);z-index:5;align-items:center}
  .mobile-nav img{width:30px;flex:none}
  .mobile-nav .navbtn{flex:none;border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:.38rem .8rem;font-weight:700;color:var(--muted)}
  .mobile-nav .navbtn[aria-current="true"]{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
  .chain-body{grid-template-columns:1fr}
  .page-head img{height:84px}
  .hero{grid-template-columns:1fr}.hero img{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{
  nav.side,.mobile-nav,.no-print,.disclaimer,.toast,.page-head img{display:none!important}
  .app{display:block}.print-only{display:block}
  body{background:#fff;color:#000}
  .chain,.panel,details{break-inside:avoid;border-color:#999;box-shadow:none}
}

.edit-btn{margin-bottom:.7rem}
.module[data-tab="admin"]{border:2px solid var(--brand)}

.biblio{margin-top:2rem;background:#FFFFFF}
.biblio ol{margin:.8rem 0 0;padding-left:1.4rem;font-size:.9rem}
.biblio li{margin:.35rem 0;max-width:95ch}
.biblio a{color:var(--brand-strong);font-weight:700}

/* Botones de alerta según gravedad */
.btn.alert-red{background:var(--sev-red);color:#fff;border:0}.btn.alert-red:hover{background:#A51F1F}
.btn.alert-orange{background:var(--sev-orange);color:#fff;border:0}.btn.alert-orange:hover{background:#B34700}
.btn.alert-yellow{background:var(--sev-yellow-line);color:#3D2F00;border:0}.btn.alert-yellow:hover{background:#DDB000}
/* Leyenda del semáforo */
.semaforo{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.84rem;color:var(--muted);margin:.2rem 0 1rem}
.semaforo span{display:inline-flex;align-items:center;gap:.35rem}
.semaforo i{width:.85rem;height:.85rem;border-radius:50%;display:inline-block}
.semaforo .r{background:var(--sev-red)}.semaforo .o{background:var(--sev-orange)}.semaforo .y{background:var(--sev-yellow-line)}.semaforo .g{background:var(--sev-green)}
.toast.error{background:var(--sev-red);color:#fff}
.module{background:#FFFFFF}

/* Pie de página con créditos */
.site-footer{display:flex;align-items:center;gap:.8rem;margin-top:2.4rem;padding:1.1rem 0 .4rem;border-top:2px solid var(--brand-soft);color:var(--brand-strong);font-size:.92rem}
.site-footer img{width:40px;height:40px;object-fit:contain;flex:none}
.site-footer a{color:var(--brand-strong);font-weight:700}
#sitePreview .site-footer{margin-top:.4rem}

/* Solicitud de acceso */
.signup-cta{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem;padding:.8rem 1rem;border:1px dashed var(--brand);border-radius:12px;background:var(--brand-soft);color:var(--brand-strong);font-weight:700}
.login-side{overflow-y:auto}
.login.signup{max-width:520px;padding:1.5rem 0}
.hint{display:block;font-weight:400;font-size:.8rem;color:var(--muted);margin-top:.25rem}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;color:var(--ink);margin:.4rem 0 1rem;line-height:1.45}
.consent input{margin-top:.2rem;accent-color:var(--brand);flex:none;width:1.05rem;height:1.05rem}
.hp{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}
.linklike{background:none;border:0;padding:0;color:var(--brand-strong);font-weight:700;text-decoration:underline;cursor:pointer}
.signup-ok{text-align:center}.signup-ok img{width:170px}.signup-ok p{margin-left:auto;margin-right:auto}
.count{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;background:var(--sev-red);color:#fff;font-size:.75rem;font-weight:700;margin-left:.3rem;vertical-align:middle}
.req-banner{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.8rem 1.1rem;margin-bottom:1.2rem;border:2px solid var(--brand);border-radius:14px;color:var(--brand-strong)}
.req-banner img{width:56px}.req-banner>div{flex:1;min-width:200px}
.req-card{border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;margin:.8rem 0;background:#fff}
.req-head{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem}
.req-msg{font-style:italic;color:var(--muted);border-left:3px solid var(--brand-soft);padding-left:.7rem}

.login a{color:var(--brand-strong);font-weight:700}
.signup-cta+p{margin-top:.8rem}

/* Evaluación NOC */
.noc-table td:last-child{white-space:nowrap}
.noc-table select{max-width:12.5rem}
.noc-sum{margin:.5rem 0 1rem;padding:.6rem .8rem;border-radius:10px;border-left:5px solid var(--line);background:#F7FBFB;font-size:.9rem}
.noc-sum.green{border-left-color:var(--sev-green);background:var(--sev-green-soft)}
.noc-sum.yellow{border-left-color:var(--sev-yellow-line);background:var(--sev-yellow-soft)}
.noc-sum.orange{border-left-color:var(--sev-orange);background:var(--sev-orange-soft)}
.noc-sum.red{border-left-color:var(--sev-red);background:var(--sev-red-soft)}
.noc-sum.pend{color:var(--muted)}
.noc-sum .warn{margin-top:.3rem;color:var(--sev-orange);font-weight:700;font-size:.84rem}
.eval-bar{height:8px;background:#E3EEEE;border-radius:99px;overflow:hidden;margin:.35rem 0}
.eval-bar div{height:100%;background:var(--brand-bright);transition:width .25s}
.noc-sum.green .eval-bar div{background:var(--sev-green)}.noc-sum.yellow .eval-bar div{background:var(--sev-yellow-line)}
.noc-sum.orange .eval-bar div{background:var(--sev-orange)}.noc-sum.red .eval-bar div{background:var(--sev-red)}
.eval-bar.big{height:12px;margin:.7rem 0}
.eval-counts{display:flex;gap:.4rem;flex-wrap:wrap}
.evid{margin:.2rem 0 .4rem;padding:.35rem .6rem;border-radius:8px;background:var(--brand-soft);color:var(--brand-strong);font-weight:700;font-size:.88rem}
.note-panel textarea{min-height:240px;line-height:1.5}
.note-print{white-space:pre-wrap;font-family:inherit;font-size:.92rem}
.sugg{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--line)}
.sugg h3{margin-bottom:.3rem}
.levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 .8rem}
code{background:var(--brand-soft);padding:.05rem .35rem;border-radius:5px;font-size:.88em}
/* Plan: NOC a todo el ancho (la tabla de evaluación necesita espacio) y NIC debajo */
.chain-body{grid-template-columns:1fr}
.col.nic{border-top:1px solid var(--line)}
#hcNote{display:block;width:100%;margin-top:.4rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;background:#FBFEFE;color:var(--ink)}
/* Fármacos por categoría */
.cat-block{border:1px solid var(--line);border-radius:14px;margin-bottom:.8rem;background:#fff;box-shadow:var(--shadow)}
.cat-block>summary{cursor:pointer;list-style:none;padding:1rem 1.2rem;display:flex;align-items:center;gap:.8rem;border-left:6px solid var(--brand);border-radius:14px}
.cat-block>summary::-webkit-details-marker{display:none}
.cat-block>summary::before{content:"";width:.6rem;height:.6rem;border-right:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);transform:rotate(-45deg);transition:transform .15s;flex:none}
.cat-block[open]>summary::before{transform:rotate(45deg)}
.cat-block>summary b{display:block;font-family:Manrope,sans-serif;font-size:1.08rem;color:var(--brand-strong)}
.cat-block[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:1px solid var(--line)}
.cat-body{padding:1rem 1.2rem 1.2rem}
.intro{background:var(--brand-soft);border-radius:10px;padding:.7rem .9rem;margin-bottom:1rem;font-size:.94rem}
.intro p:last-child,.intro ul:last-child{margin-bottom:0}
.sub-block{margin:1.2rem 0 0;padding-left:.9rem;border-left:3px solid var(--line)}
.sub-block h3{margin:0 0 .5rem}
.sub-block .intro{background:#F7FBFB}
.crumb{font-size:.84rem;font-weight:700;color:var(--muted);margin:.2rem 0 .6rem}
.sub-row{border:1px dashed var(--line);border-radius:10px;padding:.7rem .8rem;margin-bottom:.6rem;background:#fff}
/* Secciones editables, escalas y calculadoras personalizadas */
.panel.urgent{border-left:5px solid var(--sev-red)}
.panel.urgent h2{color:var(--sev-red)}
.panel.urgent .steps li::before{background:var(--sev-red);color:#fff}
.rich ol.steps{margin:.3rem 0 .8rem}
.sec-title{margin:2rem 0 .8rem}
.cs-item{border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem .7rem;margin:0 0 .8rem}
.cs-item legend{font-weight:700;color:var(--brand-strong);padding:0 .3rem}
.cs-opt{display:flex;align-items:center;gap:.6rem;padding:.35rem .4rem;border-radius:8px;cursor:pointer}
.cs-opt:hover{background:var(--brand-soft)}
.cs-opt input{accent-color:var(--brand);flex:none;width:1.05rem;height:1.05rem}
.cs-opt span:first-of-type{flex:1}
.cs-opt .pts{font-weight:700;color:var(--muted);font-size:.85rem;min-width:2rem;text-align:right}
.cs-res{margin-bottom:.6rem}
.formula{margin-top:.6rem;font-family:ui-monospace,Menlo,Consolas,monospace}
