[hidden]{display:none!important}
:root{--bg:#edf3fb;--page-bg:linear-gradient(135deg,#eaf2ff 0%,#f5f8fc 52%,#eef7f4 100%);--panel:#fff;--ink:#121826;--muted:#687386;--line:#e3e7ec;--soft:#f8fafc;--accent:#151b2b;--accent2:#eef2ff;--ok:#166534;--danger:#b42318;--shadow:0 16px 40px rgba(18,24,38,.08)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--page-bg);background-attachment:fixed}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.sitebar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;font-weight:850}.brand small{font-size:12px;color:var(--muted);font-weight:600;margin-left:4px}.brandmark{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:var(--accent);color:white}.theme-control{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);font-weight:700}.theme-control select{width:auto;min-width:108px;padding:7px 28px 7px 9px;border-radius:7px;background:#fff}.theme-blue{--bg:#edf3fb;--page-bg:linear-gradient(135deg,#eaf2ff 0%,#f5f8fc 52%,#eef7f4 100%)}.theme-teal{--bg:#eaf6f4;--page-bg:linear-gradient(135deg,#dff5f0 0%,#f3faf8 55%,#eaf1f8 100%)}.theme-sand{--bg:#f7f1e8;--page-bg:linear-gradient(135deg,#f8ead8 0%,#fbf7f1 55%,#eef3f6 100%)}.theme-neutral{--bg:#f4f5f7;--page-bg:#f4f5f7}.site-actions,.primary-actions,.convert-area{display:flex;align-items:center;gap:8px}.save-status{font-size:12px;color:var(--muted)}.workspace{max-width:1580px;margin:0 auto;padding:18px;display:grid;grid-template-columns:minmax(620px,1.08fr) minmax(480px,.92fr);gap:18px;align-items:start}.editor-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(18,24,38,.03)}.picker-zone{padding:16px 18px;border-bottom:1px solid var(--line);display:grid;gap:13px}.picker-block{display:grid;gap:7px}.eyebrow{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:850;color:var(--muted)}.chip-group{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:750}.chip.active{border-color:var(--accent);background:var(--accent);color:white}.mode-note{margin:0;font-size:12px;color:var(--muted)}.editor-body{padding:18px;display:grid;gap:14px}.panel-section{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fff}.compact-party-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.party-block+ .party-block{border-left:1px solid var(--line);padding-left:14px}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.section-title-row h2{font-size:14px;margin:0}.hint{font-size:11px;color:var(--muted)}label{display:grid;gap:5px;font-size:11px;font-weight:750;color:#344054}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #d8dee6;border-radius:7px;background:#fff;outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#8a94a6;box-shadow:0 0 0 3px rgba(21,27,43,.06)}textarea{resize:vertical}.field-grid{display:grid;gap:10px}.field-grid.two{grid-template-columns:1fr 1fr}.field-grid.three{grid-template-columns:repeat(3,1fr)}.field-grid.four{grid-template-columns:repeat(4,1fr)}.top-gap{margin-top:10px}.logo-row{display:flex;align-items:center;gap:10px;margin-top:8px}.file-btn{display:inline-block;border:1px dashed #b7c0cd;padding:7px 9px;border-radius:7px;font-size:11px;cursor:pointer;background:var(--soft)}.text-btn{border:0;background:none;color:var(--muted);font-size:11px;padding:6px}.item-head,.item-row{display:grid;grid-template-columns:minmax(170px,2fr) 100px 76px 100px 112px 34px;gap:7px;align-items:center}.item-head{padding:0 2px 7px;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.items-list{display:grid;gap:7px}.item-row input,.item-row select{padding:8px}.amount-readonly{background:#f8fafc}.remove-item{border:1px solid var(--line);background:#fff;height:35px;border-radius:7px;color:var(--muted);font-size:17px}.add-row{width:100%;margin-top:9px;border:1px dashed #b8c1ce;border-radius:7px;background:var(--soft);padding:9px;font-size:12px;font-weight:800}.totals-section{display:grid;grid-template-columns:1fr 275px;gap:16px}.total-card{align-self:start;border:1px solid var(--line);background:var(--soft);border-radius:9px;padding:12px;display:grid;gap:7px}.total-card>div,.doc-totals>div{display:flex;justify-content:space-between;gap:18px;font-size:12px}.total-card .grand,.doc-totals .grand{border-top:1px solid var(--line);padding-top:9px;margin-top:2px;font-size:17px}.editor-actions{position:sticky;bottom:0;z-index:10;border-top:1px solid var(--line);padding:11px 18px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);display:flex;justify-content:space-between;gap:12px}.btn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:9px 12px;font-weight:750;font-size:12px}.btn-primary{background:var(--accent);border-color:var(--accent);color:white}.btn-secondary{background:#fff}.btn-quiet{border-color:transparent;background:transparent}.privacy-pill{font-size:10px;color:var(--ok);font-weight:850;background:#ecfdf3;border:1px solid #bbf7d0;border-radius:999px;padding:5px 8px}.source-badge{font-size:10px;border:1px solid #c7d2fe;background:#eef2ff;color:#3730a3;border-radius:999px;padding:4px 7px}.preview-column{position:sticky;top:86px;display:grid;gap:10px}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px}.preview-toolbar>div:first-child{display:flex;align-items:center;gap:9px}.template-switcher{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.template-switcher select{padding:6px 8px}.paper{background:white;min-height:920px;border:1px solid #d9dee5;border-radius:4px;box-shadow:var(--shadow);padding:48px 50px;display:flex;flex-direction:column;gap:25px}.doc-header{display:flex;justify-content:space-between;gap:24px}.preview-logo{max-width:135px;max-height:58px;object-fit:contain;margin-bottom:11px}.logo-fallback{height:48px;width:120px;border:1px dashed #cbd5e1;color:#98a2b3;border-radius:6px;display:grid;place-items:center;font-size:10px;margin-bottom:11px}.seller-block{font-size:11px;display:grid;gap:2px;color:#475467}.seller-block strong{font-size:13px;color:var(--ink)}.doc-ident{text-align:right;display:grid;justify-items:end;gap:5px}.doc-ident h1{margin:0;font-size:29px;letter-spacing:.02em}.doc-ident>strong{font-size:11px;color:#475467}.status-pill{display:inline-block;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:850;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.status-pill.paid{background:#ecfdf3;color:#166534;border-color:#bbf7d0}.doc-parties{display:grid;grid-template-columns:1fr 1fr;gap:22px}.doc-parties>div{font-size:11px;color:#475467;display:grid;gap:2px}.doc-parties strong{color:var(--ink);font-size:12px}.doc-kicker{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:#98a2b3;margin-bottom:3px}.trade-block{border:1px solid var(--line);border-radius:6px;background:#fafbfc;padding:9px 10px;font-size:10px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.doc-table{width:100%;border-collapse:collapse;font-size:10.5px}.doc-table th{padding:9px 8px;background:#f3f5f7;text-align:left;color:#475467;font-size:9px;text-transform:uppercase}.doc-table td{padding:10px 8px;border-bottom:1px solid #edf0f3}.doc-table .num{text-align:right}.doc-totals{width:310px;margin-left:auto;display:grid;gap:6px}.doc-notes{display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:10.5px}.doc-notes p{margin:0;white-space:pre-wrap;color:#475467}.doc-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:12px;display:flex;justify-content:space-between;color:#98a2b3;font-size:9px}.paper.classic{font-family:Georgia,"Times New Roman",serif}.paper.classic .doc-ident h1{font-weight:500}.paper.classic .doc-table th{background:#fff;border-top:2px solid #111;border-bottom:1px solid #111}.paper.classic .status-pill{font-family:Inter,ui-sans-serif,system-ui}.dialog{width:min(720px,92vw);border:1px solid var(--line);border-radius:12px;padding:0;box-shadow:var(--shadow)}.dialog::backdrop{background:rgba(17,24,39,.42)}.small-dialog{width:min(470px,92vw)}.dialog-head{padding:18px;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0 0 4px;font-size:17px}.dialog-head p{margin:0;color:var(--muted);font-size:12px}.icon-close{border:0;background:none;font-size:24px;color:var(--muted)}.saved-list{padding:12px;display:grid;gap:8px;max-height:60vh;overflow:auto}.saved-card{border:1px solid var(--line);border-radius:9px;padding:11px;display:flex;align-items:center;justify-content:space-between;gap:12px}.saved-card h3{font-size:12px;margin:0 0 3px}.saved-card p{font-size:10px;color:var(--muted);margin:0}.saved-card-actions{display:flex;gap:6px}.dialog-actions{padding:14px 18px;display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;right:20px;bottom:20px;background:#111827;color:#fff;padding:10px 13px;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s;z-index:50}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:1180px){.workspace{grid-template-columns:1fr}.preview-column{position:static}.paper{min-height:760px}.editor-actions{position:static}}
@media(max-width:760px){.theme-control span{display:none}.theme-control select{min-width:94px}.sitebar{height:auto;min-height:62px;padding:10px 12px;gap:10px}.brand small,.save-status{display:none}.site-actions{gap:5px}.workspace{padding:10px}.compact-party-grid,.totals-section,.doc-parties,.doc-notes{grid-template-columns:1fr}.party-block+ .party-block{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:14px}.field-grid.two,.field-grid.three,.field-grid.four{grid-template-columns:1fr}.item-head{display:none}.item-row{grid-template-columns:1fr 1fr 1fr 34px}.item-row .item-desc{grid-column:1/-1}.item-row .item-category{grid-column:1/2}.item-row .item-amount{grid-column:3/4}.paper{padding:28px 23px;min-height:680px}.doc-header{display:block}.doc-ident{margin-top:18px;text-align:left;justify-items:start}.trade-block{grid-template-columns:1fr 1fr}.doc-totals{width:100%}.editor-actions{align-items:stretch;flex-direction:column}.convert-area,.primary-actions{justify-content:space-between}.convert-area select{min-width:0}.privacy-pill{display:none}}
.mini-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.mini-link{border:0;background:transparent;padding:2px 0;color:#475467;font-size:10.5px;font-weight:800;text-decoration:underline;text-decoration-color:#cbd5e1;text-underline-offset:3px}.mini-link:hover{color:var(--ink);text-decoration-color:#98a2b3}.library-toolbar{padding:12px;border-bottom:1px solid var(--line);background:#fafbfc}.library-toolbar input{max-width:360px}.library-card{border:1px solid var(--line);border-radius:9px;padding:11px;display:flex;align-items:center;justify-content:space-between;gap:12px}.library-card h3{font-size:12px;margin:0 0 3px}.library-card p{font-size:10px;color:var(--muted);margin:0}.library-card .rate{font-weight:800;color:var(--ink)}.profile-saved{color:var(--ok)!important}.section-title-row>div:first-child h2{margin-bottom:2px}
@media(max-width:760px){.mini-actions{gap:7px}.section-title-row{align-items:flex-start}.library-card{align-items:flex-start;flex-direction:column}.library-card .saved-card-actions{width:100%;justify-content:flex-end}}
.status-pill.neutral-status{background:#f8fafc;color:#475467;border-color:#d0d5dd}

/* v0.3 specialized Freelancer / Contractor modes */
.mode-options{border:1px solid #dbe5f0;background:#f8fbff;border-radius:9px;padding:12px}.mode-options-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:11px}.mode-options-head strong{display:block;font-size:13px;margin-top:2px}.mode-options-head p{margin:3px 0 0;color:var(--muted);font-size:11px;font-weight:500}.preset-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.preset{border:1px solid #cfd8e3;background:#fff;border-radius:999px;padding:6px 9px;font-size:10.5px;font-weight:800}.preset.active{background:var(--accent);border-color:var(--accent);color:#fff}.field-grid.five{grid-template-columns:1.2fr 1fr .75fr .75fr 1fr}.total-card .balance,.doc-totals .balance{border-top:1px dashed #cbd5e1;padding-top:8px;margin-top:2px;font-size:15px;color:#0f172a}.mode-summary{border:1px solid #dbe5f0;border-radius:6px;background:#f8fbff;padding:9px 10px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;font-size:10px}.mode-summary>div{min-width:0}.mode-summary span{display:block;overflow-wrap:anywhere}.category-summary{display:flex;gap:6px;align-items:center;flex-wrap:wrap;border-top:1px solid #edf0f3;padding-top:8px;margin-top:-10px}.category-summary-title{width:100%;font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:#98a2b3}.category-chip{display:flex;gap:8px;align-items:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:999px;padding:4px 7px;font-size:8.5px;color:#475467}.category-chip strong{color:#111827}.theme-teal .mode-options,.theme-teal .mode-summary{background:#f4fbfa}.theme-sand .mode-options,.theme-sand .mode-summary{background:#fffaf2}
@media(max-width:900px){.field-grid.five{grid-template-columns:1fr 1fr}.mode-options-head{flex-direction:column}.preset-buttons{justify-content:flex-start}.mode-summary{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.field-grid.five{grid-template-columns:1fr}.mode-summary{grid-template-columns:1fr 1fr}}


/* v0.4 — document-quality controls */
.presentation-section{background:#fbfcfe}
.presentation-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px}
.presentation-card{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff}
.presentation-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:12px}
.signature-upload-row{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.paper{--doc-accent:#152238;position:relative;overflow:hidden}
.doc-accent-rule{height:5px;background:var(--doc-accent);margin:-48px -50px 29px}
.paper.accent-navy{--doc-accent:#152238}
.paper.accent-blue{--doc-accent:#1d4ed8}
.paper.accent-teal{--doc-accent:#0f766e}
.paper.accent-burgundy{--doc-accent:#7f1d1d}
.paper.accent-slate{--doc-accent:#475569}
.doc-ident h1{color:var(--doc-accent)}
.doc-ident>strong{letter-spacing:.035em}
.doc-kicker{color:#7b8797}
.doc-table-wrap{width:100%;overflow:visible}
.doc-table th{border-bottom:1px solid #dfe4ea}
.doc-table td:first-child{font-weight:600;color:#273142}
.doc-table tr{break-inside:avoid;page-break-inside:avoid}
.doc-totals{break-inside:avoid;page-break-inside:avoid}
.doc-totals .grand{border-top:2px solid var(--doc-accent);color:var(--doc-accent)}
.doc-information-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;font-size:10.5px;break-inside:avoid;page-break-inside:avoid}
.doc-info-card{border-top:1px solid #dfe4ea;padding-top:9px;min-width:0}
.doc-info-card.wide-card{grid-column:1/-1}
.doc-info-card p{margin:0;color:#475467;white-space:pre-wrap;overflow-wrap:anywhere}
.structured-payment{display:grid;gap:3px;color:#475467}
.payment-line{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:start}
.payment-line b{font-weight:700;color:#344054}
.payment-line span{overflow-wrap:anywhere}
.additional-payment-note{margin-top:6px!important}
.signature-section{width:230px;margin-top:3px;display:grid;gap:3px;break-inside:avoid;page-break-inside:avoid}
.signature-rule{height:54px;border-bottom:1px solid #98a2b3;display:flex;align-items:flex-end}
.signature-image{max-width:170px;max-height:50px;object-fit:contain;object-position:left bottom}
.signature-section strong{font-size:10.5px;margin-top:3px}
.signature-section>span:not(.doc-kicker){font-size:9.5px;color:#667085}
.signature-section .doc-kicker{margin-top:2px}
.paper.executive{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.paper.executive .doc-accent-rule{height:10px}
.paper.executive .doc-header{padding-bottom:17px;border-bottom:1px solid #e5e7eb}
.paper.executive .doc-ident h1{font-size:31px;font-weight:850}
.paper.executive .doc-table th{background:var(--doc-accent);color:white;border:0}
.paper.executive .doc-table td{padding-top:11px;padding-bottom:11px}
.paper.executive .status-pill{border-radius:4px}
.paper.classic .doc-accent-rule{height:2px;background:#111}
.paper.classic .doc-ident h1{color:#111}
.paper.classic .doc-totals .grand{border-top-color:#111;color:#111}
.paper.hide-category .category-col,
.paper.hide-category .doc-table tbody td:nth-child(2){display:none}
.status-pill.neutral-status{background:#f8fafc;color:#475569;border-color:#d8dee6}
@media(max-width:900px){.presentation-grid{grid-template-columns:1fr}}
@media(max-width:760px){
  .doc-accent-rule{margin:-28px -23px 22px}
  .doc-information-grid{grid-template-columns:1fr}
  .doc-info-card.wide-card{grid-column:auto}
}

/* v0.5: responsive editor and document presentation. */
button:focus-visible, a:focus-visible, summary:focus-visible {
  outline:3px solid #2563eb; outline-offset:3px;
}
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline:2px solid #2563eb; outline-offset:1px;
}
[aria-invalid="true"] { border-color:#b42318; }
.workspace, .workspace > *, .field-grid > *, .party-block, .settings-side,
.presentation-card, .item-field, .doc-parties > *, .seller-identity, .doc-ident { min-width:0; }
input, select, textarea { max-width:100%; }
.workspace { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
.item-head, .item-row {
  grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(0,.65fr) minmax(0,.85fr) minmax(0,1fr) 32px;
}
.item-field { display:block; }
.item-field input, .item-field select { width:100%; min-width:0; }
.mobile-item-label, .mobile-view-switch, .preview-mobile-actions, #printWarning { display:none; }
.totals-section { grid-template-columns:minmax(0,1fr) minmax(190px,.8fr); }
.editor-actions { flex-wrap:wrap; }
.convert-area { flex:1; min-width:0; }
.convert-area select { min-width:0; }
.primary-actions { flex-wrap:wrap; }
.optional-group { border-top:1px solid var(--line); padding-top:10px; margin-top:12px; }
summary { cursor:pointer; font-size:13px; font-weight:750; padding:8px 0; color:#263449; }
details.panel-section > summary { padding:3px 0; }
details.panel-section[open] > summary { margin-bottom:14px; }
.output-validation { background:#fff5f3; border:1px solid #f6c5bd; border-radius:9px; padding:14px; font-size:13px; }
.output-validation ul { padding-left:20px; margin:8px 0 0; }
.validation-link { text-align:left; background:transparent; color:#912018; border:0; padding:5px 0; text-decoration:underline; }
.page-guide-note { margin:0; color:#667085; font-size:11px; line-height:1.5; }
.preview-column { position:static; }
.paper {
  min-height:0; aspect-ratio:210/297; padding:34px 32px;
  gap:22px; border-radius:2px; overflow:visible; font-size:12px;
  color:#202c3c; line-height:1.5;
}
.paper > * { flex-shrink:0; }
.doc-accent-rule { height:4px; margin:-34px -32px 4px; }
.doc-header { gap:18px; align-items:flex-start; }
.seller-identity { flex:1; }
.preview-logo { display:block; width:auto; height:auto; max-width:140px; max-height:76px; margin:0 0 12px; object-fit:contain; object-position:left center; }
.seller-block { gap:3px; line-height:1.55; }
.seller-block strong { font-size:17px; line-height:1.3; color:var(--doc-accent); }
.seller-block span, .doc-parties span { white-space:pre-line; overflow-wrap:anywhere; }
.doc-ident { flex:0 1 46%; gap:7px; }
.doc-ident h1 { font-size:clamp(20px,2.1vw,29px); line-height:1.1; overflow-wrap:anywhere; }
.doc-ident > strong { overflow-wrap:anywhere; }
.doc-parties { gap:20px; padding:16px 0; border-top:1px solid #e4e8ee; border-bottom:1px solid #e4e8ee; }
.doc-parties > div { display:flex; flex-direction:column; gap:4px; font-size:11px; }
.doc-parties strong { font-size:13px; }
.doc-kicker { color:var(--doc-accent); font-size:9px; line-height:1.5; letter-spacing:.09em; }
.trade-block, .mode-summary { grid-template-columns:repeat(auto-fit,minmax(100px,1fr)); background:#f7f9fc; gap:12px; border-color:#e4e8ee; line-height:1.5; }
.doc-table { table-layout:fixed; font-size:11px; line-height:1.5; }
.doc-table th { font-size:8.5px; letter-spacing:.035em; padding:9px 6px; color:var(--doc-accent); background:#eef2f6; }
.doc-table td { vertical-align:top; padding:10px 6px; }
.doc-table th:first-child { width:38%; }
.doc-table th.category-col { width:14%; }
.doc-table th:nth-child(3) { width:9%; }
.doc-table th:nth-child(4) { width:18%; }
.doc-table th:nth-child(5) { width:21%; }
.paper.hide-category .doc-table th:first-child { width:49%; }
.paper.hide-category .doc-table th:nth-child(4) { width:19%; }
.paper.hide-category .doc-table th:nth-child(5) { width:23%; }
.doc-table td:first-child { white-space:pre-wrap; overflow-wrap:anywhere; font-weight:500; }
.doc-table td.category-col { overflow-wrap:anywhere; color:#667085; font-size:10px; }
.num { font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.doc-totals { width:65%; max-width:350px; gap:7px; padding-top:4px; }
.doc-totals > div { font-size:11px; gap:12px; align-items:baseline; }
.doc-totals > div > :last-child { text-align:right; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.doc-totals .grand { font-size:16px; padding-top:10px; }
.doc-totals .balance { font-size:14px; font-weight:700; padding-top:10px; }
.doc-information-grid { display:block; font-size:11px; line-height:1.65; break-inside:auto; }
.doc-info-card { margin:0 0 14px; padding-top:10px; }
.doc-info-card:last-child { margin-bottom:0; }
.doc-info-card p { orphans:3; widows:3; }
.structured-payment { gap:4px; }
.payment-line { grid-template-columns:105px minmax(0,1fr); }
.signature-section { width:220px; max-width:100%; gap:4px; }
.signature-rule { height:65px; }
.signature-image { max-height:60px; max-width:190px; margin-bottom:3px; }
.signature-section strong { font-size:12px; }
.signature-section > span:not(.doc-kicker) { font-size:11px; }
.doc-footer { gap:15px; line-height:1.5; overflow-wrap:anywhere; padding-top:12px; font-size:9px; color:#64748b; }
.doc-footer > span { min-width:0; }
.doc-footer > span:last-child { text-align:right; }
.paper.executive .doc-accent-rule { height:8px; }
.paper.executive .doc-header { border-bottom:2px solid var(--doc-accent); padding-bottom:16px; }
.paper.executive .doc-ident h1 { font-size:clamp(22px,2.2vw,30px); font-weight:850; }
.paper.executive .seller-block strong { font-size:18px; }
.paper.executive .doc-parties { border:0; background:#f5f7fa; padding:14px; }
.paper.executive .doc-table th { background:var(--doc-accent); color:white; }
.paper.executive .doc-table td { padding-top:12px; padding-bottom:12px; }
.paper.executive .doc-totals .grand { background:#f5f7fa; padding:10px; }
.paper.classic { font-family:Georgia,"Times New Roman",serif; }
.paper.classic .doc-accent-rule { height:1px; background:var(--doc-accent); }
.paper.classic .doc-ident h1 { color:var(--doc-accent); font-size:28px; font-weight:400; letter-spacing:.04em; }
.paper.classic .doc-header { padding-bottom:10px; border-bottom:2px solid var(--doc-accent); }
.paper.classic .doc-parties { border-top:0; border-bottom:1px solid #bfc6cd; }
.paper.classic .doc-table th { border-top:1px solid var(--doc-accent); border-bottom:1px solid var(--doc-accent); color:var(--doc-accent); background:transparent; }
.paper.classic .doc-totals .grand { color:var(--doc-accent); border-top:1px double var(--doc-accent); }
.paper.classic .doc-kicker { letter-spacing:.06em; }
.page-guides { position:absolute; inset:0; pointer-events:none; z-index:1; }
.page-boundary { position:absolute; left:0; right:0; border-top:1px dashed #c1943e; font:9px/1.4 ui-sans-serif,system-ui; color:#885e10; text-align:right; }
.page-boundary::first-line { background:#fff8e8; }
@media screen { .missing-description td:first-child::before { content:"Description required"; color:#b42318; font-style:italic; } }
@media (max-width:1250px) {
  .workspace { grid-template-columns:minmax(0,1fr); max-width:920px; }
  .paper { padding:40px; }
  .doc-accent-rule { margin:-40px -40px 4px; }
  .doc-ident h1 { font-size:29px; }
  .doc-ident { flex-basis:42%; }
}
@media (max-width:760px) {
  .sitebar { height:auto; padding:10px 14px; flex-wrap:wrap; gap:8px; position:static; }
  .brand { flex:1 1 100%; }
  .site-actions { width:100%; display:flex; flex-wrap:wrap; gap:7px; }
  .site-actions .theme-control { flex:1; min-width:90px; }
  .theme-control select { width:100%; min-width:0; min-height:40px; }
  .site-actions .btn { min-height:40px; white-space:nowrap; }
  .mobile-view-switch { display:flex; gap:5px; margin:12px 14px 0; padding:4px; border:1px solid #dae2ed; border-radius:10px; background:#e8eef6; }
  .mobile-view-switch button { flex:1; border:0; padding:10px; min-height:42px; border-radius:7px; background:transparent; font-size:13px; font-weight:750; }
  .mobile-view-switch [aria-pressed="true"] { background:#fff; box-shadow:0 1px 4px #14203916; }
  .workspace { padding:12px 10px; gap:14px; }
  body:not(.view-preview) .preview-column { display:none; }
  body.view-preview .editor-card { display:none; }
  .preview-mobile-actions { display:flex; }
  .preview-mobile-actions .btn { width:100%; min-height:44px; }
  .editor-body { padding:10px; gap:12px; }
  .panel-section { padding:12px; }
  .picker-zone { padding:14px 12px; }
  .chip { min-height:40px; }
  .field-grid.two, .field-grid.three, .field-grid.four, .field-grid.five, .totals-section, .presentation-grid { grid-template-columns:minmax(0,1fr); }
  input, select, textarea { min-height:44px; font-size:16px; }
  .btn, .mini-link, .text-btn { min-height:40px; }
  .mini-link { font-size:11px; }
  .section-title-row { flex-wrap:wrap; }
  .item-row { grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); background:#fafbfd; padding:10px; border-radius:9px; gap:10px 8px; }
  .mobile-item-label { display:block; font-size:11px; margin-bottom:5px; font-weight:700; }
  .item-field.description-field { grid-column:1/-1; }
  .item-field.category-field { grid-column:1/3; }
  .item-field.qty-field { grid-column:1; grid-row:3; }
  .item-field.rate-field { grid-column:2; grid-row:3; }
  .item-field.amount-field { grid-column:3; grid-row:3; }
  .item-row .remove-item { grid-column:3; grid-row:2; align-self:end; min-height:44px; }
  .item-row input, .item-row select { padding:9px 6px; }
  .item-row .item-amount { font-size:13px; }
  .total-card { width:100%; }
  .editor-actions { padding:12px; }
  .convert-area, .primary-actions { width:100%; flex-wrap:wrap; }
  .primary-actions .btn { flex:1; }
  .convert-area select { flex:1; width:0; }
  .preview-toolbar { flex-wrap:wrap; }
  .preview-toolbar > div:first-child { flex-wrap:wrap; }
  .template-switcher select { width:auto; font-size:14px; }
  .paper { padding:22px 16px; gap:18px; }
  .doc-accent-rule { margin:-22px -16px 2px; }
  .doc-header { display:block; }
  .doc-ident { margin-top:14px; text-align:left; justify-items:start; }
  .doc-ident h1, .paper.executive .doc-ident h1, .paper.classic .doc-ident h1 { font-size:25px; }
  .doc-parties { grid-template-columns:1fr; gap:14px; }
  .doc-table { font-size:9px; }
  .doc-table th { font-size:7px; padding:7px 3px; }
  .doc-table td { padding:8px 3px; }
  .doc-table td.category-col { font-size:8px; }
  .doc-totals { width:100%; max-width:none; }
  .doc-totals .grand { font-size:15px; }
  .doc-footer { flex-direction:column; gap:5px; }
  .doc-footer > span:last-child { text-align:left; }
  .saved-card { flex-direction:column; align-items:flex-start; }
  .saved-card-actions { flex-wrap:wrap; }
  .dialog-head { padding:14px; }
}

/* The page margin owns A4 whitespace. Content uses the available width, not 210mm. */
@media print {
  @page { size:A4 portrait; margin:10mm; }
  html, body { width:auto!important; margin:0; padding:0; background:#fff; }
  .sitebar, .mobile-view-switch, .editor-card, .preview-toolbar, .page-guide-note,
  .preview-mobile-actions, .page-guides, .toast, dialog { display:none!important; }
  .workspace { display:block; width:auto; max-width:none; padding:0; margin:0; }
  .preview-column, body:not(.view-preview) .preview-column { display:block!important; position:static; }
  .paper {
    display:block; width:auto!important; min-height:0!important; aspect-ratio:auto;
    margin:0; padding:0!important; border:0; border-radius:0; box-shadow:none;
    overflow:visible!important; color:#202c3c; font-size:10pt; line-height:1.5;
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
  .paper > :not([hidden]):not(.page-guides) { margin-bottom:2mm; }
  .paper .doc-accent-rule { margin:0 0 5mm; height:1mm; }
  .paper.executive .doc-accent-rule { height:2mm; }
  .paper.classic .doc-accent-rule { height:.3mm; }
  .doc-header { display:flex; gap:6mm; }
  .seller-block { font-size:9pt; line-height:1.35; }
  .seller-block strong, .paper.executive .seller-block strong { font-size:16pt; }
  .preview-logo { max-width:38mm; max-height:22mm; margin-bottom:3mm; }
  .doc-ident { flex-basis:44%; margin-top:0; text-align:right; justify-items:end; }
  .doc-ident h1, .paper.executive .doc-ident h1, .paper.classic .doc-ident h1 { font-size:24pt; }
  .doc-ident > strong { font-size:9pt; }
  .doc-parties { grid-template-columns:1fr 1fr; padding:2mm 0; }
  .doc-parties > div { font-size:9pt; gap:2px; line-height:1.35; }
  .paper.executive .doc-header { padding-bottom:2mm; }
  .paper.executive .doc-parties { padding:2mm; }
  .doc-parties strong { font-size:10pt; }
  .doc-kicker { font-size:8pt; }
  .doc-table-wrap { overflow:visible; }
  .doc-table { font-size:9pt; line-height:1.45; }
  .doc-table th { font-size:7.5pt; padding:2.5mm 2mm; }
  .doc-table td, .paper.executive .doc-table td { padding:1.2mm 2mm; }
  .doc-table td.category-col { font-size:8pt; }
  .doc-table thead { display:table-header-group; }
  .doc-table tr { break-inside:avoid; page-break-inside:avoid; }
  .doc-totals { width:85mm; max-width:100%; margin-left:auto; gap:4px; }
  .doc-totals > div { font-size:9pt; }
  .doc-totals .grand { font-size:13pt; padding-top:6px; }
  .doc-totals .balance { font-size:11pt; padding-top:6px; }
  .doc-header, .doc-parties, .trade-block, .mode-summary, .category-summary,
  .doc-totals, .signature-section, .doc-footer { break-inside:avoid; page-break-inside:avoid; }
  .doc-information-grid, .doc-info-card { display:block; break-inside:auto; page-break-inside:auto; }
  .doc-information-grid { font-size:9pt; line-height:1.4; }
  .doc-info-card { margin-bottom:2mm; padding-top:1.5mm; }
  .doc-info-card .doc-kicker { break-after:avoid; page-break-after:avoid; }
  .doc-info-card p { orphans:3; widows:3; }
  .structured-payment { display:grid; grid-template-columns:1fr 1fr; gap:1mm 5mm; break-inside:avoid; }
  .payment-line { grid-template-columns:27mm minmax(0,1fr); }
  .payment-line.payment-link { grid-column:1/-1; }
  .signature-section { width:60mm; }
  .signature-section strong { font-size:10pt; }
  .signature-section > span:not(.doc-kicker) { font-size:9pt; }
  .signature-rule { height:18mm; }
  .signature-rule:has(.signature-image[hidden]) { height:0; border:0; }
  .signature-section { break-after:avoid; page-break-after:avoid; }
  .signature-image { max-height:16mm; max-width:50mm; }
  .doc-footer { display:flex; flex-direction:row; font-size:8pt; padding-top:2mm; margin-top:2mm; margin-bottom:0!important; }
  .doc-footer > span:last-child { text-align:right; }
  body.print-invalid .paper { display:none!important; }
  body.print-invalid #printWarning { display:block; font:14pt/1.5 system-ui,sans-serif; }
}
