:root{--brand:#9e1b32;--brand-dark:#6f1222;--brand-ink:#7c1527;--brand-tint:#f6e3e7;--brand-line:#e8c3cb;--ink:#2a1d20;--ink-2:#4a3c40;--muted:#6b5c60;--bg:#f7f4f4;--card:#ffffff;--line:#e3d9da;--line-2:#efe6e7;--field:#cdbcc0;--chip:#f0eaea;--ok:#2f6b4f;--ok-ink:#24563f;--ok-tint:#e2f0e8;--ok-line:#b9dbc8;--risk:#d9a821;--risk-ink:#6e520a;--risk-tint:#f6edd2;--risk-strong:#8a6a12;--risk-bg:#fbf6e8;--risk-line:#ecdcae;--block-ink:#8a1a2d;--none:#ece6e7;--mono:"Ubuntu Mono",ui-monospace,monospace}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:Ubuntu,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5}a{color:var(--brand)}a:hover{color:var(--brand-dark)}h1,h2,h3{margin:0;line-height:1.2}:focus-visible{outline:3px solid #2a6fdb;outline-offset:2px}.wrap{max-width:1240px;margin:0 auto;padding:0 24px}main.wrap{padding-top:32px;padding-bottom:64px;display:flex;flex-direction:column;gap:24px}.row{display:flex;flex-wrap:wrap;gap:16px}.between{justify-content:space-between;align-items:flex-end}.center{align-items:center}.stack{display:flex;flex-direction:column;gap:14px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));grid-gap:16px;gap:16px}.grid-kpi{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px}.grid-2,.grid-kpi{display:grid;gap:12px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;font-size:13.5px}.topbar{background:#fff;border-bottom:1px solid var(--line)}.topbar .wrap{padding-top:12px;padding-bottom:12px;flex-wrap:wrap;gap:12px 28px}.brand,.topbar .wrap{display:flex;align-items:center}.brand{gap:10px;text-decoration:none;color:var(--ink)}.logo{width:36px;height:36px;border-radius:8px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;letter-spacing:.02em;flex:none}.brand-txt{display:flex;flex-direction:column;line-height:1.15}.brand-txt span:last-child{font-size:12px;color:var(--muted)}.nav{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 auto}.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:8px;color:var(--ink);text-decoration:none}.nav a[aria-current=page]{background:var(--brand-tint);color:var(--brand);font-weight:500}.me{gap:10px}.avatar,.me{display:flex;align-items:center}.avatar{width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;justify-content:center;font-size:13px;font-weight:500;flex:none}.avatar.sm{width:32px;height:32px;font-size:12px;background:var(--ok-tint);color:var(--ok);font-weight:700}.me-txt{display:flex;flex-direction:column;line-height:1.2}.me-txt span:last-child{font-size:12px;color:var(--muted)}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}.h1{margin-top:4px;font-size:32px;font-weight:700;line-height:1.15}.lead{margin:6px 0 0}.lead,.muted{color:var(--muted)}.small{font-size:13px}.label,.upper{font-size:12px;color:var(--muted)}.upper{letter-spacing:.04em;text-transform:uppercase}.mono{font-family:var(--mono)}.stat{display:flex;flex-direction:column}.stat b{font-family:var(--mono);font-size:28px;line-height:1}.stat span{font-size:12px;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px;min-width:0}.card h2{font-size:18px;font-weight:700}.card h3{font-size:17px;font-weight:700;line-height:1.3}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:6px}.kpi b{font-family:var(--mono);font-size:30px;line-height:1}.kpi>span{font-size:13px;color:var(--muted)}.kpi.alert{background:var(--brand-tint);border-color:var(--brand-line)}.kpi.alert b,.kpi.alert>span{color:var(--brand-ink)}.card-foot{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line-2);padding-top:12px}.banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;border-radius:10px;padding:14px 18px;border:1px solid}.banner.bad{background:var(--brand-tint);border-color:var(--brand-line);color:#4a2a31}.banner.bad strong{color:var(--brand-ink)}.banner.good{background:var(--ok-tint);border-color:var(--ok-line);color:#1f4a35}.banner.info{background:#fff;border-color:var(--line)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:500;white-space:nowrap}.pill.s-on-track{background:var(--ok-tint);color:var(--ok-ink)}.pill.s-at-risk{background:var(--risk-tint);color:var(--risk-ink)}.pill.s-blocked{background:var(--brand-tint);color:var(--block-ink)}.pill.s-done{background:var(--ink);color:#fff}.pill.s-not-started{background:var(--none);color:var(--ink-2)}.pill.chip{background:var(--chip);color:var(--ink-2);font-weight:400}.due{font-size:12.5px}.due.late{font-weight:700;color:var(--block-ink)}.due.today{font-weight:700;color:var(--risk-ink)}.due.ok{color:var(--ok-ink)}.due.done,.due.nostart,.due.upcoming{color:var(--muted)}.bar{background:var(--chip);overflow:hidden}.bar,.bar>div{height:8px;border-radius:999px}.bar>div{background:var(--brand)}.stackbar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--none);min-width:160px}.stackbar .ok{background:var(--ok)}.stackbar .risk{background:var(--risk)}.stackbar .block{background:var(--brand)}.stackbar .done{background:var(--ink)}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12.5px;color:var(--ink-2)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}.btn{font:inherit;font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:8px;border:1px solid #d7c8cb;background:#fff;cursor:pointer;text-decoration:none;white-space:nowrap}.btn,.btn:hover{color:var(--ink)}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-dark);color:#fff}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.sm{min-height:36px;padding:0 12px;font-size:13px}.btn.link{border:0;background:none;color:var(--brand);padding:0 6px}.field{display:flex;flex-direction:column;gap:6px;font-weight:500;flex:1 1 200px;min-width:0}.field .hint{font-weight:400;font-size:12.5px;color:var(--muted)}input,select,textarea{font:inherit;font-weight:400;min-height:44px;padding:0 12px;border:1px solid var(--field);border-radius:8px;background:#fff;color:var(--ink);width:100%}textarea{padding:10px 12px;resize:vertical;min-height:80px}select[multiple]{min-height:160px;padding:6px}fieldset{border:0;margin:0;padding:0;min-width:0}legend{padding:0;margin-bottom:10px;font-weight:500}.seg{display:flex;flex-wrap:wrap;gap:8px}.seg label{cursor:pointer}.seg input{position:absolute;opacity:0;width:1px;height:1px}.seg span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--field);background:#fff;font-weight:500}.seg input:focus-visible+span{outline:3px solid #2a6fdb;outline-offset:2px}.seg input:checked+span.ok{background:var(--ok);border-color:var(--ok);color:#fff}.seg input:checked+span.risk{background:var(--risk-strong);border-color:var(--risk-strong);color:#fff}.seg input:checked+span.block{background:var(--brand);border-color:var(--brand);color:#fff}.seg input:checked+span.done{background:var(--ink);border-color:var(--ink);color:#fff}.helpbox{display:flex;flex-direction:column;gap:14px;background:var(--risk-bg);border:1px solid var(--risk-line);border-radius:10px;padding:16px}.helpbox .note{margin:0;font-size:13px;color:#5c4710}details.card>summary{cursor:pointer;font-weight:700;font-size:16px;list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:32px}details.card>summary:after{content:"Editar ▾";font-weight:500;font-size:13px;color:var(--brand)}details.card[open]>summary:after{content:"Cerrar ▴"}.tbl-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl td,.tbl th{padding:10px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:middle}.tbl thead th{color:var(--muted);font-size:12.5px;border-bottom-color:var(--line);padding-top:8px;padding-bottom:8px;white-space:nowrap}.tbl tbody th,.tbl thead th{font-weight:500}.tbl .num{text-align:right;font-family:var(--mono)}.tbl .warn{color:var(--block-ink);font-weight:700}.tbl .good{color:var(--ok-ink)}.tbl a{text-decoration:none;color:var(--ink);font-weight:500}.tbl a:hover{color:var(--brand);text-decoration:underline}.hist{display:flex;flex-direction:column;gap:4px;font-size:13.5px;border-left:2px solid var(--line);padding-left:12px}.alert-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;border-top:1px solid var(--line-2);padding:14px 0}.alert-row .pill{min-width:130px;justify-content:center}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.login{min-height:100vh;display:flex;flex-wrap:wrap}.login-hero{flex:1 1 520px;background:var(--brand);color:#fff;padding:56px 48px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;min-height:360px}.login-hero .logo{width:44px;height:44px;border-radius:10px;background:#fff;color:var(--brand);font-size:16px}.login-hero h1{margin-top:10px;font-size:44px;line-height:1.08}.login-hero .eyebrow{color:#f6d5dc;font-size:13px}.login-side{flex:1 1 520px;display:flex;align-items:center;justify-content:center;padding:48px 24px}.login-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px 32px;gap:22px}.checks,.login-card{display:flex;flex-direction:column}.checks{gap:10px;font-size:13.5px;color:var(--ink-2);background:var(--bg);border-radius:10px;padding:14px 16px}.checks div{display:flex;gap:10px}.checks b{color:var(--ok)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.filters .field{flex:1 1 170px;font-size:13px}.tabs{display:flex;flex-wrap:wrap;gap:6px}.tabs a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink);font-size:14px}.tabs a[aria-current=page]{background:var(--ink);color:#fff;border-color:var(--ink)}@media (max-width:640px){.wrap{padding:0 16px}.h1{font-size:26px}.login-hero{padding:40px 24px}.login-hero h1{font-size:32px}.grid-2{grid-template-columns:1fr}}.checkin-form .helpbox{display:none}.checkin-form:has(input[value="At risk"]:checked) .helpbox,.checkin-form:has(input[value=Blocked]:checked) .helpbox{display:flex}.helpbox>.field,.stack>.field,form.stack>label.field{flex:0 0 auto}.person-row{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(200px,1.6fr) minmax(110px,1fr) 140px 120px 56px auto;grid-gap:8px;gap:8px;align-items:center;padding:8px;border-top:1px solid var(--line-2)}.person-row.head{border-top:0;padding-bottom:0}@media (max-width:900px){.person-row{grid-template-columns:1fr 1fr}.person-row.head{display:none}}.btn.danger{background:var(--block-ink);border-color:var(--block-ink);color:#fff}.btn.danger:hover{background:#6f1222;color:#fff}details.card.danger>summary:after{content:"Abrir ▾";color:var(--block-ink)}details.card.danger[open]>summary:after{content:"Cerrar ▴"}.card>.field,fieldset.stack>.field{flex:0 0 auto}