:root{--bg:#f5f6f8;--card:#fff;--text:#111418;--muted:#5f6b7a;--border:#dde1e6;--primary:#1957d2;--primary-text:#fff;--danger:#c62828;--row-hover:#f0f3f8;--sel:#e3ecfd;--t-neutral-bg:#eceff3;--t-neutral-fg:#3d4752;--t-info-bg:#e3ecfd;--t-info-fg:#1745a6;--t-warn-bg:#fff2d6;--t-warn-fg:#8a5a00;--t-good-bg:#dff5e6;--t-good-fg:#1c6b3a;--t-bad-bg:#fde3e3;--t-bad-fg:#a11d1d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0e1114;--card:#181c21;--text:#eceff3;--muted:#9aa5b1;--border:#2a3038;--primary:#5b8def;--primary-text:#0e1114;--danger:#ef7070;--row-hover:#1f242a;--sel:#1c2c4d;--t-neutral-bg:#262c33;--t-neutral-fg:#c5cdd6;--t-info-bg:#1c2c4d;--t-info-fg:#a9c3f7;--t-warn-bg:#3a2e12;--t-warn-fg:#f2cc7a;--t-good-bg:#163221;--t-good-fg:#8fd9a8;--t-bad-bg:#3d1b1b;--t-bad-fg:#f3a6a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary)}.topbar{background:var(--card);border-bottom:1px solid var(--border);z-index:5;align-items:center;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:16px}.topbar nav{gap:4px;display:flex}.topbar .spacer{flex:1}.tab{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:6px 10px;font-weight:600}.tab.active{background:var(--sel);color:var(--text)}main{max-width:1400px;margin:0 auto;padding:20px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.muted{color:var(--muted)}.error{color:var(--danger)}.btn{border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;font-weight:600}.btn.primary{background:var(--primary);color:var(--primary-text)}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.input,select.input{border:1px solid var(--border);background:var(--bg);border-radius:8px;min-width:0;padding:7px 10px}.badge{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.tone-neutral{background:var(--t-neutral-bg);color:var(--t-neutral-fg)}.tone-info{background:var(--t-info-bg);color:var(--t-info-fg)}.tone-warn{background:var(--t-warn-bg);color:var(--t-warn-fg)}.tone-good{background:var(--t-good-bg);color:var(--t-good-fg)}.tone-bad{background:var(--t-bad-bg);color:var(--t-bad-fg)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:9px 10px}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:12px;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr{cursor:pointer}tbody tr:hover{background:var(--row-hover)}tbody tr.selected{background:var(--sel)}.codes{color:var(--muted);max-width:280px;font-size:12px}.bulkbar{background:var(--card);border:1px solid var(--primary);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;display:flex;position:sticky;bottom:16px;box-shadow:0 6px 24px #0000001f}.drawer-backdrop{z-index:10;background:#0000004d;position:fixed;inset:0}.drawer{background:var(--card);border-left:1px solid var(--border);z-index:11;flex-direction:column;gap:14px;width:min(720px,100vw);padding:20px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.preview{border:1px solid var(--border);background:var(--bg);object-fit:contain;border-radius:10px;width:100%;height:420px}dl.fields{grid-template-columns:160px 1fr;gap:6px 12px;margin:0;display:grid}dl.fields dt{color:var(--muted)}dl.fields dd{margin:0}.low{color:var(--t-warn-fg);font-weight:600}.signin{place-items:center;min-height:100vh;padding:20px;display:grid}.signin .card{width:min(400px,100%)}.toast{background:var(--text);color:var(--bg);z-index:20;white-space:pre-line;border-radius:10px;max-width:90vw;padding:10px 16px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}code.addr{background:var(--bg);border:1px solid var(--border);-webkit-user-select:all;user-select:all;border-radius:8px;padding:6px 10px;font-size:15px}a.tab{text-decoration:none}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.form-grid label .input{color:var(--text);font-size:14px}.form-grid .span-2{grid-column:span 2}.form-grid textarea{resize:vertical}.low-field .input{border-color:var(--t-warn-fg);border-width:2px}.input.missing{border-color:var(--t-warn-fg)}.input:disabled{opacity:.8}.coding-row{justify-content:space-between}.coding-row .input{width:min(360px,60%)}.title-input{min-width:200px;font-size:16px;font-weight:600}.actions{background:var(--card);border-top:1px solid var(--border);padding:12px 0;position:sticky;bottom:-20px}.progress{background:var(--bg);border:1px solid var(--border);border-radius:3px;height:6px;overflow:hidden}.progress>div{background:var(--primary);height:100%;transition:width .2s}.dropzone{z-index:30;color:var(--primary);background:color-mix(in srgb, var(--bg) 85%, transparent);border:3px dashed var(--primary);place-items:center;font-size:22px;font-weight:600;display:grid;position:fixed;inset:0}.value-list{flex-wrap:wrap;gap:6px;max-height:220px;margin-top:8px;display:flex;overflow-y:auto}.value-list span{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:12px}.card.tone-warn{border-color:var(--t-warn-fg)}tbody.static tr{cursor:default}details summary{cursor:pointer}.mobile-only{display:none}@media (width<=720px){.mobile-only{display:inline-block}.desktop-only{display:none}.topbar{flex-wrap:wrap;padding:10px 12px}.topbar nav{order:3;width:100%;overflow-x:auto}main{padding:12px}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}dl.fields{grid-template-columns:1fr}}.assign{background:var(--bg)}.assign-list{border:1px solid var(--border);background:var(--card);border-radius:8px;max-height:360px;overflow-y:auto}.assign-row{border-bottom:1px solid var(--border);gap:8px;padding:6px 10px}.assign-row:last-child{border-bottom:0}.btn.link{border:0;padding:2px 6px;font-size:12px}.stats .card{flex-direction:column;gap:2px;min-width:170px;padding:12px 16px;display:flex}.stats strong{font-size:20px}.quick-add{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quick-add .grow{flex:1;min-width:200px}.quick-add .full{width:100%}tr.day-row td{background:var(--bg);padding-top:12px}tr.non-billable td{color:var(--muted)}.filters{gap:8px;padding:10px 12px}.filters .grow{flex:1;min-width:160px}.filters .divider{background:var(--border);align-self:stretch;width:1px;margin:0 4px}.drawer.wide{width:min(980px,100vw)}.input.num{text-align:right}table.lines td{vertical-align:top}table.lines textarea{width:100%;min-width:220px}.invoice-doc{color:#111;border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;gap:20px;padding:32px;display:flex}.invoice-doc h1{margin:0 0 4px;font-size:22px}.invoice-doc h2{text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px;font-size:18px}.invoice-doc .muted{color:#5f6b7a}.invoice-doc th,.invoice-doc td{color:#111;border-color:#dde1e6}.invoice-doc .totals{flex-direction:column;align-self:flex-end;gap:4px;width:min(320px,100%);display:flex}.invoice-doc .totals div{justify-content:space-between;display:flex}.invoice-doc .totals .grand{border-top:1px solid #dde1e6;padding-top:4px;font-weight:700}.pre{white-space:pre-line}@media print{@page{margin:14mm}body{background:#fff}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.drawer{border:0!important;width:auto!important;padding:0!important;position:static!important;overflow:visible!important}.drawer-backdrop{display:none!important}.print-area{border:0;width:100%;padding:0;position:absolute;inset:0 auto auto 0}.no-print{display:none!important}}.topbar nav{flex-wrap:nowrap;min-width:0;overflow-x:auto}.topbar nav .tab,.topbar h1,.topbar>strong{white-space:nowrap}.timer.running{border-color:var(--t-good-fg)}.timer .dot{background:#e5484d;border-radius:50%;width:10px;height:10px;animation:1.4s infinite pulse}.timer-clock{min-width:90px;font-size:20px}.timer .full{width:100%}@keyframes pulse{50%{opacity:.3}}.tabs-inline{flex-wrap:wrap;gap:6px;display:flex}ul.plain{gap:4px;margin:8px 0;padding:0;list-style:none;display:grid}.clamp-2{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.timeline{background:var(--bg);border-radius:6px;height:34px;position:relative;overflow:hidden}.tl-block{cursor:pointer;opacity:.9;border:0;min-width:2px;padding:0;position:absolute;top:0;bottom:0}.tl-block:disabled{cursor:default}.tl-block.sel{outline:2px solid var(--text);outline-offset:-2px;opacity:1}.tl-block.logged,.tl-key.logged{background:var(--t-good-fg)}.tl-block.suggested,.tl-key.suggested{background:var(--primary)}.tl-block.other,.tl-key.other{background:var(--muted);opacity:.45}.timeline-axis{height:18px;color:var(--muted);font-size:11px;position:relative}.timeline-axis span{white-space:nowrap;position:absolute;top:2px;transform:translate(-50%)}.timeline-axis span:first-child{transform:none}.tl-key{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.pairing-code{letter-spacing:3px;background:var(--sel);border-radius:8px;padding:4px 10px;font-size:22px;font-weight:700}.timeline-row{align-items:center;gap:8px;display:flex}.timeline-row+.timeline-row{margin-top:6px}.timeline-row .timeline,.timeline-row .timeline-axis{flex:1}.timeline-label{width:52px;color:var(--muted);text-align:right;flex:none;font-size:12px}.timeline.claude{height:22px}pre.code{background:var(--bg);border:1px solid var(--border);white-space:pre;border-radius:8px;margin:6px 0;padding:8px 10px;font-size:12px;overflow-x:auto}.token-box{background:var(--card);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:6px;flex:1;min-width:0;padding:4px 8px;font-size:12px}.preview-overlay{z-index:40;background:#0000008c;flex-direction:column;gap:8px;padding:16px;display:flex;position:fixed;inset:0}.preview-bar{background:var(--card);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.preview-body{background:var(--card);border-radius:10px;flex:1;min-height:0;display:flex;overflow:hidden}.preview-body iframe{background:#525659;border:0;flex:1;width:100%;height:100%}.preview-body .card{margin:16px}.preview-foot{background:var(--card);border-radius:8px;padding:6px 12px}@media (width<=640px){.preview-overlay{gap:0;padding:0}.preview-bar,.preview-body,.preview-foot{border-radius:0}}.invoice-doc{font-family:Helvetica,Arial,sans-serif;position:relative;overflow:hidden}.invoice-doc .inv-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.invoice-doc .inv-logo{max-width:220px;max-height:80px;display:block}.invoice-doc .inv-from{text-align:right;line-height:1.45}.invoice-doc .inv-label{color:#556e87}.invoice-doc .inv-meta{grid-template-columns:1.4fr 1fr 1.1fr 1.3fr;gap:16px;margin-bottom:22px;line-height:1.45;display:grid}.invoice-doc .inv-due{text-align:right}.invoice-doc .inv-amount{font-size:34px;line-height:1.15}.invoice-doc table.inv-lines{border-collapse:collapse;border-top:3px solid #556e87;width:100%}.invoice-doc table.inv-lines th{color:#556e87;text-transform:none;letter-spacing:0;border:0;padding:12px 0 14px;font-size:14px;font-weight:400}.invoice-doc table.inv-lines td{vertical-align:top;border-bottom:1px solid #dde1e6;padding:12px 0}.invoice-doc table.inv-lines td.num,.invoice-doc table.inv-lines th.num{white-space:nowrap;padding-left:16px}.invoice-doc .inv-item{font-size:15px}.invoice-doc .inv-detail{margin-top:2px;font-size:12.5px;line-height:1.45}.invoice-doc .inv-totals{flex-direction:column;align-self:flex-end;gap:8px;width:min(360px,100%);margin-top:8px;display:flex}.invoice-doc .inv-totals>div:not(.inv-rule){text-align:right;grid-template-columns:1fr 120px;display:grid}.invoice-doc .inv-rule{border-top:1px solid #dde1e6;margin:4px 0}.invoice-doc .inv-rule.double{border-top:3px double #c9ced6}.invoice-doc.watermark-draft:before,.invoice-doc.watermark-void:before{color:#d933331a;pointer-events:none;font:700 120px Helvetica,Arial,sans-serif;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)rotate(-36deg)}.invoice-doc.watermark-draft:before{content:"DRAFT"}.invoice-doc.watermark-void:before{content:"VOID"}@media (width<=640px){.invoice-doc .inv-meta{grid-template-columns:1fr 1fr}.invoice-doc .inv-amount{font-size:26px}.invoice-doc{padding:18px}}.draft-totals{flex-direction:column;gap:6px;width:min(340px,100%);display:flex}.draft-totals>div:not(.rule){text-align:right;grid-template-columns:1fr 130px;gap:12px;display:grid}.draft-totals .rule{border-top:1px solid var(--border);margin:2px 0}.draft-totals .rule.double{border-top:3px double var(--border)}.draft-totals .due span{color:var(--muted)}
