:root{--nu:#52c2c8;--nu-logo:#7dc2c7;--dark:#164f48;--ink:#18302e;--muted:#6a7d7a;--bg:#f4faf9;--line:#d8e8e6;--green:#dff4e5;--green-ink:#1f6a36;--red:#fde1df;--red-ink:#9a2923;--yellow:#fff2c9;--yellow-ink:#7a5a00;--orange:#ffe6cf;--orange-ink:#8a4d13;--purple:#ece4fb;--blue:#e0eefc}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--dark)}.top{height:82px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 4vw;gap:20px;position:sticky;top:0;z-index:20}.brand img{width:175px;display:block}.top-right{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:14px}.role-badge{background:var(--purple);padding:5px 9px;border-radius:999px;font-weight:700}.wrap{max-width:1380px;margin:24px auto;padding:0 22px 50px}.mainnav,.subnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.mainnav a,.subnav a{padding:10px 14px;border-radius:999px;background:white;border:1px solid var(--line);text-decoration:none;font-weight:650;color:var(--dark)}.mainnav a.active,.subnav a.active{background:var(--nu);border-color:var(--nu);color:#073b38}h1,h2,h3{color:var(--dark)}h1{margin-top:8px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:14px}.card,.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 4px 18px rgba(22,79,72,.045)}.card-accent{border-top:5px solid var(--nu)}.cards .card:nth-child(3n+1){border-top-color:#52c2c8}.cards .card:nth-child(3n+2){border-top-color:#9ed8a8}.cards .card:nth-child(3n){border-top-color:#c8b5e8}.kpi{font-size:34px;font-weight:800;line-height:1;color:var(--dark);margin:7px 0}.muted{color:var(--muted)}.small{font-size:13px}.flash{padding:12px 15px;border-radius:12px;margin:10px 0 18px;font-weight:650}.flash.ok{background:var(--green);color:var(--green-ink)}.flash.err{background:var(--red);color:var(--red-ink)}.flash.warn{background:var(--yellow);color:var(--yellow-ink)}table{width:100%;border-collapse:separate;border-spacing:0;background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}th,td{padding:10px 11px;border-bottom:1px solid #e8f0ef;text-align:left;vertical-align:top}th{background:#e9f7f6;color:var(--dark);font-size:13px;position:sticky;top:82px;z-index:3}tr:last-child td{border-bottom:0}.scroll-x{overflow-x:auto;border-radius:14px}.scroll-x table{min-width:900px}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid #c8dcda;border-radius:10px;padding:10px;background:white;max-width:100%}textarea{min-height:80px}.btn,button{border:0;background:var(--nu);color:#073b38;font-weight:750;border-radius:10px;padding:10px 14px;cursor:pointer;text-decoration:none;display:inline-block}.btn.secondary,button.secondary{background:#e9f3f2;color:var(--dark)}.btn.danger,button.danger{background:#b8322a;color:white}.btn.small,button.small{padding:7px 10px;font-size:13px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.form-grid label{font-size:13px;font-weight:700;color:var(--dark)}.form-grid label input,.form-grid label select,.form-grid label textarea{display:block;width:100%;margin-top:5px}.tag{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:800}.tag.ok{background:var(--green);color:var(--green-ink)}.tag.bad{background:var(--red);color:var(--red-ink)}.tag.warn{background:var(--yellow);color:var(--yellow-ink)}.tag.info{background:var(--blue);color:#24517f}.st-present{background:var(--green)!important;color:var(--green-ink)}.st-no-show{background:var(--red)!important;color:var(--red-ink)}.st-sick{background:var(--yellow)!important;color:var(--yellow-ink)}.st-cant{background:var(--orange)!important;color:var(--orange-ink)}.st-late{background:var(--purple)!important;color:#5b3f87}.st-none{background:#edf0f1!important;color:#555}.st-empty{background:white}.att-cell{min-width:90px;text-align:center}.att-cell button{width:100%;padding:8px 6px;font-size:12px}.summary{white-space:nowrap}.schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.event-card{background:white;border:1px solid var(--line);border-left:6px solid var(--nu);border-radius:15px;padding:15px}.event-card.missing{border-left-color:#d96a57;background:#fff8f7}.event-date{font-size:20px;font-weight:800;color:var(--dark)}.public .wrap{max-width:620px}.public-card{background:white;border:1px solid var(--line);border-radius:20px;padding:22px;margin:20px 0;box-shadow:0 8px 28px rgba(22,79,72,.06)}.public h1{color:var(--nu);font-size:30px}.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice label{border:2px solid var(--line);border-radius:14px;padding:14px;text-align:center;font-weight:800;cursor:pointer}.choice input{margin-right:7px}.big-thanks{font-size:34px;font-weight:800;color:var(--dark);text-align:center;padding:70px 20px}.wa-text{width:100%;min-height:150px}.followup{background:#fff7dd;border-left:5px solid #e3ad24}.danger-zone{border:1px solid #edb2ac;background:#fff7f6}.matrix-head{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;min-width:48px}.calendar-icon{font-size:20px}dialog{border:0;border-radius:18px;padding:0;max-width:560px;width:calc(100% - 30px);box-shadow:0 24px 70px #0004}dialog::backdrop{background:#1238}.dialog-body{padding:22px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.hero{display:flex;align-items:center;justify-content:space-between;gap:16px}.hero .kpi{font-size:42px}.split{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.nowrap{white-space:nowrap}.center{text-align:center}.right{text-align:right}@media(max-width:800px){.top{height:70px;padding:0 14px}.brand img{width:145px}.top-right span:not(.role-badge){display:none}.wrap{padding:0 12px;margin-top:16px}.mainnav a{padding:8px 10px;font-size:13px}.split{grid-template-columns:1fr}th{top:70px}.choice{grid-template-columns:1fr}.public h1{font-size:26px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:14px}.kpi{font-size:28px}}@media(max-width:480px){.cards{grid-template-columns:1fr}.top-right .role-badge{display:none}}

/* NU attendance patch */
.attendance-legend{
 display:flex;
 align-items:center;
 gap:8px;
 flex-wrap:wrap;
 margin-bottom:12px;
 padding-bottom:14px;
 border-bottom:1px solid var(--line)
}
.attendance-legend .tag.cant{
 background:var(--orange);
 color:var(--orange-ink)
}
.attendance-legend .tag.late{
 background:var(--purple);
 color:#5b3f87
}
.attendance-legend .tag.none{
 background:#edf0f1;
 color:#555
}
.scroll-x table thead th{
 position:static;
}
.att-cell button.st-empty{
 border:1px dashed #c8dcda;
 background:#fff;
 color:var(--muted)
}
