:root{--navy:#082b56;--ink:#071b33;--orange:#ec7c22;--cream:#f6f1e8;--line:#e8e2d8;--muted:#6c7683;--green:#197a50;--red:#b83a35}
*{box-sizing:border-box}body.portal{margin:0;background:radial-gradient(circle at 90% 0,#ffe3c6 0,transparent 28%),#f6f3ed;color:var(--ink);font-family:"DM Sans",sans-serif}.portal a{color:inherit}.portal-shell{width:min(1180px,calc(100% - 32px));margin:auto}.portal-header{position:sticky;top:0;z-index:30;background:#061f3eeb;color:white;backdrop-filter:blur(16px);border-bottom:1px solid #ffffff18}.portal-header-inner{height:76px;display:flex;align-items:center;gap:14px}.portal-logo{width:54px;height:42px;object-fit:cover;border-radius:12px;border:1px solid #ffffff20}.portal-brand{font-family:"Plus Jakarta Sans",sans-serif;font-size:18px;font-weight:800}.portal-nav{margin-left:auto;display:flex;gap:10px;align-items:center}.portal-link,.portal-button{border:0;border-radius:999px;padding:11px 16px;font:800 12px "DM Sans",sans-serif;cursor:pointer;text-decoration:none}.portal-link{background:#ffffff12;color:white}.portal-button{background:var(--orange);color:white;box-shadow:0 8px 24px #ec7c2240}.portal-main{padding:54px 0 90px}.portal-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:end;margin-bottom:30px}.portal-kicker{display:inline-flex;gap:8px;align-items:center;color:var(--orange);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.portal-title{font:800 clamp(38px,6vw,72px)/.94 "Plus Jakarta Sans",sans-serif;letter-spacing:-.055em;margin:16px 0;color:var(--navy)}.portal-copy{color:var(--muted);font-size:15px;line-height:1.8;max-width:650px}.benefit-card{background:var(--navy);color:white;padding:28px;border-radius:30px;position:relative;overflow:hidden;box-shadow:0 24px 70px #082b5630}.benefit-card:after{content:"5%";position:absolute;right:-18px;bottom:-36px;font:900 128px "Plus Jakarta Sans";color:#ffffff0b}.benefit-value{font:900 64px "Plus Jakarta Sans";color:var(--orange);line-height:1}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:28px;padding:26px;box-shadow:0 18px 60px #082b5610}.panel-title{font:800 22px "Plus Jakarta Sans";color:var(--navy);margin:0 0 5px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:900;color:var(--navy);text-transform:uppercase;letter-spacing:.06em}.input{width:100%;border:1px solid var(--line);border-radius:15px;background:#fbfaf7;padding:13px 14px;font:600 14px "DM Sans";outline:none;color:var(--ink)}.input:focus{border-color:var(--orange);box-shadow:0 0 0 4px #ec7c2215}.form-actions{grid-column:1/-1;display:flex;gap:12px;align-items:center}.primary{border:0;border-radius:15px;background:var(--orange);color:#fff;padding:14px 20px;font-weight:900;cursor:pointer}.secondary{border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--navy);padding:13px 18px;font-weight:900;cursor:pointer}.notice{border-radius:15px;padding:13px 15px;font-size:13px;font-weight:700}.notice.success{background:#e8f7ef;color:var(--green)}.notice.error{background:#fff0ee;color:var(--red)}.hidden{display:none!important}.map-preview{height:190px;border:1px dashed #d7c9b8;border-radius:18px;background:linear-gradient(135deg,#f9f3e8,#eef5f2);display:grid;place-items:center;text-align:center;color:var(--muted);padding:20px}.admin-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:22px}.admin-sidebar{background:var(--navy);color:white;border-radius:26px;padding:20px;align-self:start;position:sticky;top:96px}.admin-tab{display:block;width:100%;text-align:left;border:0;background:transparent;color:#ffffffa8;border-radius:13px;padding:13px;font-weight:800;cursor:pointer}.admin-tab.active,.admin-tab:hover{background:#ffffff12;color:#fff}.admin-content{min-width:0}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:18px}.search{min-width:270px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.stat strong{display:block;font:900 28px "Plus Jakarta Sans";color:var(--navy)}.stat span{font-size:11px;color:var(--muted);font-weight:800}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:22px}.data-table{width:100%;border-collapse:collapse;min-width:820px}.data-table th,.data-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #eee9e1;font-size:12px}.data-table th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#fbfaf7}.data-table td strong{color:var(--navy)}.badge{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900}.pending{background:#fff4d8;color:#8c6300}.approved,.completed,.paid{background:#e4f5ec;color:var(--green)}.rejected,.cancelled{background:#ffe8e5;color:var(--red)}.issued{background:#e9effa;color:var(--navy)}.row-actions{display:flex;gap:6px}.mini{border:1px solid var(--line);background:white;border-radius:10px;padding:8px 9px;font-size:10px;font-weight:900;cursor:pointer;white-space:nowrap}.mini.accent{background:var(--orange);border-color:var(--orange);color:white}.modal{position:fixed;inset:0;z-index:60;background:#04162fc7;display:grid;place-items:center;padding:20px}.modal-card{width:min(660px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:25px;padding:26px}.login-card{width:min(430px,100%)}
@media(max-width:850px){.portal-hero,.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static;display:flex;overflow:auto}.admin-tab{white-space:nowrap}.stats{grid-template-columns:repeat(2,1fr)}.portal-main{padding-top:30px}}@media(max-width:600px){.grid-form{grid-template-columns:1fr}.field.full,.form-actions{grid-column:auto}.portal-nav .portal-link{display:none}.stats{grid-template-columns:1fr 1fr}.toolbar{align-items:stretch;flex-direction:column}.search{min-width:0}.panel{padding:18px}.portal-title{font-size:43px}}
.admin-portal{background:radial-gradient(circle at 80% 0,#f3dfcb 0,transparent 26%),var(--cream)}.session-label{color:var(--muted);font-size:11px}.login-stage{min-height:65vh;display:grid;grid-template-columns:1.1fr .7fr;align-items:center;gap:8vw}.admin-login-title{font-size:clamp(44px,6vw,76px)}.full-button{grid-column:1/-1}.sidebar-label{margin:20px 13px 7px;color:#ffffff55;font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.sidebar-label:first-child{margin-top:4px}.view-title{font-size:31px;margin-top:8px}.admin-view{animation:viewIn .25s ease both}@keyframes viewIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.accent-stat{background:var(--navy)}.accent-stat strong,.accent-stat span{color:#fff}.warning-stat strong{color:var(--orange)}.inline-actions{display:flex;gap:8px}.period-summary,.period-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.period-summary>div,.period-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.period-summary span,.period-card span{display:block;color:var(--muted);font-size:11px;font-weight:800}.period-summary strong,.period-card strong{display:block;color:var(--navy);font:900 24px "Plus Jakarta Sans";margin-top:5px}.period-card small{display:block;color:var(--muted);margin-top:10px}.sales-chart{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;height:280px;margin-top:24px}.chart-column{display:grid;grid-template-rows:20px 1fr auto auto;gap:6px;text-align:center;min-width:0}.chart-value{font-size:9px;font-weight:800;color:var(--muted)}.chart-track{height:190px;background:#f3eee7;border-radius:12px;display:flex;align-items:flex-end;overflow:hidden}.chart-track span{display:block;width:100%;background:linear-gradient(var(--orange),#d86518);border-radius:12px 12px 0 0}.chart-column strong{text-transform:capitalize;color:var(--navy);font-size:12px}.chart-column small{color:var(--muted);font-size:9px}.rate-bands{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.rate-band{display:flex;gap:8px;padding:12px;background:#f8f4ee;border-radius:15px}.rate-band label{display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:0}.rate-band .input{width:86px;background:#fff}.security-form{max-width:760px}.compact-select{min-width:130px;padding:8px}.route-cell{display:grid;gap:3px;max-width:310px}.route-cell b{color:var(--orange)}.discount-switch{display:inline-flex;border-radius:999px;padding:6px 9px;background:#eee;color:var(--muted);font-size:10px;font-weight:900}.discount-switch.on{background:#e4f5ec;color:var(--green)}.mini.approve{color:var(--green);border-color:#b9dfca}.mini.danger{color:var(--red);border-color:#efc3bd}.empty-state{text-align:center;padding:32px;color:var(--muted)}
.store-access{display:grid;grid-template-columns:.72fr 1.28fr;gap:20px;align-items:start}.store-access>.panel:first-child{position:sticky;top:96px}
@media(max-width:850px){.login-stage,.store-access{grid-template-columns:1fr}.store-access>.panel:first-child{position:static}.period-grid,.period-summary{grid-template-columns:1fr}.admin-sidebar .sidebar-label{display:none}.sales-chart{overflow:auto}.chart-column{min-width:80px}.rate-bands{grid-template-columns:1fr}}
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;align-items:end}.filter-bar .input{width:auto;min-width:150px}.filter-label{display:grid;gap:5px;font-size:10px;font-weight:900;color:var(--navy);text-transform:uppercase;letter-spacing:.06em}.report-grid{grid-template-columns:repeat(3,1fr)}.history-toggle{gap:6px}.history-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.invoice-lines{width:100%;border-collapse:collapse;margin-top:14px}.invoice-lines th,.invoice-lines td{padding:9px 10px;border-bottom:1px solid #eee9e1;font-size:11px;text-align:left}.invoice-lines th{font-size:9px;text-transform:uppercase;color:var(--muted)}.invoice-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:6px 0 4px}.invoice-meta div{background:#f8f4ee;border-radius:14px;padding:12px}.invoice-meta span{display:block;font-size:10px;font-weight:900;color:var(--muted);text-transform:uppercase}.invoice-meta strong{color:var(--navy)}
@media(max-width:600px){.filter-bar .input{min-width:0;flex:1}.report-grid,.invoice-meta{grid-template-columns:1fr}}
