:root{--red:#d7192d;--ink:#171717;--muted:#68706b;--line:#e3e7e4;--paper:#fff}*{box-sizing:border-box}body{color:var(--ink);background:#f3f5f3;margin:0;font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}.landing,.state-page{text-align:center;place-content:center;justify-items:center;gap:12px;min-height:100vh;padding:30px;display:grid}.landing img,.state-page img{width:min(430px,85vw)}.landing h1,.state-page h1{margin:10px 0 0}.landing p,.state-page p{max-width:520px;color:var(--muted);margin:0}.portal-shell{padding-bottom:60px}.portal-toolbar{z-index:5;color:#fff;background:#171717;justify-content:space-between;align-items:center;gap:20px;padding:12px max(18px,50vw - 410px);display:flex;position:sticky;top:0}.portal-toolbar span{font-size:13px;font-weight:700}.portal-toolbar button{color:#111;cursor:pointer;background:#fff;border:1px solid #555;border-radius:9px;padding:9px 14px}.portal-actions{align-items:center;gap:8px;display:flex}.portal-toolbar .download-pdf{border-color:var(--red);background:var(--red);color:#fff;font-weight:800}.portal-toolbar button:disabled{cursor:wait;opacity:.68}.quote-paper{background:var(--paper);width:min(820px,100% - 28px);min-height:1090px;margin:28px auto;padding:48px 55px;box-shadow:0 16px 50px #00000014}.quote-paper.pdf-capture{width:820px;min-height:1090px;box-shadow:none;margin:0;padding:48px 55px}.quote-paper>header{border-bottom:2px solid var(--red);justify-content:space-between;align-items:flex-start;gap:30px;padding-bottom:22px;display:flex}.quote-logo{width:300px;height:100px;position:relative;overflow:hidden}.quote-logo img{width:119.6%;max-width:none;height:auto;position:absolute;top:-69.5%;left:-9.8%;transform:none}.quote-paper>header>div:last-child{justify-items:end;gap:7px;display:grid}.quote-paper h1{color:var(--red);margin:0;font-size:29px;font-weight:500}.quote-paper>header strong{font-size:12px}.parties{grid-template-columns:1fr 1fr;gap:35px;padding:24px 12px;display:grid}.parties>div,.meta>div{align-content:start;gap:4px;display:grid}.parties span,.meta span{color:var(--red);font-size:10px}.parties strong{font-size:12px}.parties p{max-width:280px;margin:0;font-size:10px;line-height:1.45}.parties small{font-size:9px}.meta{border-top:1px solid #efb1b5;grid-template-columns:repeat(4,1fr);gap:15px;padding:17px 12px;display:grid}.meta strong{font-size:10px}.quote-paper table{border-collapse:collapse;width:100%;margin-top:24px}.quote-paper th{color:var(--red);text-align:right;border-bottom:1px solid #ddd;padding:10px 7px;font-size:9px;font-weight:600}.quote-paper th:nth-child(2),.quote-paper td:nth-child(2){text-align:left}.quote-paper td{text-align:right;vertical-align:top;border-bottom:1px solid #e5e5e5;padding:13px 7px;font-size:9px}.quote-paper td strong{margin-bottom:4px;display:block}.quote-paper td p{color:#666;max-width:370px;margin:0;font-size:8px;line-height:1.45}.summary{background:#f7f7f7;grid-template-columns:1fr 220px;gap:40px;margin-top:60px;padding:20px 12px;display:grid}.summary>div{align-content:start;gap:3px;display:grid}.summary span{font-size:8px}.summary>div:last-child{text-align:right;grid-template-columns:1fr auto;align-items:center}.summary b{font-size:10px}.summary>div:last-child b:last-child{color:var(--red);font-size:17px}.issuer{flex-direction:column;align-items:flex-start;margin:28px 12px 0;display:flex}.issuer img{object-fit:contain;object-position:left bottom;mix-blend-mode:multiply;width:130px;height:92px}.quote-paper.pdf-capture .issuer img{mix-blend-mode:normal}.issuer strong,.issuer span{font-size:8px}.terms{border-top:1px solid #ddd;margin-top:24px;padding:14px 12px 0}.terms h2{color:var(--red);margin:0 0 6px;font-size:10px}.terms p{white-space:pre-line;margin:0;font-size:7px;line-height:1.45}.approval-card,.accepted-card{border:1px solid var(--line);background:#fff;border-radius:20px;width:min(820px,100% - 28px);margin:0 auto;padding:30px;box-shadow:0 12px 38px #0000000f}.eyebrow{color:var(--red);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:800}.approval-card h2,.accepted-card h2{margin:7px 0}.approval-card>p,.accepted-card p,.accepted-card small{color:var(--muted);font-size:13px;line-height:1.5}.approval-card>label{gap:7px;margin-top:18px;display:grid}.approval-card label>span,.signature-field>span{font-size:11px;font-weight:800}.approval-card input[type=text],.approval-card input:not([type]){border:1px solid #ccd3ce;border-radius:10px;height:45px;padding:0 12px}.approval-grid{grid-template-columns:1fr 1fr;gap:18px;margin-top:18px;display:grid}.approval-grid>label,.approval-grid>.signature-field{gap:7px;display:grid}.signature-pad{cursor:crosshair;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background:#fafafa;border:1px dashed #9fa8a2;border-radius:12px;width:100%;height:160px;display:block;position:relative;overflow:hidden;touch-action:none!important}.signature-pad canvas{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.signature-pad polyline,.signature-pad circle{pointer-events:none}.signature-pad[data-signed=true]{background:#fff;border-style:solid;border-color:#15834c;box-shadow:0 0 0 3px #15834c14}.signature-help{color:var(--muted);margin-top:-2px;font-size:9px;font-weight:500;line-height:1.4}.text-button{width:max-content;color:var(--red);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.stamp-upload{background:#fafafa;border:1px dashed #9fa8a2;border-radius:12px;place-items:center;height:160px;display:grid;position:relative;overflow:hidden}.stamp-upload p{color:var(--muted);font-size:11px}.stamp-upload img{object-fit:contain;max-width:90%;max-height:140px}.stamp-upload input{opacity:0;cursor:pointer;position:absolute;inset:0}.confirm{grid-template-columns:auto 1fr;align-items:flex-start;gap:9px!important;display:flex!important}.confirm input{accent-color:var(--red);margin-top:2px}.confirm span{line-height:1.45;font-weight:500!important}.form-error{color:var(--red)!important}.accept-button{background:var(--red);color:#fff;cursor:pointer;border:0;border-radius:11px;width:100%;min-height:50px;margin-top:20px;font-weight:800}.accept-button:disabled{opacity:.6}.accepted-card{text-align:center}.accepted-card>div{color:#15834c;background:#e7f8ee;border-radius:50%;place-items:center;width:55px;height:55px;margin:0 auto;font-size:27px;font-weight:900;display:grid}.loader{border:3px solid #ddd;border-top-color:var(--red);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:700px){.portal-toolbar{flex-wrap:wrap;padding:10px 14px}.portal-toolbar span{flex:100%;font-size:11px}.portal-actions{width:100%}.portal-actions button{flex:1}.quote-paper:not(.pdf-capture){padding:25px 22px}.quote-paper:not(.pdf-capture)>header{align-items:center;gap:12px}.quote-paper:not(.pdf-capture) .quote-logo{flex:0 0 150px;width:150px;height:50px}.quote-paper:not(.pdf-capture) h1{font-size:18px}.quote-paper:not(.pdf-capture) .parties{grid-template-columns:1fr;gap:18px}.quote-paper:not(.pdf-capture) .meta{grid-template-columns:1fr 1fr}.quote-paper:not(.pdf-capture) .summary{grid-template-columns:1fr;gap:18px;margin-top:32px}.quote-paper:not(.pdf-capture) table,.quote-paper:not(.pdf-capture) tbody{width:100%;display:block}.quote-paper:not(.pdf-capture) thead{display:none}.quote-paper:not(.pdf-capture) tbody{gap:10px;display:grid}.quote-paper:not(.pdf-capture) table tr{border:1px solid #e5e5e5;border-radius:11px;padding:7px 12px;display:grid}.quote-paper:not(.pdf-capture) table td,.quote-paper:not(.pdf-capture) table td:nth-child(2){text-align:right;border:0;border-bottom:1px solid #ececec;grid-template-columns:minmax(84px,.42fr) minmax(0,1fr);align-items:center;gap:10px;min-height:35px;padding:8px 0;font-size:10px;display:grid}.quote-paper:not(.pdf-capture) table td:last-child{border-bottom:0}.quote-paper:not(.pdf-capture) table td:before{content:attr(data-label);color:var(--red);letter-spacing:.04em;text-align:left;text-transform:uppercase;font-size:8px;font-weight:800}.quote-paper:not(.pdf-capture) table td>*{justify-self:end}.quote-paper:not(.pdf-capture) table td p{text-align:right;grid-column:2;max-width:100%}.approval-card{padding:22px}.approval-grid{grid-template-columns:1fr}}.statement-shell{background:linear-gradient(#fff7f7 0,#f5f7f5 240px,#f1f3f1 100%);min-height:100vh;padding-bottom:64px}.statement-topbar{min-height:76px;color:var(--ink);background:#fffffff5;border-bottom:1px solid #efc8cb;justify-content:space-between;align-items:center;gap:24px;padding:12px max(22px,50vw - 490px);display:flex;box-shadow:0 8px 28px #5d181f0d}.statement-topbar>div{align-items:center;gap:16px;display:flex}.statement-topbar img{object-fit:contain;background:#fff;border:1px solid #f0d7d9;border-radius:9px;width:145px;height:48px}.statement-topbar span{color:var(--red);font-size:14px;font-weight:850}.statement-topbar small{color:var(--muted);font-size:11px}.statement-page{background:#fff;border:1px solid #e0e4e1;border-radius:20px;width:min(980px,100% - 30px);margin:28px auto 0;padding:42px;box-shadow:0 18px 55px #161d1814}.statement-heading{border-bottom:2px solid var(--red);padding-bottom:25px}.statement-heading>div:first-child{gap:5px;display:grid}.statement-heading span,.statement-account-summary span,.statement-meta span,.statement-payment span,.statement-invoice-list summary span{color:var(--red);letter-spacing:.07em;text-transform:uppercase;font-size:9px;font-weight:850}.statement-heading h1{letter-spacing:-.045em;margin:2px 0 0;font-size:clamp(27px,4vw,42px)}.statement-heading p{max-width:560px;color:var(--muted);white-space:pre-line;margin:0;font-size:11px;line-height:1.5}.statement-heading small{color:var(--muted);font-size:9px}.statement-account-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:22px 0 0;display:grid}.statement-account-summary>div{border:1px solid var(--line);background:#fafbfa;border-radius:13px;gap:5px;min-width:0;padding:17px;display:grid}.statement-account-summary strong{overflow-wrap:anywhere;font-size:20px}.statement-account-summary small{color:var(--muted);font-size:9px}.statement-account-summary .overdue{background:#fff8f8;border-color:#edc4c7}.statement-account-summary .overdue strong,.statement-account-summary .total strong{color:var(--red)}.statement-account-summary .upcoming span{color:#2f7250}.statement-account-summary .total{color:var(--ink);box-shadow:inset 4px 0 0 var(--red);background:linear-gradient(135deg,#fff7f8,#fff);border-color:#e8aeb3}.statement-account-summary .total span{color:var(--red)}.statement-account-summary .total small{color:var(--muted)}.statement-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:22px 0;display:grid}.statement-meta>div{border:1px solid var(--line);background:#fafbfa;border-radius:12px;align-content:start;gap:4px;min-width:0;padding:14px;display:grid}.statement-meta strong{overflow-wrap:anywhere;font-size:12px}.statement-meta small{overflow-wrap:anywhere;color:var(--muted);white-space:pre-line;font-size:9px;line-height:1.45}.statement-invoice-list{gap:12px;display:grid}.statement-invoice-list details{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.statement-invoice-list .statement-invoice-overdue{border-left:4px solid var(--red)}.statement-invoice-list .statement-invoice-today{border-left:4px solid #c87a18}.statement-invoice-list .statement-invoice-upcoming{border-left:4px solid #4f9970}.statement-invoice-list details[open]{border-color:#e7b8bc;box-shadow:0 8px 26px #521d230f}.statement-invoice-list summary{cursor:pointer;grid-template-columns:minmax(0,1fr) 190px 190px;align-items:center;gap:18px;padding:18px 20px;list-style:none;display:grid}.statement-invoice-list summary::-webkit-details-marker{display:none}.statement-invoice-list summary>div{gap:4px;min-width:0;display:grid}.statement-invoice-list summary>div:nth-child(n+2){text-align:right}.statement-invoice-list summary strong{overflow-wrap:anywhere;font-size:13px}.statement-invoice-list summary small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.statement-invoice-list summary .statement-due-overdue{color:var(--red);font-weight:750}.statement-invoice-list summary .statement-due-today{color:#a45b00;font-weight:750}.statement-invoice-list summary .statement-due-upcoming{color:#2f7250;font-weight:750}.statement-invoice-detail{background:#fffafb;border-top:1px solid #f0e1e3;padding:0 20px 20px}.statement-invoice-dates{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:18px;padding:14px 0;font-size:9px;display:flex}.statement-invoice-dates strong{color:var(--ink);margin-left:5px}.statement-line-items{border:1px solid var(--line);background:#fff;border-radius:11px;display:grid}.statement-line-items>div{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 160px 130px;align-items:start;gap:16px;padding:13px 14px;font-size:10px;display:grid}.statement-line-items>div:first-child{border-top:0}.statement-line-items>div>span:first-child{gap:3px;display:grid}.statement-line-items small{color:var(--muted);font-size:8px;line-height:1.45}.statement-line-items>div>span:nth-child(2),.statement-line-items b{text-align:right}.statement-totals{text-align:right;background:#f2f3f2;border-radius:11px;grid-template-columns:1fr auto;gap:6px 20px;width:min(100%,360px);margin:16px 0 0 auto;padding:14px;font-size:10px;display:grid}.statement-totals b{color:var(--red);border-top:1px solid #cfd3d0;margin-top:5px;padding-top:8px;font-size:12px}.statement-payment{color:var(--ink);background:linear-gradient(135deg,#fff5f6,#fff);border:1px solid #e9bec2;border-radius:14px;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:26px;margin-top:24px;padding:22px;display:grid;box-shadow:0 10px 28px #5d181f0d}.statement-payment>div{align-content:start;gap:5px;display:grid}.statement-payment h2{margin:2px 0;font-size:17px}.statement-payment p,.statement-payment small{color:var(--muted);margin:0;font-size:9px;line-height:1.5}.statement-payment b{color:var(--red);margin-top:4px;font-size:12px}.statement-page footer{color:var(--muted);text-align:center;margin-top:18px;font-size:9px;line-height:1.5}.statement-state{text-align:center;place-content:center;justify-items:center;gap:12px;min-height:100vh;padding:28px;display:grid}.statement-state img{width:min(280px,80vw)}.statement-state h1{margin:6px 0 0}.statement-state p{color:var(--muted);margin:0}.statement-loader{border:4px solid #e2e5e3;border-top-color:var(--red);border-radius:50%;width:42px;height:42px;animation:.8s linear infinite statement-spin}@keyframes statement-spin{to{transform:rotate(360deg)}}@media (max-width:720px){.statement-topbar{flex-direction:column;align-items:flex-start;gap:7px;padding:12px 15px}.statement-topbar img{width:118px;height:40px}.statement-topbar span{font-size:12px}.statement-page{border-radius:15px;width:calc(100% - 18px);margin-top:10px;padding:20px 14px}.statement-account-summary,.statement-meta{grid-template-columns:1fr;gap:9px}.statement-invoice-list summary{grid-template-columns:1fr 1fr;gap:13px;padding:16px;position:relative}.statement-invoice-list summary>div:first-child{border-bottom:1px solid var(--line);grid-column:1/-1;padding-bottom:10px}.statement-invoice-list summary>div:nth-child(n+2){text-align:left}.statement-invoice-detail{padding:0 12px 14px}.statement-invoice-dates{justify-content:flex-start;gap:8px 14px}.statement-line-items>div{grid-template-columns:1fr auto;gap:8px 12px}.statement-line-items>div>span:first-child{grid-column:1/-1}.statement-line-items>div>span:nth-child(2){text-align:left}.statement-payment{grid-template-columns:1fr;gap:16px;padding:17px}}@page{size:A4 portrait;margin:0}@media print{body{background:#fff}.portal-toolbar,.approval-card,.accepted-card{display:none!important}.portal-shell{padding:0}.quote-paper{width:210mm;min-height:297mm;box-shadow:none;margin:0;padding:10mm 13mm}.summary{margin-top:8mm}}
