:root{--navy:#162b4d;--blue:#3567a5;--blue-soft:#edf4fb;--ink:#172437;--muted:#78869a;--line:#e6ebf1;--paper:#fff;--canvas:#f5f7fa;--green:#167b62;--green-soft:#e9f6f1;--amber:#a86b16;--amber-soft:#fff5e5;--red:#b44444;--shadow:0 18px 55px rgba(27,44,68,.12);--primary:#162b4d;--primary-hover:#244a78;--heading:#20334c;--text-2:#40536b;--faint:#8c98a7;--surface-2:#fbfcfe;--surface-blue:#f8fbff;--chip:#f0f3f7;--line-soft:#f0f2f5;--line-strong:#c4d0dd;--link:#316291;--ok-text:#1f6b45;--ok-soft:#e6f4ec;--warn-text:#8a5a00;--warn-soft:#fff5e5;--warn-line:#ecd3a4;--danger-text:#9b2e2e;--danger-soft:#fbefef;--danger-line:#efc6c6;--purple-text:#51367f;--purple-soft:#f1ecfa;--backdrop:#15223877;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:28px 18px 20px}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 36px;text-decoration:none;color:var(--ink)}.brand-mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(140deg,#1e3a5f,#4a7eb8);display:grid;place-items:center;color:#fff;font:800 14px Manrope,sans-serif;letter-spacing:-.05em;box-shadow:0 7px 14px #193b6633}.brand strong{display:block;font:800 15px Manrope,sans-serif;letter-spacing:-.03em}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.nav-label,.eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--faint)}.nav-label{padding:0 11px 10px}.sidebar nav{display:grid;gap:5px}.nav-item{height:42px;text-align:left;border:0;background:transparent;color:var(--muted);border-radius:9px;padding:0 12px;font-weight:600;display:flex;align-items:center;gap:11px}.nav-item:hover{background:var(--canvas);color:var(--navy)}.nav-item.active{background:var(--blue-soft);color:var(--navy)}.nav-icon{width:18px;text-align:center;font-size:17px;color:var(--faint)}.active .nav-icon{color:var(--blue)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:17px 9px 0;color:var(--faint);font-size:11px;display:flex;align-items:center;gap:8px}.status-dot{width:7px;height:7px;border-radius:50%;background:#30a47f;box-shadow:0 0 0 3px var(--ok-soft)}.main{margin-left:248px;max-width:1540px;padding:38px 52px 70px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.topbar h1{font:800 29px Manrope,sans-serif;letter-spacing:-.05em;margin:5px 0 0;color:var(--navy)}.top-actions{display:flex;gap:9px}.button{height:40px;padding:0 15px;border-radius:9px;border:1px solid transparent;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.15s ease}.button.primary{background:var(--primary);color:#fff;box-shadow:0 3px 7px #1227471c}.button.primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.button.secondary{background:var(--paper);border-color:var(--line);color:var(--text-2)}.button.secondary:hover{border-color:var(--line-strong)}.button.small{height:35px;padding:0 12px;font-size:12px}.welcome-row{display:flex;align-items:center;justify-content:space-between;margin:4px 0 19px}.welcome-row h2{font:700 17px Manrope,sans-serif;letter-spacing:-.03em;margin:0 0 5px}.welcome-row p,.panel-heading p,.phase-note p,.line-heading p{margin:0;color:var(--muted);font-size:12px}.period-chip{padding:7px 11px;border:1px solid var(--line);background:var(--paper);border-radius:8px;color:var(--muted);font-size:11px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:17px 18px 16px;min-height:121px}.metric-label{font-size:11px;color:var(--faint);font-weight:600}.metric-value{font:800 25px Manrope,sans-serif;color:var(--navy);letter-spacing:-.05em;margin:10px 0 5px}.metric-foot{font-size:10px;color:var(--faint)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-heading{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.panel-heading h2{font:700 14px Manrope,sans-serif;color:var(--heading);margin:0 0 5px}.text-button{border:0;background:transparent;color:var(--blue);font-size:12px;font-weight:700;padding:7px}.text-button:hover{text-decoration:underline}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:630px}.data-table th{text-align:left;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:12px 18px;background:var(--surface-2);border-bottom:1px solid var(--line-soft)}.data-table td{padding:14px 18px;border-bottom:1px solid var(--line-soft);color:var(--text-2);font-size:12px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:var(--surface-2)}.primary-cell{font-weight:700;color:var(--heading)!important}.amount{font-variant-numeric:tabular-nums;font-weight:700;color:var(--heading)!important}.muted-cell{color:var(--faint)!important}.status{display:inline-flex;align-items:center;border-radius:99px;padding:5px 8px;font-size:10px;font-weight:700;text-transform:capitalize;background:var(--chip);color:var(--muted)}.status.sent,.status.accepted{background:var(--blue-soft);color:var(--link)}.status.paid,.status.converted{background:var(--green-soft);color:var(--green)}.status.partially_paid,.status.overdue{background:var(--amber-soft);color:var(--amber)}.status.cancelled,.status.rejected{background:var(--danger-soft);color:var(--red)}.empty{padding:44px 20px;text-align:center;color:var(--faint);font-size:12px}.phase-note{display:flex;align-items:flex-start;gap:13px;margin-top:18px;padding:15px 17px;border:1px solid var(--line);background:var(--surface-blue);border-radius:11px}.phase-icon{width:27px;height:27px;border-radius:8px;background:var(--blue-soft);display:grid;place-items:center;color:var(--link)}.phase-note strong{font-size:12px;color:var(--heading)}.phase-note p{margin-top:4px}.hidden{display:none!important}.dialog{border:0;border-radius:15px;padding:0;width:min(620px,calc(100vw - 28px));max-height:calc(100vh - 32px);box-shadow:var(--shadow);color:var(--ink)}.dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(2px)}.dialog form{padding:23px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:21px}.dialog-heading h2{font:800 22px Manrope,sans-serif;color:var(--navy);letter-spacing:-.04em;margin:4px 0 0}.icon-button{border:0;background:var(--chip);color:var(--muted);width:31px;height:31px;border-radius:8px;font-size:22px;line-height:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label,.notes-label{display:grid;gap:6px;font-weight:600;color:var(--text-2);font-size:11px}.form-grid label.wide{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;outline:0;background:var(--paper);color:var(--heading);padding:10px 11px;font-size:12px}input:focus,select:focus,textarea:focus{border-color:var(--line-strong);box-shadow:0 0 0 3px var(--blue-soft)}textarea{resize:vertical}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px;padding-top:15px;border-top:1px solid var(--line)}.document-dialog{width:min(760px,calc(100vw - 28px))}.document-dialog form{padding:24px}.line-heading{display:flex;align-items:center;justify-content:space-between;margin:21px 0 10px}.line-heading h3{font:700 13px Manrope,sans-serif;margin:0 0 4px}.line-head,.line-row{display:grid;grid-template-columns:minmax(170px,1fr) 77px 110px 85px 30px;gap:8px;align-items:center}.line-head{padding:0 9px 7px;color:var(--faint);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.line-row{padding:6px 0}.line-row input{padding:9px 8px}.remove-line{border:0;background:transparent;color:var(--faint);font-size:18px;border-radius:6px;height:30px}.remove-line:hover{background:var(--danger-soft);color:var(--red)}.notes-label{margin-top:13px}.toast{position:fixed;right:24px;bottom:22px;max-width:400px;background:#1b2d46;color:#fff;padding:12px 16px;border-radius:9px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.detail-dialog{width:min(680px,calc(100vw - 28px));padding:22px}.detail-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.detail-top h2{font:800 22px Manrope,sans-serif;margin:0;color:var(--navy)}.detail-meta{color:var(--muted);font-size:12px;margin-top:6px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:17px 0}.detail-field small{display:block;color:var(--faint);font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.detail-field strong{font-size:12px;color:var(--text-2)}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.detail-actions form{display:flex;gap:7px;align-items:center}.detail-actions input,.detail-actions select{width:auto;max-width:140px}.detail-close{float:right}
@media(max-width:1050px){.main{padding:30px 27px 55px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{width:220px}.main{margin-left:220px}}
@media(max-width:700px){.sidebar{position:static;width:auto;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:13px 15px}.brand{padding:0 0 12px}.nav-label,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow:auto}.nav-item{white-space:nowrap;padding:0 10px;height:36px}.main{margin:0;padding:23px 15px 42px}.topbar{align-items:flex-start;gap:12px}.topbar h1{font-size:25px}.top-actions{flex-direction:column}.top-actions .button{height:34px;font-size:11px}.welcome-row{align-items:flex-start;gap:10px}.metrics{gap:9px}.metric-card{padding:13px;min-height:108px}.metric-value{font-size:21px}.form-grid{grid-template-columns:1fr}.form-grid label.wide{grid-column:auto}.line-head{display:none}.line-row{grid-template-columns:minmax(100px,1fr) 60px 85px 66px 24px;gap:5px}.line-row input{font-size:10px;padding:8px 5px}.dialog form{padding:18px}.document-dialog form{padding:18px}.detail-grid{grid-template-columns:1fr 1fr}}
.template-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:4px 0 18px;border-bottom:1px solid var(--line)}.template-toolbar label{display:grid;gap:6px;color:var(--faint);font-size:11px;font-weight:600}.template-toolbar select{min-width:210px}.template-fields{padding-top:18px}.template-fields textarea{font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;min-height:250px}.template-help{font-size:11px;color:var(--faint);line-height:1.6}.template-preview-heading{padding-top:12px}.template-preview-heading h3{margin:0 0 4px}.template-preview-heading p{margin:0 0 10px}.template-preview-heading+.muted-cell{margin:0}#template-preview-frame{width:100%;height:620px;border:1px solid var(--line);border-radius:10px;background:#fff}#email-preview-content{max-height:55vh;overflow:auto;border:1px solid var(--line);padding:18px;background:var(--paper)}.email-preview-dialog{width:min(720px,calc(100vw - 28px))}

.login-dialog{width:min(420px,calc(100vw - 28px))}.login-dialog form{padding:25px}.login-dialog label{display:grid;gap:7px;margin:14px 0;color:var(--text-2);font-size:12px;font-weight:600}.login-error{min-height:18px;color:var(--danger-text);font-size:12px}.user-create{padding:18px 0;border-bottom:1px solid var(--line);align-items:end}.user-handle{display:block;color:var(--faint);font-size:10px;margin-top:3px}.access-heading{font:700 14px Manrope,sans-serif;color:var(--navy);margin:24px 0 12px}.nav-item.hidden{display:none!important}

.gst-profile,.gst-export-form{padding:16px 0;align-items:end}.gst-profile{border-bottom:1px solid var(--line)}.gst-profile label,.gst-export-form label{display:grid;gap:6px;font-size:11px;font-weight:600;color:var(--text-2)}.gst-result{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.gst-result h3{margin:0 0 8px;font:700 14px Manrope,sans-serif}.gst-result p{font-size:12px;line-height:1.6}.gst-downloads{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.gst-downloads .button{font-size:11px}.gst-result .table-wrap{max-height:310px;overflow:auto}.gst-only.hidden{display:none!important}

/* Phase 8 interaction and responsive tokens */
:root{--ink:#172437;--muted:#596a80;--line:#dbe2ea;--canvas:#f5f7fa;--focus:#245f9f;--compact-gap:9px;--amber:#84500a}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--paper)}
button:disabled{cursor:wait;opacity:.68;transform:none!important}
.top-actions{align-items:center;flex-wrap:wrap}.top-actions .muted-cell{font-size:11px;color:var(--muted)!important}.contextual-create{display:none}
.list-controls{display:grid;grid-template-columns:minmax(180px,2fr) minmax(150px,1fr) minmax(140px,1fr) auto;gap:10px;align-items:end;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.list-controls label{display:grid;gap:5px;color:var(--text-2);font-weight:700;font-size:11px}.list-controls input,.list-controls select{min-height:38px}
.panel-state{padding:8px 18px;color:var(--text-2);font-size:12px}.panel-state:empty{display:none}.error-state,.field-error{color:#9b2e2e}.field-error{font-size:11px}.field-error::before{content:' ';display:block}
.data-table th{color:var(--muted)}.data-table td{color:var(--text-2)}.muted-cell,.metric-foot,.metric-label,.detail-field small{color:var(--muted)!important}
.detail-dialog{max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain}.dialog{overscroll-behavior:contain}.dialog[open]{animation:dialog-enter .12s ease-out}@keyframes dialog-enter{from{transform:translateY(5px);opacity:.7}to{transform:none;opacity:1}}
.role-summaries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.role-summary{border:1px solid var(--line);border-radius:9px;padding:12px}.role-summary h4{margin:0 0 8px;text-transform:capitalize;color:var(--navy)}.permission-summary,.permission-keys{margin:0;padding-left:19px;color:var(--text-2);font-size:12px;line-height:1.65}.role-summary details{margin-top:8px;color:var(--text-2);font-size:11px}.role-summary summary{cursor:pointer;font-weight:700}.user-actions{display:flex;flex-wrap:wrap;gap:4px 10px}.user-actions .text-button{padding:5px 2px}
.step-label{display:inline-block;margin-bottom:7px;color:var(--text-2);font-size:10px;font-weight:800;letter-spacing:.12em}.gst-step{scroll-margin-top:20px}.gst-step-actions{display:flex;justify-content:flex-end;padding:12px 18px}.gst-step h2:focus{outline:none}.template-switch{display:flex;gap:8px;padding:12px 0}.template-switch .active{background:var(--blue-soft);color:var(--navy);border-color:var(--line-strong)}.template-preview-panel{min-width:0}.template-fields,.template-preview-panel{transition:opacity .12s ease}.template-preview-panel iframe{height:min(620px,70vh)}
body.compact-density .panel-heading{padding:12px 16px}body.compact-density .data-table td{padding:9px 13px}body.compact-density .data-table th{padding:8px 13px}body.compact-density .metric-card{min-height:100px;padding:13px 15px}body.compact-density .form-grid{gap:9px}body.compact-density .gst-profile,body.compact-density .gst-export-form{padding:10px 0}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1050px){.list-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .sidebar{padding:10px 12px 7px}.brand{padding-bottom:8px}.sidebar nav{gap:4px}.nav-item{height:40px;min-width:max-content}.main{padding:17px 12px 35px}.topbar{display:block;margin-bottom:19px}.topbar>div:first-child{margin-bottom:10px}.top-actions{display:flex;flex-direction:row;align-items:center;gap:7px}.top-actions .muted-cell{flex:1 1 100%;font-size:11px}.top-actions .button{min-height:42px;height:auto;flex:1;padding:7px 9px;font-size:12px}.top-actions #density-toggle{flex:0 0 auto;min-width:100%}.top-actions #new-client{display:none!important}body[data-view="clients"] .top-actions #new-client{display:inline-flex!important}body[data-view="users"] .top-actions #new-client,body[data-view="templates"] .top-actions #new-client,body[data-view="gst"] .top-actions #new-client{display:none!important}body[data-view="quotes"] .top-actions #new-client{display:none!important}body[data-view="invoices"] .top-actions #new-client{display:none!important}
 .panel-heading{align-items:flex-start;padding:14px}.panel-heading>.button,.panel-heading>.text-button{display:none}.contextual-create{display:none!important}
 .list-controls{grid-template-columns:1fr 1fr;padding:11px;gap:8px}.list-controls label:first-child{grid-column:1/-1}.list-controls button{min-height:40px}.panel-state{padding:8px 12px}
 .table-wrap{overflow:visible}.data-table{display:block;min-width:0;width:100%}.data-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.data-table tbody{display:grid;gap:9px;padding:10px}.data-table tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.data-table tbody tr:last-child td{border-bottom:0}.data-table td{display:flex;justify-content:space-between;gap:7px;align-items:center;border:0!important;padding:4px 2px;font-size:11px;min-width:0;overflow-wrap:anywhere}.data-table td::before{content:attr(data-label);color:var(--text-2);font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:.04em;flex:0 0 auto}.data-table tr[data-invoice-id] td:first-child,.data-table tr[data-quote-id] td:first-child{grid-column:1/-1;font-size:13px}.data-table td.primary-cell{justify-content:flex-start}.data-table td.primary-cell::before{display:none}.status{padding:4px 6px}.role-summaries{grid-template-columns:1fr}.user-actions{gap:2px 8px}.user-actions .text-button{min-height:38px}.template-switch{display:flex;position:sticky;top:0;background:var(--paper);z-index:1}.template-fields{padding-top:12px}.template-preview-panel iframe{height:65vh}.template-toolbar{display:grid;grid-template-columns:1fr 1fr}.template-toolbar label,.template-toolbar button{min-width:0;width:100%}.template-toolbar label{grid-column:1/-1}.template-toolbar select{min-width:0}.template-preview-heading{padding-top:8px}
 .gst-step-actions{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--line);z-index:1}.gst-step-actions .button{min-height:42px}.document-dialog form{padding:15px}.document-dialog .form-grid{grid-template-columns:1fr 1fr}.document-dialog .form-grid label.wide{grid-column:1/-1}.line-row{grid-template-columns:minmax(0,1fr) 58px;gap:5px}.line-row input[name="description"]{grid-column:1/-1}.line-row input[name="unitPrice"],.line-row input[name="taxPercent"]{min-height:42px}.line-row input{font-size:12px}.remove-line{min-height:40px}.line-head{display:none}.dialog-actions{position:sticky;bottom:-15px;background:#fff;padding-bottom:2px;z-index:1}.dialog form{max-height:calc(100dvh - 30px);overflow:auto}.detail-actions{display:grid;grid-template-columns:1fr}.detail-actions form{display:grid;grid-template-columns:1fr 1fr}.detail-actions form button{grid-column:1/-1;min-height:42px}.detail-actions .button{min-height:42px}.detail-grid{grid-template-columns:1fr 1fr}.login-dialog form{max-height:none}.metrics{gap:8px}.metric-card{min-height:100px}.period-chip{white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

.nav-label,.eyebrow{color:var(--muted)}.empty,.user-handle,.metric-foot{color:var(--muted)}.status{color:var(--text-2)}.metric-label{color:var(--muted)}
@media(max-width:700px){.top-actions #new-client{display:none!important}body[data-view="clients"] .top-actions #new-client{display:inline-flex!important}}
.sidebar-foot,.template-toolbar label,.template-help,.line-head{color:var(--muted)}
/* Phase 8 browser-check fixes (Claude, 2026-10-10): inset panel bodies, labelled line items on small screens */
.template-toolbar,.template-switch,.template-fields,.template-help,.template-preview-panel,.user-create,.gst-profile,.gst-export-form,.gst-step-actions,.gst-result,.access-heading,.access-heading+.muted-cell,.role-summaries{margin-left:20px;margin-right:20px}
.template-switch{padding-top:14px}.template-help{padding-bottom:16px}.role-summaries{margin-bottom:20px}.gst-step-actions{padding-bottom:16px}
.checkbox-label{display:flex!important;flex-direction:row;align-items:center;gap:8px}.checkbox-label input{width:auto;margin:0}
.line-field{display:contents}.line-field>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.detail-source{flex-basis:100%;padding-top:4px}
@media(max-width:700px){
.template-toolbar,.template-switch,.template-fields,.template-help,.template-preview-panel,.user-create,.gst-profile,.gst-export-form,.gst-step-actions,.gst-result,.access-heading,.access-heading+.muted-cell,.role-summaries{margin-left:14px;margin-right:14px}
.line-row{grid-template-columns:1fr 1fr 1fr 34px;gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}
.line-field{display:grid;gap:3px;min-width:0}.line-field.line-desc{grid-column:1/-1}
.line-field>span{position:static;width:auto;height:auto;overflow:visible;clip:auto;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2)}
.line-row input{width:100%;min-height:42px;font-size:14px}
}
.gst-step{margin-bottom:16px}.gst-result:empty{display:none}

/* Phase 8 addendum: Overview status and billing visuals */
:root{--chart-draft:#334155;--chart-sent:#1d4ed8;--chart-partial:#854d0e;--chart-overdue:#a34f00;--chart-paid:#166534;--chart-cancelled:#b42318;--chart-other:#475569}
.overview-visuals{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:20px;min-width:0}.overview-visuals>.panel{min-width:0}.invoice-status-chart{padding:14px 18px 16px}.donut-layout{display:grid;grid-template-columns:minmax(140px,.85fr) minmax(0,1.15fr);align-items:center;gap:14px;min-width:0}.status-donut{width:min(100%,190px);height:auto;justify-self:center;overflow:visible}.donut-track{fill:none;stroke:var(--line-soft);stroke-width:18}.status-arc{fill:none;stroke-width:18;stroke-linecap:butt;cursor:pointer;transition:stroke-width .15s ease}.status-arc:hover,.status-arc:focus{stroke-width:21;outline:none}.donut-total{font:700 12px 'DM Sans',sans-serif;fill:var(--navy);text-anchor:middle}.donut-caption{font:600 7px 'DM Sans',sans-serif;fill:var(--muted);text-anchor:middle}.status-legend{list-style:none;padding:0;margin:0;display:grid;gap:3px;min-width:0}.legend-row{width:100%;display:flex;align-items:flex-start;gap:8px;text-align:left;border:0;border-radius:7px;padding:6px;background:transparent;color:var(--ink);min-width:0}.legend-row:hover{background:var(--canvas)}.legend-dot{flex:0 0 10px;width:10px;height:10px;border-radius:3px;background:var(--segment-color);margin-top:3px}.legend-content{display:grid;gap:2px;min-width:0}.legend-content strong{font-size:11px;color:var(--heading)}.legend-content>span{font-size:10px;color:var(--text-2);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.chart-toggle{white-space:nowrap}.chart-toggle:disabled{opacity:.55;cursor:default}
.billing-pipeline{padding:15px 17px 17px;min-width:0}.pipeline-flow{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr) 46px minmax(0,1fr) 46px minmax(0,1fr);align-items:stretch;gap:4px;min-width:0}.pipeline-node{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;text-align:left;width:100%;min-width:0;min-height:112px;padding:10px 9px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink)}.pipeline-node:hover{border-color:var(--line-strong);background:var(--surface-2)}.pipeline-node strong{font:700 20px Manrope,sans-serif;color:var(--navy);line-height:1}.pipeline-stage{font-size:10px;font-weight:700;color:var(--heading);line-height:1.25}.pipeline-detail{font-size:8px;line-height:1.25;color:var(--text-2)}.pipeline-amount{font-size:10px;font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.pipeline-arrow{width:34px;height:20px;align-self:center;justify-self:center;overflow:visible}.pipeline-arrow path{fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pipeline-rate{align-self:center;text-align:center;color:var(--text-2);font-size:8px;line-height:1.25;grid-row:2;min-width:0}.pipeline-flow>.pipeline-arrow{grid-row:1}.pipeline-flow>.pipeline-rate{grid-row:2}.pipeline-branches{display:grid;grid-template-columns:auto repeat(2,minmax(0,1fr));align-items:center;gap:9px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}.branch-label{font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--text-2)}.pipeline-branch-node{min-height:68px;display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:8px 10px}.pipeline-branch-node .pipeline-stage{grid-column:1/-1}.pipeline-branch-node strong{font:700 15px Manrope,sans-serif}.pipeline-branch-node .pipeline-amount{align-self:center;text-align:right}
body.compact-density .overview-visuals{gap:9px;margin-bottom:14px}body.compact-density .invoice-status-chart,body.compact-density .billing-pipeline{padding:10px 12px}body.compact-density .pipeline-node{min-height:98px;padding:8px 7px}body.compact-density .pipeline-branches{margin-top:8px;padding-top:7px}
@media(max-width:1050px) and (min-width:701px){.overview-visuals{grid-template-columns:1fr}.pipeline-node{min-height:92px}}
@media(max-width:700px){.overview-visuals{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:14px}.invoice-status-chart,.billing-pipeline{padding:12px}.donut-layout{grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr);gap:8px}.status-donut{width:min(100%,150px)}.legend-row{padding:5px 3px;gap:6px}.legend-content strong{font-size:10px}.legend-content>span{font-size:9px}.pipeline-flow{grid-template-columns:minmax(0,1fr);gap:4px}.pipeline-node{min-height:72px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:9px 11px}.pipeline-node .pipeline-stage,.pipeline-node .pipeline-detail{grid-column:1/-1}.pipeline-node strong{font-size:17px}.pipeline-amount{justify-self:end;grid-column:2;grid-row:2}.pipeline-arrow{width:20px;height:18px;transform:rotate(90deg)}.pipeline-rate{grid-row:auto;justify-self:center;margin:-3px 0 1px;font-size:9px}.pipeline-branches{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px}.branch-label{grid-column:1/-1}.pipeline-branch-node{display:flex;min-height:78px;align-items:flex-start}.pipeline-branch-node .pipeline-amount{align-self:flex-start;text-align:left}}
@media(prefers-reduced-motion:reduce){.status-arc{transition:none}}
.pipeline-flow>.pipeline-transition{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0}.pipeline-flow>.pipeline-transition .pipeline-rate{grid-row:auto}.pipeline-flow>.pipeline-transition .pipeline-arrow{grid-row:auto}
@media(max-width:700px){.pipeline-flow>.pipeline-transition{min-height:30px;gap:0}.pipeline-flow>.pipeline-transition .pipeline-arrow{transform:rotate(90deg)}.pipeline-flow>.pipeline-transition .pipeline-rate{margin:-2px 0 0}}

/* W1b / W1c: registration types, catalogue, GST document dialog, detail, settings, computation switch, version */
.app-version{margin-left:auto;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;user-select:text;-webkit-user-select:text;cursor:text}
.badge{display:inline-flex;align-items:center;border-radius:99px;padding:3px 8px;font-size:10px;font-weight:700;line-height:1.3;background:var(--chip);color:var(--text-2);white-space:nowrap;vertical-align:middle}
.badge.type-india_registered{background:var(--green-soft);color:var(--ok-text)}.badge.type-india_unregistered{background:var(--blue-soft);color:var(--link)}.badge.type-foreign_business{background:var(--purple-soft);color:var(--purple-text)}
.badge.excluded-badge{background:var(--danger-soft);color:var(--danger-text);border:1px solid var(--danger-line)}.badge.warning-badge{background:var(--amber-soft);color:var(--warn-text);border:1px solid var(--warn-line)}
.excluded-note{font-weight:700;color:var(--danger-text)}.data-table tr.is-excluded td{background:var(--danger-soft)}.data-table tr.is-excluded .amount{color:var(--faint)!important;text-decoration:line-through;text-decoration-color:var(--danger-line)}
.list-controls.list-controls-wide{grid-template-columns:minmax(180px,2fr) repeat(3,minmax(130px,1fr)) auto}
.form-section{border:1px solid var(--line);border-radius:10px;padding:12px 14px 14px;margin:16px 0 0;min-width:0}.form-section>legend,.form-section>summary{font:700 12px Manrope,sans-serif;color:var(--heading);padding:0 6px}.form-section>summary{cursor:pointer;padding:2px 0}details.form-section[open]>summary{margin-bottom:10px}
.choice-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:0}.choice{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;padding:10px;cursor:pointer;font-size:12px;color:var(--text-2)}.choice input{width:auto;margin:2px 0 0;flex:0 0 auto}.choice strong{display:block;color:var(--navy);font-size:12px}.choice small{display:block;color:var(--muted);font-size:11px;margin-top:3px;line-height:1.35}.choice:has(input:checked){border-color:var(--line-strong);background:var(--blue-soft)}.choice:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.field-note{font-size:11px;font-weight:500;color:var(--muted);margin:0;line-height:1.45}.field-note.error-state,output.error-state{color:var(--danger-text)}.form-grid>.wide{grid-column:1/-1}
.form-error{color:var(--danger-text);font-size:12px;font-weight:600;margin:12px 0 0;min-height:0}.form-error:empty{display:none}
.field-caption{display:block;font-size:11px;font-weight:600;color:var(--text-2)}.number-preview,.series-preview{display:grid;gap:3px;padding:9px 11px;border:1px dashed var(--line-strong);border-radius:8px;background:var(--surface-2);min-width:0}.number-preview output,.series-preview output{font:700 15px Manrope,sans-serif;color:var(--navy);overflow-wrap:anywhere}.number-preview small{color:var(--muted);font-size:11px}
.client-dialog{width:min(720px,calc(100vw - 28px))}.document-dialog{width:min(900px,calc(100vw - 28px))}.detail-dialog{width:min(900px,calc(100vw - 28px))}
.dialog form{max-height:calc(100dvh - 32px);overflow:auto}
#line-items.no-treatment .line-treatment{display:none}.gst-period-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.gst-return-facts{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0}.gst-not-in-app{color:var(--text-2);font-style:italic}
.line-row.line-card{display:grid;grid-template-columns:repeat(8,minmax(0,1fr)) 34px;gap:8px 9px;align-items:end;padding:11px;border:1px solid var(--line);border-radius:10px;margin-bottom:9px;background:var(--surface-2)}
.line-card .line-field{display:grid;gap:4px;min-width:0;font-size:11px;font-weight:600;color:var(--text-2)}.line-card .line-field>span{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.line-card.no-catalogue .line-desc{grid-column:1/9}.line-card .line-catalogue{grid-column:1/4}.line-card .line-desc{grid-column:4/9}.line-card .line-total{grid-column:1/9;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;font-size:11px;color:var(--text-2)}.line-card .line-total output{font-weight:700;color:var(--navy);font-size:13px;font-variant-numeric:tabular-nums}.line-card .line-total small{color:var(--muted)}
.line-card .remove-line{grid-column:9;grid-row:1;align-self:start;justify-self:end}.line-card input,.line-card select{width:100%;min-width:0;padding:9px 8px}
.totals-box{margin:14px 0 0 auto;max-width:380px;border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:var(--paper)}.totals-row{display:flex;justify-content:space-between;gap:14px;padding:4px 0;font-size:12px;color:var(--text-2)}.totals-row strong{font-variant-numeric:tabular-nums;color:var(--heading)}.totals-row.grand{border-top:2px solid var(--navy);margin-top:5px;padding-top:8px;font-size:14px}.totals-row.inr-row{border-top:1px dashed var(--line);margin-top:4px}
.detail-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.detail-field strong{overflow-wrap:anywhere}
.detail-section{margin:16px 0 0}.detail-section h3,.payment-form h3{font:700 13px Manrope,sans-serif;color:var(--heading);margin:0 0 8px}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:0}.detail-list div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line-soft);padding:4px 0;font-size:12px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:600;color:var(--text-2);text-align:right;overflow-wrap:anywhere}
.detail-lines small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.payments-table{min-width:0}
.payment-form{margin-top:16px;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.payment-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px}
.computation-row{display:flex;gap:14px;align-items:flex-start}.computation-row .detail-meta{margin-top:2px}
.switch{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:5px 12px 5px 5px;font-weight:700;font-size:12px;color:var(--text-2);flex:0 0 auto;min-height:36px}.switch-track{position:relative;width:38px;height:22px;border-radius:99px;background:var(--line-strong);transition:background .15s ease;flex:0 0 auto}.switch-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px #0003;transition:transform .15s ease}.switch[aria-checked="true"] .switch-track{background:var(--green)}.switch[aria-checked="true"] .switch-thumb{transform:translateX(16px)}.switch[aria-checked="false"]{border-color:var(--danger-line);color:var(--danger-text)}.switch:disabled{cursor:not-allowed;opacity:.7}
.settings-panel{margin-bottom:16px}.settings-help{margin:14px 20px 0;font-size:12px;color:var(--text-2);line-height:1.6}.series-form,.settings-form{padding:16px 20px;align-items:end;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1.3fr) auto}.series-form+.series-form{border-top:1px solid var(--line)}.settings-form{grid-template-columns:1fr 1fr}.series-form input[name="format"]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.variable-help{display:grid;gap:6px;margin-top:8px}.variable-group{border:1px solid var(--line);border-radius:8px;padding:7px 10px}.variable-group summary{cursor:pointer;font-weight:700;color:var(--text-2)}.variable-group dl{display:grid;gap:5px;margin:8px 0 2px}.variable-group dl div{display:grid;grid-template-columns:minmax(200px,1fr) 2fr;gap:10px}.variable-group dt{overflow-wrap:anywhere}.variable-group dd{margin:0;color:var(--text-2)}
.data-table tr.clickable[data-client-id],.data-table tr.clickable[data-catalogue-id]{cursor:pointer}
body.compact-density .line-row.line-card{padding:8px;gap:6px 8px}body.compact-density .form-section{padding:9px 11px 11px;margin-top:11px}body.compact-density .series-form,body.compact-density .settings-form{padding:11px 16px}
@media(max-width:1050px){.list-controls.list-controls-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.series-form{grid-template-columns:1fr 1fr}}
@media(max-width:700px){
 .sidebar-foot{display:flex;padding:6px 2px 0;border-top:0;margin-top:4px;font-size:10px}
 .panel-heading>#new-catalogue-item,.panel-heading>#new-advance{display:inline-flex!important;min-height:40px}
 .gst-period-actions{display:flex;flex-wrap:wrap;gap:8px}.gst-period-actions .button{min-height:40px;flex:1 1 auto}
 .list-controls.list-controls-wide{grid-template-columns:1fr 1fr}
 .choice-group{grid-template-columns:1fr}
 .client-dialog .form-grid,.document-dialog .form-grid,.payment-form .form-grid,.series-form,.settings-form{grid-template-columns:1fr}
 .document-dialog .form-grid label.wide,.form-grid>.wide{grid-column:1/-1}
 .form-section{padding:10px 10px 12px}
 .line-row.line-card{grid-template-columns:1fr 1fr;padding:10px;border-bottom:1px solid var(--line)}
 .line-card .line-catalogue,.line-card .line-desc,.line-card .line-total{grid-column:1/-1}.line-card .remove-line{grid-column:2;grid-row:auto;justify-self:end;min-width:44px}
 .line-card input,.line-card select{min-height:42px;font-size:14px}
 .totals-box{max-width:none}
 .detail-grid{grid-template-columns:1fr 1fr}.detail-list{grid-template-columns:1fr}.computation-row{flex-direction:column;gap:8px}.switch{min-height:44px}
 .settings-help,.series-form,.settings-form{margin-left:0;margin-right:0;padding-left:14px;padding-right:14px}.settings-help{margin:12px 14px 0;padding:0}
 .variable-group dl div{grid-template-columns:1fr;gap:2px}
 .detail-top{flex-wrap:wrap}
}
.detail-dialog .payment-form{padding:13px;max-height:none;overflow:visible}
@media(max-width:700px){.data-table tr[data-client-id] td:first-child,.data-table tr[data-catalogue-id] td:first-child{grid-column:1/-1;font-size:13px}.detail-lines tr td:first-child{grid-column:1/-1}.data-table td small{display:inline}}
.masked-field{display:flex;gap:6px;align-items:center}.masked-field input{flex:1 1 auto;min-width:0;font-variant-numeric:tabular-nums;letter-spacing:.04em}.masked-field input[readonly]{background:var(--canvas);color:var(--text-2)}.masked-field .button{flex:0 0 auto}
.settings-form .form-section.wide{grid-column:1/-1;margin-top:4px}.settings-form .form-section .form-grid{grid-template-columns:1fr 1fr}.detail-terms{margin:0;font-size:12px;font-weight:600;color:var(--text-2);overflow-wrap:anywhere}
@media(max-width:700px){.settings-form .form-section .form-grid{grid-template-columns:1fr}.masked-field .button{min-height:42px}}

/* 0.11.0: PDF versions, company assets, exports, audit view; e2e findings F-10 / F-11 */
.archive-table{min-width:0}.archive-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}.archive-actions .detail-meta{margin:0}
.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 20px}.asset-card{border:1px solid var(--line);border-radius:10px;padding:13px;display:grid;gap:9px;min-width:0}.asset-card h3{font:700 13px Manrope,sans-serif;color:var(--heading);margin:0}
.asset-card label{display:grid;gap:6px;font-weight:600;color:var(--text-2);font-size:11px}.asset-preview{min-height:86px;display:grid;place-items:center;border:1px dashed var(--line-strong);border-radius:8px;background:var(--surface-2);padding:8px;overflow:hidden}.asset-preview img{max-width:100%;max-height:150px;display:block}
.asset-actions{display:flex;flex-wrap:wrap;gap:8px}
.export-bar{display:grid;grid-template-columns:minmax(200px,2fr) minmax(130px,1fr) minmax(130px,1fr) auto;gap:10px;align-items:end;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--paper)}.export-bar label{display:grid;gap:5px;color:var(--text-2);font-weight:700;font-size:11px}.export-bar .form-error{grid-column:1/-1;margin:0}
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px}.audit-details{font-size:10px;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--text-2)}.audit-table td{vertical-align:top}
.users-filter{margin:14px 20px 4px;font-size:12px;color:var(--text-2)}
.toast[data-toast-kind="error"]{background:#7d2424}.toast[data-toast-kind="info"]{background:#2c4a73}
@media(max-width:1050px){.export-bar{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.asset-grid{grid-template-columns:1fr;padding:12px 14px}.export-bar{grid-template-columns:1fr 1fr;padding:11px}.export-bar label:first-child{grid-column:1/-1}.export-bar button{min-height:40px}.pager{padding:10px 12px}.users-filter{margin:12px 14px 4px}
 /* F-10: the chart's count/amount toggle must stay reachable on small screens */
 .panel-heading>#invoice-chart-toggle{display:inline-flex!important;min-height:40px;align-items:center}
}
/* 1.01.0: notes, advances, TDS and UPI */
.inline-field{display:inline-flex;align-items:center;gap:8px;font-size:13px}.inline-field input{min-width:220px}
.note-line{grid-template-columns:minmax(180px,3fr) repeat(4,minmax(80px,1fr)) auto}
#upi-qr-box img{display:block;margin-top:10px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.notes-table td.amount,.payments-table td.amount{white-space:nowrap}
@media (max-width:700px){.note-line{grid-template-columns:1fr 1fr}.inline-field{display:flex;flex-direction:column;align-items:stretch}.inline-field input{min-width:0}}
/* 1.02.1: a mail is previewed in a frame (the HTML exactly as it is sent), with its headers beside it. */
#email-preview-content{padding:0;max-height:none;overflow:visible}#email-preview-frame{display:block;width:100%;height:min(52vh,520px);border:0;background:#fff}
.mail-meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin:0 0 12px;font-size:12px}.mail-meta div{display:flex;gap:8px;min-width:0}.mail-meta dt{flex:0 0 62px;color:var(--muted);font-weight:600}.mail-meta dd{margin:0;min-width:0;overflow-wrap:anywhere}
.template-preview-heading p[data-mail-from],.template-preview-heading p[data-mail-bcc]{margin:0 0 4px}
/* F-21: the GST treatment of a line in the detail of an invoice or note, under the description at every width. */
.detail-lines .line-treatment{display:block;margin-top:2px;font-size:11px;font-weight:600;color:var(--warn-text)}
@media (max-width:700px){.mail-meta{grid-template-columns:1fr}.detail-lines td.primary-cell:has(.line-treatment){flex-wrap:wrap}.detail-lines .line-treatment{flex:1 1 100%;text-align:right}}
/* F-11: "hidden" always wins. Several rules above set display with !important (checkbox labels, mobile action buttons);
   the doubled :not(#id) raises this selector above any single-id selector, and it is the last rule in the file. */
/* W5 (1.03.0): return periods, reports, approvals, automation */
.check-list{margin:0;padding:0 18px 0 38px}.check-item{margin:0 0 12px;line-height:1.5}.check-item p{margin:3px 0 0;color:var(--text-2)}.check-item.check-blocking strong{color:var(--danger-text)}.check-item.check-warning strong{color:var(--warn-text)}.check-item.check-passed strong{color:var(--ok-text)}.check-documents{display:flex;flex-wrap:wrap;gap:6px}
.badge.check-blocking{background:var(--danger-soft);color:var(--danger-text)}.badge.check-warnings{background:var(--warn-soft);color:var(--warn-text)}.badge.check-clean{background:var(--ok-soft);color:var(--ok-text)}
.steps-text{white-space:pre-wrap;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;margin:0;padding:12px 18px;overflow-wrap:anywhere}
.note-thread{padding:0 18px}.note-item{border-left:3px solid var(--line);padding:6px 10px;margin:8px 0}.note-item p{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}.note-depth-1{margin-left:18px}.note-depth-2{margin-left:36px}.note-depth-3{margin-left:54px}.note-form{display:grid;gap:8px;padding:8px 18px 14px}.note-form label{display:grid;gap:5px;font-weight:700;font-size:11px;color:var(--text-2)}
.button-row{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.report-heading{margin:16px 18px 6px;font-size:13px}.total-row td{font-weight:700}.recurring-line{border-top:1px solid var(--line);padding:10px 0}
/* 1.04.0 (W6): API & webhooks, import, edit log */
.heading-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.heading-actions select{min-height:34px}
.checkbox-set{border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 14px}.checkbox-set legend{font-size:11px;font-weight:700;color:var(--text-2);padding:0 4px}
.token-once{margin:0 20px 14px;padding:12px 14px;border:1px solid var(--warn-line);border-radius:8px;background:var(--warn-soft)}.token-once p{margin:0 0 8px;font-size:13px}.token-once pre{user-select:all;word-break:break-all;white-space:pre-wrap}
.change-list{margin:0;padding:0;list-style:none;font-size:12px;line-height:1.5}.change-list li{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:8px}.change-list .change-field{font-weight:700;color:var(--text-2);word-break:break-all}.change-list .change-before{color:var(--danger-text);text-decoration:line-through}.change-list .change-after{color:var(--ok-text)}
.import-result td[data-import-action="error"]{color:var(--danger-text);font-weight:700}.import-result td[data-import-action="create"],.import-result td[data-import-action="update"]{color:var(--ok-text);font-weight:700}
@media (max-width:700px){.token-once{margin:0 12px 12px}.change-list li{grid-template-columns:1fr}.heading-actions{width:100%}}
/* 1.05.0 (W7): the books side — purchases, ITC register, GSTR-2B, GSTR-3B working paper, TDS payable, profit, bank, books settings */
/* F-26: the side bar is as high as the window and scrolls on its own; the navigation is in groups that open and close */
.nav-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;border-radius:8px;padding:9px 12px 5px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left}.nav-group-toggle:hover{color:var(--navy);background:var(--canvas)}.nav-group-toggle:focus-visible,.nav-item:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.nav-group-caret{font-size:11px;transition:transform .15s}.nav-group[data-open="false"] .nav-group-caret{transform:rotate(-90deg)}.nav-group-items{display:grid;gap:2px}
@media(min-width:701px){.sidebar{height:100vh;height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding-top:20px;padding-bottom:14px}.sidebar .brand{padding-bottom:16px;flex:0 0 auto}.sidebar>.nav-label{flex:0 0 auto}.sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;gap:2px;padding-bottom:8px;scrollbar-width:thin}.sidebar .nav-item{height:34px;flex:0 0 auto}.sidebar-foot{flex:0 0 auto;padding-top:12px}.nav-group[data-open="false"] .nav-group-items{display:none}}
@media(max-width:700px){.nav-group,.nav-group-items{display:contents}.nav-group-toggle{display:none}}
@media(prefers-reduced-motion:reduce){.nav-group-caret{transition:none}}
.bk-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px;border-bottom:1px solid var(--line)}.bk-tabs .active{background:var(--blue-soft);color:var(--navy);border-color:var(--line-strong)}
.bk-actions{padding:10px 18px}.form-section .bk-actions{padding:10px 0 0}
.bk-statement{margin:0;padding:12px 18px;background:var(--surface-blue);border-bottom:1px solid var(--line);color:var(--heading);font-size:12px;line-height:1.6;font-weight:600}
.bk-warning{margin:8px 18px;padding:9px 12px;border:1px solid var(--warn-line);border-radius:8px;background:var(--amber-soft);color:var(--warn-text);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.form-grid>.bk-warning,.bk-block>.bk-warning{margin:0 0 8px}
.bk-notices{list-style:none;margin:0;padding:0 18px}.bk-notices li{margin:6px 0;padding:8px 11px;border-left:3px solid var(--warn-line);background:var(--warn-soft);color:var(--warn-text);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.bk-notices li[data-severity="notice"]{border-left-color:var(--line-strong);background:var(--surface-blue);color:var(--heading)}.dialog .bk-notices,.bk-block .bk-notices{padding:0}
.bk-chips{display:flex;flex-wrap:wrap;gap:8px;padding:10px 18px}.bk-chip{border:1px solid var(--line);border-radius:10px;padding:7px 11px;background:var(--paper);font-size:11px;color:var(--text-2);text-align:left;display:grid;gap:2px}.bk-chip strong{font-size:13px;color:var(--navy)}.bk-chip[aria-pressed="true"]{border-color:var(--line-strong);background:var(--blue-soft)}
.bk-block{margin:12px 18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);min-width:0}.bk-block h3,.bk-block .report-heading{font:700 13px Manrope,sans-serif;color:var(--heading);margin:10px 0 8px}.bk-block .table-wrap{margin:8px 0}.bk-block .form-grid{margin:8px 0}.bk-block .panel-state{padding:6px 0}
.bk-footnote{padding:8px 18px 14px}.bk-proposal{padding:8px 0}.bk-preview{font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.bk-scroll{max-height:260px;overflow:auto}
.bk-line{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 9px;align-items:end;padding:11px;border:1px solid var(--line);border-radius:10px;margin-bottom:9px;background:var(--surface-2)}.bk-line label{display:grid;gap:4px;min-width:0;font-size:10px;font-weight:600;letter-spacing:.03em;color:var(--text-2)}.bk-line .bk-wide{grid-column:span 3}.bk-line .bk-full{grid-column:1/-1}.bk-line input,.bk-line select{min-width:0;padding:9px 8px}.bk-line .bk-remove{justify-self:end;align-self:end;border:0;background:transparent;color:var(--faint);font-size:18px;border-radius:6px;min-width:36px;height:34px}.bk-line .bk-remove:hover{background:var(--danger-soft);color:var(--red)}.bk-line>strong{grid-column:1/-1;font-size:12px;color:var(--heading);overflow-wrap:anywhere}
#bill-lines.is-expense .bk-tax{display:none}#paper-json{height:auto;min-height:35px;white-space:normal;text-align:left;padding-top:6px;padding-bottom:6px}
.bk-row-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.bk-row-actions input,.bk-row-actions select{width:auto;min-width:0;max-width:220px;flex:1 1 140px}
.bk-sub{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:2px}.bk-lines{font-size:11px}.bk-lines ul{margin:6px 0 0;padding-left:16px}.bk-check{margin-top:12px}.bk-reasons{margin:0;padding-left:16px;font-size:11px;line-height:1.5}.bk-reasons li{margin:2px 0}.bk-row-actions small{flex:1 1 160px;color:var(--muted);font-size:10px}.bk-row-actions+.bk-row-actions{margin-top:6px}#bank-line-panel h3{margin-top:14px}
.bk-t4 th.bk-group{text-align:center;border-left:1px solid var(--line)}.data-table td[data-negative="true"]{color:var(--danger-text)!important}.data-table tr[data-unset="true"] td{background:var(--warn-soft)}
.bk-config{padding:4px 0 10px;border-top:1px solid var(--line)}.bk-config h3{font:700 13px Manrope,sans-serif;color:var(--heading);margin:14px 18px 2px}.bk-config .field-note{padding:0 18px}
@media (max-width:700px){.bk-tabs{padding:10px 11px;flex-wrap:nowrap;overflow-x:auto}.bk-tabs .button{flex:0 0 auto;min-height:40px}.bk-actions{padding:9px 11px}.bk-actions .button{min-height:40px}.bk-statement{padding:10px 12px}.bk-warning{margin:8px 11px}.bk-notices{padding:0 11px}.bk-chips{padding:9px 11px}.bk-block{margin:10px 11px;padding:10px}.bk-line{grid-template-columns:1fr 1fr}.bk-line .bk-wide,.bk-line .bk-full{grid-column:1/-1}.bk-line input,.bk-line select{min-height:42px;font-size:14px}.bk-row-actions input,.bk-row-actions select{max-width:none;flex:1 1 100%}.bk-row-actions .button{min-height:40px}.data-table td.bk-cell-full{grid-column:1/-1;flex-wrap:wrap}.data-table td.bk-cell-full:empty,.data-table td.bk-gap{display:none}.bk-row-actions{width:100%}.bk-scroll{max-height:none;overflow:visible}.bk-config h3{margin:12px 12px 2px}.bk-config .field-note{padding:0 12px}}
/* 1.06.0 (W8): inventory — the Stock view, and what the other screens show of stock while inventory is on */
#stock-banner:empty{display:none}#stock-banner.bk-warning{margin:8px 18px}
.stock-availability,.line-card .line-field>span.stock-availability{display:block;margin-top:3px;font-size:11px;font-weight:700;letter-spacing:0;text-transform:none;color:#1f6b45}.stock-availability.negative,.line-card .line-field>span.stock-availability.negative{color:#9b2e2e}
.note-line .note-stock-field{grid-column:1/-1}#note-stock{margin:10px 0 2px}#note-stock .field-note{margin-top:4px}
.stock-file{display:grid;gap:5px;color:var(--text-2);font-weight:700;font-size:11px;flex:1 1 220px;min-width:0}.stock-file input{min-height:38px;min-width:0;max-width:100%}
.list-controls.stock-inline{padding:0 0 8px;border-bottom:0;background:transparent;grid-template-columns:repeat(2,minmax(130px,1fr)) auto auto}
#stock-items-table input[data-reorder],#stock-count-entry input[data-counted]{width:120px;min-width:0}#stock-items-table input[data-track]{width:18px;height:18px}
#stock-settings-panel .field-note{margin:6px 0}[data-bk-panel^="stock:"] input[type=file]{min-width:0;max-width:100%}
@media (max-width:700px){#stock-banner.bk-warning{margin:8px 11px}.list-controls.stock-inline{grid-template-columns:1fr 1fr}.list-controls.stock-inline label:first-child{grid-column:auto}#stock-items-table input[data-reorder],#stock-count-entry input[data-counted]{width:100%;max-width:150px;min-height:40px;font-size:14px}#stock-items-table input[data-track]{width:22px;height:22px}.stock-file{flex:1 1 100%}.stock-file input{min-height:42px}[data-bk-panel^="stock:"] .button{min-height:40px}}
/* 1.07.1 (R3): self-hosted fonts, the sign-in view, the confirm dialog, keyboard hints, the theme toggle and dark mode.
   One token set on :root (light, above); the dark values below, once for "auto" on a dark device and once for the
   explicit choice. The print and PDF layouts have their own styles and are not touched by any of this. */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url(/fonts/dm-sans-latin-wght.woff2?v=1.07.4) format('woff2')}
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-latin-wght.woff2?v=1.07.4) format('woff2')}
body.signed-out .shell{display:none}
.login-view{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:24px 16px;border:0;background:var(--canvas);color:var(--ink);overflow:auto}
.login-view[open]{display:grid;place-items:center}.login-view::backdrop{background:var(--canvas)}
.login-panel{width:min(420px,100%);background:var(--paper);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:26px 26px 16px}
.login-panel form{padding:0;max-height:none;overflow:visible}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-brand strong{display:block;font:800 15px Manrope,sans-serif;letter-spacing:-.03em}.login-brand small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.login-panel h1,.login-panel h2{font:800 24px Manrope,sans-serif;color:var(--navy);letter-spacing:-.04em;margin:4px 0 6px}
.login-panel label{display:grid;gap:7px;margin:14px 0;color:var(--text-2);font-size:12px;font-weight:700}
.password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin:14px 0}.password-row label{margin:0}.password-row .button{height:40px;white-space:nowrap}
.caps-hint{margin-top:8px;color:var(--warn-text);font-weight:700}
.login-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;flex-wrap:wrap}
.login-foot{display:flex;justify-content:space-between;gap:8px;margin:20px 0 0;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.login-foot .app-version{margin-left:0}
.dialog{background:var(--paper)}.confirm-dialog{width:min(460px,calc(100vw - 28px))}.confirm-text{margin:0 0 10px;color:var(--ink);font-size:13px;line-height:1.5}
.shortcut-hint{margin-top:10px}.dialog-error{margin:0 22px 18px}.dialog-error:empty{display:none}
#email-preview-frame,#template-preview-frame{background:#fff}
.error-state,.field-error{color:var(--danger-text)}
.stock-availability,.line-card .line-field>span.stock-availability{color:var(--ok-text)}.stock-availability.negative,.line-card .line-field>span.stock-availability.negative{color:var(--danger-text)}
@media(max-width:700px){.top-actions #theme-toggle{flex:0 0 auto;min-width:100%}.login-panel{padding:20px 16px 14px}.password-row{grid-template-columns:1fr}.password-row .button{min-height:42px}.login-actions .button{flex:1 1 auto;min-height:42px}}
/* 1.07.1 (R3): the tablet held upright (701–900 px): a narrower side bar and tables that fit the panel instead of
   scrolling sideways inside it (cells wrap; long words and paths break). */
@media(min-width:701px) and (max-width:900px){.sidebar{width:188px;padding-left:12px;padding-right:12px}.main{margin-left:188px;padding:24px 16px 50px}.data-table{min-width:0}.data-table th,.data-table td{padding:10px 10px}.data-table td{overflow-wrap:anywhere}}
@media(min-width:701px) and (max-width:900px){.topbar{display:block}.topbar>div:first-child{margin-bottom:10px}.top-actions{justify-content:flex-start}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--navy:#dbe7f7;--blue:#86b4ec;--blue-soft:#1d3350;--ink:#e3eaf3;--muted:#a3b2c4;--line:#2b3b51;--paper:#162131;--canvas:#0d1520;--green:#5fcf9f;--green-soft:#173a2e;--amber:#e8b45a;--amber-soft:#3a2c12;--red:#f08a8a;--shadow:0 18px 55px rgba(0,0,0,.5);--focus:#86b4ec;--primary:#3a6db0;--primary-hover:#4b80c4;--heading:#dbe5f1;--text-2:#c3cfdd;--faint:#8798ad;--surface-2:#1a2738;--surface-blue:#182a40;--chip:#23334a;--line-soft:#223146;--line-strong:#41587a;--link:#8fbcf0;--ok-text:#72d5a8;--ok-soft:#173a2e;--warn-text:#eabd69;--warn-soft:#3a2c12;--warn-line:#6b5524;--danger-text:#f3a0a0;--danger-soft:#3d1f23;--danger-line:#6e3539;--purple-text:#c9b6f2;--purple-soft:#2c2442;--backdrop:#000000b3;--chart-draft:#9aa9bd;--chart-sent:#6f9ff5;--chart-partial:#d6a54d;--chart-overdue:#f0913f;--chart-paid:#52c78f;--chart-cancelled:#f07d6d;--chart-other:#a3afc0}}
:root[data-theme="dark"]{color-scheme:dark;--navy:#dbe7f7;--blue:#86b4ec;--blue-soft:#1d3350;--ink:#e3eaf3;--muted:#a3b2c4;--line:#2b3b51;--paper:#162131;--canvas:#0d1520;--green:#5fcf9f;--green-soft:#173a2e;--amber:#e8b45a;--amber-soft:#3a2c12;--red:#f08a8a;--shadow:0 18px 55px rgba(0,0,0,.5);--focus:#86b4ec;--primary:#3a6db0;--primary-hover:#4b80c4;--heading:#dbe5f1;--text-2:#c3cfdd;--faint:#8798ad;--surface-2:#1a2738;--surface-blue:#182a40;--chip:#23334a;--line-soft:#223146;--line-strong:#41587a;--link:#8fbcf0;--ok-text:#72d5a8;--ok-soft:#173a2e;--warn-text:#eabd69;--warn-soft:#3a2c12;--warn-line:#6b5524;--danger-text:#f3a0a0;--danger-soft:#3d1f23;--danger-line:#6e3539;--purple-text:#c9b6f2;--purple-soft:#2c2442;--backdrop:#000000b3;--chart-draft:#9aa9bd;--chart-sent:#6f9ff5;--chart-partial:#d6a54d;--chart-overdue:#f0913f;--chart-paid:#52c78f;--chart-cancelled:#f07d6d;--chart-other:#a3afc0}
.hidden:not(#_):not(#__){display:none!important}
