:root{--midnight: #0a0a0a;--midnight-soft: #131313;--surface: #1b1b1b;--surface-high: #272727;--surface-hover: #2f2f2f;--ivory: #f5f0ea;--ivory-dim: rgba(245, 240, 234, .75);--ivory-muted: rgba(245, 240, 234, .4);--ivory-faint: rgba(245, 240, 234, .12);--gold: #b8965a;--gold-light: #d4b47e;--gold-dim: rgba(184, 150, 90, .35);--gold-faint: rgba(184, 150, 90, .12);--border: rgba(245, 240, 234, .1);--border-strong: rgba(245, 240, 234, .2);--error: #e05252;--error-dim: rgba(224, 82, 82, .15);--success: #52a87c;--success-dim: rgba(82, 168, 124, .15);--warning: #d4955a;--warning-dim: rgba(212, 149, 90, .15);--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "Inter", system-ui, sans-serif;--sidebar-width: 240px;--header-height: 56px;--radius: 6px;--radius-sm: 4px;--radius-lg: 10px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--midnight);color:var(--ivory);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{height:100%}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#f5f0ea59}::selection{background:var(--gold-dim);color:var(--ivory)}:focus-visible{outline:1.5px solid var(--gold);outline-offset:2px;border-radius:var(--radius-sm)}.font-serif{font-family:var(--font-serif)}.font-sans{font-family:var(--font-sans)}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-gold{0%,to{opacity:1}50%{opacity:.4}}@keyframes progress-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fade-in .3s ease forwards}.animate-slide-in{animation:slide-in .3s ease forwards}.animate-spin{animation:spin .8s linear infinite}.animate-pulse-gold{animation:pulse-gold 1.5s ease-in-out infinite}.shimmer{background:linear-gradient(90deg,var(--surface) 0%,var(--surface-high) 50%,var(--surface) 100%);background-size:200% 100%;animation:progress-shimmer 1.5s infinite}.step-line{height:1px;background:var(--border);flex:1;margin:0 8px;transition:background .3s ease}.step-line.active{background:var(--gold)}.upload-zone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);transition:all .2s ease;cursor:pointer}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--gold);background:var(--gold-faint)}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .2s ease}.card:hover{border-color:var(--border-strong)}.card.interactive{cursor:pointer}.card.interactive:hover{border-color:var(--gold-dim)}.divider{height:1px;background:var(--border);width:100%}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}@media (max-width: 600px){.grid-2,.grid-3{grid-template-columns:1fr}}.prose-dark{color:var(--ivory-dim);font-size:15px;line-height:1.8}.prose-dark p+p{margin-top:12px}.scene-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .2s ease}.scene-card:hover{border-color:var(--border-strong)}.scene-card .scene-header{background:var(--surface-high);padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.stat-chip{background:var(--gold-faint);border:1px solid var(--gold-dim);color:var(--gold-light);border-radius:var(--radius);padding:4px 10px;font-size:12px;font-weight:500}.equip-tag{background:var(--ivory-faint);border:1px solid var(--border);color:var(--ivory-dim);border-radius:var(--radius-sm);padding:2px 8px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.overlay-tag{background:var(--surface-high);border:1px solid var(--border-strong);color:var(--ivory);border-radius:var(--radius);padding:6px 12px;font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.quote-builder{--quote-bg: #0a0a0a;--quote-surface: #131313;--quote-ivory: #f5f0ea;--quote-line: rgba(245, 240, 234, .16);display:flex;flex-direction:column;gap:18px}.quote-builder button,.quote-builder input,.quote-builder textarea{border-radius:0!important}.quote-hero{background:var(--quote-bg);border:1px solid var(--quote-line);padding:26px;display:flex;justify-content:space-between;gap:24px}.quote-hero span,.quote-section header span,.quote-summary span,.quote-chat header span,.quote-print-label{display:block;color:#f5f0ea7a;font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.quote-hero h2{color:var(--quote-ivory);font-family:"Noto Serif",Georgia,serif;font-size:28px;font-weight:400;letter-spacing:0;line-height:1.15;margin-top:8px}.quote-hero p{color:#f5f0ea9e;font-family:Cormorant Garamond,Georgia,serif;font-size:20px;font-style:italic;font-weight:300;margin-top:8px}.quote-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}.quote-button{height:38px;border:1px solid var(--quote-line);background:var(--quote-ivory);color:var(--quote-bg);padding:0 16px;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.quote-button+.quote-button{background:transparent;color:var(--quote-ivory)}.quote-button--primary{background:var(--quote-ivory)!important;color:var(--quote-bg)!important;font-weight:600;letter-spacing:.1em}.quote-button:disabled{opacity:.4;cursor:not-allowed}.quote-error{border:1px solid rgba(224,82,82,.35);color:#e8a1a1;background:#e0525214;padding:12px 14px;font-size:12px}.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.quote-main,.quote-side{display:flex;flex-direction:column;gap:18px}.quote-section,.quote-summary,.quote-chat{border:1px solid var(--quote-line);background:var(--quote-surface);padding:20px}.quote-section header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.quote-section header strong{color:#f5f0ea9e;font-size:12px;font-weight:400;text-align:right}.quote-package-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quote-package-grid button,.quote-tone button{border:1px solid var(--quote-line);background:transparent;color:#f5f0ea85;padding:14px;text-align:left}.quote-package-grid button.active,.quote-tone button.active{background:var(--quote-ivory);border-color:var(--quote-ivory);color:var(--quote-bg)}.quote-package-grid span{display:block;font-family:"Noto Serif",Georgia,serif;font-size:18px}.quote-package-grid small{display:block;font-size:11px;line-height:1.35;margin-top:5px;opacity:.72}.quote-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quote-slider{position:relative;display:grid;grid-template-columns:1fr auto;gap:9px;min-height:68px;align-items:start}.quote-slider span{color:#f5f0ea7a;font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.quote-slider strong{color:var(--quote-ivory);font-family:Cormorant Garamond,Georgia,serif;font-size:21px;font-style:italic;font-weight:300;line-height:1}.quote-slider input{grid-column:1 / -1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;height:20px;position:relative;z-index:2}.quote-slider input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border:1px solid var(--quote-ivory);background:var(--quote-bg)}.quote-slider:before,.quote-slider i{content:"";position:absolute;left:0;right:0;bottom:15px;height:2px;background:#f5f0ea2e}.quote-slider i{right:auto;background:var(--quote-ivory)}.quote-tone{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.quote-tone button{text-align:center;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.quote-value-section{background:#0a0a0a}.quote-value-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--quote-line)}.quote-value-grid div{border-right:1px solid var(--quote-line);padding:15px}.quote-value-grid div:last-child{border-right:0}.quote-value-grid span,.quote-value-empty span{display:block;color:#f5f0ea7a;font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}.quote-value-grid strong{display:block;color:var(--quote-ivory);font-family:Cormorant Garamond,Georgia,serif;font-size:26px;font-style:italic;font-weight:300;line-height:1;margin-top:8px}.quote-value-empty{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--quote-line);padding:16px}.quote-value-empty p,.quote-value-report p{color:#f5f0ea9e;font-size:12px;line-height:1.6}.quote-value-empty button{height:36px;border:1px solid var(--quote-ivory);background:var(--quote-ivory);color:var(--quote-bg);padding:0 14px;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.quote-value-empty button:disabled{opacity:.42}.quote-value-report{display:grid;gap:16px;margin-top:16px}.quote-value-status{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--quote-line);padding-bottom:12px}.quote-value-status span,.quote-value-footer span{color:var(--quote-ivory);font-family:"Noto Serif",Georgia,serif;font-size:17px}.quote-value-status small,.quote-value-footer small{color:#f5f0ea7a;font-size:11px;line-height:1.45}.quote-value-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quote-value-columns div{border:1px solid var(--quote-line);padding:13px}.quote-value-columns b{display:block;color:var(--quote-ivory);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px}.quote-value-columns ul{display:grid;gap:7px;color:#f5f0ea94;font-size:12px;line-height:1.45;padding-left:14px}.quote-value-footer{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--quote-line);padding-top:13px}.quote-line-items{display:flex;flex-direction:column;border-top:1px solid var(--quote-line)}.quote-line-items>div{display:grid;grid-template-columns:34px minmax(0,1fr) 58px 102px;gap:12px;align-items:center;border-bottom:1px solid var(--quote-line);padding:13px 0;opacity:.5}.quote-line-items>div.enabled{opacity:1}.quote-line-items button{width:28px;height:28px;border:1px solid var(--quote-line);background:transparent;color:var(--quote-ivory)}.quote-line-items button:disabled{opacity:.45}.quote-line-items strong,.quote-line-items span{display:block}.quote-line-items strong{color:var(--quote-ivory);font-size:13px;font-weight:500}.quote-line-items span{color:#f5f0ea85;font-size:12px;margin-top:2px}.quote-line-items input{width:58px;height:32px;border:1px solid var(--quote-line);background:var(--quote-bg);color:var(--quote-ivory);text-align:center}.quote-line-items em{color:var(--quote-ivory);font-style:normal;font-size:13px;text-align:right}.quote-summary strong{display:block;color:var(--quote-ivory);font-family:Cormorant Garamond,Georgia,serif;font-size:42px;font-style:italic;font-weight:300;line-height:1;margin-top:10px}.quote-summary p{color:#f5f0ea94;font-size:12px;line-height:1.55;margin-top:16px}.quote-summary div{border-top:1px solid var(--quote-line);margin-top:16px;padding-top:14px}.quote-summary small,.quote-summary b,.quote-chat header small{display:block;color:#f5f0ea7a;font-size:11px;font-weight:400}.quote-summary b{color:#f5f0eab8;margin-top:4px}.quote-chat{min-height:460px;display:flex;flex-direction:column}.quote-chat header small{line-height:1.45;margin-top:7px}.quote-chat-log{display:flex;flex:1;flex-direction:column;gap:8px;margin:16px 0;overflow:auto;max-height:300px}.quote-chat-log div{border:1px solid var(--quote-line);color:#f5f0eab3;font-size:12px;line-height:1.45;padding:10px}.quote-chat-log .user{background:var(--quote-ivory);color:var(--quote-bg);align-self:flex-end;max-width:88%}.quote-chat-input{display:grid;gap:8px}.quote-chat-input textarea{width:100%;resize:vertical;border:1px solid var(--quote-line);background:var(--quote-bg);color:var(--quote-ivory);padding:10px;font-size:12px;line-height:1.45}.quote-chat-input button{height:34px;border:1px solid var(--quote-ivory);background:var(--quote-ivory);color:var(--quote-bg);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.quote-chat-input button:disabled{opacity:.42}.quote-print-root{position:fixed;left:-200vw;top:0;width:210mm;color:#0a0a0a;background:#f5f0ea}.quote-print-page{background:#f5f0ea;color:#0a0a0a;min-height:297mm;padding:18mm;font-family:Inter,Arial,sans-serif}.quote-print-cover{display:grid;grid-template-columns:34mm 1fr;gap:14mm;align-items:start;border-bottom:1px solid #0a0a0a;padding-bottom:12mm}.quote-print-cover img{width:34mm;height:auto}.quote-print-cover h1{font-family:"Noto Serif",Georgia,serif;font-size:30pt;font-weight:400;line-height:1;margin:5mm 0 3mm}.quote-print-cover span,.quote-print-label,.quote-print-meta span{color:#0a0a0a;font-size:7pt;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.quote-print-cover p{font-family:Cormorant Garamond,Georgia,serif;font-size:16pt;font-style:italic}.quote-print-meta{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #0a0a0a;margin-bottom:10mm}.quote-print-meta div{border-right:1px solid #0a0a0a;padding:6mm 4mm}.quote-print-meta div:last-child{border-right:0}.quote-print-meta strong{display:block;font-size:10pt;margin-top:2mm}.quote-print-value-meta{border:1px solid #0a0a0a;margin:5mm 0 2mm}.quote-print-page article{break-inside:avoid;border-bottom:1px solid #0a0a0a;padding:8mm 0}.quote-print-page p,.quote-print-page li{font-size:10pt;line-height:1.55}.quote-print-page ul{display:grid;gap:2mm;margin-top:4mm;padding-left:5mm}.quote-print-page table{border-collapse:collapse;margin-top:5mm;width:100%}.quote-print-page td{border-top:1px solid #0a0a0a;font-size:9pt;padding:4mm 0;vertical-align:top}.quote-print-page td:nth-child(2),.quote-print-page td:nth-child(3){text-align:right;white-space:nowrap}.quote-print-page td span{display:block;font-size:8pt;line-height:1.35;margin-top:1mm}.quote-print-total{display:flex;justify-content:space-between;border-top:2px solid #0a0a0a;margin-top:4mm;padding-top:5mm}.quote-print-total strong{font-family:Cormorant Garamond,Georgia,serif;font-size:24pt;font-style:italic;font-weight:300}@media (max-width: 980px){.quote-layout,.quote-package-grid,.quote-controls,.quote-value-grid,.quote-value-columns{grid-template-columns:1fr}.quote-value-grid div{border-right:0;border-bottom:1px solid var(--quote-line)}.quote-value-grid div:last-child{border-bottom:0}.quote-value-empty,.quote-value-status{align-items:flex-start;flex-direction:column}.quote-hero{flex-direction:column}.quote-actions{justify-content:flex-start}}@page{size:A4;margin:0}@media print{body *{visibility:hidden!important}.quote-print-root,.quote-print-root *{visibility:visible!important}.quote-print-root{position:absolute;left:0;top:0}}.tooltip{position:relative}.tooltip:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--surface-high);border:1px solid var(--border);color:var(--ivory-dim);font-size:11px;white-space:nowrap;padding:4px 8px;border-radius:var(--radius-sm);pointer-events:none;opacity:0;transition:opacity .15s}.tooltip:hover:after{opacity:1}
