:root{--bg:#f7f7f5;--surface:#fff;--text:#1c1c1a;--muted:#6b6b66;--border:#e3e3de;--accent:#2f5bd3}@media (prefers-color-scheme:dark){:root{--bg:#141413;--surface:#1e1e1c;--text:#ececea;--muted:#9a9a94;--border:#2e2e2b;--accent:#7c9cf0}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}main{max-width:960px;margin:0 auto;padding:48px 16px}h1{margin:0 0 8px;font-size:1.75rem}p.lead{color:var(--muted);margin:0 0 32px}.topbar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.topbar .brand{font-weight:600}.topbar .who{color:var(--muted);align-items:center;gap:12px;display:flex}.topbar form{margin:0}button.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}main.login{max-width:420px;padding-top:96px}.button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-weight:600}p.error{color:#d64545;border:1px solid #d64545;border-radius:6px;margin:0 0 24px;padding:12px 16px}:root{--warn:#b26b00;--warn-bg:#fff4e0;--ok:#2e7d4f;--ok-bg:#e6f4ec;--off:#c0392b;--chip:#eeeeea}@media (prefers-color-scheme:dark){:root{--warn:#f0b456;--warn-bg:#3a2c12;--ok:#7fd1a0;--ok-bg:#173324;--off:#f08072;--chip:#2a2a27}}main.wide{max-width:1120px;padding-top:32px}h2{margin:0 0 12px;font-size:1.1rem}h3{margin:12px 0 4px;font-size:.95rem}.sub{color:var(--muted);font-size:.875rem}p.empty{border:1px dashed var(--border);color:var(--muted);border-radius:8px;padding:24px 16px}.crumbs{margin:0 0 16px}a{color:var(--accent)}.table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:.925rem}table.data th,table.data td{border-top:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 12px}table.data thead th{color:var(--muted);white-space:nowrap;border-top:none;font-weight:500}table.data .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.data tr.group th{background:var(--bg);font-weight:600}table.data tr.subtotal td{color:var(--muted)}table.data tfoot td{border-top:2px solid var(--border);font-weight:600}.project-link{font-weight:600;text-decoration:none}.project-link:hover{text-decoration:underline}.badge{background:var(--chip);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.8rem;display:inline-block}.badge.status-pending_info,.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.status-in_review,.badge.notice{color:var(--accent)}.badge.status-active{background:var(--ok-bg);color:var(--ok)}.badge.source-rule{background:var(--warn-bg);color:var(--warn)}.sheet-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.card{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:0 0 20px;padding:16px}.card .table-wrap{border:none}.card.attention{border-color:var(--warn)}.card.attention ul{margin:0;padding-left:20px}.gap{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:8px;display:grid}.gap .figure{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600}.gap .figure.off{color:var(--off)}dl.fields{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 24px;margin:0;display:grid}dl.fields .field.wide{grid-column:1/-1}dl.fields dt{color:var(--muted);font-size:.8rem}dl.fields dd{white-space:pre-line;margin:0}details summary{cursor:pointer}details summary h2{display:inline}.button.secondary{border:1px solid var(--border);background:var(--surface);color:var(--text)}.button:disabled{opacity:.5;cursor:not-allowed}a.button{text-decoration:none;display:inline-block}.review-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}form.team{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}form.team .actions{margin-top:0}ul.error{border:1px solid var(--off);color:var(--off);border-radius:6px;margin:0 0 16px;padding:12px 16px 12px 32px}p.warning{background:var(--warn-bg);color:var(--warn);border-radius:6px;margin:0 0 20px;padding:12px 16px}.badge.source-manual{color:var(--accent)}.badge+.badge{margin-left:6px}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.9rem;display:flex}label.check{color:var(--text);flex-direction:row;align-items:center;gap:8px}.hint{font-size:.8rem}input:not([type=checkbox]),select,textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;border-radius:6px;padding:8px 10px}input.hours{text-align:right;width:110px}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:16px 0;display:grid}.form-grid .wide{grid-column:1/-1}fieldset{border:1px solid var(--border);border-radius:6px;margin:16px 0;padding:12px 16px}legend{color:var(--muted);padding:0 6px;font-size:.9rem}.checks{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-bottom:12px;display:grid}table.data tr.new-row td{border-top:2px solid var(--border)}ol.history{margin:16px 0 0;padding:0;list-style:none}ol.history>li{border-top:1px solid var(--border);padding:10px 0}ol.history ul{margin:4px 0 0;padding-left:20px}:root{--accent-bg:#e8eefc}@media (prefers-color-scheme:dark){:root{--accent-bg:#23305a}}.main-nav{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.row-actions{white-space:nowrap;text-align:right}.row-actions button.link+button.link{margin-left:12px}form.assignment{margin-top:20px}.hint+ul.error,.hint{margin-top:8px}.chips{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.chip{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:4px 12px;text-decoration:none}.chip.on{border-color:var(--accent);color:var(--accent);font-weight:600}ul.plain{margin:0;padding:0;list-style:none}ul.plain li+li{margin-top:4px}h2.section{margin-top:40px}table.calendar td.month{text-align:center;min-width:64px}table.calendar td.month.active,table.calendar td.month.end{background:var(--accent-bg)}table.calendar td.month.end{color:var(--accent);font-weight:600}
