:root { color-scheme: light; font-family: Inter, Arial, sans-serif; color: #242128; background: #f5f2ee; }
* { box-sizing: border-box; }
body { margin: 0; }
main { max-width: 1120px; margin: 0 auto; padding: 32px 24px 64px; }
header, .section-title, .actions, .summary > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
h1 { margin: 4px 0 20px; font-size: clamp(30px, 5vw, 52px); }
h2 { margin: 0; }
.summary, .preview, .pricing { border-radius: 18px; padding: 20px; background: white; box-shadow: 0 12px 40px rgba(37, 26, 42, .08); }
.pricing { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; border-left: 5px solid #6e5877; }
.pricing div { display: grid; gap: 6px; }
.pricing span { color: #716974; white-space: pre-line; }
.pricing a { color: #563c61; }
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 28px; }
label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }
input { width: 100%; border: 1px solid #d7d0da; border-radius: 10px; padding: 11px 12px; font: inherit; background: white; }
.description { margin-top: 5px; color: #716974; font-size: 12px; }
button { border: 0; border-radius: 10px; padding: 11px 16px; font-weight: 750; cursor: pointer; background: #563c61; color: white; }
button:disabled { opacity: .45; cursor: not-allowed; }
.section-title { margin: 28px 0 12px; }
.item-row { display: grid; grid-template-columns: 2fr .7fr .7fr 1fr .7fr 1fr auto; gap: 10px; align-items: end; background: white; padding: 14px; border-radius: 14px; margin-bottom: 10px; }
.item-row output { padding: 11px 4px; font-weight: 800; text-align: right; }
.remove { background: #eee8ef; color: #6b596f; padding: 10px 13px; }
#errors { color: #a02d2d; margin: 12px 0; }
#errors p { margin: 4px 0; }
.summary { margin-top: 20px; }
.summary strong { font-size: 28px; }
.pending { color: #786f7b; }
.actions { justify-content: flex-start; margin: 20px 0 32px; }
.preview { position: relative; overflow-x: auto; padding: 28px; background: #e9e5df; }
.proposal-sheet { --ink: #101626; --muted: #8c8b8b; --paper: #fbfaf7; --coral: #e97a42; --amber: #efb747; --teal: #73a8aa; position: relative; width: 210mm; min-height: 297mm; margin: 0 auto; padding: 15mm 15mm 12mm; overflow: hidden; color: var(--ink); background: var(--paper); box-shadow: 0 18px 60px rgba(29, 25, 24, .15); font-family: Inter, Arial, sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.proposal-head { position: relative; display: grid; grid-template-columns: 1.04fr .96fr; min-height: 98mm; gap: 6mm; align-items: start; }
.proposal-copy { position: relative; z-index: 2; }
.brand-lockup { display: grid; width: max-content; text-align: center; }
.brand-lockup strong { margin-top: 2mm; font-size: 8mm; line-height: 1; font-weight: 500; letter-spacing: .34em; transform: translateX(.17em); }
.brand-lockup span { margin-top: 3mm; font-size: 2.4mm; letter-spacing: .48em; transform: translateX(.24em); }
.brand-dots { display: flex; justify-content: center; gap: 3mm; }
.brand-dots i { width: 4mm; height: 4mm; border-radius: 50%; background: var(--coral); }
.brand-dots i:nth-child(2) { background: var(--amber); }
.brand-dots i:nth-child(3) { background: var(--teal); }
.brand-promise { position: absolute; top: 0; left: 144mm; width: 28mm; margin: 0; font-size: 2.6mm; line-height: 1.7; letter-spacing: .5em; white-space: nowrap; }
.proposal-copy h2 { margin: 14mm 0 3mm; font-size: 11.5mm; line-height: 1.08; letter-spacing: -.04em; font-weight: 600; }
.proposal-subtitle { margin: 0; color: #929292; font-size: 5.1mm; line-height: 1.3; }
.proposal-client { margin: 2mm 0 0; color: #666; font-size: 3.2mm; }
.proposal-kinds { margin: 7mm 0 0; color: #919191; font-size: 2.5mm; }
.event-facts { display: grid; grid-template-columns: 1.18fr 1fr .55fr; gap: 3mm; width: 116mm; margin-top: 7mm; }
.event-facts > div { display: flex; gap: 3mm; align-items: center; }
.event-facts b { display: grid; width: 7mm; height: 7mm; place-items: center; font-size: 5mm; }
.event-facts span { display: grid; gap: 1mm; white-space: nowrap; }
.event-facts strong { font-size: 3.4mm; font-weight: 600; }
.event-facts small { color: #969696; font-size: 2.4mm; }
.venue-visual { position: absolute; z-index: 1; top: 14mm; right: -15mm; width: 99mm; height: 75mm; }
.venue-visual img { width: 100%; height: 100%; object-fit: cover; border-radius: 48% 0 0 44% / 50% 0 0 50%; }
.venue-badge { position: absolute; right: 3mm; bottom: -10mm; display: grid; width: 39mm; height: 35mm; place-content: center; text-align: center; color: white; background: var(--coral); border-radius: 48% 52% 48% 52% / 55% 46% 54% 45%; }
.venue-badge strong { font-size: 4mm; font-weight: 500; letter-spacing: .35em; text-transform: uppercase; }
.venue-badge span { margin-top: 2mm; font-size: 2.5mm; line-height: 1.35; letter-spacing: .18em; }
.proposal-cost { position: relative; z-index: 2; }
.proposal-cost h3 { margin: 0 0 6mm; font-size: 7mm; font-weight: 600; }
.proposal-cost table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.proposal-cost th { padding: 0 2.5mm 3mm; color: #9a9a9a; border-bottom: .3mm solid #ddd9d3; font-size: 2.4mm; font-weight: 500; text-align: left; }
.proposal-cost td { padding: 3.2mm 2.5mm; border-bottom: .3mm solid #e4e0da; font-size: 3mm; text-align: left; vertical-align: top; }
.proposal-cost th:first-child, .proposal-cost td:first-child { width: 8mm; padding-left: 0; }
.proposal-cost th:nth-child(2), .proposal-cost td:nth-child(2) { width: 90mm; }
.proposal-cost th:nth-child(n+3), .proposal-cost td:nth-child(n+3) { text-align: right; }
.proposal-cost td strong { display: block; font-size: 3.1mm; font-weight: 500; }
.proposal-cost td small { display: block; margin-top: 1mm; color: #919191; font-size: 2.5mm; line-height: 1.35; }
.proposal-total { display: flex; align-items: center; justify-content: space-between; margin-top: 4mm; padding: 5mm 7mm; border-radius: 4mm; background: #f0ece6; }
.proposal-total span { font-size: 4.4mm; }
.proposal-total strong { font-size: 7mm; }
.proposal-notes { display: grid; grid-template-columns: 1fr 1fr; margin-top: 5mm; padding: 6mm; border-radius: 4mm; background: #f7f5f1; }
.proposal-notes > div { display: flex; gap: 4mm; padding: 0 4mm; }
.proposal-notes > div + div { border-left: .3mm solid #dcd7cf; }
.note-icon { font-size: 6mm; font-weight: 400; }
.proposal-notes p { display: grid; gap: 2mm; margin: 0; }
.proposal-notes strong { font-size: 3.3mm; }
.proposal-notes span { color: #656565; font-size: 2.6mm; line-height: 1.45; }
.proposal-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 15mm; align-items: start; margin-top: 6mm; padding: 0 14mm; break-inside: avoid; }
.proposal-footer.without-legal { grid-template-columns: 1fr; }
.proposal-footer p { margin: 0 0 3mm; font-size: 2.7mm; line-height: 1.65; letter-spacing: .38em; }
.proposal-footer .brand-dots { justify-content: flex-start; }
.legal { display: grid; gap: 1.2mm; }
.legal strong { font-size: 3.3mm; }
.legal span { color: #8e8e8e; font-size: 2.8mm; }
.legal b { margin-top: 2mm; padding-bottom: 2mm; border-bottom: .3mm solid #7b7b7b; font-size: 2.8mm; font-weight: 500; }
.legal small { color: #777; font-size: 2.2mm; line-height: 1.4; }

.legal-option { display: flex; align-items: flex-start; gap: 12px; margin: 18px 0 24px; padding: 16px 18px; border: 1px solid #ded7d2; border-radius: 18px; background: #fff; cursor: pointer; }
.legal-option input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: #dc7a3e; }
.legal-option span { display: grid; gap: 4px; }
.legal-option strong { font-size: 16px; }
.legal-option small { color: #777; font-size: 14px; font-weight: 400; }
.proposal-orbit { position: absolute; z-index: 0; border: .5mm solid var(--coral); border-radius: 50%; }
.orbit-top { top: -35mm; right: -46mm; width: 83mm; height: 83mm; border-color: #ddd3c8; }
.orbit-bottom { left: -44mm; bottom: -45mm; width: 84mm; height: 84mm; }
.orbit-bottom::after { content: ''; position: absolute; left: 70mm; top: 22mm; width: 110mm; height: 50mm; background: var(--teal); border-radius: 50% 50% 0 0 / 55% 55% 0 0; transform: rotate(-5deg); }
@media (max-width: 800px) { .grid { grid-template-columns: 1fr 1fr; } .item-row { grid-template-columns: 1fr 1fr; } .item-row label:first-child { grid-column: 1 / -1; } .pricing { align-items: stretch; flex-direction: column; } .preview { padding: 12px; } .proposal-sheet { transform-origin: top left; } }
@page { size: A4 portrait; margin: 0; }
@media print {
  body { background: white; }
  body > main { max-width: none; padding: 0; }
  body > main > header, form, .pricing, .section-title, .summary, .actions, #errors { display: none !important; }
  .preview { display: block !important; overflow: visible; padding: 0; background: white; box-shadow: none; }
  .proposal-sheet { width: 210mm; min-height: 297mm; margin: 0; box-shadow: none; break-after: page; }
}
