:root{--color-primary:#004d40;--color-primary-hover:#00352c;--color-primary-soft:#e0f2f1;--color-bg:#f5f7f6;--color-surface:#fff;--color-text:#1a2332;--color-text-muted:#5c6b7a;--color-border:#d8e0e8;--color-danger:#b42318;--color-danger-soft:#fef3f2;--color-success:#067647;--color-success-soft:#ecfdf3;--font-family:"Inter", "Segoe UI", system-ui, sans-serif;--radius-md:12px;--radius-lg:16px;--shadow-card:0 1px 2px #1018280f, 0 1px 3px #1018281a;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--touch-min:44px}*{box-sizing:border-box}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);margin:0;line-height:1.45}button,input,select{font:inherit;color:inherit}a{color:var(--color-primary)}.login-screen{min-height:100vh;padding:var(--space-5);place-items:center;display:grid}.login-card{background:var(--color-surface);border-radius:var(--radius-lg);width:min(420px,100%);box-shadow:var(--shadow-card);padding:var(--space-6)}.eyebrow{margin:0 0 var(--space-2);color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}h1{margin:0 0 var(--space-2);font-size:1.75rem;line-height:1.25}h2{margin:0;font-size:1.25rem}.lede,.muted{color:var(--color-text-muted)}.lede{margin:0 0 var(--space-5)}.stack{gap:var(--space-4);display:grid}label{gap:6px;font-size:.875rem;font-weight:600;display:grid}input,select{min-height:var(--touch-min);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:0 12px}input:focus,select:focus{outline:2px solid var(--color-primary-soft);border-color:var(--color-primary)}.btn{min-height:var(--touch-min);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;border:0;padding:0 16px;font-weight:600}.btn:hover{background:var(--color-primary-hover)}.btn:disabled{opacity:.6;cursor:progress}.btn.secondary{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border)}.btn.secondary:hover{background:var(--color-primary-soft)}.btn.danger{background:var(--color-danger-soft);color:var(--color-danger)}.banner{border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger);margin:0;padding:12px 14px}.banner.ok{background:var(--color-success-soft);color:var(--color-success)}.shell{min-height:100vh}.topbar{gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--color-primary);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.brand{font-weight:700}.brand a{color:#fff;text-decoration:none}.nav{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.nav a,.nav button.linkish{color:#fff;min-height:var(--touch-min);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.nav a[aria-current=page],.nav a:hover{background:#ffffff29}.who{opacity:.9;font-size:.875rem}.month{color:var(--color-text);background:#fff;border:0;border-radius:999px;min-height:40px;padding:0 12px}.page{width:min(1100px,100% - 32px);margin:var(--space-5) auto var(--space-6);gap:var(--space-5);display:grid}.kpis{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5)}.kpi-label{color:var(--color-text-muted);margin:0;font-size:.875rem}.kpi-value{letter-spacing:-.02em;margin:6px 0 0;font-size:1.75rem;font-weight:700}.kpi-note{color:var(--color-text-muted);margin:6px 0 0;font-size:.75rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 10px}th{color:var(--color-text-muted);font-size:.75rem;font-weight:600}.section-head{justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;align-items:end;display:flex}.form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.back{font-weight:600;text-decoration:none}@media (width<=800px){.kpis,.form-grid{grid-template-columns:1fr}.page{width:min(1100px,100% - 24px)}}
