:root {
  --wine: #2a121d;
  --wine-deep: #160911;
  --wine-soft: #442030;
  --gold: #d4b67c;
  --cream: #fff8f2;
  --ivory: #f3ece6;
  --paper: #fbf8f4;
  --ink: #211318;
  --muted: #776a66;
  --line: #d9cec6;
  --danger: #a61b1b;
  --success: #246b4f;
  --shadow: 0 18px 60px rgba(42, 18, 29, 0.09);
}

* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body { margin: 0; min-width: 320px; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px 1fr; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 22px; background: var(--wine); color: white; display: flex; flex-direction: column; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 26px; border-bottom: 1px solid rgba(212,182,124,.26); }
.brand-mark { width: 42px; height: 42px; border: 1px solid var(--gold); display: grid; place-items: center; font-family: Georgia, serif; font-size: 21px; color: var(--gold); }
.brand-logo { object-fit: contain; padding: 3px; }
.brand-logo-official { width: 64px; height: 48px; }
.brand-copy strong { display: block; letter-spacing: .12em; font-size: 13px; }
.brand-copy span { color: rgba(255,255,255,.58); font-size: 11px; }
.nav { display: grid; gap: 7px; margin-top: 28px; }
.nav a { padding: 12px 14px; border-radius: 8px; color: rgba(255,255,255,.68); font-size: 14px; font-weight: 600; }
.nav a:hover, .nav a.active { background: rgba(255,255,255,.09); color: white; }
.nav a.active { box-shadow: inset 3px 0 0 var(--gold); }
.sidebar-foot { margin-top: auto; padding: 18px 8px 0; color: rgba(255,255,255,.45); font-size: 11px; line-height: 1.5; }

.main { min-width: 0; }
.topbar { height: 76px; padding: 0 42px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: rgba(251,248,244,.92); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 10; }
.topbar h1 { margin: 0; font: 500 22px/1.2 Georgia, serif; color: var(--wine); }
.topbar-actions { display: flex; gap: 10px; align-items: center; }
.content { padding: 36px 42px 64px; max-width: 1440px; margin: 0 auto; }
.eyebrow { text-transform: uppercase; letter-spacing: .14em; color: var(--gold); font-size: 11px; font-weight: 800; }
.page-intro { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 28px; }
.page-intro h2 { margin: 7px 0 5px; font: 500 34px/1.1 Georgia, serif; color: var(--wine); }
.page-intro p { margin: 0; color: var(--muted); font-size: 14px; }

.button { border: 0; border-radius: 7px; min-height: 42px; padding: 0 17px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; font-weight: 750; font-size: 13px; transition: .18s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--wine); color: white; box-shadow: 0 8px 22px rgba(42,18,29,.16); }
.button-primary:hover { background: var(--wine-soft); }
.button-secondary { color: var(--wine); background: white; border: 1px solid var(--line); }
.button-gold { background: var(--gold); color: var(--wine-deep); }
.button-danger { background: #fff2f0; color: var(--danger); border: 1px solid #e9bbb5; }
.button-small { min-height: 34px; padding: 0 11px; font-size: 11px; }
.loading { padding: 80px 20px; text-align: center; color: var(--muted); }
.filter-bar { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }
.filter-bar input, .filter-bar select { min-height: 40px; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); padding: 8px 11px; color: var(--ink); }
.filter-bar input { min-width: 260px; flex: 1; }
.row-actions { display: flex; gap: 6px; white-space: nowrap; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 100; padding: 13px 16px; border-radius: 8px; background: var(--wine); color: white; box-shadow: var(--shadow); font-size: 13px; }
.toast.error { background: var(--danger); }
.field-error { margin-top: 5px; color: var(--danger); font-size: 11px; }
.login-page { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; background: var(--paper); }
.login-brand { background: var(--wine); color: white; padding: 70px; display: flex; flex-direction: column; justify-content: space-between; }
.login-brand .wordmark { color: white; }
.login-logo { width: 220px; max-width: 60%; height: auto; }
.login-brand h1 { max-width: 520px; margin: 34px 0 12px; font: 500 48px/1.08 Georgia, serif; }
.login-brand p { max-width: 460px; color: rgba(255,255,255,.62); line-height: 1.7; }
.login-panel { display: grid; place-items: center; padding: 40px; }
.login-card { width: min(430px,100%); padding: 34px; }
.login-card h2 { margin: 7px 0 8px; color: var(--wine); font: 500 32px Georgia, serif; }
.login-card > p { color: var(--muted); margin: 0 0 25px; }
.login-card .field + .field { margin-top: 16px; }
.login-card .button { width: 100%; margin-top: 22px; }
.login-hint { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 15px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.audit-list { display: grid; }
.audit-item { display: grid; grid-template-columns: 150px 1fr 170px; gap: 16px; padding: 14px 0; border-bottom: 1px solid #eee7e2; font-size: 12px; }
.audit-item:last-child { border-bottom: 0; }
.audit-action { color: var(--wine); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.audit-meta { color: var(--muted); text-align: right; }

.grid { display: grid; gap: 18px; }
.stats { grid-template-columns: repeat(4, minmax(0,1fr)); margin-bottom: 28px; }
.card { background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.stat { padding: 21px; }
.stat-label { color: var(--muted); font-size: 12px; font-weight: 700; }
.stat-value { margin-top: 12px; color: var(--wine); font: 600 27px/1 Georgia, serif; }
.stat-note { margin-top: 9px; font-size: 11px; color: var(--muted); }
.stat-note.good { color: var(--success); }
.panel { padding: 24px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-head h3 { margin: 0; color: var(--wine); font: 600 19px Georgia, serif; }

.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.data-table th { padding: 12px 14px; text-align: left; color: var(--muted); font-size: 10px; letter-spacing: .09em; text-transform: uppercase; border-bottom: 1px solid var(--line); }
.data-table td { padding: 15px 14px; border-bottom: 1px solid #eee7e2; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: var(--paper); }
.amount { font-weight: 750; color: var(--wine); font-variant-numeric: tabular-nums; }
.status { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 6px 9px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-draft { background: #f7ecea; color: #a64a3e; }
.status-ready { background: #e9f3ee; color: var(--success); }
.status-paid { background: #eef0f8; color: #455487; }
.status-sent { background: #eef0f8; color: #455487; }
.status-accepted { background: #e9f3ee; color: var(--success); }
.status-declined, .status-void { background: #fff0ee; color: var(--danger); }
.status-expired { background: #f3eee8; color: #806b59; }
.link { color: var(--wine); font-weight: 750; }
.link:hover { text-decoration: underline; }
.empty { text-align: center; padding: 52px 20px; color: var(--muted); }

.alert { border: 1px solid #e6b9b3; background: #fff6f4; color: #8b2d23; padding: 13px 15px; border-radius: 8px; font-size: 12px; line-height: 1.5; }
.alert strong { color: var(--danger); }
.alert + .alert { margin-top: 10px; }

.form-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 22px; align-items: start; }
.form-card { padding: 26px; }
.section-title { margin: 0 0 18px; color: var(--wine); font: 600 19px Georgia, serif; }
.form-section + .form-section { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line); }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.field-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.field.full { grid-column: 1 / -1; }
.field label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); color: var(--ink); min-height: 43px; padding: 10px 12px; outline: none; }
.field textarea { min-height: 80px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(212,182,124,.17); background: white; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }

.calc-card { position: sticky; top: 100px; overflow: hidden; }
.calc-head { background: var(--wine); color: white; padding: 20px; }
.calc-head .eyebrow { color: var(--gold); }
.calc-head h3 { margin: 5px 0 0; font: 500 22px Georgia, serif; }
.calc-body { padding: 20px; }
.calc-line { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.calc-line span:first-child { color: var(--muted); }
.calc-line strong { color: var(--wine); font-variant-numeric: tabular-nums; }
.calc-total { margin: 18px -20px -20px; padding: 20px; background: var(--wine); display: flex; justify-content: space-between; align-items: center; color: var(--gold); }
.calc-total strong { font: 600 24px Georgia, serif; }

.invoice-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; }
.invoice-paper { --wine: #442030; --gold: #d4b67c; --paper: #fff8f2; background: var(--paper); width: 100%; max-width: 1060px; margin: 0 auto; padding: 46px 52px 40px; border: 1px solid var(--line); box-shadow: var(--shadow); }
.invoice-brand { display: flex; justify-content: space-between; align-items: start; padding-bottom: 20px; border-bottom: 1px solid var(--gold); }
.wordmark { color: var(--wine); }
.wordmark strong { display: block; font: 500 42px/1 Georgia, serif; letter-spacing: -.08em; }
.wordmark span { display: block; margin-top: 3px; letter-spacing: .35em; font: 10px Georgia, serif; }
.invoice-logo { width: 170px; height: 66px; object-fit: contain; object-position: left top; }
.invoice-heading { text-align: right; }
.invoice-heading h2 { margin: 0; color: var(--wine); font-size: 30px; }
.invoice-heading p { color: var(--gold); font-weight: 800; }
.invoice-parties { display: grid; grid-template-columns: 1.06fr 1.08fr .58fr; margin-top: 28px; background: var(--paper); border: 1px solid var(--line); }
.invoice-party { min-width: 0; padding: 18px 20px; border-right: 1px solid var(--line); }
.invoice-party:last-child { border-right: 0; }
.invoice-party .eyebrow { margin-bottom: 7px; }
.invoice-party > strong { display: block; color: var(--wine); font-size: 13.5px; line-height: 1.3; overflow-wrap: anywhere; }
.invoice-party p { margin: 7px 0 0; font-size: 11.5px; line-height: 1.48; }
.party-address { min-height: 34px; color: var(--ink); }
.party-contact { display: grid; gap: 3px; margin-top: 8px; color: var(--ink); font-size: 11.5px; line-height: 1.4; }
.party-contact b { color: var(--gold); font-weight: 700; }
.party-trn { margin-top: 10px !important; color: var(--wine); font-weight: 800; }
.invoice-meta > strong { white-space: nowrap; }
.invoice-party .missing { color: var(--danger); font-weight: 800; }
.invoice-lines { margin-top: 28px; width: 100%; border-collapse: collapse; font-size: 12px; }
.invoice-lines th { background: var(--wine); color: var(--gold); text-transform: uppercase; font-size: 9px; letter-spacing: .05em; padding: 14px 12px; text-align: left; }
.invoice-lines td { padding: 18px 12px; border: 1px solid var(--line); background: var(--paper); }
.invoice-lines th + th { border-left: 1px solid rgba(255,255,255,.3); }
.invoice-summary { margin-top: 28px; border: 1px solid var(--line); }
.invoice-summary-row { display: flex; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 750; color: var(--wine); }
.invoice-summary-row.total { border: 0; background: var(--wine); color: var(--gold); font-size: 17px; align-items: center; }
.invoice-bank, .invoice-sign { margin-top: 24px; border: 1px solid var(--line); }
.invoice-section-head { background: var(--wine); color: var(--gold); padding: 12px 16px; font-size: 10px; font-weight: 800; letter-spacing: .07em; }
.invoice-bank-row { display: grid; grid-template-columns: 240px 1fr; }
.invoice-bank-row > div { padding: 12px 16px; border-top: 1px solid var(--line); font-size: 12px; }
.invoice-bank-row > div:first-child { border-right: 1px solid var(--line); }
.invoice-sign .invoice-section-head { background: var(--paper); }
.signature-space { min-height: 110px; display: flex; align-items: center; justify-content: flex-end; padding: 4px 22px; }
.company-stamp { display: block; width: 116px; height: 112px; object-fit: contain; }
.payment-terms { padding: 0 16px 14px; color: var(--muted); font-size: 10px; }
.invoice-alert { max-width: 1060px; margin: 0 auto 18px; }
.invoice-foot { border-top: 1px solid var(--gold); margin-top: 32px; padding-top: 10px; display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }

.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.settings-card { padding: 26px; }
.settings-card .alert { margin-bottom: 20px; }
.locked-note { margin: -10px 0 22px; padding: 12px 15px; border-left: 3px solid var(--gold); background: #fffaf0; color: var(--wine); font-size: 12px; }
.logo-setting { display: grid; grid-template-columns: 180px 1fr; gap: 18px; align-items: center; margin-bottom: 22px; }
.logo-preview { height: 100px; border: 1px dashed var(--line); background: var(--paper); display: grid; place-items: center; color: var(--muted); font-size: 11px; padding: 10px; }
.logo-preview img { width: 100%; height: 100%; object-fit: contain; }
.logo-setting .button + .button { margin-left: 6px; }
.logo-setting p, .settings-help { color: var(--muted); font-size: 11px; line-height: 1.5; }
.settings-help { margin: -10px 0 18px; }
.editable-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.editable-list span { padding: 11px 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); color: var(--wine); font-size: 12px; }
.password-card { margin-top: 22px; max-width: 700px; }
.route-error { max-width: 600px; margin: 70px auto; text-align: center; }
.route-error h2 { font: 500 34px Georgia, serif; color: var(--wine); }

.quotation-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:22px; align-items:start; }
.investment-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:22px; align-items:start; }
.section-title-row { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.section-title-row .section-title { margin-bottom:0; }
.repeater { display:grid; gap:9px; margin-top:10px; }
.repeater-head, .repeater-row { display:grid; gap:9px; align-items:center; }
.fee-head, .fee-row { grid-template-columns:minmax(220px,1fr) 90px 150px 82px; }
.payment-head, .payment-row { grid-template-columns:90px minmax(150px,.7fr) minmax(260px,1.3fr) 82px; }
.particular-row { grid-template-columns:180px minmax(300px,1fr) 82px; align-items:start; }
.particular-row textarea { min-height:92px; width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink); resize:vertical; }
.simple-row { grid-template-columns:minmax(260px,1fr) 82px; }
.investment-consideration-row { grid-template-columns:190px minmax(300px,1fr) 82px; align-items:start; }
.investment-consideration-row textarea { min-height:88px; width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink); resize:vertical; }
.calc-note { margin:18px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }
.repeater-head { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.repeater-row input { width:100%; min-height:42px; padding:9px 10px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink); }
.repeater-row input:focus { border-color:var(--gold); outline:0; box-shadow:0 0 0 3px rgba(212,182,124,.17); background:white; }
.invalid { color:var(--danger)!important; }
.quotation-summary { overflow:hidden; max-width:1060px; margin:0 auto; }
.quotation-summary-cover { min-height:290px; padding:48px; display:flex; justify-content:space-between; gap:30px; color:var(--cream); background:radial-gradient(circle at 88% 78%,rgba(212,182,124,.13),transparent 27%),var(--wine); }
.quotation-summary-cover h2 { max-width:650px; margin:22px 0 12px; color:var(--cream); font:400 48px/.98 Georgia,serif; }
.quotation-summary-cover p { max-width:650px; color:#d8d0cb; line-height:1.6; }
.quote-reference { min-width:150px; text-align:right; color:var(--gold); text-transform:uppercase; font-size:10px; letter-spacing:.12em; }
.quote-reference strong { display:block; margin-top:8px; color:var(--cream); font-size:16px; }
.quotation-summary-grid { display:grid; grid-template-columns:1.5fr 1fr .7fr; background:var(--paper); border-bottom:1px solid var(--line); }
.quotation-summary-grid>div { padding:24px 28px; border-right:1px solid var(--line); }
.quotation-summary-grid>div:last-child { border-right:0; }
.quotation-summary-grid span, .quotation-financial span { display:block; margin-bottom:8px; color:var(--gold); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.quotation-summary-grid strong { color:var(--wine); }
.quotation-summary-grid p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.quotation-brief { padding:30px 36px; background:var(--paper); }
.quotation-brief h3 { color:var(--wine); font:500 22px Georgia,serif; }
.quotation-brief p { max-width:850px; line-height:1.7; color:var(--muted); }
.quotation-financial { display:grid; grid-template-columns:1fr 1fr 1.2fr; border-top:1px solid var(--line); background:var(--paper); }
.quotation-financial>div { padding:24px 28px; border-right:1px solid var(--line); }
.quotation-financial>div:last-child { border:0; }
.quotation-financial strong { color:var(--wine); font:500 22px Georgia,serif; }
.quotation-financial .grand { background:var(--wine); }
.quotation-financial .grand strong, .quotation-financial .grand span { color:var(--gold); }
.preview-note { margin:0; padding:16px 28px; color:var(--muted); background:#f3ebe4; font-size:12px; }
.investment-summary { overflow:hidden; max-width:1060px; margin:0 auto; }
.investment-summary-cover { min-height:330px; padding:48px; display:flex; justify-content:space-between; gap:30px; color:var(--cream); background-position:center; background-size:cover; }
.investment-summary-cover h2 { max-width:690px; margin:22px 0 12px; color:var(--cream); font:400 48px/.98 Georgia,serif; }
.investment-summary-cover p { max-width:650px; color:#d8d0cb; line-height:1.6; }
.investment-summary-grid { display:grid; grid-template-columns:1.4fr 1fr .7fr; background:var(--paper); border-bottom:1px solid var(--line); }
.investment-summary-grid>div { padding:24px 28px; border-right:1px solid var(--line); }
.investment-summary-grid>div:last-child { border-right:0; }
.investment-summary-grid span, .investment-metrics span { display:block; margin-bottom:8px; color:var(--gold); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.investment-summary-grid strong { color:var(--wine); }
.investment-summary-grid p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.investment-metrics { display:grid; grid-template-columns:repeat(4,1fr); background:var(--paper); border-bottom:1px solid var(--line); }
.investment-metrics>div { padding:24px 28px; border-right:1px solid var(--line); }
.investment-metrics>div:last-child { border-right:0; }
.investment-metrics strong { color:var(--wine); font:500 20px Georgia,serif; }
.section-copy { margin:4px 0 0; color:var(--muted); font-size:13px; }
.library-count { align-self:flex-start; padding:6px 10px; border:1px solid var(--line); border-radius:999px; color:var(--wine); font-size:11px; font-weight:800; white-space:nowrap; }
.background-picker-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:18px; }
.background-picker { display:grid; grid-template-columns:148px minmax(0,1fr); gap:14px; align-items:center; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--cream); }
.background-picker img { width:148px; height:98px; display:block; object-fit:cover; border-radius:5px; background:var(--wine); }
.background-picker label { display:block; margin-bottom:6px; color:var(--wine); font-weight:800; }
.background-picker select { width:100%; }
.background-picker small { display:block; margin-top:7px; color:var(--muted); line-height:1.35; }

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 84px 1fr; }
  .sidebar { padding: 25px 14px; }
  .brand-copy, .nav a span, .sidebar-foot { display: none; }
  .brand { justify-content: center; padding-left: 0; padding-right: 0; }
  .nav a { text-align: center; padding: 12px 8px; font-size: 11px; }
  .stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .form-layout { grid-template-columns: 1fr; }
  .quotation-layout { grid-template-columns:1fr; }
  .investment-layout { grid-template-columns:1fr; }
  .calc-card { position: static; }
  .invoice-paper { padding: 34px 28px; }
}

@media (max-width: 720px) {
  .app-shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; padding: 14px; flex-direction: row; align-items: center; gap: 10px; }
  .brand { border: 0; padding: 0; }
  .brand-mark { width: 36px; height: 36px; }
  .nav { display: flex; margin: 0 0 0 auto; overflow-x: auto; }
  .nav a { white-space: nowrap; }
  .topbar { padding: 0 18px; height: 66px; }
  .topbar .button-secondary { display: none; }
  .content { padding: 25px 18px 48px; }
  .page-intro { align-items: start; flex-direction: column; }
  .stats, .settings-grid, .field-grid, .field-grid.three { grid-template-columns: 1fr; }
  .logo-setting, .editable-list { grid-template-columns: 1fr; }
  .fee-head, .payment-head { display:none; }
  .fee-row, .payment-row, .particular-row, .simple-row, .investment-consideration-row { grid-template-columns:1fr; padding:12px; border:1px solid var(--line); border-radius:8px; }
  .quotation-summary-cover { padding:30px 24px; flex-direction:column; }
  .quotation-summary-cover h2 { font-size:36px; }
  .quote-reference { text-align:left; }
  .quotation-summary-grid, .quotation-financial { grid-template-columns:1fr; }
  .investment-summary-cover { padding:30px 24px; flex-direction:column; }
  .investment-summary-cover h2 { font-size:36px; }
  .investment-summary-grid, .investment-metrics { grid-template-columns:1fr; }
  .background-picker-grid { grid-template-columns:1fr; }
  .background-picker { grid-template-columns:112px minmax(0,1fr); }
  .background-picker img { width:112px; height:82px; }
  .library-count { display:none; }
  .investment-summary-grid>div, .investment-metrics>div { border-right:0; border-bottom:1px solid var(--line); }
  .quotation-summary-grid>div, .quotation-financial>div { border-right:0; border-bottom:1px solid var(--line); }
  .field.full { grid-column: auto; }
  .invoice-paper { padding: 26px 18px; overflow-x: auto; }
  .invoice-parties { grid-template-columns: 1fr; }
  .invoice-party { border-right: 0; border-bottom: 1px solid var(--line); }
  .invoice-party:last-child { border-bottom: 0; }
  .invoice-heading h2 { font-size: 22px; }
  .wordmark strong { font-size: 30px; }
  .invoice-lines { min-width: 780px; }
  .invoice-bank-row { grid-template-columns: 1fr; }
  .invoice-bank-row > div:first-child { border-right: 0; }
  .filter-bar { align-items: stretch; flex-direction: column; }
  .filter-bar input { min-width: 0; width: 100%; }
  .login-page { grid-template-columns: 1fr; }
  .login-brand { padding: 38px 28px; min-height: 300px; }
  .login-brand h1 { font-size: 36px; }
  .login-panel { padding: 28px 18px; }
  .audit-item { grid-template-columns: 1fr; gap: 5px; }
  .audit-meta { text-align: left; }
}

@media print {
  @page { size: A4 portrait; margin: 7mm; }
  html, body { width: 100%; margin: 0; background: white; }
  .sidebar, .topbar, .invoice-toolbar, .invoice-alert, .toast { display: none !important; }
  .app-shell { display: block; }
  .content { padding: 0; max-width: none; }
  .invoice-paper {
    width: 196mm;
    min-height: 283mm;
    max-width: none;
    margin: 0 auto;
    padding: 8mm 8mm 15mm;
    border: 0;
    box-shadow: none;
    overflow: visible;
    position: relative;
    display: flex;
    flex-direction: column;
    break-inside: avoid;
  }
  .invoice-brand { padding-bottom: 4mm; }
  .invoice-logo { width: 36mm; height: 15mm; }
  .invoice-heading h2 { font-size: 20pt; }
  .invoice-heading p { margin: 2mm 0 0; font-size: 8pt; }
  .invoice-parties {
    grid-template-columns: 1.06fr 1.08fr .58fr;
    margin-top: 6.5mm;
    break-inside: avoid;
  }
  .invoice-party { padding: 5mm 4mm; border-right: 1px solid var(--line); border-bottom: 0; }
  .invoice-party:last-child { border-right: 0; }
  .invoice-party .eyebrow { margin-bottom: 1.3mm; font-size: 6.3pt; }
  .invoice-party > strong { font-size: 8.5pt; line-height: 1.25; }
  .invoice-party p, .party-contact { font-size: 7.1pt; line-height: 1.35; }
  .party-address { min-height: 9mm; margin-top: 1.5mm !important; }
  .party-contact { margin-top: 1.6mm; gap: .6mm; }
  .party-trn { margin-top: 2mm !important; }
  .invoice-lines {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    margin-top: 6.5mm;
    break-inside: avoid;
  }
  .invoice-lines th { padding: 2.5mm 1.2mm; font-size: 5.5pt; letter-spacing: .025em; }
  .invoice-lines td { padding: 4.2mm 1.2mm; font-size: 6.5pt; }
  .invoice-summary { margin-top: 6.5mm; break-inside: avoid; }
  .invoice-summary-row { padding: 3.5mm 3.5mm; font-size: 7.2pt; }
  .invoice-summary-row.total { font-size: 11pt; }
  .invoice-bank, .invoice-sign { margin-top: 5.5mm; break-inside: avoid; }
  .invoice-sign { flex: 1; display: flex; flex-direction: column; }
  .invoice-section-head { padding: 2.6mm 3.5mm; font-size: 6.3pt; }
  .invoice-bank-row { grid-template-columns: 42mm 1fr; }
  .invoice-bank-row > div { padding: 3.2mm 3.5mm; font-size: 7pt; }
  .signature-space { flex: 1; min-height: 35mm; padding: 1mm 5mm; }
  .company-stamp { width: 28mm; height: 27mm; }
  .payment-terms { padding: 0 3.5mm 2.5mm; font-size: 6.3pt; }
  .invoice-foot { position: static; margin-top: 5mm; padding-top: 2mm; font-size: 5.5pt; }
}
