:root{--ink:#17231b;--muted:#536158;--green:#173f2e;--soft:#f2f6f2;--line:#d8e1da;--white:#fff;--danger:#8a342f;--amber:#89621b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font:16px/1.65 "Avenir Next","Helvetica Neue",Arial,sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}.skip{position:fixed;left:18px;top:-70px;z-index:40;padding:10px 14px;background:#fff}.skip:focus{top:18px}.portal-header{min-height:82px;padding:0 max(28px,calc((100vw - 1320px)/2));display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line);background:#fff}.portal-brand{text-decoration:none;font-size:15px;font-weight:800;letter-spacing:.12em}.portal-brand span{color:#6a756d;font-weight:500}.portal-header nav{display:flex;align-items:center;gap:25px}.portal-header nav a,.inline button{border:0;background:none;color:#3e4e43;font-size:14px;text-decoration:none}.portal-header nav a:hover,.inline button:hover{text-decoration:underline}.inline{display:inline}.inline button{padding:0;cursor:pointer}.portal-header .nav-button{padding:9px 15px;border-radius:7px;background:var(--green);color:#fff}.portal-main{max-width:1320px;min-height:calc(100vh - 160px);margin:auto;padding:64px 28px 100px}.portal-footer{max-width:1320px;margin:auto;padding:30px 28px;display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--line);color:#59665d;font-size:13px}.portal-footer div{display:flex;gap:20px}.eyebrow{margin:0 0 16px;color:#52685a;font-size:13px;font-weight:700;letter-spacing:.12em}.portal-hero,.page-head{margin-bottom:36px;display:flex;align-items:flex-start;justify-content:space-between;gap:40px}.portal-hero{padding:44px;border-radius:18px;background:var(--soft)}h1,h2,h3,p{margin-top:0}.portal-hero h1,.page-head h1,.auth-card h1{margin-bottom:15px;font-size:clamp(42px,5vw,68px);line-height:1.02;letter-spacing:-.04em}.portal-hero p,.page-head p,.auth-card>p{max-width:700px;margin:0;color:var(--muted);font-size:18px}.status{display:inline-flex;padding:7px 11px;border-radius:999px;background:#edf1ee;color:#4c5b51;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.status.approved,.status.completed,.status.dispatched{background:#e5f2e9;color:#23623d}.status.pending,.status.submitted,.status.processing,.status.confirmed{background:#fff2cf;color:#795719}.status.suspended,.status.cancelled{background:#f8e5e3;color:#853731}.stat-grid{margin-bottom:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-grid article{padding:28px;border:1px solid var(--line);border-radius:14px}.stat-grid span{display:block;margin-bottom:10px;color:var(--muted);font-size:14px}.stat-grid strong{font-size:31px}.action-grid{margin:28px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.action-grid>a,.action-grid>div{padding:30px;border:1px solid var(--line);border-radius:14px;text-decoration:none}.action-grid>a:hover{border-color:#86a08f;background:#fafcfb}.action-grid span{color:#5b7564;font-size:13px}.action-grid h2{margin:18px 0 10px;font-size:24px}.action-grid p{margin:0;color:var(--muted)}.button{display:inline-flex;min-height:48px;padding:0 21px;align-items:center;justify-content:center;border:1px solid var(--green);border-radius:8px;background:var(--green);color:#fff;font-weight:700;text-decoration:none;cursor:pointer}.button.secondary{background:#fff;color:var(--green)}.button:hover{filter:brightness(.95)}.button-row{display:flex;gap:9px;flex-wrap:wrap}.notice{margin-bottom:24px;padding:15px 18px;border-radius:9px;background:#e9f3ec;color:#245a3b}.notice.error{background:#f9e9e7;color:#7d332e}.panel{margin:24px 0;padding:28px;border:1px solid var(--line);border-radius:15px;background:#fff}.panel.narrow{max-width:680px}.panel-head{margin-bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-head h2{margin:0;font-size:23px}.panel-head>span,.panel-head>a{color:var(--muted);font-size:14px}.auth-card{max-width:560px;margin:50px auto;padding:42px;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 60px rgba(24,50,35,.07)}.auth-card.wide{max-width:840px}.auth-card h1{font-size:48px}.auth-foot{margin:26px 0 0!important;font-size:15px!important}.form-stack,.form-grid{display:grid;gap:19px;margin-top:30px}.form-grid{grid-template-columns:1fr 1fr}.form-grid .full{grid-column:1/-1}.form-stack label,.form-grid label{display:grid;gap:7px;color:#394a3f;font-size:14px;font-weight:700}.form-stack input,.form-stack select,.form-stack textarea,.form-grid input,.form-grid select,.form-grid textarea,.status-form select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #aebbb2;border-radius:7px;background:#fff;color:var(--ink)}textarea{resize:vertical}.form-stack small,.form-grid small,.help{color:#647168;font-size:12px;font-weight:400}.check{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important}.check input{width:18px!important;min-height:18px!important;margin-top:2px}.portal-products{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.portal-product{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer}.portal-product>input{position:absolute;z-index:3;top:17px;right:17px;width:21px;height:21px;accent-color:var(--green)}.portal-product img{width:100%;aspect-ratio:1;display:block;object-fit:cover;background:#eef2ee}.portal-product>div{padding:23px}.portal-product small{color:#5a695f}.portal-product h3{margin:9px 0;font-size:22px}.portal-product p{min-height:52px;color:var(--muted);font-size:14px}.portal-product footer{display:flex;justify-content:space-between;gap:10px;padding-top:15px;border-top:1px solid var(--line);font-size:13px}.portal-product .availability{position:absolute;top:16px;left:16px;padding:6px 9px;border-radius:999px;background:#fff;color:#306046;font-size:11px;font-weight:700}.portal-product.inactive{filter:grayscale(.5);opacity:.65;cursor:not-allowed}.order-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start}.order-layout .panel{margin:0}.order-products{display:grid;gap:12px}.order-products label{padding:11px;display:grid;grid-template-columns:58px 1fr 74px;align-items:center;gap:13px;border:1px solid var(--line);border-radius:9px}.order-products img{width:58px;height:58px;object-fit:cover;border-radius:7px}.order-products span{display:grid}.order-products small{color:var(--muted)}.order-products input{width:70px;padding:9px;border:1px solid #aebbb2;border-radius:6px}.order-detail{display:grid;grid-template-columns:1fr 1fr;gap:22px}.order-detail .panel{margin:0}.line-items>div,.line-items>footer{padding:15px 0;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.line-items span:first-child{display:grid}.line-items small{color:var(--muted)}.line-items footer{padding-top:22px;border:0;font-size:18px}address{font-style:normal;line-height:1.8}.note{padding:14px;border-radius:8px;background:var(--soft)}.status-form form{display:flex;gap:12px}.status-form select{max-width:260px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}td{font-size:14px}td strong,td small{display:block}td small{color:var(--muted)}.empty-state{padding:70px 20px;text-align:center}.empty-state p{color:var(--muted)}.admin-cards{display:grid;gap:13px}.admin-cards article{padding:20px;display:flex;justify-content:space-between;gap:25px;border:1px solid var(--line);border-radius:10px}.admin-cards h3{margin:11px 0 5px}.admin-cards p,.admin-cards small{margin:0;color:var(--muted)}.admin-cards blockquote{margin:12px 0 0;padding-left:12px;border-left:3px solid #b8c7bd;color:#47564c}.admin-cards form{display:flex;align-items:center;gap:8px}.product-admin{display:grid;gap:9px}.product-admin form{padding:12px;display:grid;grid-template-columns:minmax(210px,1fr) 130px 130px 100px 60px;align-items:end;gap:12px;border-bottom:1px solid var(--line)}.product-admin form>div{display:grid}.product-admin small{color:var(--muted)}.product-admin label{display:grid;gap:4px;color:var(--muted);font-size:12px}.product-admin input[type=number]{width:100%;padding:8px;border:1px solid #aebbb2;border-radius:6px}.product-admin button{min-height:38px;border:0;border-radius:6px;background:var(--green);color:#fff}.portal-header a:focus-visible,.portal-header button:focus-visible,.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #79a98b;outline-offset:2px}@media(max-width:960px){.portal-header{padding:18px 22px;align-items:flex-start}.portal-header nav{max-width:70%;justify-content:flex-end;flex-wrap:wrap;gap:12px 18px}.portal-products{grid-template-columns:1fr 1fr}.order-layout,.order-detail{grid-template-columns:1fr}.product-admin form{grid-template-columns:1fr 1fr}.product-admin form>div{grid-column:1/-1}.stat-grid,.action-grid{grid-template-columns:1fr}.portal-hero,.page-head{flex-direction:column}}@media(max-width:620px){.portal-header{display:grid}.portal-header nav{max-width:none;justify-content:flex-start}.portal-main{padding:42px 16px 80px}.portal-hero{padding:28px}.portal-hero h1,.page-head h1{font-size:42px}.portal-products,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.panel,.auth-card{padding:21px}.panel-head{align-items:flex-start;flex-direction:column}.portal-product p{min-height:0}.order-products label{grid-template-columns:48px 1fr 64px}.order-products img{width:48px;height:48px}.admin-cards article{flex-direction:column}.product-admin form{grid-template-columns:1fr}.product-admin form>div{grid-column:auto}.portal-footer{flex-direction:column}.button-row{width:100%}.button-row .button{width:100%}}
.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.account-grid .panel{margin:0}@media(max-width:960px){.account-grid{grid-template-columns:1fr}}
.connection-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:start}.connection-layout .panel{margin:0}.connection-summary{display:grid;gap:5px;padding:18px;border-radius:10px;background:var(--soft)}.connection-summary a{overflow-wrap:anywhere}.connection-summary small{color:var(--muted)}.connection-error{margin:8px 0 0;color:var(--danger)}details{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}details summary{cursor:pointer;font-weight:700}.disconnect-form{margin-top:25px;padding-top:20px;display:grid;gap:13px;border-top:1px solid var(--line)}.disconnect-form .button{justify-self:start}.connector-guide ol{padding-left:22px}.connector-guide li{margin-bottom:11px}.connector-products{display:grid;gap:14px}.connector-products article{padding:16px;display:grid;grid-template-columns:100px 1fr minmax(220px,280px);gap:18px;align-items:center;border:1px solid var(--line);border-radius:11px}.connector-products img{width:100px;height:100px;object-fit:cover;border-radius:9px;background:var(--soft)}.connector-products h3{margin:5px 0}.connector-products p{margin-bottom:8px;color:var(--muted);font-size:14px}.connector-products div>span{margin-right:8px}.connector-products form{display:grid;gap:10px}.connector-products form label{display:grid;gap:4px;font-size:13px;font-weight:700}.connector-products input{width:100%;min-height:44px;padding:9px 11px;border:1px solid #aebbb2;border-radius:7px}.connector-products form small{color:var(--muted);font-weight:400}.connector-products form>a{font-size:13px;text-align:center}@media(max-width:960px){.connection-layout{grid-template-columns:1fr}.connector-products article{grid-template-columns:80px 1fr}.connector-products img{width:80px;height:80px}.connector-products form{grid-column:1/-1}}@media(max-width:620px){.connector-products article{grid-template-columns:1fr}.connector-products img{width:100%;height:auto;aspect-ratio:16/9}.disconnect-form .button{width:100%}}
.import-warning{margin:0 0 24px;padding:18px 20px;border:1px solid #dfc477;border-radius:10px;background:#fff8e5;color:#674c12}.import-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:22px;align-items:start}.import-layout .panel{margin:0}.import-list{display:grid;gap:14px}.import-list article{padding:18px;display:grid;grid-template-columns:110px 1fr auto;gap:20px;align-items:start;border:1px solid var(--line);border-radius:11px}.import-image{width:110px;height:110px;display:grid;place-items:center;overflow:hidden;border-radius:9px;background:var(--soft);color:var(--muted);font-size:12px}.import-image img{width:100%;height:100%;object-fit:cover}.import-copy h3{margin:8px 0 4px}.import-copy p{margin:0 0 7px;color:var(--muted)}.import-copy small,.import-copy a{display:block;margin-top:7px}.review-actions{display:flex;gap:8px;flex-wrap:wrap}.status.draft{background:#e9eef7;color:#354f77}.status.rejected{background:#f8e5e3;color:#853731}@media(max-width:960px){.import-layout{grid-template-columns:1fr}.import-list article{grid-template-columns:90px 1fr}.import-image{width:90px;height:90px}.review-actions{grid-column:1/-1}}@media(max-width:620px){.import-list article{grid-template-columns:1fr}.import-image{width:100%;height:auto;aspect-ratio:16/9}.review-actions .button{width:100%}}
.status.payment-paid{background:#e5f2e9;color:#23623d}.status.payment-unpaid,.status.payment-pending{background:#fff2cf;color:#795719}.status.payment-failed,.status.payment-expired{background:#f8e5e3;color:#853731}.order-badges{display:flex;gap:8px;flex-wrap:wrap}.payment-panel{display:flex;align-items:center;justify-content:space-between;gap:24px}.payment-panel h2{margin-bottom:8px}.payment-panel p{margin:0;color:var(--muted)}.payment-panel form{flex:0 0 auto}.tracking{margin-top:22px;padding:16px;display:grid;gap:5px;border-radius:9px;background:var(--soft)}.line-items footer span{display:grid}.line-items footer small{color:var(--muted);font-weight:400}.line-items .payable-total{border-top:2px solid var(--ink)}.status-form form{display:grid;grid-template-columns:minmax(160px,220px) minmax(120px,160px) 1fr 1fr auto;align-items:end}.status-form label{display:grid;gap:5px;color:var(--muted);font-size:13px}.status-form input{width:100%;min-height:48px;padding:10px 12px;border:1px solid #aebbb2;border-radius:7px}@media(max-width:960px){.status-form form{grid-template-columns:1fr 1fr}.status-form form .button{align-self:end}}@media(max-width:620px){.payment-panel{align-items:stretch;flex-direction:column}.payment-panel .button{width:100%}.status-form form{grid-template-columns:1fr}}
