@font-face{font-family:Anton;src:url('assets/fonts/Anton-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:Bowlby;src:url('assets/fonts/BowlbyOneSC-Regular.ttf') format('truetype');font-display:swap}
:root{--orange:#c65a21;--orange-light:#ec8c53;--bg:#101010;--surface:#191919;--border:#333;--text:#f4f2ef;--muted:#aaa5a1;--font:Arial,Helvetica,sans-serif;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font)}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--orange-light);outline-offset:4px}.topbar{height:88px;border-bottom:1px solid #303030;display:flex;align-items:center;justify-content:space-between;padding:0 4%;gap:24px;background:#080808}.brand{display:flex;align-items:center;gap:9px;color:white;text-decoration:none;font:23px/1 Bowlby,Impact,sans-serif}.brand img{object-fit:cover;object-position:50% 49%;width:43px;height:58px}.brand-tag{display:block;font:8px/1.5 Arial,sans-serif;letter-spacing:1.25px;margin-top:7px;color:#b3aaa4}.app-label{font-size:10px;letter-spacing:2px;color:#c1b9b3}.app-label span{color:var(--orange);margin:0 12px}.privacy-pill{font-size:11px;color:#c0bbb7;display:flex;align-items:center;gap:8px;border:1px solid #32302d;border-radius:30px;padding:8px 13px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--orange);flex-shrink:0}main{max-width:1600px;margin:auto;padding:43px 4% 52px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:35px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--orange-light);margin:0 0 10px;font-weight:bold}h1{font:clamp(30px,3vw,48px)/1.15 Anton,Impact,sans-serif;letter-spacing:.3px;margin:0}h1 span{color:var(--orange)}.subtitle{color:var(--muted);font-size:13px;margin:13px 0 0}.heading-actions{display:flex;gap:10px;margin-bottom:3px;flex-shrink:0}.button{border:1px solid transparent;border-radius:5px;padding:12px 18px;display:inline-flex;justify-content:center;align-items:center;gap:9px;font-weight:600;font-size:12px;min-height:43px;transition:background .15s,border-color .15s}.primary{background:var(--orange);color:#fff}.primary:hover{background:#d76a30}.ghost{background:transparent;border-color:#45413f;color:var(--text)}.ghost:hover{background:#262321;border-color:#666}.workspace{display:grid;grid-template-columns:minmax(380px, .86fr) minmax(450px,1.14fr);gap:28px;align-items:start}.editor{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.editor-heading{display:flex;align-items:center;gap:10px;padding:21px 26px;border-bottom:1px solid var(--border);font-size:11px;font-weight:600;letter-spacing:1.5px}.editor-heading svg{color:var(--orange-light);width:18px}.step-label{margin-left:auto;color:#79736f;font-size:9px;letter-spacing:1px}.form-section{padding:26px;border-bottom:1px solid var(--border)}.section-title{display:flex;align-items:center;gap:12px;margin-bottom:22px}.section-number{color:var(--orange-light);font:16px Anton,Impact,sans-serif}.section-title h2{font-size:16px;font-weight:600;letter-spacing:-.3px;margin:0}.fields{display:grid;gap:15px}.two{grid-template-columns:1fr 1fr}label{display:block;color:#c7c2bd;font-size:11px;font-weight:500;margin-bottom:16px}label>span{color:var(--orange-light)}input,textarea,select{display:block;width:100%;color:var(--text);background:#121212;border:1px solid #3b3734;border-radius:4px;padding:11px 12px;outline:0;margin-top:7px;font-size:13px;line-height:1.4;transition:border-color .15s}input::placeholder,textarea::placeholder{color:#77716c}input:focus,textarea:focus,select:focus{border-color:var(--orange-light);box-shadow:0 0 0 2px #c65a211f}textarea{resize:vertical;min-height:65px}small{display:block;font-size:10px;color:#918984;margin-top:6px}label:last-child{margin-bottom:0}.fields label:last-child{margin-bottom:16px}.issuer-details{margin-top:10px;border-top:1px solid #38312d;padding-top:16px}summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:11px;color:var(--orange-light);list-style:none}summary::-webkit-details-marker{display:none}summary svg{width:14px;height:14px;transition:transform .15s}details[open] summary svg{transform:rotate(90deg)}.details-content{padding-top:20px}.count{background:#34241b;color:var(--orange-light);border:1px solid #56341f;border-radius:5px;padding:1px 7px;font-size:10px;margin-left:auto}.section-help{margin:-12px 0 20px;color:#978f89;font-size:11px}.service-card{border:1px solid #403730;background:#151413;border-radius:6px;padding:18px;margin-bottom:14px}.service-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.service-index{font-size:9px;letter-spacing:1.4px;color:#b3a69b;font-weight:600}.icon-button{background:transparent;border:0;display:flex;align-items:center;justify-content:center;color:#a59385;width:30px;height:30px;border-radius:4px}.icon-button:hover{color:#ff9970;background:#372017}.icon-button svg{width:16px;height:16px}.service-card label{font-size:10px;margin-bottom:13px}.service-card textarea{min-height:56px}.three{grid-template-columns:1fr 1.45fr 1fr;gap:10px}.type-picker{border:0;padding:0;margin:1px 0 14px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.type-picker legend{font-size:10px;color:#c7c2bd;margin-bottom:8px}.type-picker label{position:relative;background:#121212;border:1px solid #3b3734;border-radius:4px;padding:10px;display:flex;align-items:center;gap:8px;margin:0;cursor:pointer;font-size:11px}.type-picker label:has(input:checked){border-color:var(--orange);background:#c65a2112;color:#f3c0a0}.type-picker input{width:13px;height:13px;margin:0;accent-color:var(--orange);box-shadow:none}.frequency-fields{display:grid;grid-template-columns:1fr 1.5fr;gap:10px}.service-line-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #332a25;padding-top:12px;margin-top:14px;font-size:10px;color:#a4978d;gap:10px}.service-line-total strong{font-size:14px;color:#f5ede7;white-space:nowrap}.add-service{width:100%;color:var(--orange-light);border:1px dashed #725036;background:#c65a2108}.add-service:hover{background:#c65a2118}.privacy-note{display:flex;align-items:flex-start;gap:11px;padding:19px 26px;color:#918983;font-size:10px}.privacy-note svg{width:17px;height:17px;color:#a36c47}.privacy-note p{margin:0;max-width:40ch}.preview-panel{position:sticky;top:24px;background:#252321;border:1px solid #3b3734;border-radius:8px;overflow:hidden}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;padding:19px 24px;border-bottom:1px solid #403a35;color:#b9afa7;font-size:9px;letter-spacing:1.5px}.preview-toolbar>span:first-child{display:flex;align-items:center;gap:8px}.toolbar-divider{margin:0 8px;color:#71665d}.paper-wrap{padding:26px;max-height:calc(100vh - 160px);overflow:auto;scrollbar-width:thin;scrollbar-color:#756253 #252321}.paper{background:white;color:#222;min-height:760px;padding:36px 34px 23px;box-shadow:0 9px 30px #0003;font-size:10px;line-height:1.6;color-scheme:light}.paper-brand{display:flex;align-items:center;gap:7px}.paper-brand img{width:31px;height:43px;object-fit:cover}.paper-brand-name{font:19px/1.1 Bowlby,Impact,sans-serif;color:#000}.paper-tagline{font:5.5px Arial,sans-serif;letter-spacing:1px;margin-top:5px;color:#666}.paper-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.paper-kind{text-align:right;font-size:7px;letter-spacing:2px;color:#8a827b}.paper-kind strong{display:block;font:14px Anton,Impact,sans-serif;letter-spacing:.5px;color:var(--orange);margin-top:3px}.paper-title{border-top:3px solid var(--orange);padding-top:22px;margin-bottom:24px}.paper-eyebrow{font-size:7px;color:var(--orange);letter-spacing:1.8px;font-weight:bold}.paper-title h2{font:30px/1.25 Anton,Impact,sans-serif;text-transform:uppercase;margin:6px 0 8px;overflow-wrap:anywhere}.paper-title p{color:#777;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.paper-meta{display:flex;gap:30px;font-size:8px;color:#76716b;margin-top:18px}.paper-meta strong{display:block;color:#26221f;font-size:9px;font-weight:500}.paper-parties{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e7e0da;border-bottom:1px solid #e7e0da;padding:19px 0;gap:22px;margin-bottom:24px}.paper-label{font-size:7px;font-weight:bold;letter-spacing:1.3px;color:#8b7d70;margin-bottom:7px}.party-name{font-weight:bold;font-size:12px;overflow-wrap:anywhere}.party-detail{font-size:8px;color:#746c65;white-space:pre-wrap;overflow-wrap:anywhere}.paper-section-heading{font:16px Anton,Impact,sans-serif;letter-spacing:.3px;text-transform:uppercase;margin:0 0 13px}.quote-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8px}.quote-table th{text-align:left;border-bottom:1px solid #cfbba9;color:#897361;font-size:6px;letter-spacing:.5px;padding:8px 3px;font-weight:600;text-transform:uppercase}.quote-table th:first-child{width:55%}.quote-table th:nth-child(2){width:10%}.quote-table th:nth-child(3){width:17%}.quote-table th:last-child{width:18%;text-align:right}.quote-table td{padding:13px 3px;border-bottom:1px solid #e9e4de;vertical-align:top;overflow-wrap:anywhere}.quote-table td:last-child{text-align:right;font-weight:bold}.service-name{font-size:10px;font-weight:bold}.service-desc{font-size:8px;color:#777;margin:4px 0 6px;white-space:pre-wrap}.cost-tag{display:inline-block;color:#ae4b19;background:#faf0e8;padding:2px 5px;font-size:6px;line-height:1.5}.discount-note{color:#8a7766;font-size:7px;margin-top:3px}.paper-empty{padding:25px 15px;background:#faf8f6;color:#999;font-size:9px;text-align:center;border:1px dashed #dcd4cc}.paper-totals{display:grid;gap:12px;margin:22px 0}.total-block{background:#f6f3f0;padding:15px 18px;border-left:3px solid var(--orange)}.total-heading{font-size:8px;text-transform:uppercase;letter-spacing:.8px;font-weight:bold;color:#8a5838;margin-bottom:8px}.total-row{display:flex;justify-content:space-between;gap:15px;font-size:8px;margin:4px 0}.total-final{font-size:12px;font-weight:bold;color:#19110b;padding-top:7px;border-top:1px solid #dfd4ca;margin-top:7px}.period-note{color:#857567;font-size:7px;margin:8px 0 0}.paper-terms{margin-top:20px;display:grid;gap:12px}.paper-term h4{margin:0 0 4px;font-size:7px;text-transform:uppercase;letter-spacing:.8px;color:#8b6f57}.paper-term p{margin:0;font-size:8px;color:#71685f;white-space:pre-wrap;overflow-wrap:anywhere}.paper-signature{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:35px;font-size:7px;color:#86796e}.paper-signature span{display:block;padding-top:5px;border-top:1px solid #d6cdc4}.paper-footer{display:flex;justify-content:space-between;gap:15px;margin-top:26px;padding-top:12px;border-top:1px solid #e7e0da;font-size:6px;letter-spacing:.8px;color:#a08c7a}.preview-caption{padding:15px 24px;display:flex;gap:8px;align-items:center;justify-content:center;color:#90847a;font-size:10px;border-top:1px solid #403a35}.preview-caption svg{width:13px;height:13px}.app-footer{border-top:1px solid #292929;display:flex;justify-content:space-between;padding:20px 4%;font-size:8px;letter-spacing:1.5px;color:#8b8179}.muted{color:var(--orange);margin:0 8px}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#292019;border:1px solid #956541;padding:14px 22px;border-radius:6px;color:#f2d1b8;font-size:12px;z-index:20;max-width:90vw;box-shadow:0 5px 30px #0007}dialog{color:var(--text);background:#1c1917;border:1px solid #634632;border-radius:10px;width:480px;max-width:calc(100% - 32px);padding:30px}dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}dialog h2{font:27px Anton,sans-serif;margin:0 0 12px}dialog p,dialog li{color:#bcb0a6;font-size:13px}dialog ul{padding-left:20px;max-height:45vh;overflow:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
@media(min-width:1450px){.workspace{grid-template-columns:540px 1fr}.paper{padding:42px 48px;font-size:11px}.paper-wrap{padding:32px 45px}.paper-title h2{font-size:37px}.quote-table{font-size:9px}.paper{min-height:870px}}
@media(max-width:1100px){main{padding:32px 3%}.topbar{padding:0 3%}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:20px}.workspace{gap:18px;grid-template-columns:minmax(335px,.95fr) minmax(380px,1.05fr)}.form-section{padding:20px}.paper-wrap{padding:18px}.paper{padding:26px 22px}.heading-actions{margin:0}.paper-title h2{font-size:25px}}
@media(max-width:790px){.topbar{height:74px}.brand{font-size:20px}.app-label{display:none}.privacy-pill{font-size:9px;padding:7px 9px}main{padding:28px 18px}.page-heading{margin-bottom:24px}.workspace{grid-template-columns:1fr}.preview-panel{position:static}.paper-wrap{max-height:none;padding:20px}.paper{min-height:740px;padding:30px}.editor-heading{padding:19px 20px}.heading-actions{width:100%}.heading-actions .button{flex:1}h1{font-size:36px}.subtitle{font-size:12px}.app-footer{font-size:7px}.paper-title h2{font-size:30px}}
@media(max-width:400px){.brand-tag{font-size:6px}.brand img{width:33px}.privacy-pill{font-size:8px}.paper-wrap{padding:10px}.paper{padding:22px 18px}.form-section{padding:17px}.two{gap:10px}h1{font-size:31px}.button{padding:11px 12px}.three{gap:6px}.three input{padding:10px 8px}.paper-meta{gap:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.login-screen{grid-template-columns:minmax(0,1fr);justify-items:center}.login-card{min-width:0}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(ellipse at 50% 0,#c65a211b,transparent 60%),#101010}.login-card{width:480px;max-width:100%;border:1px solid #44352a;background:#191614;border-radius:12px;padding:40px;box-shadow:0 20px 80px #0007}.login-card>img{width:62px;height:84px;object-fit:contain;margin-bottom:22px}.login-card h1{font-size:37px}.login-card>p:not(.eyebrow){color:#a6978b;font-size:12px;margin-bottom:27px}.login-card label{margin:25px 0 18px}.login-card .button{width:100%}.login-card #login-error{color:#ffb08a;margin:0 0 15px}.main-nav{display:flex;gap:5px}.main-nav button{border:0;background:transparent;color:#b2a499;border-radius:5px;padding:10px 15px;font-size:12px}.main-nav button.active{background:#c65a211e;color:#f1a777}.main-nav button:hover{color:white}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px}.stat-card{border:1px solid #3b332d;border-radius:7px;background:#1a1715;padding:24px}.stat-card>span{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#b7a79a}.stat-card strong{display:block;font:29px Anton,Impact,sans-serif;color:white;margin:7px 0}.stat-card small{color:#938070;font-size:10px}.stat-card:nth-child(3) strong{color:var(--orange-light)}.archive-panel{border:1px solid #3b332d;border-radius:8px;background:#191715;overflow:hidden}.archive-filters{padding:20px 24px;display:flex;gap:18px;border-bottom:1px solid #3b332d;align-items:flex-end}.archive-filters label{min-width:150px;margin:0}.archive-filters .search-label{flex:1}.table-scroll{overflow:auto}.archive-table{width:100%;border-collapse:collapse;min-width:850px;font-size:12px}.archive-table th{text-align:left;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:17px 22px;background:#1d1916;color:#b4a08e;font-weight:500}.archive-table td{padding:22px;border-top:1px solid #322c27;vertical-align:middle;max-width:260px;overflow-wrap:anywhere}.archive-table td strong{color:#f1c3a3;font-weight:600}.archive-table small{color:#978676;font-size:10px;line-height:1.5;margin-top:5px}.amount-cell{white-space:nowrap}.amount-cell>div+div{margin-top:10px}.archive-table .overdue{color:#f89a75}.badge{display:inline-block;border-radius:4px;padding:5px 9px;white-space:nowrap;font-size:10px;background:#36302b;color:#bbb0a7}.badge.paid,.badge.accepted{background:#183a29;color:#91cbaa}.badge.issued,.badge.sent{background:#45301c;color:#efbb86}.badge.rejected,.badge.cancelled{background:#3f2424;color:#dca0a0}.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.row-actions button{padding:6px 8px;border:1px solid #57402f;border-radius:4px;background:transparent;color:#e2aa82;font-size:10px;white-space:nowrap}.row-actions button:hover{background:#c65a2120}.row-actions button:disabled{opacity:.5}.row-actions .delete-action{border-color:#3d332c;color:#a39080}.row-actions svg{width:14px;height:14px;display:block}.archive-empty{padding:70px 25px;text-align:center;color:#d2b49d;font:24px Anton,sans-serif}.archive-empty p{font:12px Arial,sans-serif;color:#9a8878;margin:12px 0 0}.customer-search{max-width:430px;margin-bottom:24px}.customer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.customer-card{background:#1b1714;border:1px solid #3b332d;border-radius:7px;padding:26px;overflow-wrap:anywhere}.customer-avatar{width:40px;height:40px;display:grid;place-items:center;background:#c65a2126;color:#e9a97e;border:1px solid #6e4124;border-radius:6px;font:23px Anton,sans-serif}.customer-card h2{font-size:17px;margin:18px 0 4px;color:#eed8c7}.customer-card p{color:#9e8c7d;font-size:12px;margin:0 0 20px}.customer-card>div:not(.row-actions,.customer-avatar){font-size:11px;color:#c9b9ab;margin:8px 0}.customer-card .row-actions{margin-top:22px}.settings-panel{max-width:650px;border:1px solid #463629;background:#1c1815;border-radius:8px;padding:30px}.settings-note{font-size:11px;color:#a38d7b;line-height:1.7;margin:18px 0 0}.settings-panel label{margin-bottom:18px}.small-button{min-height:34px;font-size:10px;padding:8px 12px}.editor-bottom{padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:10px}.editor-bottom>span{color:#a78c76;font-size:10px}input[readonly]{color:#f0ae7d;background:#201a15;border-color:#4d3725}.paper-totals:has(.total-block:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.paper-totals .period-note{grid-column:1/-1}.paper-totals:has(.total-block:nth-child(2)) .total-block{padding:12px}.paper-totals:has(.total-block:nth-child(2)) .total-final{font-size:10px}.paper-totals:has(.total-block:nth-child(2)) .total-heading{font-size:7px}#customer-dialog{max-height:90vh;overflow:auto}#settings-form label>span{color:var(--orange-light)}
@media(max-width:1100px){.stats-grid{gap:12px}.stat-card{padding:20px}.stat-card strong{font-size:26px}.customer-grid{grid-template-columns:repeat(2,1fr)}#editor-view .heading-actions{flex-wrap:wrap}.archive-filters{padding:18px;gap:12px}}
@media(max-width:790px){.main-nav{gap:0}.main-nav button{padding:9px 8px;font-size:10px}.topbar{gap:10px}.topbar .brand-tag{display:none}.topbar #logout{padding:8px 10px;min-height:32px;font-size:10px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card{padding:18px}.stat-card strong{font-size:27px}.archive-filters{display:grid;grid-template-columns:1fr 1fr}.archive-filters .search-label{grid-column:1/-1}.archive-filters label{min-width:0}.customer-grid{grid-template-columns:1fr}.settings-panel{padding:22px}.login-card{padding:28px}.login-card h1{font-size:32px}.login-screen{padding:20px}.editor-bottom{padding:20px}.editor-bottom .button{font-size:11px}.paper-meta{flex-wrap:wrap;gap:15px}.paper-totals:has(.total-block:nth-child(2)){grid-template-columns:1fr}.topbar .brand img{width:30px;height:43px}.topbar .brand{font-size:17px;gap:4px}.main-nav{margin-left:auto}.login-card input{font-size:16px}}

/* Flexible containers and readable touch controls across all views. */
.workspace>*,.fields>*,.frequency-fields>*,.stats-grid>*,.customer-grid>*,
.page-heading>*,.paper-parties>*,.total-block,.settings-panel,.service-card{min-width:0}
.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.three{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr)}
.frequency-fields{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
input,textarea,select{min-width:0;max-width:100%}
.stat-card strong,.total-row>span,.paper-kind,.preview-caption{overflow-wrap:anywhere}
.editor-tabs,.editor-mobile-actions{display:none}
.login-screen{min-height:100svh}
dialog{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
body:has(dialog[open]){overflow:hidden}

@media(max-width:1100px){
  input,textarea,select{font-size:16px;min-height:46px}
  label,.service-card label,.type-picker legend{font-size:12px}
  small,.section-help,.settings-note{font-size:11px}
  .button,.small-button,.icon-button,.main-nav button,.row-actions button,summary{min-height:44px}
  .icon-button{width:44px}
  .row-actions button{font-size:12px;padding:10px 12px;min-width:44px}
  .type-picker label{min-height:46px;font-size:13px}
  .type-picker input{min-height:0;width:18px;height:18px;flex-shrink:0}
  .workspace{grid-template-columns:minmax(0,1fr);gap:0}
  .preview-panel{position:static}
  .paper-wrap{max-height:none}
  .editor-tabs{display:flex;position:sticky;top:0;z-index:5;gap:6px;margin-bottom:18px;padding:8px;background:var(--bg);border:1px solid var(--border);border-radius:6px}
  .editor-tabs button{flex:1;min-width:0;min-height:46px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--muted);font-size:13px;font-weight:600;padding:10px}
  .editor-tabs button.active{background:#c65a2126;border-color:#805034;color:#ffc49e}
  #editor-view[data-pane="edit"] .preview-panel,#editor-view[data-pane="preview"] .editor{display:none}
  #editor-view .heading-actions{width:auto}
  #editor-view .heading-actions #save,#editor-view .heading-actions #export{display:none}
  #editor-view{padding-bottom:90px}
  .editor-mobile-actions{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:6;gap:10px;padding:12px max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#151311f5;border-top:1px solid #534131;box-shadow:0 -5px 24px #0004}
  .editor-mobile-actions .button{flex:1;min-width:0;min-height:48px;font-size:13px}
  #quote-form input,#quote-form select,#quote-form textarea{scroll-margin-top:90px;scroll-margin-bottom:110px}
  body:has(#editor-view:not([hidden])) .toast{bottom:calc(88px + env(safe-area-inset-bottom))}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat-card strong{font-size:clamp(23px,3.5vw,30px)}
  .archive-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .archive-filters .search-label{grid-column:1/-1}
  .archive-filters label{min-width:0}
  .customer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-heading{align-items:flex-start}
  .topbar{height:auto;min-height:80px;gap:16px;padding-block:12px}
  .main-nav button{font-size:13px}
  .editor-bottom{flex-wrap:wrap}
  .app-footer{flex-wrap:wrap;gap:12px;padding-bottom:max(20px,env(safe-area-inset-bottom))}
}

/* The archive becomes document cards without losing table headings for assistive technology. */
@media(max-width:1024px){
  .table-scroll{overflow:visible}
  .archive-table{display:block;min-width:0}
  .archive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .archive-table tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px}
  .archive-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;background:#201b17;border:1px solid #49392d;border-radius:7px;padding:20px}
  .archive-table td{display:block;min-width:0;max-width:none;padding:0;border:0}
  .archive-table td::before{content:attr(data-label);display:block;font-size:10px;color:#ad9784;letter-spacing:.6px;text-transform:uppercase;margin-bottom:6px}
  .archive-table td:first-child,.archive-table td:nth-child(2),.archive-table td:last-child{grid-column:1/-1}
  .archive-table td:first-child>strong{font-size:17px}
  .archive-table td:first-child>small{font-size:12px}
  .archive-table td:last-child{padding-top:14px;border-top:1px solid #49392d}
  .archive-table td:last-child::before{display:none}
  .archive-table .amount-cell{white-space:normal}
  .archive-table .row-actions{gap:8px}
  .badge{font-size:11px}
}

@media(max-width:700px){
  main{padding:26px max(16px,env(safe-area-inset-right)) 36px max(16px,env(safe-area-inset-left))}
  .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px 16px}
  .topbar .brand{font-size:20px;gap:8px}
  .topbar .brand img{width:36px;height:45px}
  .topbar #logout{grid-column:2;grid-row:1;min-height:44px;font-size:12px;padding:10px 16px}
  .main-nav{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin:0;gap:6px}
  .main-nav button{font-size:13px;padding:10px 8px;border:1px solid #302821}
  h1{font-size:clamp(30px,7.5vw,40px)}
  .page-heading{gap:20px;margin-bottom:24px}
  .subtitle{font-size:13px}
  .heading-actions{flex-wrap:wrap;gap:8px}
  .heading-actions .button{flex:1 1 140px;font-size:13px}
  #editor-view .heading-actions{width:100%}
  #editor-view .heading-actions #back{flex:0 1 auto}
  .customer-grid,.archive-table tbody{grid-template-columns:minmax(0,1fr)}
  .customer-search{max-width:none}
  .customer-card{padding:22px}
  .archive-table tbody{padding:14px;gap:14px}
  .archive-table tr{padding:18px}
  .stat-card{padding:16px}
  .stat-card>span{font-size:10px;letter-spacing:.5px}
  .stat-card small{font-size:11px}
  .archive-empty{font-size:22px;padding:40px 20px}
  .settings-panel{padding:20px}
  .form-section{padding:20px}
  .service-card{padding:16px}
  .two,.three{grid-template-columns:minmax(0,1fr);gap:0}
  .fields label:last-child{margin-bottom:16px}
  .frequency-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .service-line-total{font-size:12px;flex-wrap:wrap}
  .service-line-total strong{font-size:16px;white-space:normal;overflow-wrap:anywhere}
  .editor-bottom{flex-direction:column;align-items:stretch}
  .editor-bottom>span{font-size:12px}
  .preview-toolbar{padding:16px;font-size:9px;letter-spacing:1px}
  .preview-caption{font-size:11px;padding:15px;text-align:center}
  .paper-wrap{padding:12px}
  .paper{padding:24px 18px;min-height:0;font-size:12px}
  .paper-title h2{font-size:28px}
  .paper-top{gap:14px;flex-wrap:wrap}
  .paper-kind{font-size:8px;letter-spacing:1px}
  .paper-kind strong{font-size:15px}
  .paper-parties{grid-template-columns:minmax(0,1fr);gap:18px}
  .paper-label,.paper-eyebrow,.paper-meta,.party-detail,.paper-term p{font-size:10px}
  .paper-meta strong,.paper-term h4{font-size:11px}
  .party-name{font-size:14px}
  .paper-totals:has(.total-block:nth-child(2)){grid-template-columns:minmax(0,1fr)}
  .total-heading,.paper-totals:has(.total-block:nth-child(2)) .total-heading{font-size:10px}
  .total-row{font-size:11px}
  .total-final,.paper-totals:has(.total-block:nth-child(2)) .total-final{font-size:13px}
  .period-note,.paper-signature{font-size:10px}
  .paper-footer{font-size:8px;letter-spacing:0;flex-wrap:wrap}
  .quote-table,.quote-table tbody{display:block;width:100%}
  .quote-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .quote-table tr{display:grid;grid-template-columns:minmax(0,.7fr) repeat(2,minmax(0,1fr));gap:10px;padding:16px 0;border-bottom:1px solid #e9e4de}
  .quote-table td{min-width:0;padding:0;border:0;font-size:11px}
  .quote-table td:first-child{grid-column:1/-1}
  .quote-table td[data-label]::before{content:attr(data-label);display:block;color:#897361;font-size:9px;font-weight:400;margin-bottom:4px}
  .service-name{font-size:13px}
  .service-desc{font-size:11px}
  .cost-tag,.discount-note{font-size:9px}
  dialog{padding:22px;max-height:calc(100dvh - 24px);max-width:calc(100% - 24px)}
  #customer-dialog{max-height:calc(100dvh - 24px)}
  .dialog-actions{position:sticky;bottom:-22px;background:#1c1917;padding:14px 0;margin-top:12px;gap:8px;flex-wrap:wrap}
  .dialog-actions .button{flex:1;min-width:0;font-size:13px}
  .login-screen{padding:16px}
  .login-card{padding:26px 22px}
  .login-card h1{font-size:clamp(28px,8vw,36px)}
  .login-card .button{font-size:13px}
  .toast{font-size:13px;padding:12px 16px}
}

@media(max-width:360px){
  .stats-grid{grid-template-columns:minmax(0,1fr)}
  .archive-filters{grid-template-columns:minmax(0,1fr)}
  .archive-table tr{grid-template-columns:minmax(0,1fr)}
  .frequency-fields{grid-template-columns:minmax(0,1fr)}
  .editor-mobile-actions{gap:8px;padding-inline:12px}
  .editor-mobile-actions .button{font-size:12px;padding-inline:9px;gap:6px}
  .editor-tabs button{font-size:12px}
}

@media(pointer:coarse){
  .button,.small-button,.icon-button,.main-nav button,.row-actions button,summary{min-height:44px}
  .icon-button{width:44px}
  input,select{min-height:46px}
}
