@page{size:A4;margin:18mm}*{box-sizing:border-box;margin:0;padding:0}body{color:#161616;background:#f0f0f0;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}.quote-page{max-width:800px;margin:0 auto;padding:24px 16px 80px}.doc{background:#fff;border-radius:12px;padding:40px;box-shadow:0 1px 4px #00000014}.doc-header{border-bottom:2px solid #161616;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:24px;display:flex}.logo{object-fit:contain;max-width:200px;max-height:56px;margin-bottom:12px;display:block}.doc-header h1{letter-spacing:-.5px;font-size:28px;font-weight:800}.from-label,.party-label{text-transform:uppercase;letter-spacing:1.5px;color:#888;margin:10px 0 4px;font-size:9px;font-weight:700}.from-name{font-size:14px;font-weight:700}.muted{color:#888;font-size:11px}.meta{text-align:right}.ref{margin-bottom:6px;font-family:monospace;font-size:16px;font-weight:700}.meta .muted span{color:#161616;font-weight:600}.parties{gap:24px;margin-bottom:24px;display:flex}.party{background:#f7f7f7;border-radius:8px;flex:1;padding:16px}.party-total{background:0 0;border:1px solid #e0e0e0}.party-name{font-size:14px;font-weight:700}.total-amount{font-family:monospace;font-size:22px;font-weight:800}.job{background:#f7f7f7;border-radius:8px;margin-bottom:24px;padding:14px 18px}.job div{margin-top:2px;font-size:12px}table.items{border-collapse:collapse;width:100%;margin-bottom:20px}table.items th{text-transform:uppercase;letter-spacing:1px;color:#888;text-align:left;border-bottom:1.5px solid #161616;padding:6px 8px;font-size:9px;font-weight:700}table.items td{vertical-align:top;border-bottom:1px solid #ebebeb;padding:9px 8px}.r{text-align:right;font-family:monospace}.totals{width:260px;margin-bottom:24px;margin-left:auto}.totals .row{color:#555;justify-content:space-between;padding:5px 0;display:flex}.totals .row span:last-child{font-family:monospace}.totals .row.total{color:#161616;border-top:1px solid #ebebeb;padding-top:10px;font-size:15px;font-weight:800}.quote-history{border:1px solid #161616;border-radius:8px;margin-bottom:24px;overflow:hidden}.quote-history-title{text-transform:uppercase;letter-spacing:1.5px;color:#888;border-bottom:1px dashed #e0e0e0;padding:10px 14px;font-size:9px;font-weight:700}.quote-history-list{list-style:none}.quote-history-item{border-bottom:1px dashed #ebebeb;align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.quote-history-item:last-child{border-bottom:none}.timeline-dot{border:1px solid #161616;border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:4px}.timeline-dot-ink{background:#161616;border-color:#161616}.timeline-dot-muted{background:#fff}.timeline-dot-ok{background:#27ae60;border-color:#27ae60}.timeline-dot-bad{background:#c0392b;border-color:#c0392b}.quote-history-label{font-size:12px;font-weight:700}.quote-history-accepted .quote-history-label{color:#27ae60}.quote-history-declined .quote-history-label{color:#c0392b}.quote-history-when{color:#888;margin-top:2px;font-family:monospace;font-size:10.5px;display:block}.doc-footer{color:#888;border-top:1px solid #e0e0e0;padding-top:16px;font-size:10px}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.btn{cursor:pointer;border:1px solid #161616;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:700}.btn-primary{color:#fff;background:#161616}.btn-ghost{color:#161616;background:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.approve-form{flex:1;gap:8px;min-width:240px;display:flex}.name-input{border:1px solid #ccc;border-radius:8px;flex:1;padding:12px;font-size:14px}.submitting{color:#888}.banner{border-radius:8px;flex-direction:column;gap:2px;width:100%;padding:14px 16px;display:flex}.banner-success{background:#e8f5e9}.banner-error{background:#fdecea}.banner-muted{background:#f0f0f0}.state-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.state-card{text-align:center;background:#fff;border-radius:12px;max-width:420px;padding:40px}.state-card h1{margin-bottom:8px;font-size:22px}.state-card p{color:#555}@media print{body{background:#fff}.no-print{display:none!important}.doc{box-shadow:none;border-radius:0;padding:0}.quote-page{max-width:none;padding:0}}