:root{--ink:#17231f;--muted:#67736d;--paper:#f4f1e8;--card:#fffefa;--green:#154b38;--green2:#237252;--line:#d9ded6;--gold:#efb52c;--coral:#ed654d;--blue:#3778b8;--danger:#9c2d27;--shadow:0 22px 60px rgba(20,61,45,.13)}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;background-image:radial-gradient(circle at 9% 20%,#efb52c22 0 8%,transparent 8.3%),radial-gradient(circle at 92% 33%,#3778b81c 0 10%,transparent 10.3%)}
.site-header{height:84px;padding:0 max(22px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;background:#fffefcf5;border-bottom:5px solid var(--green);box-shadow:0 4px 18px #173c2d1f;position:relative}.site-header:after{content:"";position:absolute;left:0;bottom:-5px;width:43%;height:5px;background:linear-gradient(90deg,#111f75 0 28%,#ed171e 28% 50%,var(--gold) 50% 72%,var(--blue) 72%)}.brand img{display:block;width:210px}.portal-label{font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:800;color:var(--green)}
.auth-shell{max-width:1120px;min-height:calc(100vh - 170px);margin:auto;padding:70px 24px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:70px}.auth-shell.single{display:grid;grid-template-columns:minmax(0,620px);justify-content:center}.welcome h1,.auth-card h1,.dashboard-hero h1{font:700 clamp(38px,6vw,66px)/1.03 Georgia,serif;letter-spacing:-.035em;margin:10px 0 20px}.welcome>p:not(.eyebrow){font-size:20px;color:var(--muted);max-width:620px}.eyebrow{margin:0;color:var(--green2);font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:850}.paint-stripe{display:flex;margin-top:38px;max-width:370px;height:9px;transform:rotate(-1deg);border-radius:50%;overflow:hidden}.paint-stripe span{flex:1}.paint-stripe span:nth-child(1){background:#161d70}.paint-stripe span:nth-child(2){background:#eb1c24}.paint-stripe span:nth-child(3){background:var(--gold)}.paint-stripe span:nth-child(4){background:var(--blue)}
.card{background:rgba(255,254,250,.96);border:1px solid #d4dbd2;border-radius:20px;padding:30px;box-shadow:var(--shadow)}.auth-card{padding:38px}.auth-card.wide{max-width:620px;width:100%}.auth-card h2{font:700 30px Georgia,serif;margin:0 0 5px}.auth-card h1{font-size:clamp(32px,5vw,46px)}.muted,.fine-print,.empty{color:var(--muted)}.fine-print{font-size:13px;margin:25px 0 0}.stack{display:grid;gap:17px;margin:25px 0 18px}label{display:grid;gap:7px;font-weight:700}label small{color:var(--muted);font-weight:500}input{width:100%;border:1.5px solid #aeb9b1;border-radius:9px;padding:12px 13px;font:inherit;background:#fff}input:focus{outline:4px solid #23725222;border-color:var(--green2)}button,.button{border:0;border-radius:9px;background:linear-gradient(145deg,#27805d,#175940);color:#fff;padding:12px 17px;font:750 15px inherit;text-decoration:none;display:inline-block;cursor:pointer;box-shadow:0 5px 13px #17594035}button:hover,.button:hover{filter:brightness(1.07)}.subtle-link{color:var(--green2);font-weight:700}.alert,.flash{border-radius:9px;padding:13px 16px}.alert{background:#fff0ec;color:#7d211d;border-left:5px solid var(--coral);margin:18px 0}.flash{max-width:700px;margin:18px auto 0}.flash-success{background:#e8f5ed;color:#194f36}.flash-info{background:#edf3f8;color:#254e73}
.page-shell{max-width:1120px;margin:auto;padding:48px 24px 80px;min-height:calc(100vh - 170px)}.dashboard-hero{padding:20px 4px 34px}.dashboard-hero h1{font-size:clamp(38px,6vw,58px);margin-bottom:8px}.dashboard-hero p:last-child{color:var(--muted)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px}.section-heading h2{font:700 28px Georgia,serif;margin:5px 0 0}.section-heading>span{background:#e9f2ec;color:var(--green);padding:6px 11px;border-radius:999px;font-size:13px;font-weight:800}.account-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:22px}.account-card{border:1px solid var(--line);border-top:5px solid var(--gold);border-radius:13px;padding:20px;background:#fff}.account-card:nth-child(even){border-top-color:var(--blue)}.account-card span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}.account-card h3{font:700 22px Georgia,serif;margin:8px 0}.account-card p{color:var(--muted);margin:0}.logout-form{margin:0}.text-button{background:transparent;color:var(--green);box-shadow:none;border:1px solid #bdd0c3;padding:8px 13px}.site-footer{text-align:center;color:var(--muted);padding:20px;font-size:13px}
.account-card .account-link{display:inline-block;margin-top:16px;color:var(--green2);font-weight:800}.breadcrumbs{display:flex;gap:8px;margin:0 0 18px;color:var(--muted);font-size:13px}.breadcrumbs a{color:var(--green2);font-weight:700}.account-hero{padding-top:4px}.table-wrap{overflow-x:auto;margin-top:22px}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:13px 10px;border-bottom:1px solid var(--line);text-align:left}th{background:#f2f5f1;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}tbody tr:nth-child(even) td{background:#fafbf8}.numeric{text-align:right;font-variant-numeric:tabular-nums}
.secondary{background:#e8f1eb;color:var(--green);box-shadow:none;white-space:nowrap}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.invoice-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin-bottom:20px;padding:28px 30px;background:linear-gradient(112deg,#fffefa,#fff8e7);border:1px solid #d4dbd2;border-top:5px solid var(--gold);border-radius:20px;box-shadow:var(--shadow)}.invoice-hero h1{font:700 clamp(34px,5vw,52px)/1.05 Georgia,serif;letter-spacing:-.03em;margin:8px 0}.invoice-hero p:last-child{color:var(--muted)}.invoice-total{text-align:right;white-space:nowrap}.invoice-total>span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.invoice-total>strong{display:block;color:var(--green);font:700 34px Georgia,serif}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.detail-grid h2{font:700 24px Georgia,serif;margin:6px 0 16px}.detail-grid dl{margin:0}.detail-grid dl div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:6px 0}.detail-grid dt{color:var(--muted)}.detail-grid dd{margin:0}.invoice-lines{margin-top:18px}
.invoice-page-shell{max-width:1220px;padding:34px 24px 70px;font-size:15px}.invoice-title{position:relative;z-index:40;display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-bottom:20px;padding:22px;border:1px solid #cfd8ce;border-top:5px solid var(--gold);border-radius:18px;background:linear-gradient(112deg,#fffefa,#fff8e7);box-shadow:0 18px 45px rgba(27,57,45,.11),inset 0 1px #fff;overflow:visible}.invoice-title h1{margin:5px 0 10px;font:700 clamp(30px,5vw,48px)/1.08 Georgia,serif;letter-spacing:-.025em}.invoice-title p{margin:4px 0;color:var(--muted)}.invoice-title .invoice-total>strong{font-size:32px}.admin-invoice-details .invoice-panel{border-radius:18px;box-shadow:0 18px 45px rgba(27,57,45,.11),inset 0 1px #fff}.admin-invoice-details .invoice-panel:nth-child(1){border-top:4px solid var(--gold)}.admin-invoice-details .invoice-panel:nth-child(2){border-top:4px solid var(--blue)}.admin-invoice-details .invoice-panel:nth-child(3){border-top:4px solid var(--coral)}.admin-invoice-details .invoice-panel:nth-child(4){border-top:4px solid #7656a8}.admin-invoice-details .invoice-panel>summary{padding:20px 22px}.admin-invoice-details .invoice-panel>summary strong{margin:0;font:700 20px Georgia,serif}.admin-invoice-details .invoice-panel-body{padding:0 22px 20px}.invoice-results{margin-top:22px;padding:22px;border-radius:18px;box-shadow:0 18px 45px rgba(27,57,45,.11),inset 0 1px #fff}.invoice-results .section-heading{padding-bottom:16px}.invoice-results .section-heading h2{margin:0;font:700 20px Georgia,serif}.invoice-results .table-wrap{margin:22px -5px 0}.invoice-results table{min-width:720px}@media(max-width:760px){.invoice-page-shell{padding:30px 16px 60px}.invoice-title{flex-direction:column}.invoice-title .invoice-total{text-align:left}}
.account-card{position:relative;display:block;min-height:118px;padding:23px 68px 23px 22px;color:var(--ink);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.account-card:hover{transform:translateY(-4px);border-color:#b4c9bb;box-shadow:0 14px 28px #173c2d1c}.account-card:focus-visible{outline:4px solid #23725233;outline-offset:3px}.account-card .tile-arrow{position:absolute;right:22px;top:50%;display:grid;place-items:center;width:38px;height:38px;margin-top:-19px;border-radius:50%;background:var(--green);color:#fff;font-size:22px;line-height:1;letter-spacing:0;text-transform:none;transition:transform .18s ease,background .18s ease}.account-card:hover .tile-arrow{transform:translateX(4px);background:var(--green2)}
.filter-actions{position:relative}.date-filter{position:relative}.date-filter summary{display:flex;align-items:center;gap:11px;min-width:214px;padding:10px 13px;border:1px solid #bfd0c4;border-radius:14px;background:linear-gradient(145deg,#f7faf7,#e7f0e9);color:var(--green);cursor:pointer;list-style:none;box-shadow:0 5px 14px #173c2d14;transition:transform .15s ease,box-shadow .15s ease}.date-filter summary::-webkit-details-marker{display:none}.date-filter summary:hover{transform:translateY(-2px);box-shadow:0 8px 18px #173c2d20}.date-filter summary small,.date-filter summary strong{display:block}.date-filter summary small{color:var(--muted);font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.1em}.date-filter summary strong{font-size:15px}.calendar-icon{position:relative;width:22px;height:20px;border:2px solid var(--green2);border-radius:5px;background:#fff}.calendar-icon:before{content:"";position:absolute;left:-2px;right:-2px;top:4px;border-top:2px solid var(--green2)}.calendar-icon:after{content:"";position:absolute;left:4px;top:-4px;width:10px;height:5px;border-left:2px solid var(--green2);border-right:2px solid var(--green2)}.chevron{width:8px;height:8px;margin-left:auto;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg) translateY(-2px);transition:transform .15s ease}.date-filter[open] .chevron{transform:rotate(225deg) translate(-2px,-2px)}.calendar-panel{position:absolute;z-index:20;right:0;top:calc(100% + 10px);width:370px;padding:20px;border:1px solid #cbd7ce;border-radius:18px;background:#fffefa;box-shadow:0 24px 60px #173c2d30}.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-heading label,.calendar-panel fieldset legend{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.11em}.calendar-heading select{min-width:122px;padding:9px 34px 9px 12px;border:1.5px solid #abc0b2;border-radius:10px;background:#fff;color:var(--green);font:inherit;font-size:16px;font-weight:800;cursor:pointer}.calendar-panel fieldset{margin:0;padding:0;border:0}.calendar-panel legend{margin-bottom:9px}.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.month-choice{display:block}.month-choice input{position:absolute;width:1px;height:1px;opacity:0}.month-choice span{display:block;padding:9px 5px;border:1px solid #d6ded8;border-radius:9px;background:#fafbf8;color:var(--ink);font-size:13px;font-weight:750;text-align:center;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease,transform .12s ease}.month-choice span:hover{transform:translateY(-1px);border-color:#8fb19b;background:#edf5ef}.month-choice input:focus-visible+span{outline:3px solid #23725233}.month-choice input:checked+span{border-color:var(--green);background:var(--green);color:#fff;box-shadow:0 4px 9px #1759402b}.all-months{grid-column:1/-1}.calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.calendar-footer button{padding:10px 14px}.calendar-footer a{color:var(--green2);font-size:13px;font-weight:800}.history-empty{padding:28px 4px 10px}
.history-table-wrap{margin-left:0;margin-right:0}.history-table{width:100%;min-width:1020px;table-layout:fixed}.history-table .col-reference{width:12%}.history-table .col-date{width:11%}.history-table .col-po{width:12%}.history-table .col-invoice{width:10%}.history-table .col-job{width:20%}.history-table .col-amount{width:10%}.history-table .col-transaction{width:13%}.history-table .col-action{width:12%}.history-table th,.history-table td{padding:14px 14px}.history-table th:first-child,.history-table td:first-child{padding-left:18px}.history-table th:last-child,.history-table td:last-child{padding-right:18px}.history-table tbody tr{transition:box-shadow .12s ease}.history-table tbody tr:hover td{background:#fff7df}.history-table .job-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-table .amount-cell{font-weight:700}.history-table .action-cell{text-align:right}.history-table .action-cell .button{padding:8px 14px;border:1px solid #c5d8ca;border-radius:999px;font-size:13px;font-weight:800}
.pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-top:28px;padding:16px;border:1px solid #d5dfd7;border-radius:18px;background:linear-gradient(110deg,#f4f8f4,#edf3ee);box-shadow:inset 0 1px #fff}.page-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:max-content;min-width:138px;padding:11px 18px;border:1px solid #0f4633;border-radius:12px;background:linear-gradient(145deg,#2b805f,#15503b);color:#fff;font-weight:850;text-decoration:none;box-shadow:0 6px 13px #173c2d25;transition:transform .15s ease,box-shadow .15s ease}.page-button:hover{transform:translateY(-2px);box-shadow:0 9px 18px #173c2d32}.page-button.next{justify-self:end}.page-button.disabled:hover{transform:none}.page-button.disabled{border-color:#d5ddd7;background:#e8ece8;color:#9aa49e;box-shadow:none;cursor:not-allowed}.page-status{display:flex;align-items:baseline;justify-content:center;gap:7px;min-width:142px;padding:9px 16px;border:1px solid #d8dfd9;border-radius:12px;background:#fff;color:var(--muted);white-space:nowrap;box-shadow:0 3px 8px #173c2d0d}.page-status small{font-size:10px;text-transform:uppercase;letter-spacing:.09em}.page-status strong{color:var(--green);font:800 21px Georgia,serif}.page-status>span{font-size:13px}
.mix-toggle{padding:5px 10px;border:1px solid #b8d4c3;border-radius:999px;background:#e8f3eb;color:var(--green);font-size:11px;font-weight:850;text-transform:uppercase;box-shadow:none}.mix-toggle[aria-expanded="true"]{background:var(--green);color:#fff}.mix-detail-row[hidden]{display:none}.mix-detail-row td{padding-top:0!important;background:#fbfcf8}.mix-detail{margin:0 0 8px;padding:14px 18px;border-left:4px solid var(--gold);border-radius:8px;background:#fff8e7}.mix-detail>strong{display:block;margin-bottom:7px;color:var(--green)}.mix-detail dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 24px}.mix-detail dl div{display:grid;grid-template-columns:110px 1fr;padding:2px 0}.mix-detail dt{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.mix-detail dd{margin:0}.invoice-panel{padding:0;overflow:hidden}.invoice-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 26px;cursor:pointer;list-style:none}.invoice-panel>summary::-webkit-details-marker{display:none}.invoice-panel>summary small,.invoice-panel>summary strong{display:block}.invoice-panel>summary small{color:var(--green2);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.12em}.invoice-panel>summary strong{margin-top:3px;font:700 23px Georgia,serif}.invoice-panel-body{padding:0 26px 22px;border-top:1px solid var(--line)}.invoice-panel-body dl{padding-top:13px}.panel-chevron{width:10px;height:10px;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg);transition:transform .15s ease}.invoice-panel[open] .panel-chevron{transform:rotate(225deg)}
@media(max-width:760px){.site-header{height:72px}.brand img{width:174px}.auth-shell{grid-template-columns:1fr;gap:35px;padding:45px 18px}.welcome h1{font-size:45px}.account-grid,.detail-grid{grid-template-columns:1fr}.page-shell{padding:30px 16px 60px}.card,.auth-card{padding:22px}.portal-label{display:none}.invoice-hero{flex-direction:column;padding:22px}.invoice-total{text-align:left}.history-heading{flex-direction:column}.filter-actions,.date-filter{width:100%}.date-filter summary{width:100%}.calendar-panel{right:auto;left:0;width:min(370px,calc(100vw - 76px))}.pagination{gap:8px;padding:11px}.page-button{min-width:0;padding:10px 12px}.page-status{min-width:0;padding:8px 10px}.page-status small{display:none}.mix-detail dl{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.customer-nav{display:flex;align-items:center;gap:10px}.customer-nav>a{padding:8px 10px;border-radius:9px;color:var(--green);font-size:14px;font-weight:800;text-decoration:none}.customer-nav>a:hover{background:#edf4ef}.settings-shell{max-width:1040px}.settings-hero{padding-bottom:28px}.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.settings-card{min-width:0}.settings-card>h2{font:700 28px Georgia,serif;margin:5px 0 0}.settings-card .stack{margin-bottom:0}.settings-card .stack button{justify-self:start}.access-summary-card{align-self:start}.settings-account-list{display:grid;gap:10px;margin-top:20px}.settings-account-list a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-weight:800;text-decoration:none}.settings-account-list a:hover{border-color:#9bb6a4;background:#f5faf6}.settings-account-list small{color:var(--muted);font-weight:700;white-space:nowrap}@media(max-width:760px){.site-header{height:auto;min-height:72px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap;gap:4px}.customer-nav{width:100%;justify-content:flex-end;gap:4px}.customer-nav>a,.text-button{padding:7px 8px;font-size:12px}.settings-grid{grid-template-columns:1fr}.settings-account-list a{align-items:flex-start;flex-direction:column;gap:2px}}

.tile-balance{display:flex;align-items:baseline;gap:9px;margin-top:13px}.account-card .tile-balance span{color:var(--muted);font-size:11px}.tile-balance strong{font:800 21px Georgia,serif;font-variant-numeric:tabular-nums}.tile-balance small{color:var(--green2);font-size:12px;font-weight:750}.tile-balance.balance-due strong{color:var(--danger)}.tile-balance.balance-credit strong{color:var(--green2)}
.account-balance-card{margin-bottom:18px;border-top:5px solid var(--green2)}.account-balance-card.has-balance{border-top-color:var(--gold)}.balance-overview{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.balance-overview h2{margin:5px 0 0;font:700 29px Georgia,serif}.balance-overview>strong{color:var(--green);font:800 clamp(30px,5vw,42px) Georgia,serif;font-variant-numeric:tabular-nums}.account-balance-card.has-balance .balance-overview>strong{color:var(--danger)}.aging-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.aging-grid div{padding:12px;border-radius:11px;background:#f5f7f3}.aging-grid span,.aging-grid strong{display:block}.aging-grid span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.aging-grid strong{margin-top:3px;font-size:17px;font-variant-numeric:tabular-nums}.balance-note{margin:16px 0 0;color:var(--muted);font-size:13px}@media(max-width:760px){.balance-overview{align-items:flex-start;flex-direction:column;gap:10px}.aging-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aging-grid div:first-child{grid-column:1/-1}.tile-balance{flex-wrap:wrap}}
.mail-delivery-note{margin:22px 0 18px;padding:14px 16px;border:1px solid #ead28a;border-left:5px solid var(--gold);border-radius:11px;background:#fff8e7;color:var(--ink)}.mail-delivery-note strong{display:block;color:var(--green)}.mail-delivery-note p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.mail-delivery-note code{color:var(--green);font:700 12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
