:root{--brand: #f59e0b;--footer: #332519;--footer-ink: #f4eee3;--gold: #f59e0b;--espresso: #332519;--cream: #f4eee3;--ink: #2e2318;--muted: #7c6c58;--line: #e2d9c9;--stage: #e9e1d3}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:Arial,Liberation Sans,Helvetica,ui-sans-serif,sans-serif;background:var(--stage);color:var(--ink)}body{min-height:100vh;padding:1rem}h1,h2,h3{font-weight:700;color:var(--ink)}h1{font-size:1.75rem}h2{font-size:1.25rem}h3{font-size:1rem}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.form-group label{font-size:.875rem;font-weight:700;color:var(--ink)}.form-group input,.form-group textarea{padding:.5rem;border:1px solid var(--line);border-radius:.375rem;font-family:inherit;font-size:1rem;color:var(--ink);background:#fff}.form-group textarea{resize:vertical;min-height:80px}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #f59e0b1a}main{max-width:1560px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.25rem;padding:1.5rem 1rem}@media (min-width: 820px){main{grid-template-columns:minmax(290px,370px) 1fr;gap:1.25rem}}.form-column{background:#fff;padding:2rem;border-radius:1rem;box-shadow:0 1px 3px #0000001a;overflow-y:auto;max-height:calc(100vh - 120px)}@media (min-width: 820px){.form-column{position:sticky;top:74px}}.preview-column{background:var(--stage);border-radius:1rem;padding:1.5rem;overflow:hidden}@media (min-width: 820px){.preview-column{position:sticky;top:74px}}#paperHolder{margin:0 auto;background:#fff;box-shadow:0 20px 60px #00000026;border-radius:.5rem;overflow:hidden}#paperWrap{width:210mm;height:297mm;background:#fff;display:flex;flex-direction:column;transform-origin:top left}.paper-header{height:30mm;background-color:var(--brand);display:flex;justify-content:space-between;align-items:center;padding:0 14mm;flex-shrink:0}.paper-header__logo{max-height:27mm;max-width:170px;object-fit:contain}.paper-header__contact{font-size:8pt;color:#fff;text-align:right;line-height:1.4}.paper-header__contact .emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:.95em;line-height:1;margin-right:2px}.paper-header__tin{font-weight:700;margin-top:3px}.paper-body{flex:1;padding:6mm 14mm 2mm;overflow-y:auto;display:flex;flex-direction:column}.doc-title-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2.5mm}.doc-title{font-size:20pt;font-weight:700;letter-spacing:.08em;color:var(--ink)}.doc-number-block{text-align:right}.doc-number-label{font-size:7pt;text-transform:uppercase;color:var(--muted);letter-spacing:.03em}.doc-number-value{font-size:11pt;font-weight:700;color:var(--ink)}.meta-table{display:grid;grid-template-columns:max-content 1fr max-content 1fr;border:1px solid var(--line);border-radius:4px;overflow:hidden;flex-shrink:0;margin-bottom:3mm;font-size:8pt}.meta-cell{padding:3px 8px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;align-items:center}.meta-table>.meta-cell:nth-child(4n){border-right:none}.meta-table>.meta-cell:nth-last-child(-n+4){border-bottom:none}.meta-label{background:#f4f1ea;font-weight:700;text-transform:uppercase;font-size:6.5pt;letter-spacing:.03em;color:var(--muted)}.meta-value{color:var(--ink)}.job-section{border-top:2px solid var(--gold);padding-top:2mm;margin-bottom:2.5mm}.job-title{font-size:10pt;font-weight:700;color:var(--gold)}.job-desc{font-size:8pt;color:var(--ink);margin-top:1mm;line-height:1.4}.stage-block{margin-bottom:2.5mm}.stage-heading{font-size:8.5pt;font-weight:700;color:var(--ink);margin-bottom:1mm}.stage-note{font-weight:400;font-size:7.5pt;color:var(--muted)}.stage-table{width:100%;border-collapse:collapse;font-size:8pt}.stage-table thead th{background:var(--espresso);color:#fff;text-align:left;padding:1.8mm 3mm;font-size:7pt;text-transform:uppercase;letter-spacing:.02em;font-weight:700}.stage-table tbody td{padding:1.4mm 3mm;border-bottom:1px solid var(--line)}.stage-table tbody tr:nth-child(2n){background:var(--stage)}.stage-table tfoot td{padding:1.4mm 3mm;background:#e2d5bd;font-weight:700;border-top:2px solid var(--line)}.col-num{width:8mm;text-align:center}.col-qty{width:16mm;text-align:center}.col-amt{width:26mm;text-align:right}.stage-table thead th.col-num,.stage-table thead th.col-qty{text-align:center}.stage-table thead th.col-amt{text-align:right}.summary-block{margin-top:2.5mm;width:85mm;margin-left:auto;font-size:8pt}.summary-row{display:flex;justify-content:space-between;padding:1mm 2mm;border-bottom:1px solid var(--line)}.summary-subtotal{font-weight:700;border-top:1px solid var(--ink)}.summary-adj{font-style:italic;color:var(--muted)}.summary-total{background:var(--gold);color:#fff;font-weight:700;font-size:10pt;border-radius:2px;margin-top:1mm;padding:1.8mm 2mm;border-bottom:none}.panels-grid{display:grid;grid-template-columns:1fr 1fr;gap:4mm;margin-top:3mm}.panel{border-radius:2mm;padding:2.2mm 3mm;font-size:7.5pt;line-height:1.4}.panel-dark{background:var(--espresso);color:var(--cream)}.panel-dark h3{color:var(--gold);font-size:8pt;text-transform:uppercase;letter-spacing:.03em;margin-bottom:1.5mm}.panel-light{background:#faf7f0;border:1px solid var(--line);color:var(--ink)}.panel-light h3{color:var(--espresso);font-size:8pt;text-transform:uppercase;letter-spacing:.03em;margin-bottom:1.5mm}.panel-body p{margin-bottom:1.5mm}.panel-body p:last-child{margin-bottom:0}.panel-body em{font-style:italic;color:var(--muted)}.panel-dark .panel-body em{color:#d8ccb8}.paper-footer{height:11.5mm;background-color:var(--footer);color:var(--footer-ink);display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:7pt;line-height:1.2;flex-shrink:0}.gate-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--espresso);display:flex;align-items:center;justify-content:center;padding:1rem}.gate-overlay.is-hidden{display:none}.gate-box{background:#fff;border-radius:1rem;padding:2.5rem;width:100%;max-width:360px;text-align:center;box-shadow:0 20px 60px #0000004d}.gate-logo{max-width:200px;max-height:70px;object-fit:contain;margin:0 auto 1.5rem}.gate-box h2{margin-bottom:.5rem}.gate-box p{color:var(--muted);font-size:.875rem;margin-bottom:1.25rem}.gate-box input{width:100%;padding:.75rem;border:1px solid var(--line);border-radius:.375rem;font-size:1rem;margin-bottom:1rem;text-align:center}.gate-box input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #f59e0b1a}.gate-box .btn{width:100%}.gate-error{color:#b23b3b;font-size:.8rem;min-height:1.2em;margin-top:.75rem;margin-bottom:0}.app-logo{height:44px;max-width:240px;object-fit:contain}.btn{padding:.75rem 1.5rem;border:none;border-radius:.375rem;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:#e88c0b;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b40}.stage-editor-card{border:1px solid var(--line);border-radius:.5rem;padding:1rem;margin-bottom:1rem;background:#faf8f4}.stage-editor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.stage-items{display:flex;flex-direction:column;gap:.4rem;margin:.5rem 0}.item-row{display:grid;grid-template-columns:1fr 60px 80px 24px;gap:.4rem;align-items:center}.item-row--head{font-size:.7rem;font-weight:700;color:var(--muted);text-transform:uppercase}.item-row input{padding:.35rem .5rem;border:1px solid var(--line);border-radius:.25rem;font-size:.85rem;width:100%}.btn-remove,.btn-remove-sm{background:none;border:none;color:#b23b3b;cursor:pointer;font-size:.8rem}.btn-remove-sm{font-size:1rem;padding:0 .25rem}.btn-add-sm{background:none;border:1px dashed var(--brand);color:var(--brand);border-radius:.25rem;padding:.35rem .75rem;font-size:.8rem;font-weight:700;cursor:pointer}.btn-add{background:none;border:1px dashed var(--brand);color:var(--brand);border-radius:.375rem;padding:.6rem 1rem;font-size:.9rem;font-weight:700;cursor:pointer;width:100%}.avoid-break{page-break-inside:avoid}@print{* {box-shadow: none !important;} body {background: white;} main {grid-template-columns: 1fr;} .form-column {display: none;}}
