:root{--brand:#176b49;--brand-dark:#0d3828;--brand-soft:#eaf6f0;--ink:#18201d;--muted:#68746f;--line:#dce6e1;--danger:#a63a3a;--danger-soft:#fff0f0;--warning:#946514;--warning-soft:#fff7df;--paper:#fff;--bg:#f3f7f5;--shadow:0 14px 40px rgba(15,56,40,.09)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.hidden{display:none!important}.portal-header{display:flex;align-items:center;gap:12px;padding:18px max(20px,calc((100vw - 1040px)/2));background:var(--brand-dark);color:#fff}.portal-header .brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#2da46f;font-size:27px;font-weight:900}.portal-header strong,.portal-header span{display:block}.portal-header strong{font-size:18px;letter-spacing:.04em}.portal-header span{margin-top:2px;color:#b9d5c8;font-size:13px}.portal-shell{width:min(1040px,calc(100% - 28px));margin:28px auto 50px}.welcome{margin:8px 4px 22px}.eyebrow{margin:0 0 5px;color:var(--brand);font-size:12px;font-weight:850;letter-spacing:.15em}.welcome h1{margin:0;font-size:clamp(28px,6vw,42px);line-height:1.1}.muted{color:var(--muted)}.welcome .muted{margin:7px 0 0}.panel{margin-bottom:18px;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:var(--shadow)}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.summary-card{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}.summary-card span,.summary-card small,.summary-card strong{display:block}.summary-card span{color:var(--muted);font-size:13px;font-weight:700}.summary-card strong{margin:8px 0 5px;font-size:clamp(22px,4vw,32px)}.summary-card small{color:var(--muted)}.summary-card.primary{border-color:#acd5c1;background:var(--brand-soft)}.summary-card.primary strong{color:var(--brand-dark)}.summary-card.warning.has-overdue{border-color:#edcd8d;background:var(--warning-soft)}.summary-card.warning.has-overdue strong{color:var(--warning)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.section-head h2,.help-card h2{margin:0;font-size:21px}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:6px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:13px;font-weight:800}.invoice-list{display:grid;gap:12px}.invoice{overflow:hidden;border:1px solid var(--line);border-radius:15px}.invoice summary{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:12px;align-items:center;padding:16px;cursor:pointer;list-style:none}.invoice summary::-webkit-details-marker{display:none}.invoice summary:after{content:"⌄";color:var(--brand);font-size:22px}.invoice[open] summary:after{transform:rotate(180deg)}.invoice-title strong,.invoice-title small{display:block}.invoice-title small{margin-top:4px;color:var(--muted)}.invoice-cell span,.invoice-cell strong{display:block}.invoice-cell span{color:var(--muted);font-size:11px}.invoice-cell strong{margin-top:3px}.status{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:850}.status.overdue{background:var(--danger-soft);color:var(--danger)}.status.paid{background:#edf1ef;color:#53615b}.invoice-detail{padding:0 16px 16px;border-top:1px solid var(--line);background:#fbfdfc}.invoice-detail p{margin:13px 0 8px;font-size:13px;font-weight:750}.mini-payment{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px dashed var(--line);font-size:13px}.payment-list{display:grid;gap:2px}.payment-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line)}.payment-row:last-child{border-bottom:0}.payment-row strong,.payment-row small{display:block}.payment-row small{margin-top:3px;color:var(--muted)}.amount-positive{color:var(--brand);font-size:17px}.empty{padding:25px 8px;text-align:center;color:var(--muted)}.help-card{text-align:center}.help-card p{color:var(--muted)}.contact-btn{display:inline-flex;margin-top:5px;padding:12px 18px;border-radius:12px;background:var(--brand);color:#fff;text-decoration:none;font-weight:800}.address{font-size:13px}footer{text-align:center;color:var(--muted)}footer p{margin-bottom:4px}.loading-card{text-align:center}.spinner{width:34px;height:34px;margin:5px auto 14px;border:4px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-card{text-align:center}.error-icon{display:grid;place-items:center;width:52px;height:52px;margin:auto;border-radius:50%;background:var(--danger-soft);color:var(--danger);font-size:28px;font-weight:900}.error-card h1{font-size:23px}.error-card p{color:var(--danger)}
@media(max-width:720px){.portal-shell{margin-top:20px}.summary-grid{grid-template-columns:1fr}.panel{padding:17px;border-radius:17px}.invoice summary{grid-template-columns:1fr 1fr}.invoice summary:after{grid-column:2;grid-row:1;text-align:right}.invoice summary .invoice-cell:last-of-type{grid-column:1/-1}.payment-row{grid-template-columns:1fr auto}.payment-row>div:nth-child(2){grid-column:1/-1;grid-row:2}.portal-header{padding-inline:18px}}
@media print{body{background:#fff}.portal-header{background:#fff;color:#000;border-bottom:2px solid #000}.portal-header span{color:#555}.panel,.summary-card{box-shadow:none;break-inside:avoid}.contact-btn{display:none!important}}
.account-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.account-heading .eyebrow{margin:0}.logout-btn{padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--brand);font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.summary-card.points{border-color:#d4c7ef;background:#f7f2ff}.summary-card.points strong{color:#5c3c92}.point-negative{color:var(--danger)}
.connection-badge{margin-left:auto!important;padding:6px 10px;border:1px solid rgba(255,255,255,.25);border-radius:999px;color:#d8efe4!important;font-size:11px!important;font-weight:800}.connection-badge.offline{background:#7c2929;color:#fff!important}
.portal-tabs{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 0 18px;padding:7px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:var(--shadow);backdrop-filter:blur(9px)}.portal-tab{padding:12px 8px;border:0;border-radius:11px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;cursor:pointer}.portal-tab.active{background:var(--brand);color:#fff}.portal-tab span{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:3px;padding:0 5px;border-radius:999px;background:rgba(13,56,40,.1);font-size:10px}.portal-tab.active span{background:rgba(255,255,255,.2)}
.catalog-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px}.catalog-toolbar h2{margin:0}.catalog-toolbar p{margin:6px 0 0}.catalog-filters{display:grid;grid-template-columns:minmax(220px,1fr) 190px;gap:9px;width:min(100%,540px)}.catalog-filters input,.catalog-filters select,.catalog-choice select,.catalog-choice input,.commerce-form-grid input,.commerce-form-grid select,.cart-row input{width:100%;min-height:45px;padding:10px 12px;border:1px solid #cbd8d2;border-radius:11px;background:#fff;color:var(--ink);font:inherit}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.catalog-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.catalog-image{display:grid;place-items:center;aspect-ratio:16/10;background:#edf4f0;font-size:44px}.catalog-image img{width:100%;height:100%;object-fit:contain}.catalog-body{padding:16px}.catalog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.catalog-heading h3{margin:0;font-size:17px}.catalog-heading small{display:block;margin-top:4px;color:var(--muted)}.catalog-body>p{min-height:38px;color:var(--muted);font-size:13px}.availability{flex:0 0 auto;padding:5px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:10px;font-weight:850}.availability.low{background:var(--warning-soft);color:var(--warning)}.availability.consult{background:#edf1ef;color:#5d6963}.catalog-choice{display:grid;grid-template-columns:1fr 80px;gap:8px}.catalog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.catalog-actions button,.request-actions button,.commerce-primary,.btn-outline,.small-link{min-height:42px;border:0;border-radius:10px;background:var(--brand);color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.catalog-actions .secondary,.btn-outline,.small-link{border:1px solid #b8d4c7;background:#fff;color:var(--brand)}.empty-price{padding:12px;border-radius:10px;background:#f3f6f4;color:var(--muted);font-size:13px}.small-link{padding:8px 11px;min-height:auto}.commerce-cart{display:grid;gap:8px;margin-bottom:18px}.cart-row{display:grid;grid-template-columns:1fr 105px 38px;gap:9px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px}.cart-row strong,.cart-row small{display:block}.cart-row small{margin-top:3px;color:var(--muted)}.cart-row button{width:36px;height:36px;border:0;border-radius:50%;background:var(--danger-soft);color:var(--danger);font-size:22px;cursor:pointer}.commerce-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.commerce-form-grid label{display:grid;gap:6px;color:#31423b;font-size:13px;font-weight:750}.commerce-form-grid .span-2{grid-column:1/-1}.location-actions{display:flex;align-items:end;gap:10px}.location-actions small{padding-bottom:11px;color:var(--muted)}.btn-outline{padding:9px 12px}.commerce-total{display:flex;align-items:center;justify-content:space-between;margin:18px 0 10px;padding-top:15px;border-top:1px solid var(--line)}.commerce-total strong{color:var(--brand);font-size:25px}.commerce-primary{width:100%;min-height:50px;font-size:16px}.commerce-primary:disabled{opacity:.55}.form-note{color:var(--muted);font-size:12px}.request-list{display:grid;gap:12px}.request-card{padding:16px;border:1px solid var(--line);border-radius:15px}.request-head,.request-summary,.request-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.request-head strong,.request-head small{display:block}.request-head small{margin-top:3px;color:var(--muted)}.request-status{padding:6px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:850}.request-status.rejected,.request-status.cancelled,.request-status.expired{background:var(--danger-soft);color:var(--danger)}.request-status.quoted,.request-status.ready{background:var(--warning-soft);color:var(--warning)}.request-items{display:grid;gap:4px;margin:13px 0;padding:11px;border-radius:10px;background:#f6f9f7;color:#46544e;font-size:13px}.request-summary{padding:5px 0}.request-summary strong{color:var(--brand)}.staff-note{padding:10px;border-left:3px solid var(--brand);background:var(--brand-soft);font-size:13px}.timeline{margin-top:10px}.timeline summary{color:var(--brand);font-size:12px;font-weight:800;cursor:pointer}.timeline>div{display:flex;gap:10px;margin:9px 0 0 5px}.timeline i{width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--brand)}.timeline strong,.timeline small{display:block}.timeline small{color:var(--muted)}.request-actions{justify-content:flex-end;margin-top:12px}.request-actions button{padding:8px 12px}.request-actions .danger{background:var(--danger-soft);color:var(--danger)}.portal-toast{position:fixed;right:18px;bottom:18px;z-index:20;max-width:min(420px,calc(100% - 36px));padding:13px 16px;border-radius:12px;background:var(--brand-dark);color:#fff;box-shadow:0 12px 35px rgba(0,0,0,.25);font-weight:750}.portal-toast.error{background:#8b2f2f}
@media(max-width:860px){.catalog-grid{grid-template-columns:repeat(2,1fr)}.catalog-toolbar{display:block}.catalog-filters{margin-top:14px;width:100%}}
@media(max-width:600px){.portal-tabs{grid-template-columns:repeat(2,1fr);position:static}.catalog-grid{grid-template-columns:1fr}.catalog-filters{grid-template-columns:1fr}.commerce-form-grid{grid-template-columns:1fr}.commerce-form-grid .span-2{grid-column:auto}.cart-row{grid-template-columns:1fr 82px 36px}.catalog-actions{grid-template-columns:1fr}.connection-badge{display:none!important}}
