:root{--bg: #f5f6f8;--card: #ffffff;--ink: #1c2433;--muted: #6b7480;--line: #e2e6ea;--accent: #2b6cb0;--accent-ink: #ffffff;--ok: #1f8a4c;--bad: #c0392b;--vaca: #006afe;--ill: #e30073;--holiday: #219031;--radius: 10px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}a{color:var(--accent);text-decoration:none}.nav{position:sticky;top:0;z-index:10;display:flex;gap:.25rem;padding:.5rem 1rem;background:var(--ink);box-shadow:var(--shadow)}.nav a{color:#cdd5df;padding:.4rem .8rem;border-radius:8px;font-weight:600;font-size:.9rem}.nav a.active,.nav a:hover{background:#ffffff1f;color:#fff}.nav .spacer{flex:1}.container{max-width:720px;margin:0 auto;padding:1rem}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;margin-bottom:1rem}button,.btn{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:.5rem .9rem;border-radius:8px;cursor:pointer;font-weight:600}button:hover,.btn:hover{border-color:var(--accent)}button.primary,.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.danger{background:var(--bad);color:#fff;border-color:var(--bad)}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;padding:.45rem .55rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:0}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:.4rem .5rem;text-align:left;border-bottom:1px solid var(--line)}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.num{text-align:right}.row-holiday{color:var(--holiday)}.row-vaca{color:var(--vaca)}.row-ill{color:var(--ill)}.week-summary td{font-weight:700;background:#fafbfc;border-top:2px solid var(--line)}.diff-pos{color:var(--ok)}.diff-neg{color:var(--bad)}.alert{padding:.6rem .8rem;border-radius:8px;margin-bottom:.8rem;font-weight:600}.alert-error{background:#fdecea;color:var(--bad)}.toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}
