*{box-sizing:border-box}html{background:#08101d}body{margin:0;min-height:100vh;background:radial-gradient(circle at 70% -10%,#18315a55,transparent 34%),#08101d;color:#e8eef8;font-family:Inter,Segoe UI,Arial,sans-serif;display:flex}aside{width:245px;position:fixed;inset:0 auto 0 0;background:#0b1424ee;border-right:1px solid #20314b;padding:24px 18px;backdrop-filter:blur(10px)}main{margin-left:245px;width:calc(100% - 245px);max-width:1600px;padding:30px 32px 60px}.brand{display:flex;gap:12px;align-items:center;font-size:17px;font-weight:800}.brand b{color:#4c8dff}.brand small{display:block;color:#6f829f;font-size:10px;margin-top:2px;letter-spacing:.12em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#3678f6,#1c4ab5);box-shadow:0 10px 30px #1d4ed844;color:#fff;font-size:20px}nav{margin-top:35px;display:grid;gap:7px}nav a{padding:11px 12px;color:#9fb0ca;text-decoration:none;border-radius:9px;font-size:14px}nav a:hover{background:#142238;color:#fff}.side-note{position:absolute;left:20px;bottom:22px;color:#8da0bd;font-size:12px;line-height:1.6}.side-note small{color:#586b88}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.dot.online{background:#39d98a;box-shadow:0 0 14px #39d98aaa}.top{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}.top h1{margin:0;font-size:29px;letter-spacing:-.03em}.top p,.section-head p{margin:6px 0 0;color:#788aa7;font-size:13px}.crumb{font-size:12px;color:#6f829f;margin-bottom:8px}.crumb a{color:#8eb5ff;text-decoration:none}.btn,.mini{border:0;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.btn{padding:11px 16px;border-radius:9px;background:linear-gradient(135deg,#3479ff,#2159d7);color:#fff;box-shadow:0 8px 22px #1d4ed833}.mini{padding:7px 10px;border-radius:7px;background:#17253b;color:#dbe8fb;border:1px solid #2a405f;font-size:12px}.mini.primary{background:#17386e;border-color:#2c66b9}.mini.danger{background:#321d28;border-color:#673043;color:#ffb0bb}.grid{display:grid;gap:15px}.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0 28px}.cards.five{grid-template-columns:repeat(5,minmax(0,1fr))}.two{grid-template-columns:1.18fr .82fr}.card,.panel,.router-card{background:linear-gradient(180deg,#101b2d,#0d1728);border:1px solid #20324e;border-radius:14px;box-shadow:0 12px 35px #02061728}.card{padding:18px}.card.accent{border-color:#315ca1;background:linear-gradient(180deg,#132748,#0f1d35)}.card span,.router-metrics span{display:block;color:#778ba9;text-transform:uppercase;font-size:10px;letter-spacing:.1em}.card b{display:block;font-size:25px;margin:8px 0 5px}.card .small-b{font-size:16px;overflow:hidden;text-overflow:ellipsis}.card small{color:#607491}.panel{padding:20px;margin:16px 0}.panel h2,.section-head h2{font-size:16px;margin:0}.form-panel{max-width:1050px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.section-head>a{font-size:12px;color:#8ab2ff;text-decoration:none}.router-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.router-grid.wide-space{margin-top:18px}.router-card{display:block;padding:18px;color:inherit;text-decoration:none;transition:.2s}.router-card:not(.static):hover{transform:translateY(-2px);border-color:#365b91}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.router-card b{font-size:15px}.router-card small{display:block;color:#7185a4;margin-top:4px}.router-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.router-metrics div{background:#0a1423;padding:10px;border-radius:8px}.router-metrics b{display:block;margin-top:5px;font-size:13px}.wanline{display:flex;justify-content:space-between;gap:10px;color:#7186a5;font-size:11px;border-top:1px solid #1c2b43;padding-top:11px}.wanline strong{color:#78d8aa}.pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#26354b;color:#bac7d9;font-size:10px;font-weight:800;letter-spacing:.05em}.pill.ok,.status-active{background:#153d2d;color:#74e2ad}.pill.bad,.status-expired{background:#49222c;color:#ffadb8}.status-unused{background:#243348;color:#b8c7dd}.status-sold{background:#423619;color:#f6d36f}.level-error{background:#49222c;color:#ffadb8}.level-warn{background:#49391c;color:#f4d271}.level-info{background:#173753;color:#87c9ff}.actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.actions form{margin:0}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid label{font-size:11px;color:#8da0bd}.form-grid label small{color:#61738f}.form-grid input,.form-grid select,.inline select{display:block;width:100%;margin-top:6px;background:#091423;border:1px solid #2a3d59;color:#eef5ff;padding:10px;border-radius:8px;outline:none}.form-grid input:focus,.form-grid select:focus,.inline select:focus{border-color:#3976d8;box-shadow:0 0 0 3px #2563eb22}.form-grid label.check{display:flex;gap:8px;align-items:center;min-height:42px;padding-top:15px}.form-grid label.check input{width:auto;margin:0}.notice,.alert{margin:16px 0;padding:12px 13px;border-radius:9px;background:#13233d;border:1px solid #294a77;color:#a9bedc;font-size:12px;line-height:1.55}.alert{background:#381f29;border-color:#6b3043;color:#ffc0ca}.table{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:11px 10px;border-bottom:1px solid #1b2b43;text-align:left;white-space:nowrap}th{font-size:10px;color:#7185a4;text-transform:uppercase;letter-spacing:.09em}td{color:#cbd7e8}.code{font-family:Consolas,monospace;letter-spacing:.07em}.block{display:block;margin-top:4px;color:#6f829f}.good{color:#70dba8}.warn{color:#f1cd68}.muted{color:#687b98}.error-text{color:#f5a3ae;max-width:240px;overflow:hidden;text-overflow:ellipsis}.filterbar{display:flex;gap:7px;margin:18px 0 8px}.filterbar a{padding:7px 11px;border-radius:999px;background:#111d30;color:#7f92af;text-decoration:none;font-size:11px;border:1px solid #1f304a}.filterbar a.active{background:#1c3d72;color:#dcecff;border-color:#356ec3}.inline{display:flex;align-items:center;gap:8px}.inline select{margin:0;min-width:170px}.lifecycle{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:116px}.lifecycle>div{background:#0a1423;border:1px solid #1b2c45;border-radius:10px;padding:13px;flex:1}.lifecycle>div span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#234e8d;color:#dceaff;font-size:11px}.lifecycle>div b{display:block;margin-top:9px;font-size:12px}.lifecycle>div small{display:block;color:#6f829f;margin-top:4px}.lifecycle i{color:#456084;font-style:normal}.log{display:flex;gap:9px;padding:8px 0;border-bottom:1px solid #17263b;font-size:12px}.log>span{height:max-content}.log small{display:block;margin-top:4px;color:#607491}.empty{color:#657895;text-align:center;padding:24px}.health-list{display:grid;gap:2px}.health-list div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #1b2b43}.health-list span{color:#7185a4}.health-list b{font-size:12px}.legend{display:flex;justify-content:center;gap:22px;color:#8194b1;font-size:11px;margin-top:9px}canvas{display:block;width:100%;background:#091421;border-radius:10px;border:1px solid #182b46}.section-head .inline{margin-left:auto}.form-panel .btn{margin-top:2px}
@media(max-width:1250px){.router-grid{grid-template-columns:repeat(2,1fr)}.cards.five{grid-template-columns:repeat(3,1fr)}.form-grid.four{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){aside{width:195px}main{margin-left:195px;width:calc(100% - 195px);padding:24px 20px}.cards{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}.form-grid,.form-grid.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){body{display:block}aside{position:static;width:100%;height:auto}.side-note{display:none}nav{grid-template-columns:repeat(3,1fr);margin-top:18px}main{margin:0;width:100%;padding:18px 14px}.top{align-items:flex-start}.router-grid,.cards,.cards.five,.form-grid,.form-grid.four{grid-template-columns:1fr}.router-metrics{grid-template-columns:repeat(2,1fr)}.lifecycle{display:grid;grid-template-columns:1fr}.lifecycle i{display:none}}
.warning-box{border-color:#8a6a2f;background:#2a2416;color:#ffd98a}.panel b .pill{vertical-align:middle}.table td[title]{max-width:300px;overflow:hidden;text-overflow:ellipsis}
/* V2.2 unified user management */
.compact-panel{padding:14px 18px}.wrap{flex-wrap:wrap}.inline>label{color:#8da0bd;font-size:11px}.small-input{width:110px;background:#091423;border:1px solid #2a3d59;color:#eef5ff;padding:8px 10px;border-radius:8px}.action-stack{display:grid;gap:14px;margin-top:14px}.action-stack .inline{padding-bottom:12px;border-bottom:1px solid #1b2b43}.action-stack label{min-width:90px}.action-stack select{min-width:180px}.control-row{padding-top:4px}.top-gap{margin-top:6px}.adopt-form select{min-width:150px;max-width:210px}.data-bar{height:6px;background:#0a1423;border:1px solid #1b2c45;border-radius:999px;overflow:hidden;margin-top:5px}.data-bar>i{display:block;height:100%;background:#3479ff}.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1250px){.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.four{grid-template-columns:1fr}.adopt-form{min-width:260px}}
/* V2.3 sales + portal */
.cards.six{grid-template-columns:repeat(6,minmax(0,1fr))}.sales-plan-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #1b2b43}.sales-plan-row b{display:block;font-size:13px}.sales-plan-row small{display:block;color:#6f829f;margin-top:4px}.sales-plan-row strong{color:#8ce6b8;font-size:14px}.portal-layout{grid-template-columns:minmax(520px,.9fr) minmax(420px,1.1fr);align-items:start}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .wide{grid-column:1/-1}.portal-deploy-box{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px;margin-top:18px;background:#0a1423;border:1px solid #263c5b;border-radius:10px}.portal-deploy-box b{display:block;font-size:13px}.portal-deploy-box small{display:block;color:#7185a4;margin-top:5px;line-height:1.45}.portal-meta{margin-top:10px;font-size:11px}.portal-preview-panel{position:sticky;top:18px}.portal-frame{width:100%;height:690px;border:1px solid #273e5d;border-radius:14px;background:#08101d}.portal-tabs button{padding:7px 11px;border-radius:999px;background:#111d30;color:#7f92af;border:1px solid #1f304a;cursor:pointer}.portal-tabs button.active{background:#1c3d72;color:#dcecff;border-color:#356ec3}button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1400px){.cards.six{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.portal-layout{grid-template-columns:1fr}.portal-preview-panel{position:static}.portal-frame{height:640px}}
@media(max-width:720px){.cards.six,.two-cols{grid-template-columns:1fr}.portal-frame{height:600px}.portal-deploy-box{align-items:flex-start;flex-direction:column}}
/* V2.4 voucher batch + multi-brand printing */
a.code{color:#8eb5ff;text-decoration:none}.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}.brand-preview{display:flex;align-items:center;gap:12px}.brand-preview img{max-width:52px;max-height:52px;border-radius:8px}.batch-actions{display:flex;gap:8px;flex-wrap:wrap}.table input[type=checkbox]{width:15px;height:15px;accent-color:#3479ff}
@media(max-width:1000px){.cards.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.cards.four{grid-template-columns:1fr}}
/* V2.5 SaaS authentication, tenants, roles and subscriptions */
.workspace-card{margin:18px 0 8px;padding:12px;background:#0b1728;border:1px solid #20324e;border-radius:10px}.workspace-card b{display:block;font-size:12px}.workspace-card small{display:block;color:#7185a4;margin:4px 0 8px}.logout-form{margin-top:14px}.logout-form button{width:100%}.subscription-banner{margin:0 0 18px;padding:12px 14px;border-radius:10px;border:1px solid #735b25;background:#2a2416;color:#ffe1a0;font-size:12px}.subscription-banner.suspended{border-color:#6b3043;background:#381f29;color:#ffc0ca}.subscription-banner a{color:#fff;font-weight:800}.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 0,#183b7455,transparent 36%),#07101d;color:#eef5ff}.auth-shell{width:min(460px,calc(100% - 30px))}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.auth-brand h1{margin:0;font-size:23px}.auth-brand p{margin:4px 0 0;color:#7185a4}.auth-card{background:linear-gradient(180deg,#101b2d,#0d1728);border:1px solid #273b59;border-radius:16px;padding:24px;box-shadow:0 22px 60px #02061788}.auth-card h2{margin:0 0 5px}.auth-card>p{color:#8498b7;font-size:12px;margin-bottom:18px}.auth-card label{display:block;color:#8da0bd;font-size:11px;margin:12px 0}.auth-card input,.auth-card select,.action-stack input{display:block;width:100%;margin-top:6px;background:#091423;border:1px solid #2a3d59;color:#eef5ff;padding:11px;border-radius:8px;outline:none}.wide-btn{width:100%;margin-top:10px}.auth-note{display:block;color:#667a99;margin-top:16px;line-height:1.5}.weekday-box{display:flex;gap:12px;flex-wrap:wrap;padding:12px;background:#0a1423;border:1px solid #223650;border-radius:9px}.weekday-box>span{width:100%;color:#8da0bd;font-size:11px}.weekday-box label{font-size:11px;color:#c7d4e7}.weekday-box input{accent-color:#3479ff}.pill.warn{background:#4b3b1c;color:#f7d575}.action-stack label{color:#8da0bd;font-size:11px}.form-grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .wide{grid-column:1/-1}
@media(max-width:720px){.form-grid.two-cols{grid-template-columns:1fr}.workspace-card{margin:10px 0}}

/* V2.5.1 sidebar scroll + grouped navigation */
.app-sidebar{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;padding:20px 14px 14px}
.sidebar-head{flex:0 0 auto;padding:0 4px}
.side-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;margin:8px -4px 0;padding:0 4px 12px;scrollbar-width:thin;scrollbar-color:#2a405f transparent}
.side-scroll::-webkit-scrollbar{width:7px}.side-scroll::-webkit-scrollbar-thumb{background:#2a405f;border-radius:999px}.side-scroll::-webkit-scrollbar-track{background:transparent}
.grouped-nav{margin-top:8px;display:grid;gap:8px}.nav-group{border:1px solid transparent;border-radius:10px;overflow:hidden}.nav-group[open]{background:#0a1423;border-color:#172a43}.nav-group summary{list-style:none;cursor:pointer;user-select:none;padding:9px 10px;color:#607796;text-transform:uppercase;font-size:9px;font-weight:800;letter-spacing:.14em;display:flex;align-items:center;justify-content:space-between}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'+';font-size:13px;color:#6983a8}.nav-group[open] summary:after{content:'-'}
.nav-links{display:grid;gap:3px;padding:0 5px 6px}.nav-links a{display:flex;align-items:center;gap:9px;padding:9px 9px;color:#9fb0ca;text-decoration:none;border-radius:8px;font-size:13px}.nav-links a:hover{background:#142238;color:#fff}.nav-links a.active{background:#17345e;color:#fff;border:1px solid #2f5f9e}.nav-icon{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border-radius:7px;background:#13233a;color:#7faeff;font-size:9px;font-weight:900;letter-spacing:-.02em}.nav-links a.active .nav-icon{background:#2458a7;color:#fff}
.sidebar-footer{flex:0 0 auto;border-top:1px solid #1b2b43;padding:12px 4px 0;background:#0b1424}.sidebar-footer .side-note{position:static;left:auto;bottom:auto;color:#8da0bd;font-size:11px;line-height:1.5}.sidebar-footer .side-note small{font-size:9px}.sidebar-footer .logout-form{margin-top:9px}.sidebar-footer .logout-form button{width:100%}
.workspace-card{margin:14px 0 4px}.app-sidebar .brand{padding-top:2px}
@media(max-width:980px) and (min-width:721px){.app-sidebar{width:205px;padding-left:10px;padding-right:10px}.nav-links a{font-size:12px;padding-left:7px;padding-right:7px}.nav-icon{flex-basis:21px;width:21px;height:21px}.workspace-card{padding:10px}}
@media(max-width:720px){.app-sidebar{position:static;width:100%;height:auto;overflow:visible;padding:16px 14px}.sidebar-head{padding:0}.side-scroll{overflow:visible;margin:6px 0 0;padding:0}.grouped-nav{display:grid;grid-template-columns:1fr;gap:7px}.nav-group{background:#0a1423;border-color:#172a43}.nav-links{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:8px}.nav-links a{font-size:12px}.sidebar-footer{margin-top:10px;padding-top:10px}.sidebar-footer .side-note{display:block}.sidebar-footer .logout-form{max-width:320px}.workspace-card{margin:12px 0 6px}}
@media(max-width:430px){.nav-links{grid-template-columns:1fr}.nav-group summary{padding-top:10px;padding-bottom:10px}}

@media(max-width:980px) and (min-width:721px){main{margin-left:205px;width:calc(100% - 205px)}}

/* V2.5.4.1 PWA + mobile-first application shell */
:root{--mobile-top:64px;--mobile-bottom:70px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
.mobile-topbar,.mobile-bottom-nav,.sidebar-backdrop,.sidebar-mobile-row{display:none}.pwa-install[hidden],.pwa-toast[hidden]{display:none!important}.sidebar-install{width:100%;margin:0 0 9px}.pwa-toast{position:fixed;right:18px;bottom:18px;z-index:3000;max-width:340px;padding:12px 14px;border-radius:10px;background:#13233d;border:1px solid #31588d;color:#dcecff;box-shadow:0 16px 44px #02061799;font-size:12px;line-height:1.45}

@media(max-width:720px){
  html,body{width:100%;max-width:100%;overflow-x:hidden;background:#08101d}
  body{display:block;padding:0;-webkit-tap-highlight-color:transparent}
  main{margin:0!important;width:100%!important;max-width:none;padding:calc(var(--mobile-top) + var(--safe-top) + 14px) 12px calc(var(--mobile-bottom) + var(--safe-bottom) + 24px)!important}
  .mobile-topbar{display:flex;position:fixed;z-index:1200;left:0;right:0;top:0;height:calc(var(--mobile-top) + var(--safe-top));padding:calc(8px + var(--safe-top)) 12px 8px;align-items:center;gap:10px;background:#0a1424ee;border-bottom:1px solid #20314b;backdrop-filter:blur(14px);box-shadow:0 8px 24px #02061755}
  .mobile-icon-btn{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid #29405f;border-radius:11px;background:#101d31;color:#e7f0ff;font-size:22px;line-height:1;cursor:pointer}
  .mobile-brand{display:flex;align-items:center;gap:9px;min-width:0;flex:1;color:#eef5ff;text-decoration:none}.mobile-brand .brand-mark{width:38px;height:38px;border-radius:10px;font-size:19px}.mobile-brand>span:last-child{min-width:0}.mobile-brand b{display:block;font-size:14px;white-space:nowrap}.mobile-brand small{display:block;color:#7085a5;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;margin-top:2px}
  .mobile-install{min-width:58px;height:38px;padding:0 10px;border:1px solid #3479ff;border-radius:9px;background:#174184;color:#fff;font-size:11px;font-weight:800}

  .app-sidebar{display:flex!important;position:fixed!important;z-index:1500!important;inset:0 auto 0 0!important;width:min(88vw,330px)!important;height:100dvh!important;overflow:hidden!important;padding:calc(12px + var(--safe-top)) 12px calc(12px + var(--safe-bottom))!important;background:#0b1424!important;transform:translateX(-105%);transition:transform .23s ease;box-shadow:22px 0 60px #020617aa;border-right:1px solid #263b59}
  body.sidebar-open{overflow:hidden}.sidebar-open .app-sidebar{transform:translateX(0)}
  .sidebar-backdrop{display:block;position:fixed;z-index:1400;inset:0;background:#020817b8;opacity:0;pointer-events:none;transition:opacity .23s ease;backdrop-filter:blur(2px)}.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}
  .sidebar-mobile-row{display:flex;justify-content:flex-end;height:38px;margin-bottom:2px}.sidebar-close{width:36px;height:36px;flex-basis:36px;font-size:25px}
  .sidebar-head{padding:0 3px}.app-sidebar .brand{font-size:16px}.workspace-card{margin:11px 0 5px;padding:10px 11px}.workspace-card small{margin-bottom:6px}
  .side-scroll{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;margin:7px -2px 0!important;padding:0 2px 12px!important;-webkit-overflow-scrolling:touch}
  .grouped-nav{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin-top:4px!important}.nav-group{background:#0a1423;border-color:#172a43}.nav-links{display:grid!important;grid-template-columns:1fr!important;gap:3px!important;padding:0 5px 7px!important}.nav-links a{min-height:44px;font-size:13px!important;padding:9px 10px!important}.nav-group summary{min-height:38px;padding:8px 10px}
  .sidebar-footer{flex:0 0 auto;margin:0!important;padding:10px 3px 0!important;border-top:1px solid #1b2b43}.sidebar-footer .side-note{display:block!important;font-size:10px}.sidebar-footer .logout-form{max-width:none!important}.sidebar-footer .mini{min-height:42px}

  .mobile-bottom-nav{display:grid;position:fixed;z-index:1250;left:0;right:0;bottom:0;height:calc(var(--mobile-bottom) + var(--safe-bottom));padding:6px 7px calc(6px + var(--safe-bottom));grid-template-columns:repeat(5,1fr);gap:3px;background:#0a1424f5;border-top:1px solid #20314b;box-shadow:0 -10px 30px #02061766;backdrop-filter:blur(14px)}
  .mobile-bottom-nav a,.mobile-bottom-nav button{display:flex;min-width:0;min-height:54px;border:0;border-radius:10px;background:transparent;color:#8296b5;text-decoration:none;align-items:center;justify-content:center;flex-direction:column;gap:3px;font:inherit;cursor:pointer}.mobile-bottom-nav span{display:grid;place-items:center;min-width:25px;height:25px;padding:0 5px;border-radius:8px;background:#111f34;color:#8eb5ff;font-size:12px;font-weight:900}.mobile-bottom-nav small{font-size:9px;white-space:nowrap}.mobile-bottom-nav a.active{color:#fff;background:#12233d}.mobile-bottom-nav a.active span{background:#2458a7;color:#fff}

  .top{display:flex;flex-direction:column;align-items:stretch!important;gap:12px;margin-bottom:15px}.top>div:last-child,.top>.actions{width:100%}.top h1{font-size:24px;line-height:1.1}.top p,.section-head p{font-size:12px;line-height:1.45}.crumb{font-size:11px;margin-bottom:6px}.actions{gap:7px}.actions .btn,.actions .mini{min-height:42px}.btn{min-height:44px;padding:10px 14px}.mini{min-height:38px}
  .section-head{align-items:flex-start;flex-direction:column;gap:8px}.section-head .inline{margin-left:0;width:100%}.section-head .inline select{width:100%}
  .panel{padding:14px;margin:12px 0;border-radius:12px}.card{padding:14px;border-radius:12px}.card b{font-size:21px}.router-card{padding:14px;border-radius:12px}.router-grid{grid-template-columns:1fr!important;gap:11px}.router-grid.wide-space{margin-top:12px}.router-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:14px 0}.router-metrics div{padding:9px}
  .cards,.cards.five,.cards.six,.cards.four{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px;margin:12px 0 18px}.cards .card{min-width:0}.cards .card b{font-size:20px}.cards .card span{font-size:9px}.cards .card small{font-size:10px}
  .two,.two-cols,.portal-layout{grid-template-columns:1fr!important}.form-grid,.form-grid.four,.form-grid.two-cols{grid-template-columns:1fr!important;gap:11px}.form-grid .wide{grid-column:auto}.form-grid input,.form-grid select,.inline select,.action-stack input{min-height:44px;font-size:16px}.form-grid label{font-size:11px}.form-grid label.check{min-height:48px;padding-top:5px}
  .table{overflow-x:auto!important;overflow-y:visible;-webkit-overflow-scrolling:touch;margin-left:-2px;margin-right:-2px;padding-bottom:4px}.table table{width:max-content;min-width:100%;font-size:11px}.table th,.table td{padding:10px 9px}.table th{font-size:9px}.table .mini{white-space:nowrap}
  .inline{flex-wrap:wrap}.adopt-form{min-width:260px}.small-input{min-height:42px}.action-stack{gap:11px}.action-stack .inline{align-items:stretch}.action-stack label{min-width:0;width:100%}.action-stack select{min-width:0;width:100%}
  .portal-preview-panel{position:static}.portal-frame{height:72vh;min-height:520px}.portal-deploy-box{align-items:stretch;flex-direction:column}.portal-deploy-box .actions{width:100%}
  canvas{min-height:180px}.health-list div{gap:12px}.health-list span{min-width:0}.health-list b{text-align:right;word-break:break-word}
  .sales-plan-row{align-items:flex-start}.subscription-banner{font-size:11px;line-height:1.45;margin-bottom:12px}
  .pwa-toast{left:12px;right:12px;bottom:calc(var(--mobile-bottom) + var(--safe-bottom) + 12px);max-width:none}
}

@media(max-width:390px){
  main{padding-left:9px!important;padding-right:9px!important}
  .cards,.cards.five,.cards.six,.cards.four{gap:7px}.card{padding:12px}.cards .card b{font-size:18px}.mobile-brand small{max-width:110px}.mobile-bottom-nav small{font-size:8px}.mobile-bottom-nav{padding-left:3px;padding-right:3px}.mobile-bottom-nav a,.mobile-bottom-nav button{border-radius:8px}
}

@media(display-mode:standalone){.mobile-topbar{padding-top:calc(8px + var(--safe-top))}.pwa-install{display:none!important}}

/* V2.5.4.1 - Design 2: Clean Light Mobile UI
   Desktop keeps the existing dark workspace. Phones switch to a clean light shell. */
.mobile-quick-actions{display:none}
@media(max-width:720px){
  html,body{background:#f5f7fb!important;color:#17233b!important}
  body{font-family:Inter,Segoe UI,Arial,sans-serif;background:linear-gradient(180deg,#f8faff 0,#f5f7fb 100%)!important}
  main{background:transparent!important;color:#17233b!important;padding-top:calc(var(--mobile-top) + var(--safe-top) + 12px)!important}

  /* App header */
  .mobile-topbar{background:rgba(255,255,255,.96)!important;border-bottom:1px solid #e4eaf3!important;box-shadow:0 5px 18px rgba(31,62,112,.08)!important;backdrop-filter:blur(16px)!important}
  .mobile-icon-btn{border:0!important;background:#eff4fb!important;color:#315078!important;box-shadow:none!important}
  .mobile-brand{color:#142039!important}.mobile-brand b{font-weight:900;letter-spacing:-.02em}.mobile-brand small{color:#8796ad!important}
  .mobile-brand .brand-mark,.brand-mark{background:linear-gradient(145deg,#3d82ff,#1762e8)!important;box-shadow:0 7px 18px rgba(42,109,239,.25)!important;color:#fff!important}
  .mobile-avatar{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:linear-gradient(145deg,#3f83ff,#1762e8);color:#fff;text-decoration:none;font-weight:900;box-shadow:0 6px 16px rgba(42,109,239,.22)}

  /* Bottom tabs */
  .mobile-bottom-nav{background:rgba(255,255,255,.97)!important;border-top:1px solid #e2e8f2!important;box-shadow:0 -7px 24px rgba(31,62,112,.10)!important;backdrop-filter:blur(16px)!important}
  .mobile-bottom-nav a,.mobile-bottom-nav button{color:#8493a9!important;border-radius:12px!important}
  .mobile-bottom-nav span{background:transparent!important;color:#7186a5!important;font-size:15px!important}
  .mobile-bottom-nav small{font-size:9px!important;font-weight:700!important}
  .mobile-bottom-nav a.active{background:transparent!important;color:#1769ee!important}
  .mobile-bottom-nav a.active span{background:#eaf2ff!important;color:#1769ee!important}
  .mobile-bottom-nav button:active,.mobile-bottom-nav a:active{background:#f1f5fb!important}

  /* More drawer */
  .app-sidebar{background:#ffffff!important;border-right:1px solid #e4eaf3!important;box-shadow:22px 0 60px rgba(24,50,91,.20)!important;color:#17233b!important}
  .sidebar-backdrop{background:rgba(28,44,70,.30)!important;backdrop-filter:blur(2px)!important}
  .sidebar-mobile-row .mobile-icon-btn{background:#f1f5fb!important;color:#53657f!important}
  .app-sidebar .brand{color:#17233b!important}.app-sidebar .brand small{color:#8a99ad!important}
  .workspace-card{background:#f4f7fb!important;border:1px solid #e2e9f3!important;color:#17233b!important;box-shadow:none!important}
  .workspace-card small{color:#71839d!important}
  .nav-group{background:#fff!important;border:1px solid #e4eaf3!important;box-shadow:0 3px 10px rgba(31,62,112,.035)!important}
  .nav-group summary{color:#71819a!important;background:#f8faff!important}
  .nav-links a{color:#53647c!important}.nav-links a:hover{background:#f1f6ff!important;color:#155fcf!important}
  .nav-links a.active{background:#eaf2ff!important;color:#1769ee!important;border:1px solid #d4e4ff!important}
  .nav-icon{background:#edf3fb!important;color:#4d79b8!important}.nav-links a.active .nav-icon{background:#1769ee!important;color:#fff!important}
  .sidebar-footer{background:#fff!important;border-top:1px solid #e5ebf3!important}.sidebar-footer .side-note{color:#6e809a!important}.sidebar-footer .side-note small{color:#98a5b7!important}
  .sidebar-footer .mini{background:#f4f7fb!important;border-color:#dfe7f1!important;color:#33445d!important}.sidebar-footer .mini.primary{background:#eaf2ff!important;border-color:#cfe0ff!important;color:#1769ee!important}.sidebar-footer .mini.danger{background:#fff0f1!important;border-color:#ffd3d8!important;color:#d93c4d!important}

  /* Typography */
  .top h1,.section-head h2,.panel h2,.router-card b,.health-list b{color:#17233b!important}
  .top p,.section-head p,.crumb,.card small,.router-card small,.block,.muted,.health-list span,.sales-plan-row small,.auth-note{color:#7f8fa6!important}
  .crumb a,.section-head>a{color:#1769ee!important}

  /* Buttons */
  .btn{background:linear-gradient(135deg,#3280ff,#1767ea)!important;color:#fff!important;border:0!important;box-shadow:0 7px 18px rgba(30,105,234,.22)!important}
  .mini{background:#f2f6fb!important;color:#38516f!important;border:1px solid #dce5f0!important;box-shadow:none!important}
  .mini.primary{background:#eaf2ff!important;color:#1769ee!important;border-color:#cfe0ff!important}
  .mini.danger{background:#fff0f1!important;color:#d84151!important;border-color:#ffd0d5!important}

  /* Cards */
  .card,.panel,.router-card{background:#fff!important;border:1px solid #e2e9f3!important;box-shadow:0 8px 24px rgba(27,56,99,.07)!important;color:#17233b!important}
  .card.accent{background:linear-gradient(145deg,#eef5ff,#f9fbff)!important;border-color:#cfe0ff!important}
  .card span,.router-metrics span{color:#8090a6!important}
  .card b{color:#14213b!important}
  .router-card:not(.static):hover{border-color:#bcd4f9!important;box-shadow:0 11px 28px rgba(25,84,167,.10)!important}
  .router-metrics div{background:#f6f8fc!important;border:1px solid #edf1f6!important}.router-metrics b{color:#1c2d49!important}
  .wanline{border-top-color:#e8edf5!important;color:#74869f!important}.wanline strong{color:#15925f!important}

  /* Status pills */
  .pill{background:#edf2f8!important;color:#53657c!important}
  .pill.ok,.status-active{background:#e3f8ed!important;color:#15915d!important}
  .pill.bad,.status-expired{background:#ffe9ec!important;color:#d83f50!important}
  .pill.warn,.status-sold{background:#fff5d9!important;color:#a87100!important}
  .status-unused{background:#edf3fb!important;color:#536d91!important}
  .level-info{background:#e7f3ff!important;color:#1770c6!important}.level-warn{background:#fff4dc!important;color:#a66c00!important}.level-error{background:#ffe9ec!important;color:#d83f50!important}

  /* Forms */
  .form-grid label,.action-stack label,.inline>label{color:#6d7f98!important}
  .form-grid input,.form-grid select,.inline select,.auth-card input,.auth-card select,.action-stack input,.small-input{background:#fff!important;border:1px solid #d9e2ee!important;color:#17233b!important;box-shadow:0 1px 2px rgba(23,35,59,.02)!important}
  .form-grid input::placeholder,.auth-card input::placeholder,.small-input::placeholder{color:#a1adbd!important}
  .form-grid input:focus,.form-grid select:focus,.inline select:focus,.auth-card input:focus,.auth-card select:focus,.small-input:focus{border-color:#4a8cff!important;box-shadow:0 0 0 3px rgba(52,121,255,.12)!important}
  .weekday-box{background:#f7f9fc!important;border-color:#e1e8f2!important}.weekday-box>span,.weekday-box label{color:#657791!important}

  /* Tables and filter tabs */
  .table{background:#fff;border-radius:12px}
  th,td{border-bottom-color:#edf1f6!important}th{color:#8796aa!important;background:#fbfcfe!important}td{color:#33445d!important}
  .filterbar{overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.filterbar::-webkit-scrollbar{display:none}
  .filterbar a{background:#f2f5fa!important;color:#71839d!important;border:1px solid #e0e7f0!important;white-space:nowrap!important}
  .filterbar a.active{background:#1769ee!important;color:#fff!important;border-color:#1769ee!important;box-shadow:0 5px 14px rgba(23,105,238,.18)!important}

  /* Notices / banners */
  .notice{background:#eef5ff!important;border-color:#cee0ff!important;color:#45617f!important}
  .alert{background:#fff0f2!important;border-color:#ffd1d8!important;color:#a83645!important}
  .warning-box{background:#fff8e8!important;border-color:#f4dda6!important;color:#926500!important}
  .subscription-banner{background:#fff6dc!important;border-color:#f0d58e!important;color:#875f00!important}.subscription-banner.suspended{background:#fff0f2!important;border-color:#ffd0d7!important;color:#9e3442!important}.subscription-banner a{color:#1769ee!important}

  /* Lists / charts / misc */
  .health-list div,.sales-plan-row,.log,.action-stack .inline{border-bottom-color:#edf1f6!important}
  .sales-plan-row strong{color:#138d59!important}
  canvas{background:#fff!important;border-color:#e4eaf3!important}
  .lifecycle>div{background:#f7f9fc!important;border-color:#e2e9f2!important}.lifecycle>div span{background:#e7f0ff!important;color:#1769ee!important}.lifecycle>div b{color:#263650!important}.lifecycle>div small{color:#8594a9!important}.lifecycle i{color:#a6b3c4!important}
  .data-bar{background:#edf1f6!important;border-color:#e0e7f0!important}.data-bar>i{background:linear-gradient(90deg,#2d82ff,#1769ee)!important}
  .empty{color:#91a0b3!important}
  .good{color:#138d59!important}.warn{color:#a66d00!important}.error-text{color:#d83f50!important}
  .code{color:#24446e!important}

  /* Mobile dashboard quick-action tabs */
  .mobile-quick-actions{display:block;margin:0 0 18px}
  .mobile-quick-actions h2{font-size:14px;margin:0 0 9px;color:#1c2b45}
  .mobile-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .mobile-quick-grid .qa{display:flex;align-items:center;gap:9px;min-height:52px;padding:10px 11px;border-radius:12px;text-decoration:none;color:#fff;box-shadow:0 7px 18px rgba(25,58,105,.10)}
  .mobile-quick-grid .qa span{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:rgba(255,255,255,.19);font-weight:900}.mobile-quick-grid .qa b{font-size:11px;line-height:1.2}
  .mobile-quick-grid .blue{background:linear-gradient(135deg,#3988ff,#1769ee)}.mobile-quick-grid .green{background:linear-gradient(135deg,#25b77a,#10955f)}.mobile-quick-grid .orange{background:linear-gradient(135deg,#ff9a31,#f07511)}.mobile-quick-grid .purple{background:linear-gradient(135deg,#8c5cf5,#6942de)}

  /* Toast */
  .pwa-toast{background:#fff!important;border-color:#d9e4f2!important;color:#33445d!important;box-shadow:0 14px 34px rgba(31,62,112,.18)!important}

  /* Auth pages on phones */
  .auth-body{background:linear-gradient(180deg,#f8fbff,#f3f6fb)!important;color:#17233b!important;display:grid!important}
  .auth-brand h1{color:#17233b!important}.auth-brand p{color:#8090a6!important}
  .auth-card{background:#fff!important;border:1px solid #e0e8f2!important;box-shadow:0 18px 50px rgba(31,62,112,.12)!important;color:#17233b!important}
  .auth-card>p,.auth-card label{color:#72839c!important}.auth-card h2{color:#17233b!important}
}

@media(max-width:390px){
  .mobile-quick-grid{gap:7px}.mobile-quick-grid .qa{min-height:49px;padding:8px 9px}.mobile-quick-grid .qa span{width:29px;height:29px}
}

/* V2.6.1 UX + responsive management surfaces */
.mobile-only,.voucher-mobile-list,.unified-users-mobile{display:none}
.voucher-filter-grid{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) auto;gap:10px;align-items:end}
.voucher-filter-grid label{font-size:11px;color:#8da0bd}.voucher-filter-grid input,.voucher-filter-grid select{display:block;width:100%;margin-top:6px;background:#091423;border:1px solid #2a3d59;color:#eef5ff;padding:9px 10px;border-radius:8px;outline:none;min-height:38px}
.voucher-filter-actions{padding-bottom:1px}.pager{display:flex;align-items:center;justify-content:center;gap:6px;margin:18px 0 2px;flex-wrap:wrap}.pager .mini{min-width:38px}
button[disabled]{opacity:.58;cursor:wait!important}.pwa-toast[data-type="error"]{border-color:#8e3a50!important;color:#ffd4da!important;background:#381f29!important}.server-message{scroll-margin-top:90px}
.voucher-mobile-card{border:1px solid #20324e;border-radius:13px;padding:14px;background:linear-gradient(180deg,#101b2d,#0d1728);box-shadow:0 8px 22px #02061722}.voucher-mobile-card+.voucher-mobile-card{margin-top:10px}.voucher-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.voucher-mobile-head b{font-size:14px}.voucher-mobile-head small{display:block;color:#7185a4;margin-top:5px}.voucher-mobile-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.voucher-mobile-metrics>div{padding:9px;border-radius:9px;background:#0a1423;border:1px solid #1b2c45;min-width:0}.voucher-mobile-metrics span{display:block;color:#7185a4;text-transform:uppercase;font-size:9px;letter-spacing:.07em}.voucher-mobile-metrics b{display:block;font-size:12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis}.voucher-mobile-metrics small{display:block;font-size:9px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.voucher-mobile-sync{font-size:11px;margin:4px 0 11px}.voucher-actions{align-items:stretch}.voucher-actions form{display:flex}.voucher-actions .mini{min-height:34px}

@media(max-width:1100px){.voucher-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.voucher-filter-actions{grid-column:1/-1}}
@media(max-width:720px){
  .mobile-only{display:inline-flex!important}.voucher-desktop-table{display:none!important}.voucher-mobile-list{display:block}.mobile-collapsible{display:none}.mobile-collapsible.is-open{display:block}.voucher-filter-grid{grid-template-columns:1fr 1fr;gap:8px}.voucher-filter-grid label:first-child{grid-column:1/-1}.voucher-filter-actions{grid-column:1/-1}.voucher-filter-actions .mini{flex:1}.voucher-filter-grid input,.voucher-filter-grid select{background:#fff!important;border-color:#d9e2ee!important;color:#17233b!important;font-size:15px;min-height:44px}.voucher-filter-grid label{color:#6d7f98!important}.voucher-mobile-card{background:#fff!important;border-color:#e2e9f3!important;box-shadow:0 7px 20px rgba(27,56,99,.06)!important}.voucher-mobile-head b{color:#17233b!important}.voucher-mobile-head small{color:#8190a5!important}.voucher-mobile-metrics>div{background:#f6f8fc!important;border-color:#e8edf4!important}.voucher-mobile-metrics span{color:#8392a7!important}.voucher-mobile-metrics b{color:#263650!important}.voucher-mobile-sync{color:#53647c}.voucher-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.voucher-actions form,.voucher-actions .mini{width:100%}.pager{margin-bottom:8px}
  .pwa-toast[data-type="error"]{background:#fff0f2!important;border-color:#ffd0d7!important;color:#a83645!important}
}
@media(max-width:420px){.voucher-filter-grid{grid-template-columns:1fr}.voucher-filter-grid label:first-child,.voucher-filter-actions{grid-column:auto}.voucher-mobile-metrics{grid-template-columns:1fr 1fr}.voucher-actions{grid-template-columns:1fr 1fr}}
.user-mobile-card{border:1px solid #20324e;border-radius:13px;padding:14px;background:linear-gradient(180deg,#101b2d,#0d1728)}.user-mobile-card+.user-mobile-card{margin-top:10px}.user-mobile-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.user-mobile-head small{display:block;color:#7185a4;margin-top:5px}.user-mobile-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.user-mobile-metrics>div{padding:9px;border-radius:9px;background:#0a1423;border:1px solid #1b2c45;min-width:0}.user-mobile-metrics span{display:block;color:#7185a4;text-transform:uppercase;font-size:9px;letter-spacing:.07em}.user-mobile-metrics b,.user-mobile-metrics small{display:block;overflow:hidden;text-overflow:ellipsis}.user-mobile-metrics b{font-size:12px;margin-top:4px}.user-mobile-metrics small{font-size:9px;margin-top:3px}.adopt-card-form{display:grid;grid-template-columns:1fr auto;gap:7px}.adopt-card-form select{min-width:0;width:100%;padding:8px;border-radius:8px;background:#091423;border:1px solid #2a3d59;color:#eef5ff}
@media(max-width:720px){.unified-users-mobile{display:block}.unified-users-mobile+.table{display:none}.user-mobile-card{background:#fff!important;border-color:#e2e9f3!important;box-shadow:0 7px 20px rgba(27,56,99,.06)!important}.user-mobile-head b,.user-mobile-metrics b{color:#263650!important}.user-mobile-head small,.user-mobile-metrics span,.user-mobile-metrics small{color:#8190a5!important}.user-mobile-metrics>div{background:#f6f8fc!important;border-color:#e8edf4!important}.adopt-card-form select{background:#fff!important;color:#17233b!important;border-color:#d9e2ee!important;min-height:42px}}
@media(max-width:720px){.users-desktop-table{display:none!important}}
