@font-face{font-family:PP Pangram Sans;font-display:swap;src:url(/fonts/PPPangramSans-Medium.woff2)format("woff2");font-weight:400}@font-face{font-family:PP Pangram Sans;font-display:swap;src:url(/fonts/PPPangramSans-Semibold.woff2)format("woff2");font-weight:600}@font-face{font-family:Feature Display;font-display:swap;src:url(/fonts/FeatureDisplay-Regular-Web.woff2)format("woff2");font-weight:400}@font-face{font-family:Feature Display;font-display:swap;src:url(/fonts/FeatureDisplay-Medium-Web.woff2)format("woff2");font-weight:500}:root{--bg:#000;--surface:#121212;--surface-2:#1a1a1a;--weekend:#0b0b0b;--border:#393939;--border-strong:#575757;--text:#fff;--muted:#949494;--primary:#4b71e2;--primary-hover:#7895e9;--primary-soft:#0c1f58;--button-bg:#f0f0f0;--button-bg-hover:#fff;--button-text:#000;--danger:#d92911;--danger-text:#d68b77;--danger-soft:#250c06;--warn-soft:#312a0d;--warn-text:#f9e58d;--ok:#68a99a;--ok-soft:#012d22;--input-hover:#f9f9f9;--radius:10px;--shadow:0 5px 15px 0 #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:PP Pangram Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}:root[data-theme=light]{--bg:#fdfaf7;--surface:#fff;--surface-2:#f9f9f9;--weekend:#faf5ef;--border:#e8e8e8;--border-strong:#b3b3b3;--text:#1a1a1a;--muted:#767676;--primary:#1e4edb;--primary-hover:#183eaf;--primary-soft:#d2dcf8;--button-bg:#1a1a1a;--button-bg-hover:#000;--button-text:#fff;--danger-text:#953216;--danger-soft:#fbf3f1;--warn-soft:#fdf6d9;--warn-text:#62541a;--ok:#037056;--ok-soft:#e7f1ef;--input-hover:#1a1a1a;--shadow:0 2px 8px 0 #1a1a1a1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);margin:0}h2,h3,.stat-value{letter-spacing:-.01em;font-family:Feature Display,PP Pangram Sans,serif;font-weight:500}h2{margin:0;font-size:26px}h3{margin:24px 0 8px;font-size:18px}strong,b,th{font-weight:600}a{color:var(--primary-hover)}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:6px;margin-right:4px;padding:7px 14px;font-weight:600;transition:background .15s,border-color .15s,color .15s}button:hover:not(:disabled){border-color:var(--text);background:var(--surface-2)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--button-bg);border-color:var(--button-bg);color:var(--button-text)}button.primary:hover:not(:disabled){background:var(--button-bg-hover);border-color:var(--button-bg-hover)}.link-button{color:var(--primary-hover);background:0 0;border:none;padding:4px 6px;font-weight:600}.link-button:hover:not(:disabled){color:var(--text);background:0 0}.icon-button{width:32px;height:32px;margin:0;padding:0;font-size:18px;line-height:1}.icon-button.subtle{color:var(--muted);background:0 0;border-color:#0000}.icon-button.subtle:hover{color:var(--danger-text);background:0 0}input,select,textarea{border:1px solid var(--border-strong);background:var(--bg);border-radius:6px;padding:7px 10px}input::placeholder,textarea::placeholder{color:var(--muted)}input:hover,select:hover,textarea:hover{border-color:var(--input-hover)}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:24px;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:10px;display:flex}.brand svg{display:block}.brand .product{border-left:1px solid var(--border-strong);padding-left:10px;font-family:Feature Display,serif;font-size:18px;line-height:1}.topbar nav{flex:1;gap:4px;display:flex}.topbar nav a{color:var(--muted);border-radius:6px;padding:8px 12px;font-weight:600;text-decoration:none}.topbar nav a:hover,.topbar nav a.active{color:var(--text);background:var(--surface-2)}.user{align-items:center;gap:8px;display:flex}.theme-toggle{color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover:not(:disabled){color:var(--text)}main{max-width:1280px;margin:0 auto;padding:24px}.center{text-align:center;max-width:560px;margin:0 auto;padding:80px 24px}.narrow{max-width:720px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.week-nav{align-items:center;gap:8px;display:flex}.week-nav h2,.week-nav .muted{margin-left:8px}.actions{align-items:center;gap:12px;display:flex}.notice{color:var(--ok)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:18px}.error{background:var(--danger-soft);color:var(--danger-text);border:1px solid var(--danger);border-radius:var(--radius);margin-bottom:12px;padding:10px 14px}.warning{background:var(--warn-soft);color:var(--warn-text);border-radius:var(--radius);margin:0 0 12px;padding:10px 14px 10px 32px}.badge{white-space:nowrap;background:var(--primary-soft);color:var(--primary-hover);border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.warn{background:var(--warn-soft);color:var(--warn-text)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.loading{opacity:.55;pointer-events:none;transition:opacity .15s}.grid-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.grid{border-collapse:collapse;width:100%;min-width:900px}.grid th,.grid td{border-bottom:1px solid var(--border);text-align:center;padding:6px 8px;position:relative}.grid thead th{background:var(--surface-2);padding:10px 8px;font-weight:500}.grid .project-col{text-align:left;width:30%;min-width:240px}.grid .project-col select{width:100%}.grid .project-col select.placeholder{color:var(--muted)}.grid .day-col{width:9%}.grid .weekend{background:var(--weekend)}.grid thead .today{box-shadow:inset 0 -3px 0 var(--primary)}.grid .total-col{width:7%;font-weight:600}.grid .remove-col{width:40px}.grid tfoot td{background:var(--surface-2);border-bottom:none;font-weight:600}.grid tfoot .project-col{font-weight:400}.grid tfoot .over{color:var(--danger-text)}.grid tfoot .grand{color:var(--text);font-size:16px}.cell{border:1px solid var(--border);background:var(--bg);border-radius:6px;align-items:center;display:flex}.cell:hover{border-color:var(--border-strong)}.cell:focus-within{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.cell.invalid{border-color:var(--danger);background:var(--danger-soft)}.cell input:hover{border:none}.cell input{text-align:center;background:0 0;border:none;outline:none;width:100%;min-width:0;padding:6px 2px}.comment-toggle{color:var(--border-strong);background:0 0;border:none;margin:0;padding:4px 6px;display:flex}.comment-toggle:hover:not(:disabled){background:0 0}.cell:hover .comment-toggle,.cell:focus-within .comment-toggle{color:var(--muted)}.comment-toggle.has-comment,.cell:hover .comment-toggle.has-comment{color:var(--primary-hover)}.popover{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;padding:12px;position:fixed}.popover-title{margin-bottom:8px;font-weight:500}.popover textarea{resize:vertical;width:100%}.popover-actions{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.filters{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.filters label,.project-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.filters label>*,.project-form label>*{color:var(--text);font-size:14px}.presets{flex-wrap:wrap;gap:6px;display:flex}.chip{border-color:var(--border);border-radius:99px;padding:4px 12px;font-size:13px}.downloads{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.download-group{gap:4px;display:flex}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin:0;padding:8px 14px}.tabs button:hover:not(:disabled){color:var(--text);background:0 0}.tabs button.active{color:var(--text);border-bottom-color:var(--text)}.stat-row{gap:16px;margin-bottom:16px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:140px;padding:12px 20px}.stat-value{font-size:30px;line-height:1.1}.report-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:start;gap:16px;display:grid}.report-grid>table:last-child{grid-column:1/-1}table.report{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}table.report caption{text-align:left;padding:0 0 8px;font-weight:600}table.report th,table.report td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:8px 12px}table.report th{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}table.report tfoot td{background:var(--surface-2);font-weight:600}table.report .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.report .comment{color:var(--muted);max-width:420px}table.report td input{width:100%}table.report tr.inactive td{color:var(--muted)}.bar-cell{width:40%;vertical-align:middle!important}.bar{background:var(--primary);border-radius:4px;height:8px}.register-for{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.on-behalf-banner{background:var(--primary-soft);border-left:3px solid var(--primary);border-radius:var(--radius);margin-bottom:12px;padding:10px 14px}td.on-behalf{color:var(--primary-hover);font-weight:600}.push-right{margin-left:auto}.badge.source{margin-left:6px}.badge.on-behalf{background:var(--warn-soft);color:var(--warn-text);margin-left:6px}.badge.action-created{background:var(--ok-soft);color:var(--ok)}.badge.action-updated{background:var(--primary-soft);color:var(--primary-hover)}.badge.action-deleted{background:var(--danger-soft);color:var(--danger-text)}.change del{color:var(--danger-text);opacity:.85}.change ins{color:var(--ok);text-decoration:none}.import-form{flex-direction:column;gap:16px;display:flex}.import-form fieldset{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.check{align-items:center;gap:8px;display:flex}.file-drop{border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;color:var(--muted);justify-content:center;align-items:center;padding:24px;display:flex}.file-drop:hover{border-color:var(--text);color:var(--text)}.file-drop input{display:none}.confirm{border-color:var(--primary);justify-content:space-between;align-items:center;gap:16px;display:flex}.success{border-color:var(--ok)}.success h3{color:var(--ok);margin-top:0}.error ul{max-height:280px;margin:8px 0 0;padding-left:20px;overflow:auto}.badge.other{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.badge.spaced{margin-left:6px}.split{margin:4px 6px 0}.project-form .check.inline{color:var(--text);flex-direction:row;align-self:center;font-size:14px}.explainer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:16px 0}.explainer summary{cursor:pointer;padding:12px 16px;font-weight:600}.explainer[open] summary{border-bottom:1px solid var(--border)}.explainer-body{padding:14px 16px 4px}.explainer-body p{margin:0 0 10px}.explainer-rule{background:var(--warn-soft);color:var(--warn-text);border-left:3px solid var(--warn-text);border-radius:var(--radius);margin-bottom:12px;padding:12px 14px 2px}.explainer-projects{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 24px;display:grid}.explainer-projects h3{margin:6px 0 8px;font-size:14px}.explainer-projects ul{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.explainer-name{font-weight:600}.project-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.project-form .grow{flex:1;min-width:200px}.copy-row{align-items:center;gap:12px;margin-top:6px;margin-bottom:8px;display:flex}.copy-row code{background:var(--surface-2);border-radius:6px;flex:1;padding:8px 10px;overflow-x:auto}.examples li{color:var(--muted);margin-bottom:6px}@media (width<=760px){.topbar{flex-wrap:wrap;gap:8px;height:auto;padding:8px 16px}.topbar nav{order:3;width:100%;overflow-x:auto}main{padding:16px}}
