:root{--bg:#eef2f0;--panel:#fbfcfc;--panel-strong:#fff;--text:#16201d;--muted:#6e7a76;--line:#dbe3df;--accent:#0f8a5f;--accent-2:#1d4ed8;--accent-soft:#e5f5ee;--danger:#b42318;--shadow:0 24px 70px #1b2a2629}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--text);background:radial-gradient(circle at 18% 12%,#0f8a5f21,#0000 26rem),linear-gradient(135deg,#eef3f1 0%,#f8faf9 48%,#e9eef6 100%);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{border:0}.theme-blue{--accent:#2563eb;--accent-2:#0f766e;--accent-soft:#e7efff}.theme-terracotta{--accent:#c2410c;--accent-2:#0f766e;--accent-soft:#fff1e8}.app-shell{min-height:100vh;padding:22px;display:block}.app-topbar{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbfcfce0;border:1px solid #dbe3dfe6;border-radius:18px;max-width:1180px;margin:0 auto 18px;padding:14px;position:sticky;top:0;box-shadow:0 16px 44px #16201d14}.editor-panel{padding:0}.brand-strip{align-items:center;padding:0 2px 14px;display:flex}.brand-logo{object-fit:contain;width:min(100%,300px);height:auto;display:block}.brand-strip h1,.preview-toolbar h2,.panel-section h2{margin:0}.brand-strip h1{letter-spacing:0;font-size:1.45rem}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:.73rem;font-weight:800}.sticky-actions{margin:0 0 12px;padding:0}.action-row{gap:10px;display:flex}.primary-button,.ghost-button,.icon-text-button,.icon-button{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;min-height:42px;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s;display:inline-flex}.primary-button{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));gap:9px;padding:0 16px;font-weight:750;box-shadow:0 14px 34px #0f8a5f40}.primary-button.success{background:var(--accent);box-shadow:0 14px 34px #0f8a5f26}.ghost-button,.icon-text-button,.icon-button{color:var(--text);border:1px solid var(--line);background:#fff}.ghost-button,.icon-text-button{gap:8px;padding:0 14px;font-weight:700}.ghost-button.compact{width:fit-content;min-height:36px;padding:0 12px;font-size:.82rem}.icon-button{width:34px;height:34px;min-height:34px}.danger{color:var(--danger)}.primary-button:hover,.ghost-button:hover,.icon-text-button:hover,.icon-button:hover{transform:translateY(-1px);box-shadow:0 10px 24px #16201d1c}.primary-button:disabled,.ghost-button:disabled,.icon-text-button:disabled,.icon-button:disabled{cursor:wait;opacity:.68;transform:none}.icon-button:disabled{cursor:not-allowed;opacity:.4}.export-error{color:var(--danger);margin:-2px 0 12px;font-size:.82rem;font-weight:700}.login-shell{place-items:center;min-height:100vh;padding:32px 18px;display:grid}.login-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border:1px solid #dbe3dfe6;border-radius:18px;width:100%;max-width:480px;padding:28px;box-shadow:0 24px 64px #16201d1f}.login-header{text-align:center;gap:6px;margin-bottom:18px;display:grid}.login-header .brand-logo{width:min(220px,70%);margin:0 auto 8px}.login-header h1{margin:0;font-size:1.3rem}.login-header p{color:var(--muted);margin:0;font-size:.85rem}.user-list{gap:8px;margin:0 0 18px;padding:0;list-style:none;display:grid}.user-list li{align-items:center;gap:8px;display:flex}.user-tile{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:12px;flex:1;align-items:center;gap:12px;padding:11px 13px;transition:border-color .16s,transform .16s;display:flex}.user-tile:hover{border-color:var(--accent);transform:translateY(-1px)}.avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:.95rem;font-weight:850;display:grid}.avatar.small{width:32px;height:32px;font-size:.82rem}.user-meta,.user-chip-meta{gap:1px;min-width:0;display:grid}.user-meta strong,.user-chip-meta strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;line-height:1.2;overflow:hidden}.user-meta small,.user-chip-meta small{color:var(--muted);font-size:.74rem;line-height:1.25}.user-meta .draft-count{color:var(--accent);font-weight:700}.user-signup{border-top:1px dashed var(--line);gap:8px;padding-top:16px;display:grid}.user-signup strong{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:850}.auth-form{gap:10px;display:grid}.auth-error{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin:0;padding:9px 12px;font-size:.82rem;font-weight:700}.auth-switch{color:var(--muted);text-align:center;margin:4px 0 0;font-size:.82rem}.link-button{color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline;display:inline}.link-button:hover{color:var(--accent-2)}.tos-check{font-size:.82rem}.tos-check span{display:inline}.tos-content{max-height:60vh;padding:0 4px;overflow-y:auto}.tos-content h3{color:var(--text);margin:0 0 8px;font-size:1rem}.tos-content p{color:var(--muted);margin:0 0 10px;font-size:.84rem;line-height:1.5}.tos-content ol{margin:0 0 16px;padding-left:20px}.tos-content li{color:var(--text);margin-bottom:10px;font-size:.84rem;line-height:1.55}.tos-content li strong{color:var(--text)}.tos-footer{border-top:1px solid var(--line);justify-content:center;padding-top:12px;display:flex}.user-chip{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:9px;margin-left:auto;padding:6px 10px 6px 6px;display:flex}.brand-strip{justify-content:space-between;align-items:center}.status-row{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;display:flex}.save-indicator{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.save-indicator.saving{color:#92400e;background:#fff5e1}.save-indicator.idle{color:var(--muted);background:#f1f5f3}.active-draft-name{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:999px;align-items:center;gap:6px;max-width:240px;padding:4px 10px;font-size:.74rem;font-weight:700;display:inline-flex}.active-draft-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{background:var(--accent);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:4px;padding:0 6px;font-size:.68rem;font-weight:850;display:inline-grid}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f17156b;place-items:center;padding:22px;animation:.16s modal-fade;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:18px;flex-direction:column;width:100%;max-width:540px;max-height:min(90vh,720px);padding:20px;animation:.18s modal-pop;display:flex;box-shadow:0 30px 80px #16201d47}.modal-card.narrow{max-width:420px}.modal-search{border:1px solid var(--line);color:var(--muted);background:#fbfcfc;border-radius:10px;align-items:center;gap:8px;margin:0 0 12px;padding:8px 12px;display:flex}.modal-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:.88rem}.modal-search .icon-button{background:0 0;border-color:#0000;width:26px;height:26px;min-height:26px}.modal-empty{text-align:center;color:var(--muted);flex:auto;place-items:center;padding:24px 12px;display:grid}.modal-empty p{color:var(--text);margin:0 0 4px;font-weight:700}.modal-empty small{font-size:.78rem}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.modal-head h2{margin:2px 0 0;font-size:1.05rem}.draft-list{flex:auto;gap:8px;margin:0 -4px;padding:0 4px;list-style:none;display:grid;overflow:auto}.draft-tile{border:1px solid var(--line);background:#fbfcfc;border-radius:12px;align-items:stretch;gap:6px;padding:4px;display:flex}.draft-tile.active{border-color:var(--accent);background:var(--accent-soft)}.draft-main{cursor:pointer;text-align:left;background:0 0;border-radius:9px;flex:1;gap:2px;padding:8px 10px;display:grid}.draft-main:hover{background:#0f8a5f14}.draft-main strong{font-size:.9rem}.draft-main small{color:var(--muted);font-size:.72rem}.draft-total{background:var(--accent-soft);color:var(--accent);font-variant-numeric:tabular-nums;border-radius:999px;width:fit-content;margin-top:4px;padding:2px 8px;font-size:.72rem;font-weight:800;display:inline-block}.draft-tile.active .draft-total{background:#fff}.draft-main input{border:1px solid var(--accent);border-radius:6px;outline:0;width:100%;padding:4px 6px;font-size:.9rem;font-weight:800}.draft-actions{align-items:center;gap:4px;display:flex}.entry-list{flex:auto;gap:8px;margin:0 -4px;padding:0 4px;list-style:none;display:grid;overflow:auto}.entry-tile{border:1px solid var(--line);background:#fbfcfc;border-radius:12px;align-items:stretch;gap:6px;padding:4px;display:flex}.entry-main{cursor:pointer;text-align:left;background:0 0;border-radius:9px;flex:1;gap:2px;padding:8px 10px;display:grid}.entry-main:hover{background:#0f8a5f14}.entry-main strong{font-size:.92rem}.entry-main small{color:var(--muted);font-size:.74rem}.entry-main small.muted{color:var(--muted);font-size:.72rem}.entry-actions{align-items:center;gap:4px;display:flex}.header-actions{flex-wrap:wrap;gap:6px;display:flex}.header-actions .icon-text-button{min-height:34px;padding:0 10px;font-size:.8rem}.section-heading.with-action>div{align-items:center}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;display:flex}.shortcut-hint{color:var(--muted);text-align:center;margin:8px 0 0;font-size:.72rem;line-height:1.5}.shortcut-hint kbd{border:1px solid var(--line);min-width:22px;height:20px;color:var(--text);background:#fff;border-bottom-width:2px;border-radius:5px;place-items:center;margin:0 1px;padding:0 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem;font-weight:700;display:inline-grid}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.tab-switcher{border:1px solid var(--line);background:#eef3f1;border-radius:12px;grid-template-columns:repeat(2,1fr);gap:5px;padding:5px;display:grid}.tab-switcher button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;font-weight:850}.tab-switcher button.active{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 10px 24px #0f8a5f33}.tab-stage{max-width:1180px;margin:0 auto;position:relative}.tab-panel{width:100%}.tab-panel:not(.active){position:absolute;top:0;left:-120vw}.panel-section{background:#ffffffb8;border:1px solid #dbe3dfe6;border-radius:14px;margin-bottom:16px;padding:16px;box-shadow:0 12px 34px #16201d0f}.section-heading{color:var(--accent);align-items:center;gap:9px;margin-bottom:14px;display:flex}.section-heading h2{color:var(--text);font-size:.98rem}.section-heading.with-action{justify-content:space-between}.section-heading.with-action>div{align-items:center;gap:9px;display:flex}.field-grid{gap:11px;display:grid}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.three{grid-template-columns:.8fr .8fr 1.4fr}.field{gap:6px;margin-bottom:11px;display:grid}.field span{color:var(--muted);font-size:.75rem;font-weight:750}.field input,.field select,.field textarea{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:10px;outline:0;box-shadow:inset 0 1px #fffc}.field input,.field select{height:42px;padding:0 12px}.field select{cursor:pointer}.field textarea{resize:vertical;min-height:82px;padding:11px 12px;line-height:1.45}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0f8a5f24}.option-stack{gap:11px;margin-bottom:14px;display:grid}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:700}.field-hint{color:var(--muted);font-size:.78rem;line-height:1.4}.check-row{border:1px solid var(--line);min-height:42px;color:var(--text);background:#fff;border-radius:10px;align-items:center;gap:10px;padding:0 12px;font-size:.86rem;font-weight:750;display:flex}.check-row input{width:17px;height:17px;accent-color:var(--accent)}.segment-control{border:1px solid var(--line);background:#eef3f1;border-radius:10px;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;display:grid}.segment-control button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;font-size:.84rem;font-weight:800}.segment-control button.active{color:#fff;background:var(--accent);box-shadow:0 8px 18px #0f8a5f33}.items-editor{gap:8px;display:grid}.item-editor{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px}.item-editor.collapsed{background:#fbfcfc}.item-editor-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.item-editor.collapsed .item-editor-head{margin-bottom:0}.item-editor-title{gap:2px;min-width:0;display:grid}.item-editor-title span{color:var(--accent);font-size:.78rem;font-weight:850}.item-editor-title small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;font-weight:700;overflow:hidden}.item-editor-actions{flex:none;gap:6px;display:flex}.item-editor-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:8px;display:grid}.item-editor .field{gap:4px;margin-bottom:0}.item-editor .field span{font-size:.68rem}.item-editor .field input,.item-editor .field select{border-radius:8px;height:36px;padding:0 9px;font-size:.82rem}.item-editor .field textarea{border-radius:8px;min-height:36px;padding:8px 9px;font-size:.82rem;line-height:1.25}.item-name-field,.item-description-field{grid-column:span 4}.item-kind-field,.item-loading-field,.item-price-field{grid-column:span 2}.item-qty-field,.item-unit-field{grid-column:span 1}.item-discount-type-field,.item-discount-value-field{grid-column:span 2}.item-image-field{grid-column:span 4;gap:4px;margin:0;display:grid}.item-image-field>span{color:var(--muted);font-size:.68rem;font-weight:750}.item-image-control{grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:36px;display:grid}.item-image-control img,.item-image-control small{border:1px solid var(--line);background:#f7faf8;border-radius:8px;width:42px;height:36px}.item-image-control img{object-fit:cover;display:block}.item-image-control small{color:var(--muted);text-align:center;place-items:center;font-size:.58rem;line-height:1.1;display:grid}.item-image-control input{min-width:0;color:var(--muted);font-size:.72rem}.template-actions{flex-wrap:wrap;gap:8px;margin:2px 0 12px;display:flex}.template-section{gap:8px;margin:4px 0 6px;display:grid}.template-header{color:var(--accent);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.template-header>span{margin-right:auto;font-size:.78rem;font-weight:800}.template-chips{flex-wrap:wrap;gap:6px;display:flex}.template-chip{border:1px solid var(--line);min-height:30px;color:var(--text);cursor:pointer;background:#fff;border-radius:999px;align-items:center;padding:0 11px;font-size:.78rem;font-weight:700;transition:border-color .14s,background .14s;display:inline-flex}.template-chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.tpl-entry{cursor:default}.tpl-preview{color:var(--muted);white-space:pre-line;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.35;display:-webkit-box;overflow:hidden}.tpl-rename-input{border:1px solid var(--accent);border-radius:6px;outline:0;width:100%;padding:4px 6px;font-size:.9rem;font-weight:800}.swatch-row{gap:9px;margin:4px 0 14px;display:flex}.swatch{cursor:pointer;width:34px;height:34px;box-shadow:0 0 0 1px var(--line);border:3px solid #fff;border-radius:999px}.swatch.active{box-shadow:0 0 0 2px var(--accent), 0 8px 18px #16201d2e}.swatch.emerald{background:linear-gradient(135deg,#0f8a5f,#1d4ed8)}.swatch.blue{background:linear-gradient(135deg,#2563eb,#0f766e)}.swatch.terracotta{background:linear-gradient(135deg,#c2410c,#0f766e)}.signature-editor{border-top:1px solid var(--line);gap:11px;margin-top:6px;padding-top:14px;display:grid}.signature-auto-info{border:1px solid var(--line);background:var(--accent-soft);border-radius:12px;gap:2px;padding:12px 14px;display:grid}.signature-auto-info>span{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:850}.signature-auto-info strong{color:var(--text);font-size:.95rem}.signature-auto-info>small{color:var(--muted);font-size:.78rem;font-weight:700}.signature-auto-hint{color:var(--muted);margin:6px 0 0;font-size:.72rem;line-height:1.4}.preview-panel{min-width:0;padding:28px}.preview-toolbar{justify-content:space-between;align-items:center;gap:18px;max-width:1020px;margin:0 auto 20px;display:flex}.preview-toolbar h2{font-size:clamp(1.25rem,1.7vw,1.85rem)}.preview-scroll{padding:14px 0 70px;overflow:auto}.print-area{justify-items:center;gap:24px;display:grid}.quote-sheet{width:min(100%,210mm);min-height:297mm;box-shadow:var(--shadow);background:#fff;border-radius:6px;flex-direction:column;padding:18mm 16mm 14mm;display:flex;position:relative;overflow:hidden}.page-accent{background:linear-gradient(90deg, var(--accent), var(--accent-2)), var(--accent);height:9mm;position:absolute;inset:0 0 auto}.quote-header{z-index:1;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16mm;display:flex;position:relative}.company-lockup{align-items:center;display:flex}.quote-brand-logo{object-fit:contain;width:72mm;max-width:100%;height:auto;display:block}.quote-meta small,.table-title small{color:var(--muted);font-size:.78rem}.quote-meta{text-align:right;justify-items:end;gap:4px;display:grid}.quote-meta span{color:var(--accent);text-transform:uppercase;font-size:.78rem;font-weight:850}.quote-meta strong{font-size:1.18rem}.info-grid{grid-template-columns:1.1fr .9fr;gap:12px;margin-bottom:10mm;display:grid}.info-card{border:1px solid var(--line);background:#fbfcfc;border-radius:16px;min-height:128px;padding:17px}.info-card span,.document-notes span,.table-title span{color:var(--accent);text-transform:uppercase;margin-bottom:7px;font-size:.75rem;font-weight:850;display:block}.info-card strong{margin-bottom:7px;font-size:1.02rem;display:block}.info-card p{color:#4d5a56;white-space:pre-line;margin:3px 0;font-size:.84rem;line-height:1.42}.opening-text{color:#3d4a46;margin:0 0 7mm;font-size:.84rem;line-height:1.48}.opening-text p{white-space:pre-line;margin:0}.continuation-banner{background:var(--accent-soft);border-radius:16px;justify-content:space-between;gap:18px;margin-bottom:10mm;padding:17px 20px;display:flex}.continuation-banner span{color:var(--accent);text-transform:uppercase;font-size:.78rem;font-weight:850}.table-section{flex:none}.table-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;display:flex}.quote-table{border-collapse:collapse;table-layout:fixed;width:100%}.quote-table .col-no{width:5%}.quote-table .col-image{width:10%}.quote-table .col-item{width:27%}.quote-table .col-jenis{width:14%}.quote-table .col-loading{width:12%}.quote-table .col-jumlah,.quote-table .col-satuan{width:8%}.quote-table .col-harga,.quote-table .col-total{width:13%}.quote-table.with-images .col-no{width:4%}.quote-table.with-images .col-image{width:16%}.quote-table.with-images .col-item{width:19%}.quote-table.with-images .col-jenis{width:11%}.quote-table.with-images .col-loading{width:10%}.quote-table.with-images .col-jumlah,.quote-table.with-images .col-satuan{width:7%}.quote-table.with-images .col-harga{width:11%}.quote-table.with-images .col-total{width:15%}.quote-table th{color:#fff;text-align:center;text-transform:uppercase;vertical-align:middle;white-space:normal;overflow-wrap:anywhere;background:#18231f;padding:9px 6px;font-size:.6rem;line-height:1.18}.quote-table th:first-child{border-radius:10px 0 0 10px}.quote-table th:last-child{border-radius:0 10px 10px 0}.quote-table td{color:#24312d;vertical-align:top;overflow-wrap:break-word;border-bottom:1px solid #e6ece9;padding:9px 6px;font-size:.68rem;line-height:1.28}.quote-table tr{break-inside:avoid}.quote-table td:first-child,.quote-table td:nth-child(3),.quote-table td:nth-child(4),.quote-table td:nth-child(5),.quote-table td:nth-child(6){text-align:center}.quote-table td:nth-child(7),.quote-table td:nth-child(8){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.62rem}.quote-table.with-images td:nth-child(2),.quote-table.with-images td:nth-child(4),.quote-table.with-images td:nth-child(5),.quote-table.with-images td:nth-child(6),.quote-table.with-images td:nth-child(7){text-align:center}.quote-table.with-images td:nth-child(3){text-align:left}.quote-table.with-images td:nth-child(7){white-space:normal;font-size:.68rem}.quote-table.with-images td:nth-child(8),.quote-table.with-images td:nth-child(9){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.62rem}.item-image-cell{text-align:center;vertical-align:middle!important;padding:7px 5px!important}.item-image-frame{aspect-ratio:4/3;background:#f7faf8;border:1px solid #d9e3de;border-radius:6px;width:100%;display:flex;overflow:hidden}.item-image-frame img{object-fit:cover;width:100%;height:100%}.item-image-empty{color:#9aa6a2}.quote-table td strong{color:#17211e;margin-bottom:3px;font-size:.78rem;line-height:1.22;display:block}.quote-table td span{color:#66736f;white-space:pre-line;line-height:1.35;display:block}.item-discount-note{color:var(--accent);letter-spacing:.02em;text-transform:uppercase;margin-top:2px;font-size:.6rem;font-weight:700;display:block}.item-total-stack{flex-direction:column;align-items:flex-end;gap:1px;line-height:1.18;display:flex}.item-total-original{color:#94a09b;font-size:.6rem;font-weight:600;text-decoration:line-through;text-decoration-thickness:1px}.item-total-final{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:850}.item-total-saving{background:var(--accent-soft);color:var(--accent);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;margin-top:2px;padding:1px 6px;font-size:.55rem;font-weight:800;display:inline-block}.quote-table tfoot td{background:#f7faf8;border-bottom:0;padding:8px 5px;font-size:.68rem;font-weight:800}.quote-table tfoot tr:first-child td{border-top:2px solid #18231f}.quote-table tfoot td:first-child{color:#4f5d59;text-align:right}.quote-table tfoot td:last-child{color:#17211e;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.62rem}.quote-table tfoot .grand-total td{color:#fff;background:#16201d;font-size:.72rem}.quote-table tfoot .grand-total td:last-child{font-size:.66rem}.quote-table tfoot .grand-total td:first-child{border-radius:0 0 0 10px}.quote-table tfoot .grand-total td:last-child{border-radius:0 0 10px}.document-notes{border:1px solid var(--line);break-inside:avoid;background:#f7faf8;border-radius:16px;gap:9px;margin-top:3mm;padding:15px 17px;display:grid}.amount-in-words{border:1px dashed var(--accent);background:var(--accent-soft);break-inside:avoid;border-radius:14px;margin-top:3mm;padding:11px 17px}.amount-in-words span{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px;font-size:.7rem;font-weight:850;display:block}.amount-in-words p{color:#17211e;margin:0;font-size:.86rem;font-style:italic;font-weight:700;line-height:1.4}.payment-info-inline{gap:4px;display:grid}.payment-info-inline>span{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:.75rem;font-weight:850;display:block}.payment-rows{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px 22px;display:grid}.payment-rows div{gap:2px;min-width:0;display:grid}.payment-rows small{color:var(--muted);letter-spacing:.02em;font-size:.7rem;font-weight:700}.payment-rows strong{color:#17211e;font-variant-numeric:tabular-nums;letter-spacing:.02em;word-break:break-word;font-size:.88rem}.payment-note{color:#52605c;white-space:pre-line;margin:8px 0 0;font-size:.78rem;line-height:1.45}.document-notes div+div{border-top:1px solid #e3ebe7;padding-top:9px}.document-notes p{color:#52605c;white-space:pre-line;margin:0;font-size:.82rem;line-height:1.45}.signature-block{width:235px;max-width:100%}.signature-space{justify-content:flex-start;align-items:center;height:78px;margin:5px 0 4px;display:flex}.signature-space img{object-fit:contain;max-width:180px;max-height:70px;display:block}.signature-block strong{color:#17211e;font-size:.9rem;line-height:1.25;display:block}.signature-block p{color:#66736f;margin-top:2px;font-size:.78rem}.quote-footer{break-inside:avoid;text-align:center;border-top:1px solid #dfe7e3;justify-content:center;align-items:center;margin-top:auto;padding-top:11px;display:flex}.quote-footer strong{color:var(--accent);overflow-wrap:anywhere;font-size:.72rem;font-weight:850;line-height:1.25;display:block}.desktop-only{display:inline-flex}@media (max-width:1180px){.app-shell{padding:18px}.preview-panel{padding:20px}}@media (max-width:720px){.app-shell{padding:12px}.app-topbar,.preview-panel{padding:16px}.brand-strip,.action-row{flex-direction:column;align-items:stretch}.user-chip{margin-left:0}.status-row{flex-direction:column;align-items:stretch}.active-draft-name{max-width:100%}.modal-card{max-height:92vh;padding:16px}.field-grid.two,.field-grid.three,.info-grid{grid-template-columns:1fr}.item-editor-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.item-name-field,.item-description-field,.item-kind-field,.item-loading-field{grid-column:span 3}.item-qty-field,.item-unit-field,.item-price-field{grid-column:span 2}.item-discount-type-field,.item-discount-value-field{grid-column:span 3}.item-image-field{grid-column:span 6}.preview-toolbar{flex-direction:column;align-items:flex-start}.desktop-only{display:none}.quote-sheet{min-height:auto;padding:38px 18px 22px}.quote-header,.continuation-banner{flex-direction:column}.quote-meta{text-align:left;justify-items:start}.quote-table{min-width:680px}.quote-table.with-images{min-width:760px}.table-section{overflow-x:auto}}body.pdf-exporting .quote-sheet{width:210mm!important;height:auto!important;min-height:297mm!important;box-shadow:none!important;border-radius:0!important;padding:18mm 16mm 14mm!important;overflow:visible!important}body.pdf-exporting .preview-panel{position:static!important;top:auto!important;left:auto!important}body.pdf-exporting .quote-header{flex-direction:row!important}body.pdf-exporting .quote-meta{text-align:right!important;justify-items:end!important}body.pdf-exporting .info-grid{grid-template-columns:1.1fr .9fr!important}body.pdf-exporting .table-section{overflow:visible!important}body.pdf-exporting .quote-table{min-width:0!important}@media print{@page{size:A4;margin:0}html,body{width:210mm;background:#fff!important}body *{visibility:hidden}.preview-panel,.preview-panel *,.print-area,.print-area *{visibility:visible}.editor-panel,.preview-toolbar{display:none!important}.app-shell,.preview-panel,.preview-scroll,.print-area{min-height:0;background:#fff!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.quote-sheet{width:210mm;height:297mm;min-height:297mm;box-shadow:none;page-break-after:always;break-after:page;border:0;border-radius:0;margin:0!important}.quote-sheet:last-child{page-break-after:auto;break-after:auto}.quote-table tr,.info-card,.document-notes,.quote-footer{break-inside:avoid}}.compact.report-btn{white-space:nowrap;height:34px;min-height:34px;padding:0 10px;font-size:.78rem}.report-topbar-title{flex-direction:column;gap:2px;margin-right:auto;display:flex}.report-topbar-title .eyebrow{margin:0}.report-topbar-title strong{white-space:nowrap;text-overflow:ellipsis;max-width:300px;font-size:.92rem;overflow:hidden}.report-date-row{gap:10px;margin-bottom:11px;display:flex}.report-date-row select{border:1px solid var(--line);height:42px;color:var(--text);cursor:pointer;background:#fff;border-radius:10px;outline:0;padding:0 12px;font-size:.88rem;box-shadow:inset 0 1px #fffc}.report-date-row select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0f8a5f24}.report-floors-list{gap:12px;display:grid}.report-floor-card{border:1px solid var(--line);background:#fbfcfc;border-radius:14px;padding:14px}.report-floor-header{align-items:center;gap:6px;margin-bottom:10px;display:flex}.report-floor-drag-handle{cursor:grab;color:var(--muted);border-radius:6px;flex-shrink:0;place-items:center;padding:4px;transition:background .12s,color .12s;display:grid}.report-floor-drag-handle:hover{background:var(--accent-soft);color:var(--accent)}.report-floor-drag-handle:active{cursor:grabbing}.report-floor-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.report-floor-card.dragging{opacity:.45;background:var(--accent-soft);border-style:dashed}.report-floor-card.drag-over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.report-floor-name-input{border:1px solid var(--line);height:36px;color:var(--text);background:#fff;border-radius:8px;outline:0;flex:1;padding:0 10px;font-size:.85rem;font-weight:700}.report-floor-name-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0f8a5f24}.report-photo-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;display:grid}.report-photo-item{aspect-ratio:1;background:#eef3f1;border-radius:8px;position:relative;overflow:hidden}.report-photo-item img{object-fit:cover;width:100%;height:100%;display:block}.report-photo-remove{color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:999px;place-items:center;width:20px;height:20px;padding:0;font-size:0;display:grid;position:absolute;top:3px;right:3px}.report-photo-remove:hover{background:#b42318d9}.report-photo-upload{aspect-ratio:1;border:2px dashed var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:.68rem;font-weight:700;transition:border-color .16s,background .16s;display:flex}.report-photo-upload:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.report-photo-count{color:var(--muted);margin-top:6px;font-size:.7rem;display:block}.report-no-photos{color:var(--muted);font-size:.82rem;font-style:italic}.report-list-no{color:var(--muted);letter-spacing:.04em;font-family:Courier New,monospace;font-size:.7rem}.report-history-list{margin-top:4px}.report-history-tile{padding:6px}.report-history-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.report-history-badge{letter-spacing:.03em;color:#0f8a5f;white-space:nowrap;background:#0f8a5f1a;border-radius:6px;padding:2px 8px;font-family:Courier New,monospace;font-size:.65rem;font-weight:600;display:inline-block}.panel-section-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.panel-section-header h2{margin:0;font-size:1rem}.report-editor-input{max-width:780px;margin:0 auto}.report-sheet{border:1px solid var(--line);color:#1f2937;box-sizing:border-box;background:#fff;border-radius:6px;flex-direction:column;width:210mm;min-height:297mm;margin:0 auto 18px;padding:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:10pt;line-height:1.6;display:flex;box-shadow:0 12px 48px #16201d1a}.report-sheet-topbar{background:linear-gradient(90deg,#0f8a5f,#16a34a);flex-shrink:0;height:5mm}.report-sheet-header{text-align:center;flex-shrink:0;padding:6mm 22mm 4mm}.report-sheet-logo{object-fit:contain;width:auto;max-width:300px;height:auto;max-height:120px;margin:0 auto 18px;display:block}.report-sheet-label{letter-spacing:.25em;color:#0f8a5f;text-transform:uppercase;margin:0 0 4px;font-size:11pt;font-weight:700}.report-sheet-company{color:#111827;letter-spacing:-.03em;margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:26pt;font-weight:800;line-height:1.15}.report-sheet-meta{flex-direction:column;align-items:center;gap:8px;display:flex}.report-sheet-date{color:#374151;letter-spacing:.02em;font-size:11pt;font-weight:600}.report-sheet-doc-below{color:#0f8a5f;letter-spacing:.04em;background:#0f8a5f14;border-radius:5px;padding:3px 12px;font-family:Courier New,monospace;font-size:9pt;font-weight:700}.report-sheet-header-slim{flex-shrink:0;padding:6mm 22mm 3mm}.report-sheet-header-slim-inner{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding-bottom:4mm;display:flex}.report-sheet-header-slim-title{color:#6b7280;letter-spacing:.04em;font-size:8.5pt;font-weight:600}.report-sheet-header-slim-date{color:#9ca3af;font-size:8pt;font-weight:500}.report-sheet-body{flex-direction:column;flex:1;padding:0 22mm;display:flex}.report-sheet-floor{flex-direction:column;flex:1;display:flex}.report-sheet-floor-head{border-left:3px solid #0f8a5f;align-items:center;margin-bottom:10px;padding:0 0 7px 10px;display:flex}.report-sheet-floor-head h2{color:#1f2937;margin:0;font-size:11pt;font-weight:700}.report-sheet-photo-grid{flex:1;grid-template-columns:repeat(2,1fr);align-content:start;gap:10px;display:grid}.report-sheet-photo-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;width:100%;height:0;padding-bottom:75%;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000d}.report-sheet-photo-item img{width:auto;max-width:calc(100% - 8px);height:auto;max-height:calc(100% - 8px);display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.report-sheet-photo-num{color:#fff;z-index:1;background:#0f8a5fd9;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;font-size:7pt;font-weight:700;line-height:1;display:flex;position:absolute;top:5px;left:5px}.report-sheet-signature{flex-shrink:0;justify-content:flex-end;padding:0 22mm 4mm;display:flex}.report-sheet-signature-col{text-align:center;width:200px}.report-sheet-signature-label{color:#374151;margin:0 0 4px;font-size:9pt;font-weight:600}.report-sheet-signature-space{justify-content:center;align-items:center;height:50px;display:flex}.report-sheet-signature-space img{object-fit:contain;max-width:160px;max-height:50px;display:block}.report-sheet-signature-name{color:#6b7280;border-top:1px solid #d1d5db;margin:0;padding-top:6px;font-size:9pt;font-weight:500}.report-sheet-footer{border-top:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;padding:6mm 22mm;display:flex}.report-sheet-page-num{color:#9ca3af;font-size:8pt;font-weight:500}.report-sheet-site{color:#0f8a5f;letter-spacing:.04em;font-size:8pt;font-weight:600}.pdf-exporting .report-sheet{box-shadow:none;page-break-after:always;break-after:page;border:0;border-radius:0}.pdf-exporting .report-sheet-topbar{height:5mm}
