:root{--text:#1f2430;--text-muted:#6b7280;--bg:#f7f8fa;--surface:#fff;--border:#e2e5ea;--accent:#4f46e5;--positive:#059669;--positive-bg:#d9ead3;--negative:#dc2626;--negative-bg:#f4cccc;--holiday-bg:#fde3cf;color:var(--text);background:var(--bg);font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--text:#e5e7eb;--text-muted:#9ca3af;--bg:#14161b;--surface:#1c1f26;--border:#2d313b;--accent:#818cf8;--positive-bg:#123321;--negative-bg:#3a1414;--holiday-bg:#3a2a14}}*{box-sizing:border-box}body{margin:0}h1,h2{margin:0 0 16px;font-weight:600}.muted{color:var(--text-muted)}.error{color:var(--negative)}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;flex-direction:column;gap:12px;width:320px;padding:32px;display:flex}.login-card input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:10px 12px;font-size:15px}.login-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 12px;font-size:15px}.login-card button:disabled{opacity:.5;cursor:not-allowed}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:12px 24px;display:flex}.app-title{font-weight:700}.app-header nav{flex:1;gap:16px;display:flex}.app-header nav a{color:var(--text-muted);padding:6px 0;text-decoration:none}.app-header nav a.active{color:var(--text);border-bottom:2px solid var(--accent);font-weight:600}.logout-btn{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:6px;padding:6px 12px}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px}.app-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);padding:16px 24px;font-size:12px}.page-header-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.page-header-row h2{margin:0}.header-actions{align-items:center;gap:16px;display:flex}.month-select{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:8px 12px;font-size:13px}.send-test-email{align-items:center;gap:10px;display:flex}.send-test-email button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:8px 14px;font-size:13px}.send-test-email button:disabled{opacity:.6;cursor:not-allowed}.send-test-email .btn-secondary{color:var(--text-muted);background:0 0;border-color:#0000}.confirm-prompt{color:var(--text-muted);font-size:13px}.email-status-ok{color:var(--positive);font-size:13px}.email-status-error{color:var(--negative);font-size:13px}.callout-row{gap:16px;margin-bottom:24px;display:flex}.callout{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex:1;padding:16px 20px}.callout-label{color:var(--text-muted);margin-bottom:6px;font-size:13px}.callout-value{font-size:24px;font-weight:700}.callout-sub{color:var(--text-muted);margin-top:4px;font-size:12px}.callout-estimate{border-style:dashed}.badge{color:var(--text-muted);background:var(--bg);border:1px solid var(--border);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:500;display:inline-block}.badge-inline{cursor:help;margin-left:4px}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:24px;padding:16px}.table-scroll{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow-x:auto}.table-scroll-tall{max-height:560px;overflow-y:auto}.total-row-frozen td{background:var(--text);color:var(--bg);border-top:2px solid var(--accent);z-index:1;font-weight:700;position:sticky;bottom:0}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th,.data-table td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table th{background:var(--bg);color:var(--text-muted);font-size:12px;font-weight:600}.data-table .bold{font-weight:700}.row-holiday td{background:var(--holiday-bg)}.cell-positive{background:var(--positive-bg);color:var(--positive)}.cell-negative{background:var(--negative-bg);color:var(--negative)}.status-ok{color:var(--positive)}.status-error{color:var(--negative)}.error-cell{text-overflow:ellipsis;max-width:240px;color:var(--negative);font-size:12px;overflow:hidden}
