:root{--bg:#f6f6f3;--surface:#ffffff;--surface-2:#edede8;--text:#111519;--text-2:#3a4148;--muted:#6b737b;--border:#d9dad4;--border-strong:#c7c9c2;--accent:#e4501f;--accent-ink:#ffffff;--accent-soft:#fce8df;--link:#b83a0f;--ok:#1e8a5a;--ok-soft:#e2f1e9;--danger:#b42318;--danger-soft:#fbe6e3;--info:#3d4f80;--info-soft:#eceff6;--warn:#8a5a12;--warn-soft:#fbf0dc;--radius:6px;--shadow:0 1px 0 rgba(17,21,25,0.04),0 8px 24px -12px rgba(17,21,25,0.18);--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,"SF Mono","Cascadia Code","JetBrains Mono",Menlo,Consolas,monospace;--sidebar:#17201b;--sidebar-ink:#c9d3cc;--sidebar-active:#ffffff;color-scheme:light}@media (prefers-color-scheme:dark){:root{--sidebar:#0b0f0d}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--text);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent);color:#fff}h1{font-size:1.65rem;margin:0;font-weight:750;letter-spacing:-.03em;line-height:1.2}h2{font-size:1.05rem;margin:0 0 .75rem;font-weight:700;letter-spacing:-.015em}.contact-head,.crumbs,.diff-tag,.kicker,.margin-panel .tag,.pq-label,.qline-head,.section-title,th{font-family:var(--mono);font-weight:600;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}p{margin:0 0 .5rem}.muted{color:var(--muted)}.small{font-size:.85rem}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}@media (min-width:801px){.sidebar>*{flex-shrink:0}}.brand{display:block;padding:6px 10px 20px;line-height:0}.brand img{display:block;width:100%;max-width:180px;height:auto}.brand:hover{text-decoration:none;opacity:.9}.nav-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:14px 10px 4px;opacity:.6}.nav a{display:block;color:var(--sidebar-ink);padding:7px 10px;border-radius:6px}.nav a:hover{background:rgba(255,255,255,.06);text-decoration:none;color:var(--sidebar-active)}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:12px 10px 0;font-size:.85rem}.sidebar-foot .who{color:var(--sidebar-active)}.sidebar-foot button{background:none;border:0;color:var(--sidebar-ink);padding:0;cursor:pointer;font:inherit;text-decoration:underline}.main{padding:28px 36px 60px;width:100%;min-width:0}@media (max-width:800px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;overflow:visible;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px 16px}.brand{padding:4px 10px}.brand img{width:auto;height:30px}.nav-label,.sidebar-foot .who{display:none}.nav{display:flex;flex-wrap:wrap}.sidebar-foot{margin:0 0 0 auto;border:0;padding:0}.main{padding:20px 16px 48px}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head .sub{color:var(--muted);margin-top:2px}.crumbs{margin-bottom:8px}.crumbs,.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card+.card{margin-top:16px}.cols{display:grid;grid-template-columns:minmax(0,1fr) 460px;grid-gap:16px;gap:16px;align-items:start}@media (max-width:1240px){.cols{grid-template-columns:1fr}}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-auto-rows:1fr;grid-gap:12px;gap:12px;margin-bottom:16px}.stat{height:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.stat .n{font-family:var(--mono);font-size:1.55rem;font-weight:700;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .l{color:var(--muted);font-size:.85rem}dl.details{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-gap:6px 16px;gap:6px 16px;margin:0}dl.details dt{color:var(--muted)}dl.details dd{margin:0;overflow-wrap:break-word}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);background:var(--surface-2)}tr:last-child td{border-bottom:0}td.actions{text-align:right;white-space:nowrap}.empty{padding:28px;text-align:center}.badge,.empty{color:var(--muted)}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--surface-2)}.badge-lead{background:var(--info-soft);color:var(--info)}.badge-prospect{background:var(--warn-soft);color:var(--warn)}.badge-customer{background:var(--ok-soft);color:var(--ok)}.badge-archived,.badge-inactive{background:var(--surface-2);color:var(--muted)}.badge-owner{background:#f3e8f7;color:#6b2f86}.badge-admin{background:var(--info-soft);color:var(--info)}.badge-primary{background:var(--accent-soft);color:var(--link)}.fieldset{border:0;padding:0;margin:0 0 22px}.fieldset legend{font-weight:600;margin-bottom:10px;padding:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px 16px;gap:12px 16px}@media (max-width:640px){.grid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:4px}.field-wide{grid-column:1/-1}.field-label{font-size:.85rem;font-weight:550}.field-hint{font-size:.8rem;color:var(--muted)}.req{color:var(--danger)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:5px;padding:8px 10px;width:100%}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--accent) 22%,transparent);outline-offset:0;border-color:var(--accent)}.check{display:flex;gap:8px;align-items:center}.check input{width:auto}.form-actions{display:flex;gap:8px;margin-top:8px}.inline-form{display:inline-flex;gap:6px;align-items:center;margin:0}.inline-form input,.inline-form select{width:auto;padding:5px 8px}.search{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.search input{max-width:340px}.search select{width:auto}.btn{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-weight:600;font-size:.9rem;border-radius:6px;padding:8px 15px;cursor:pointer;border:1px solid transparent;line-height:1.3;white-space:nowrap}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--text);border-color:var(--text);color:var(--bg);text-decoration:none}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{border-color:var(--text);color:var(--text);text-decoration:none}.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--border-strong)}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{padding:4px 10px;font-size:.82rem}a.btn:hover{text-decoration:none}.alert{border-radius:6px;padding:10px 12px;margin-bottom:14px}.alert p:last-child{margin:0}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-ok{background:var(--ok-soft);color:var(--text);border-left:3px solid var(--ok)}.copy-link{display:flex;gap:8px;margin-top:8px}.copy-link input{font-family:var(--mono);font-size:.82rem}.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.auth .card{width:100%;max-width:420px}.auth-mark{display:block;width:48px;height:48px;margin-bottom:14px}.auth h1{margin-bottom:4px}.auth .lead{color:var(--muted);margin-bottom:18px}.stack{display:flex;flex-direction:column;gap:12px}.stack .btn{width:100%;padding:9px 14px}details.inline summary{cursor:pointer;color:var(--link);font-size:.85rem}details.inline[open]{margin-top:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.compose{background:var(--surface-2);border-radius:var(--radius);padding:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px}.compose textarea{resize:vertical;min-height:64px}.compose .alert{margin-bottom:0}.compose-types{display:flex;gap:6px;flex-wrap:wrap}.chip{position:relative}.chip input{position:absolute;opacity:0;inset:0;width:100%;cursor:pointer;margin:0}.chip span{display:inline-block;padding:4px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:.85rem;font-weight:550}.chip input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.compose-row{display:grid;grid-template-columns:1fr 1fr auto;grid-gap:10px;gap:10px;align-items:end}@media (max-width:640px){.compose-row{grid-template-columns:1fr}}.compose-submit{display:flex;gap:8px}.timeline-filter{display:flex;gap:14px;margin-bottom:8px}.timeline-filter a{color:var(--muted);padding-bottom:2px}.timeline-filter a.active{color:var(--text);font-weight:600;border-bottom:2px solid var(--accent);text-decoration:none}.timeline{list-style:none;margin:0;padding:0}.tl-item{position:relative;display:grid;grid-template-columns:22px 1fr;padding:10px 0}.tl-item+.tl-item{border-top:1px solid var(--border)}.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);margin-top:6px}.tl-system .tl-dot{background:var(--border);width:8px;height:8px;margin:6px 1px 0}.tl-system .tl-body{color:var(--muted);font-size:.88rem}.tl-head,.tl-system .tl-body{display:flex;flex-wrap:wrap;gap:4px 10px}.tl-head{align-items:center}.tl-meta{color:var(--muted);font-size:.82rem;margin-left:auto}.tl-system .tl-meta{margin-left:0}.tl-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0}.tl-actions{display:flex;gap:12px;margin-top:4px;font-size:.82rem}.tl-actions form{margin:0}.btn-link{background:none;border:0;padding:0;color:var(--danger);font:inherit;font-size:inherit;cursor:pointer}.btn-link:hover{text-decoration:underline}.badge-act-note{background:var(--surface-2);color:var(--text)}.badge-act-call{background:#e6f0f8;color:#245a85}.badge-act-email{background:#f1ebf7;color:#5d3a86}.badge-act-meeting{background:var(--warn-soft);color:var(--warn)}.tl-call .tl-dot{background:#3c7fb5}.tl-email .tl-dot{background:#7d55ad}.tl-meeting .tl-dot{background:#c48a2c}.feed{list-style:none;margin:0;padding:0}.feed li{display:grid;grid-template-columns:auto 1fr auto;grid-gap:4px 12px;gap:4px 12px;padding:10px 0;align-items:baseline}.feed li+li{border-top:1px solid var(--border)}.feed .feed-text{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:640px){.feed li{grid-template-columns:1fr}.feed .feed-text{white-space:normal}}.sidebar-foot .version{margin-top:8px;font-size:.75rem;opacity:.5}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.card-head h2,.tasks{margin:0}.tasks{list-style:none;padding:0}.task{display:grid;grid-template-columns:28px minmax(0,1fr);grid-gap:10px;gap:10px;padding:9px 0;align-items:start}.task+.task{border-top:1px solid var(--border)}.task-check-form{margin:0}.task-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;color:var(--accent-ink);font-size:13px;font-weight:700;line-height:1;margin-top:1px}.task-check.checked,.task-check:hover{border-color:var(--ok)}.task-check.checked{background:var(--ok);color:#fff}.task-check.disabled{cursor:default;opacity:.5}.task-title{overflow-wrap:break-word}.task-title a{color:var(--text)}.task-done .task-title,.task-done .task-title a{text-decoration:line-through;color:var(--muted)}.task-meta{display:flex;flex-wrap:wrap;gap:2px 12px;color:var(--muted);margin-top:2px}.due-overdue{color:var(--danger);font-weight:600}.due-today{color:var(--warn);font-weight:600}.done-list{margin-top:10px}.done-list[open] summary{margin-bottom:4px}.quick-task{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px auto;grid-gap:8px;gap:8px;margin-bottom:12px;align-items:start}.quick-task .alert{grid-column:1/-1;margin:0}@media (max-width:720px){.quick-task{grid-template-columns:1fr 1fr}.quick-task .quick-title{grid-column:1/-1}}.tabs{display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-wrap:wrap}.tabs>a{color:var(--muted);padding:8px 0;margin-bottom:-1px;border-bottom:2px solid transparent;font-weight:550}.tabs>a:hover{color:var(--text);text-decoration:none}.tabs>a.active{color:var(--text);border-bottom-color:var(--accent)}.tabs-filter{margin:0 0 0 auto;display:flex;gap:6px;align-items:center;padding:4px 0}.tabs-filter select{width:auto;padding:5px 8px}.nav-with-badge{display:flex!important;align-items:center;justify-content:space-between}.nav-badge{background:#d9534f;color:#fff;border-radius:999px;font-size:.72rem;font-weight:700;min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center}@media (max-width:800px){.nav-with-badge{gap:6px}}.section-title{margin:30px 0 14px;padding-top:12px;border-top:1px solid var(--text);color:var(--text)}.stat-link{display:block;height:100%;color:inherit}.stat-link,.stat-link:hover{text-decoration:none}.stat-link:hover .stat{border-color:var(--accent)}.stat-danger .n{color:var(--danger)}.stat-warn .n{color:var(--warn)}.cols+.cols,.cols>.card+.card,.stats+.cols{margin-top:0}.plain-list{list-style:none;margin:0;padding:0}.plain-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:12px;gap:12px;align-items:baseline;padding:8px 0}.plain-list li+li{border-top:1px solid var(--border)}.cols.cols-even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width:1000px){.cols.cols-even{grid-template-columns:1fr}}.cols+.card,.cols+form.card{margin-top:16px}.stack-tight{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.stack-tight .alert{margin-bottom:4px}code.block{display:block;margin:8px 0;padding:8px 10px;background:var(--surface-2);border-radius:6px;font-family:var(--mono);font-size:.82rem;color:var(--text)}.card{container-type:inline-size}.contact-list{display:flex;flex-direction:column}.contact-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(0,1.6fr) minmax(0,1fr) auto;grid-template-areas:"name email phone actions";grid-gap:4px 16px;gap:4px 16px;padding:10px 14px;border-bottom:1px solid var(--border);align-items:start}.contact-row:last-child{border-bottom:0}.contact-head{background:var(--surface-2);color:var(--muted);padding-top:8px;padding-bottom:8px}.c-name{grid-area:name;min-width:0}.c-email{grid-area:email;min-width:0;overflow-wrap:break-word}.c-phone{grid-area:phone;min-width:0}.c-actions{grid-area:actions;display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap}.c-actions form{margin:0}@container (max-width: 760px){.contact-head{display:none}.contact-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name actions" "email email" "phone phone";padding:12px 0}.c-phone div{display:inline;margin-right:12px}}@container (max-width: 720px){.quick-task{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.quick-task .quick-title{grid-column:1/-1}}@container (max-width: 560px){.compose-row{grid-template-columns:1fr}}td.num,th.num{text-align:right;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row-muted td{opacity:.6}.logo-preview{background:#fff;border:1px solid var(--border);border-radius:6px;padding:12px;display:inline-block;margin:6px 0 12px}.logo-preview img{max-height:80px;max-width:320px;display:block}.logo-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.logo-form input[type=file]{width:auto;max-width:100%}.logo-form .alert{flex-basis:100%}.nav-group{margin-top:10px}.nav-group-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;background:none;border:0;cursor:pointer;font:inherit;color:var(--sidebar-ink);padding:7px 10px;border-radius:6px;text-align:left}.nav-group-toggle:hover{background:rgba(255,255,255,.06);color:var(--sidebar-active)}.nav-caret{font-size:.8rem;opacity:.7;transition:transform .15s;transform:rotate(-90deg)}.nav-group.open .nav-caret{transform:rotate(0deg)}.nav-group-items{display:flex;flex-direction:column;padding-left:10px;margin-left:10px;border-left:1px solid rgba(255,255,255,.1)}.nav a.active{color:var(--sidebar-active);background:rgba(255,255,255,.08)}@media (max-width:800px){.nav{position:relative}.nav-group{margin-top:0;position:static}.nav-group-toggle{width:auto;gap:6px}.nav-group-items{position:absolute;z-index:20;top:100%;right:0;left:auto;min-width:170px;background:var(--sidebar);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px;margin:4px 0 0;box-shadow:0 8px 24px rgba(0,0,0,.35)}}.badge-q-draft{background:var(--surface-2);color:var(--muted)}.badge-q-sent{background:var(--info-soft);color:var(--info)}.badge-q-accepted{background:var(--ok-soft);color:var(--ok)}.badge-q-declined{background:var(--danger-soft);color:var(--danger)}.badge-q-expired{background:var(--warn-soft);color:var(--warn)}.badge-q-superseded{background:var(--surface-2);color:var(--muted);text-decoration:line-through}h1 .badge{vertical-align:middle;font-size:.75rem;margin-left:6px}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.qlines{display:flex;flex-direction:column}.qline{display:grid;grid-gap:8px;gap:8px;align-items:start;padding:8px 0;border-bottom:1px solid var(--border);grid-template-columns:var(--ql-cols,minmax(0,1fr) 70px 80px 100px 78px 100px 84px);grid-template-areas:var(--ql-areas,"desc qty unit price vat amount tools")}.qline-head{color:var(--muted);padding-top:0}.ql-desc,.qline-head span:first-child{grid-area:desc}.ql-qty{grid-area:qty}.ql-unit{grid-area:unit}.ql-price{grid-area:price}.ql-disc{grid-area:disc}.ql-cost{grid-area:cost}.ql-vat{grid-area:vat}.ql-amount{grid-area:amount;padding-top:8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ql-tools{grid-area:tools;display:flex;gap:2px;justify-content:flex-end;padding-top:2px}.qline textarea{resize:vertical;min-height:38px}.qline input,.qline select,.qline textarea{padding:7px 8px}.ql-label{display:none;font-size:.75rem;color:var(--muted);margin-bottom:2px}.qline input.invalid{border-color:var(--danger);outline-color:var(--danger)}.icon-btn{width:26px;height:30px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:5px;cursor:pointer;font-size:.9rem;line-height:1;padding:0}.icon-btn:hover:not(:disabled){background:var(--surface-2)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.danger{color:var(--danger)}.qline-add{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.qline-add select{width:auto;max-width:100%;min-width:240px;flex:0 1 auto}@container (max-width: 760px){.qline-head{display:none}.qline{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:var(--ql-areas-narrow,"desc desc desc" "qty unit price" "vat amount amount" "tools tools tools");padding:12px 0}.ql-label{display:block}.ql-amount{padding-top:22px;text-align:right;font-weight:600}.ql-tools{justify-content:flex-start}}.qtotals{margin:16px 0 0 auto;max-width:360px;display:flex;flex-direction:column;gap:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.qtotals>div{display:flex;justify-content:space-between;gap:16px}.qtotals>div>span:first-child{color:var(--muted)}.qtotals .qtotal{border-top:2px solid var(--text);margin-top:4px;padding-top:6px;font-weight:700;font-size:1.1rem}.qtotals .qtotal>span:first-child{color:var(--text)}.qtotals .qdisc>span:last-child{color:var(--ok)}.ql-cost input{background:var(--surface-2)}.qadjust{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:16px;gap:16px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.qadjust fieldset{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:8px}.qadjust legend{font-weight:600;margin-bottom:6px;padding:0}.qadjust .row-fields{display:flex;gap:8px;flex-wrap:wrap}.qadjust .row-fields>*{flex:1 1 110px;min-width:0}.margin-panel{margin-top:14px;padding:10px 12px;border-radius:8px;background:var(--surface-2);border:1px dashed var(--border);font-size:.9rem;display:flex;gap:18px;flex-wrap:wrap;align-items:baseline}.margin-panel strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.margin-panel .tag{color:var(--muted)}.margin-low{color:var(--danger)}.revision-note{border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text);padding:8px 12px;border-radius:0 6px 6px 0;margin-bottom:14px}.editor-bar{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;margin-top:16px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;gap:12px;flex-wrap:wrap;box-shadow:var(--shadow)}.editor-bar .alert{margin:0;padding:6px 10px}.editor-bar-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.saved-note{color:var(--ok);font-weight:600;font-size:.9rem}.btn.is-disabled{opacity:.5;cursor:not-allowed}.quote-editor .card+.card{margin-top:16px}.qhistory{list-style:none;margin:0;padding:0;font-size:.88rem}.qhistory li{padding:6px 0 6px 16px;border-left:2px solid var(--border);position:relative}.qhistory li:before{content:"";position:absolute;left:-5px;top:11px;width:8px;height:8px;border-radius:50%;background:var(--border)}.qhistory li.ok:before{background:var(--ok)}.qhistory li.bad:before{background:var(--danger)}tfoot td{border-top:2px solid var(--border);border-bottom:0}.tabs-filter input[type=search]{width:240px;padding:5px 9px}.pq{min-height:100vh;padding:32px 16px 60px;background:var(--bg)}.pq-sheet{max-width:860px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:32px;container-type:inline-size;box-shadow:var(--shadow)}.pq-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px;flex-wrap:wrap}.pq-logo{max-height:70px;max-width:260px;display:block;background:#fff;border-radius:4px}.pq-biz{font-size:1.4rem;font-weight:750;letter-spacing:-.02em;color:var(--text)}.pq-meta{text-align:right;font-size:.9rem}.pq-meta span{color:var(--muted);margin-right:6px}.pq-doc{font-family:var(--mono);font-size:1.15rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.pq-parties{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;margin:10px 0 22px;font-size:.92rem}.pq-label{color:var(--muted);margin-bottom:4px}.pq-title{font-size:1.35rem;font-weight:750;letter-spacing:-.025em;margin:0 0 8px}.pq-respond{margin-top:26px;border:2px solid var(--accent);border-radius:8px;padding:18px}.pq-tabs{display:flex;gap:6px;margin-bottom:14px}.pq-tabs button{font:inherit;font-weight:600;padding:7px 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.pq-tabs button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pq-respond .stack .btn{width:auto;align-self:flex-start;padding:9px 22px}.pq-done{margin-top:26px;border-radius:8px;padding:18px;background:var(--surface-2)}.pq-done.pq-ok{background:var(--ok-soft);border-left:3px solid var(--ok)}.pq-done h2{margin-bottom:4px}.pq-terms{margin-top:26px;font-size:.88rem;color:var(--muted)}.pq-terms h2{color:var(--text);font-size:.95rem}.pq-foot{margin-top:26px;padding-top:16px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}@container (max-width: 560px){.pq-parties{grid-template-columns:1fr}.pq-meta{text-align:left}}@media (max-width:600px){.pq-sheet{padding:20px 16px}}.qline .num,.qline-head .num{text-align:right}.link-btn{background:none;border:0;padding:0;color:var(--link);font:inherit;cursor:pointer;text-decoration:underline}.qversions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.qversions li{display:grid;grid-template-columns:auto 1fr auto;grid-gap:4px 10px;gap:4px 10px;padding:8px 0;border-bottom:1px solid var(--border);align-items:baseline}.qversions li:last-child{border-bottom:0}.qversions li.current{font-weight:600}.qversions .qv-note{font-size:.85rem}.qversions .qv-meta,.qversions .qv-note{grid-column:1/-1;font-weight:400;color:var(--muted)}.qversions .qv-meta{font-size:.8rem}.diff-added td{background:var(--ok-soft)}.diff-removed td{background:var(--danger-soft);text-decoration:line-through;-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger)}.diff-changed td.changed{background:var(--accent-soft);font-weight:600}.diff-tag{font-size:.66rem}.badge-j-in_progress{background:var(--warn-soft);color:var(--warn)}.badge-j-cancelled{text-decoration:line-through}.badge-i-draft,.badge-j-cancelled{background:var(--surface-2);color:var(--muted)}.badge-i-unpaid{background:var(--info-soft);color:var(--info)}.badge-i-part_paid{background:var(--warn-soft);color:var(--warn)}.badge-i-overdue{background:var(--danger-soft);color:var(--danger)}.badge-i-paid{background:var(--ok-soft);color:var(--ok)}.badge-i-credited{background:var(--surface-2);color:var(--muted)}.badge-i-in_credit{background:var(--warn-soft);color:var(--warn)}.status-steps{display:flex;gap:6px;flex-wrap:wrap}.status-steps form{margin:0}.status-steps .btn.current{background:var(--text);color:var(--bg);border-color:var(--text);cursor:default}.balance-box{display:flex;flex-direction:column;gap:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.balance-box>div{display:flex;justify-content:space-between;gap:12px}.balance-box .balance-due{border-top:2px solid var(--text);margin-top:4px;padding-top:6px;font-weight:700;font-size:1.1rem}.pay-list{list-style:none;margin:0;padding:0}.pay-list li{display:grid;grid-template-columns:1fr auto;grid-gap:2px 10px;gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--border)}.pay-list li:last-child{border-bottom:0}.pay-list .meta{grid-column:1/-1}.draft-stamp,.pay-list .meta{font-size:.8rem;color:var(--muted)}.draft-stamp{display:inline-block;border:2px solid var(--muted);padding:1px 8px;border-radius:4px;font-weight:700;letter-spacing:.1em}.bank-box{background:var(--surface-2);border-radius:var(--radius);padding:12px 14px}.bank-box dl{display:grid;grid-template-columns:auto 1fr;grid-gap:2px 12px;gap:2px 12px;margin:6px 0 0}.bank-box dt{color:var(--muted)}.bank-box dd{margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.deposit-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.deposit-form .field{flex:1 1 120px;min-width:0;margin:0}.deposit-form .alert{flex-basis:100%}.alert-info{background:var(--surface-2)}.enquiry-snippet{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;max-width:46ch}.enquiry-message{white-space:pre-wrap;border-left:3px solid var(--border);padding-left:12px;margin:6px 0 0}.source-note{display:inline-block;font-size:.8rem;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:2px 10px;margin-top:6px}.internal-notes{white-space:pre-wrap;font-size:.9rem}.code-sample,.internal-notes{background:var(--surface-2);border-radius:var(--radius);padding:10px 12px}.code-sample{font-size:.78rem;overflow-x:auto;white-space:pre;max-height:420px}.terms-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:12px 16px;gap:12px 16px;align-items:start}.terms-fields>[hidden]{display:none!important}@media (max-width:640px){.terms-fields{grid-template-columns:1fr}}.terms-line{margin-top:14px;padding:10px 12px;border-radius:var(--radius);background:var(--surface-2);font-size:.9rem}.badge-i-proforma{background:var(--accent-soft);color:var(--link)}.task-meta a,td a:not(.btn){color:var(--text)}.task-meta a:hover,td a:not(.btn):hover{color:var(--accent)}.plain-list a strong,td:first-child a:not(.btn){color:var(--link)}.page-head .sub,.page-head h1+.sub,.task-meta a{color:var(--muted)}.badge-project{font-family:var(--mono);font-size:.7rem;background:var(--surface-2);color:var(--text-2);text-decoration:none}a.badge-project:hover{color:var(--accent);text-decoration:none}.project-links{display:flex;flex-direction:column;gap:2px}.badge-j-not_started,.badge-j-scheduled{background:var(--surface-2);color:var(--muted)}.badge-j-waiting{background:var(--warn-soft);color:var(--warn)}.badge-j-on_hold{background:var(--surface-2);color:var(--text-2)}.badge-j-handed_over{background:var(--ok-soft);color:var(--ok)}.scope{margin:4px 0 12px}.scope p{margin:4px 0 0}.timer-bar{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:-12px 0 12px;min-height:32px;flex-wrap:wrap}.timer-bar.is-running{justify-content:flex-start;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);padding:6px 10px 6px 12px;margin:-12px 0 16px;box-shadow:var(--shadow)}.timer-bar form{margin:0}.timer-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent);animation:timer-pulse 1.6s ease-in-out infinite}@keyframes timer-pulse{50%{opacity:.35}}.timer-clock{font-family:var(--mono);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:1.05rem;letter-spacing:-.02em}.timer-label{flex:1 1 200px;min-width:0;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timer-start{margin:-4px 0 16px}.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(17,21,25,.45);display:grid;place-items:center;padding:16px}.modal{width:100%;max-width:520px;box-shadow:0 24px 60px -20px rgba(0,0,0,.5)}.time-list{list-style:none;margin:0;padding:0}.time-list>li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:2px 12px;gap:2px 12px;padding:9px 0;border-top:1px solid var(--border)}.time-list>li:first-child{border-top:0}.time-list .t-mins{font-family:var(--mono);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.time-list .t-notes{overflow-wrap:anywhere;min-width:0}.time-list .t-meta{grid-column:1/-1;font-size:.8rem;color:var(--muted);display:flex;gap:4px 10px;flex-wrap:wrap;align-items:center}.time-day{margin:18px 0 4px;display:flex;justify-content:space-between;align-items:baseline}.time-day:first-child{margin-top:0}.badge-billed{background:var(--ok-soft);color:var(--ok)}.badge-unbilled{background:var(--accent-soft);color:var(--link)}.badge-free{background:var(--surface-2);color:var(--muted)}.badge-plan{background:var(--info-soft);color:var(--info)}.usage{min-width:140px}.usage-text{display:flex;justify-content:space-between;gap:8px;font-size:.9rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.usage-bar{height:6px;border-radius:999px;background:var(--surface-2);margin-top:4px;overflow:hidden}.usage-bar>span{display:block;height:100%;background:var(--ok);border-radius:999px}.usage-near .usage-bar>span{background:var(--warn)}.usage-over .usage-bar>span{background:var(--danger)}.usage-overby{color:var(--danger);font-weight:600}.plan-list{list-style:none;margin:0;padding:0;gap:12px}.plan-list,.plan-list>li{display:flex;flex-direction:column}.plan-list>li{border:1px solid var(--border);border-radius:8px;padding:10px 12px;gap:6px}.plan-list .plan-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}.badge-plan-active{background:var(--ok-soft);color:var(--ok)}.badge-plan-paused{background:var(--warn-soft);color:var(--warn)}.badge-plan-cancelled{background:var(--surface-2);color:var(--muted)}.plan-lines{width:100%}.plan-lines td{vertical-align:middle}.plan-lines input[type=text]{width:90px}.pay-box{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px;padding:14px 16px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-soft)}ol.steps{padding-left:20px;display:flex;flex-direction:column;gap:10px;margin:0}ol.steps .copy-link,ol.steps code{word-break:break-all}#direct-debit form{margin-top:10px}.badge-sr-new{background:var(--accent-soft);color:var(--link)}.badge-sr-in_progress{background:var(--info-soft);color:var(--info)}.badge-sr-waiting{background:var(--warn-soft);color:var(--warn)}.badge-sr-resolved{background:var(--ok-soft);color:var(--ok)}.badge-pri-urgent{background:var(--danger-soft);color:var(--danger)}.badge-pri-low{background:var(--surface-2);color:var(--muted)}.sr-thread{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.sr-msg{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface)}.sr-msg-customer{border-left:3px solid var(--accent)}.sr-msg-staff{background:var(--surface-2)}.sr-msg-note{background:var(--warn-soft);border-style:dashed}.sr-msg-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-bottom:6px}.sr-msg-body{white-space:pre-wrap;overflow-wrap:anywhere}.sr-kinds{display:flex;gap:6px;flex-wrap:wrap}.sr-kinds label{border:1px solid var(--border);border-radius:999px;padding:4px 12px;cursor:pointer;font-size:.9rem}.sr-kinds input{position:absolute;opacity:0;pointer-events:none}.sr-kinds label:has(input:checked){background:var(--text);color:var(--surface);border-color:var(--text)}@media (min-width:801px) and (max-height:860px){.sidebar{padding-top:14px}.brand{padding-bottom:12px}.nav a,.nav-group-toggle{padding-top:5px;padding-bottom:5px}}.portal{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.portal-bar{background:var(--surface);border-bottom:1px solid var(--border)}.portal-bar-in{max-width:1040px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.portal-bar>.portal-bar-in{padding-top:14px;padding-bottom:10px}.portal-brand{display:flex;align-items:center;color:var(--text);font-weight:750;font-size:1.15rem;letter-spacing:-.02em}.portal-brand:hover{text-decoration:none}.portal-brand img{max-height:40px;max-width:200px;display:block;background:#fff;border-radius:4px}.portal-who{display:flex;align-items:center;gap:12px;font-size:.9rem;flex-wrap:wrap}.portal-nav .portal-bar-in{justify-content:flex-start;gap:22px;overflow-x:auto;flex-wrap:nowrap}.portal-nav a{color:var(--muted);padding:9px 0;border-bottom:2px solid transparent;font-weight:550;white-space:nowrap}.portal-nav a:hover{color:var(--text);text-decoration:none}.portal-nav a.active{color:var(--text);border-bottom-color:var(--accent)}.portal-main{flex:1 1;width:100%;max-width:1040px;margin:0 auto;padding:26px 20px 48px}.portal-foot{text-align:center;padding:18px 20px 26px}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:start}.portal-grid>.card+.card{margin-top:0}.portal-list{list-style:none;margin:0;padding:0}.portal-list li{padding:9px 0;border-top:1px solid var(--border)}.portal-list li:first-child{border-top:0;padding-top:0}.portal-figure{font-size:1.5rem;font-weight:750;letter-spacing:-.02em;margin:0 0 10px}.portal-form{max-width:720px}.portal-thread{max-width:820px}.portal-auth .card{max-width:460px}.portal-auth-logo{max-height:56px;max-width:220px;display:block;margin-bottom:16px;background:#fff;border-radius:4px}.portal-help{margin-top:22px;padding-top:16px;border-top:1px solid var(--border)}.portal-help summary{cursor:pointer;font-weight:600;margin-bottom:8px}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}@media (max-width:800px){.portal-grid{grid-template-columns:1fr}.portal-bar-in{padding-left:16px;padding-right:16px}.portal-main{padding:20px 16px 40px}}.portal-projects{list-style:none;margin:0;padding:0}.portal-projects>li+li{margin-top:16px}.portal-latest{margin:4px 0 10px}.portal-section{margin:28px 0 12px;font-size:1.05rem}.rbars{margin:4px 0 0}.rbars-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem;margin-bottom:10px;color:var(--text-2)}.rbars-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.rbars-plot{display:flex;align-items:stretch;gap:4px;height:220px}.rbars-month{position:relative;flex:1 1;min-width:0;display:flex;flex-direction:column;outline:none;border-radius:4px}.rbars-month:focus-visible,.rbars-month:hover{background:var(--surface-2)}.rbars-pair{flex:1 1;display:flex;align-items:flex-end;justify-content:center;gap:2px;border-bottom:1px solid var(--border-strong)}.rbars-pair span{width:40%;max-width:18px;border-radius:4px 4px 0 0}.rbars-label{height:22px;line-height:22px;text-align:center;font-size:.72rem;color:var(--muted);overflow:hidden}.rbars-tip{display:none;position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:.82rem;white-space:nowrap;box-shadow:var(--shadow);pointer-events:none}.rbars-month.tip-left .rbars-tip{left:0;transform:none}.rbars-month.tip-right .rbars-tip{left:auto;right:0;transform:none}.rbars-month:focus-visible .rbars-tip,.rbars-month:hover .rbars-tip{display:block}.pq-tob{margin-top:28px;border-top:1px solid var(--border);padding-top:14px}.pq-tob>summary{display:flex;align-items:baseline;gap:10px;cursor:pointer;list-style:none}.pq-tob>summary::-webkit-details-marker{display:none}.pq-tob>summary h2{margin:0}.pq-tob[open]>summary .muted{display:none}.terms-doc{font-size:.9rem;color:var(--text-2);margin-top:10px}.terms-doc h2{font-size:1.2rem;margin:0 0 10px;color:var(--text)}.terms-doc h3{font-size:.98rem;margin:18px 0 6px;color:var(--text)}.terms-doc p{margin:0 0 8px}.terms-list{margin:0 0 10px}.terms-item{display:grid;grid-template-columns:22px 1fr;grid-gap:2px;gap:2px;margin:0 0 5px}.terms-sub{margin-left:22px}.terms-marker{color:var(--muted)}.terms-table{width:100%;border-collapse:collapse;margin:6px 0 12px;font-size:.88rem}.terms-table td,.terms-table th{text-align:left;vertical-align:top;padding:6px 8px;border-bottom:1px solid var(--border)}.terms-table th{width:30%;color:var(--text)}.terms-head th{background:var(--surface-2);color:var(--muted)}.mono-text{font-family:var(--mono);font-size:.85rem;line-height:1.5}.n49-link-list{list-style:none;margin:0;padding:0}.n49-link-list>li{display:grid;grid-gap:8px;gap:8px;padding:12px 0;border-top:1px solid var(--border)}.n49-link-list>li:first-child{border-top:0;padding-top:4px}.n49-link-form{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.n49-link-form select{flex:1 1 200px;min-width:0}.mail-log-to,.n49-setup code{overflow-wrap:anywhere}.nowrap{white-space:nowrap}table.checks{width:100%;border-collapse:collapse}table.checks td,table.checks th{padding:9px 8px;border-top:1px solid var(--border);vertical-align:top;text-align:left}table.checks tr:first-child td,table.checks tr:first-child th{border-top:0}.checks-group th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:16px!important}.checks-status{width:64px}.checks-name{width:220px;font-weight:600}.checks-detail{color:var(--muted)}.checks-detail,.mono{overflow-wrap:anywhere}.mono{font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace)}@media (max-width:640px){table.checks tr:not(.checks-group){display:grid;grid-template-columns:64px 1fr}table.checks td.checks-detail{grid-column:2;border-top:0;padding-top:0}.checks-name{width:auto}}.hr-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.hr-days{border:0;padding:0;margin:0}.hr-decide{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.hr-decide input{flex:1 1 200px;min-width:0}.hr-pending>li{display:block}.cal-wrap{overflow-x:auto}table.cal{border-collapse:separate;border-spacing:2px;width:auto;min-width:100%}table.cal td,table.cal th{padding:0;border:0;text-align:center;font-size:11px;font-weight:500;color:var(--muted);background:none}table.cal thead th{padding:2px 0 4px;min-width:22px}table.cal .cal-dow{font-size:9px;opacity:.7}table.cal .cal-name{text-align:left;padding-right:10px;white-space:nowrap;font-size:13px;color:var(--text);font-weight:600;position:-webkit-sticky;position:sticky;left:0;background:var(--surface);z-index:1;font-family:inherit}table.cal .cal-name,table.cal thead th{text-transform:none;letter-spacing:normal}table.cal td{height:22px;min-width:22px;border-radius:4px;background:var(--bg,#f6f6f3)}table.cal th.cal-today{color:var(--accent);font-weight:700}.cal-off{background:var(--accent)!important}.cal-off.cal-half{background:linear-gradient(135deg,var(--accent) 50%,transparent 50%)!important}.cal-pending{background:repeating-linear-gradient(45deg,var(--accent) 0 3px,transparent 3px 6px)!important;opacity:.8}.cal-bank{background:repeating-linear-gradient(90deg,var(--info,#2a6fb0) 0 2px,transparent 2px 5px)!important;opacity:.45}.cal-nonwork{background:transparent!important;outline:1px dashed var(--border);outline-offset:-1px}.cal-key{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}.cal-key i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px}.cal-absent{background:var(--warn,#b7791f)!important;opacity:.75}.hr-absences>li{display:block}.notes-md>:first-child{margin-top:0}.notes-md>:last-child{margin-bottom:0}.notes-md ol,.notes-md p,.notes-md ul{margin:0 0 .55em}.notes-md ol,.notes-md ul{padding-left:1.3em}.notes-md li{margin:.1em 0}.notes-md h3,.notes-md h4,.notes-md h5{margin:.6em 0 .3em;font-size:1em;font-weight:700}.notes-md h3{font-size:1.05em}.notes-md code{font-family:var(--mono);font-size:.9em;background:var(--surface-2);padding:0 .25em;border-radius:3px;overflow-wrap:anywhere}.notes-field{display:grid;grid-gap:6px;gap:6px}.notes-field-bar{display:flex;align-items:center;justify-content:space-between;gap:8px}.notes-field-tabs{display:inline-flex;margin-left:auto;border:1px solid var(--border);border-radius:6px;overflow:hidden}.notes-field-tabs button{background:none;border:0;padding:3px 10px;font-size:12px;color:var(--muted);cursor:pointer}.notes-field-tabs button.active{background:var(--surface-2);color:var(--text);font-weight:600}.notes-preview{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;background:var(--surface);overflow-wrap:anywhere}.notes-field .field-hint code{font-size:.85em}.notes-md ul{list-style:disc}.notes-md ol{list-style:decimal}.notes-md li{display:list-item;border:0;padding:0}