*{box-sizing:border-box}
html{width:100%;min-height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--ibo-bg-end);color:var(--ibo-text)}
body{display:flex;min-height:100vh;min-height:100dvh;overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
form{min-width:0}
.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 80% 2%,color-mix(in srgb,var(--ibo-primary) 18%,transparent),transparent 27%),radial-gradient(circle at 18% 88%,color-mix(in srgb,var(--ibo-primary-variant) 48%,transparent),transparent 34%),linear-gradient(140deg,var(--ibo-bg-start),var(--ibo-bg-end));z-index:0}
.sidebar{position:fixed;z-index:50;width:260px;inset:0 auto 0 0;padding:22px 16px;display:flex;flex-direction:column;background:color-mix(in srgb,var(--ibo-bg-end) 92%,transparent);border-right:1px solid color-mix(in srgb,var(--ibo-primary) 22%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 0 var(--ibo-glow) color-mix(in srgb,var(--ibo-primary) 8%,transparent)}
.brand{display:flex;align-items:center;gap:12px;padding:10px 12px 24px;text-decoration:none;color:var(--ibo-text);min-width:0}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;color:var(--ibo-bg-end);background:var(--ibo-primary);box-shadow:0 0 22px color-mix(in srgb,var(--ibo-primary) 38%,transparent)}
.brand b{display:block;font-size:22px;letter-spacing:.04em;white-space:nowrap}.brand small{display:block;color:var(--ibo-primary);font-weight:800;letter-spacing:.17em;font-size:9px;margin-top:2px;white-space:nowrap}
.sidebar nav{display:flex;flex-direction:column;gap:7px;overflow-y:auto;overflow-x:hidden;padding:5px 0;min-height:0}
.sidebar nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;border:var(--ibo-border-width) solid transparent;border-radius:calc(var(--ibo-radius) - 3px);color:var(--ibo-muted);text-decoration:none;transition:.18s;min-width:0}
.sidebar nav a i{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;font-style:normal;color:var(--ibo-primary)}
.sidebar nav a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar nav a:hover,.sidebar nav a.active{color:var(--ibo-text);background:linear-gradient(90deg,color-mix(in srgb,var(--ibo-primary) 16%,transparent),color-mix(in srgb,var(--ibo-primary) 3%,transparent));border-color:color-mix(in srgb,var(--ibo-primary) 40%,transparent);box-shadow:inset 3px 0 0 var(--ibo-primary),0 0 20px color-mix(in srgb,var(--ibo-primary) 10%,transparent);transform:translateX(2px)}
.mobile-logout{display:none!important}
.side-foot{margin-top:auto;padding:14px 12px;border-top:1px solid var(--ibo-border);font-size:11px;color:var(--ibo-muted);display:flex;align-items:center;gap:7px}.side-foot a{margin-left:auto;color:var(--ibo-primary);text-decoration:none}.status-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--ibo-primary);box-shadow:0 0 12px var(--ibo-primary)}
.main{position:relative;z-index:1;margin-left:260px;width:calc(100% - 260px);max-width:calc(100% - 260px);min-height:100vh;min-height:100dvh;padding:0 28px 24px;min-width:0}
.topbar{min-height:110px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid color-mix(in srgb,var(--ibo-primary) 18%,transparent)}
.topbar>div:first-child{min-width:0}.eyebrow{font-size:10px;color:var(--ibo-primary);letter-spacing:.18em;font-weight:900}.topbar h1{font-size:28px;line-height:1.15;margin:5px 0 0;overflow-wrap:anywhere}.sync-chip{display:flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ibo-primary) 32%,transparent);background:color-mix(in srgb,var(--ibo-primary) 7%,transparent);color:var(--ibo-primary);font-size:12px;font-weight:800;white-space:nowrap;flex:0 0 auto}.sync-chip span{width:7px;height:7px;border-radius:50%;background:var(--ibo-primary);box-shadow:0 0 10px var(--ibo-primary)}
.content{padding:26px 0;min-width:0}.grid{display:grid;gap:18px;min-width:0}.grid>*{min-width:0}.grid.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{min-width:0;max-width:100%;background:linear-gradient(145deg,color-mix(in srgb,var(--ibo-surface-alt) 88%,transparent),color-mix(in srgb,var(--ibo-surface) 95%,transparent));border:var(--ibo-border-width) solid color-mix(in srgb,var(--ibo-border) 92%,transparent);border-radius:var(--ibo-radius);box-shadow:0 18px 50px rgba(0,0,0,.28);padding:20px;overflow:hidden}.card h2,.card h3{margin:0 0 8px;line-height:1.22;overflow-wrap:anywhere}.card p{color:var(--ibo-muted);line-height:1.55;overflow-wrap:anywhere}.stat strong{display:block;font-size:34px;color:var(--ibo-primary);margin:6px 0}.stat span{color:var(--ibo-muted);font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;min-height:42px;border-radius:calc(var(--ibo-radius) - 5px);border:var(--ibo-border-width) solid color-mix(in srgb,var(--ibo-primary) 55%,transparent);background:linear-gradient(135deg,var(--ibo-primary),color-mix(in srgb,var(--ibo-primary) 62%,var(--ibo-primary-variant)));color:#00160a;font-weight:900;text-decoration:none;cursor:pointer;box-shadow:0 0 18px color-mix(in srgb,var(--ibo-primary) 18%,transparent);white-space:nowrap}.btn.secondary{background:var(--ibo-surface-alt);color:var(--ibo-text);border-color:var(--ibo-border);box-shadow:none}.btn.danger{background:color-mix(in srgb,var(--ibo-error) 16%,var(--ibo-surface));color:var(--ibo-error);border-color:color-mix(in srgb,var(--ibo-error) 40%,transparent);box-shadow:none}
.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:18px;min-width:0}.field{display:flex;flex-direction:column;gap:7px;min-width:0;flex:1 1 180px}.field label{color:var(--ibo-muted);font-size:12px;font-weight:800}.input,select,textarea{display:block;width:100%;max-width:100%;min-width:0;padding:12px 13px;border-radius:calc(var(--ibo-radius) - 5px);border:var(--ibo-border-width) solid var(--ibo-border);background:var(--ibo-bg-end);color:var(--ibo-text);outline:none}.input:focus,select:focus,textarea:focus{border-color:var(--ibo-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--ibo-focus) 14%,transparent)}
/* Tables remain inside their cards and scroll horizontally on narrow screens. */
table{width:100%;max-width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid color-mix(in srgb,var(--ibo-border) 70%,transparent);font-size:13px;vertical-align:middle}th{color:var(--ibo-primary);font-size:11px;letter-spacing:.08em;text-transform:uppercase}td{color:var(--ibo-text)}tbody tr:hover{background:color-mix(in srgb,var(--ibo-primary) 5%,transparent)}td form{margin:0}.badge{display:inline-flex;max-width:100%;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900;background:color-mix(in srgb,var(--ibo-primary) 12%,transparent);color:var(--ibo-primary);border:1px solid color-mix(in srgb,var(--ibo-primary) 30%,transparent);white-space:nowrap}.muted{color:var(--ibo-muted)}
.alert{margin:18px 0 0;padding:13px 16px;border-radius:var(--ibo-radius);border:1px solid var(--ibo-border);background:var(--ibo-surface);overflow-wrap:anywhere}.alert.success{border-color:color-mix(in srgb,var(--ibo-success) 50%,transparent);color:var(--ibo-success)}.alert.error{border-color:color-mix(in srgb,var(--ibo-error) 50%,transparent);color:var(--ibo-error)}
.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.color-field{min-width:0;padding:12px;border-radius:calc(var(--ibo-radius) - 4px);background:var(--ibo-bg-end);border:1px solid var(--ibo-border)}.color-field label{display:block;color:var(--ibo-muted);font-size:11px;margin-bottom:8px}.color-row{display:flex;gap:8px;align-items:center;min-width:0}.color-row input[type=color]{width:48px;height:40px;flex:0 0 48px;border:0;background:transparent}.preview-app{min-height:330px;border-radius:var(--ibo-radius);padding:20px;background:radial-gradient(circle at 92% 6%,color-mix(in srgb,var(--ibo-primary) 24%,transparent),transparent 32%),linear-gradient(140deg,var(--ibo-bg-start),var(--ibo-bg-end));border:1px solid var(--ibo-border);overflow:hidden}.preview-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.preview-logo{font-weight:1000;font-size:24px}.preview-logo span{color:var(--ibo-primary)}.preview-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:22px}.preview-btn{min-width:0;padding:12px;border-radius:calc(var(--ibo-radius) - 4px);background:var(--ibo-surface);border:var(--ibo-border-width) solid var(--ibo-border);text-align:center;color:var(--ibo-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-btn.focused{border-color:var(--ibo-focus);box-shadow:0 0 18px color-mix(in srgb,var(--ibo-focus) 24%,transparent)}.preview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.preview-card{min-width:0;height:105px;border-radius:var(--ibo-radius);background:var(--ibo-surface-alt);border:1px solid var(--ibo-border);display:grid;place-items:center;color:var(--ibo-primary);font-weight:900;text-align:center;padding:8px}
.login-page{position:relative;isolation:isolate;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:radial-gradient(circle at 80% 10%,color-mix(in srgb,var(--ibo-primary) 20%,transparent),transparent 30%),linear-gradient(145deg,var(--ibo-bg-start),var(--ibo-bg-end))}.login-page>.ambient{z-index:0}.login-card{position:relative;z-index:2;display:block;width:min(440px,100%);max-width:100%;padding:30px;border-radius:calc(var(--ibo-radius) + 8px);background:color-mix(in srgb,var(--ibo-surface) 92%,transparent);border:var(--ibo-border-width) solid color-mix(in srgb,var(--ibo-primary) 36%,transparent);box-shadow:0 30px 80px rgba(0,0,0,.48),0 0 var(--ibo-glow) color-mix(in srgb,var(--ibo-primary) 14%,transparent)}.login-brand{text-align:center;margin-bottom:24px}.login-brand .mark{margin:auto;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--ibo-primary);color:var(--ibo-bg-end);font-size:22px;box-shadow:0 0 28px color-mix(in srgb,var(--ibo-primary) 30%,transparent)}.login-brand h1{margin:12px 0 4px;font-size:32px}.login-brand h1 span{color:var(--ibo-primary)}.login-brand p{color:var(--ibo-muted);margin:0}footer{padding:18px 0;color:var(--ibo-muted);font-size:11px;text-align:center;border-top:1px solid color-mix(in srgb,var(--ibo-primary) 12%,transparent);overflow-wrap:anywhere}

@media(max-width:1180px){
  .sidebar{width:220px;padding-inline:12px}.main{margin-left:220px;width:calc(100% - 220px);max-width:calc(100% - 220px);padding-inline:20px}
  .grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:820px){
  body{display:block;overflow-x:hidden}
  .sidebar{position:sticky;top:0;inset:auto;width:100%;height:auto;max-height:none;padding:8px 10px 7px;display:block;border-right:0;border-bottom:1px solid color-mix(in srgb,var(--ibo-primary) 28%,transparent);box-shadow:0 12px 28px rgba(0,0,0,.24);background:color-mix(in srgb,var(--ibo-bg-end) 96%,transparent)}
  .brand{padding:4px 6px 7px;gap:9px}.brand-mark{width:34px;height:34px;flex-basis:34px}.brand b{font-size:18px}.brand small{font-size:7px}
  .sidebar nav{display:flex;flex-direction:row;gap:6px;overflow-x:auto;overflow-y:hidden;padding:4px 1px 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.sidebar nav::-webkit-scrollbar{display:none}
  .sidebar nav a{flex:0 0 auto;min-width:auto;scroll-snap-align:start;padding:8px 10px;gap:6px;border-radius:10px;white-space:nowrap}.sidebar nav a i{width:22px;height:22px;flex-basis:22px}.sidebar nav a span{display:block;max-width:none;overflow:visible;text-overflow:clip;font-size:12px}.sidebar nav a:hover,.sidebar nav a.active{transform:none;box-shadow:inset 0 -2px 0 var(--ibo-primary),0 0 16px color-mix(in srgb,var(--ibo-primary) 9%,transparent)}
  .mobile-logout{display:flex!important}.side-foot{display:none}
  .main{margin-left:0;width:100%;max-width:100%;padding:0 12px 20px;min-width:0}
  .topbar{min-height:88px;height:auto;padding:14px 2px;align-items:flex-start;flex-wrap:wrap;gap:10px}.topbar h1{font-size:23px}.sync-chip{font-size:11px;padding:8px 10px}
  .content{padding:16px 0}.grid.stats,.grid.two,.theme-grid{grid-template-columns:1fr}.grid{gap:14px}
  .card{padding:15px;border-radius:max(12px,var(--ibo-radius))}.card h2{font-size:21px}.card h3{font-size:18px}
  .toolbar{align-items:stretch}.field{flex-basis:100%}
  table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;overscroll-behavior-inline:contain;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ibo-primary) 55%,transparent) transparent}
  table::-webkit-scrollbar{height:7px}table::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ibo-primary) 50%,transparent);border-radius:999px}table::-webkit-scrollbar-track{background:transparent}
  th,td{white-space:nowrap;padding:11px 9px}.btn{padding:10px 13px;min-height:40px;font-size:13px}
  .preview-app{padding:14px;min-height:280px}.preview-top{align-items:flex-start}.preview-buttons{gap:6px}.preview-btn{padding:10px 6px;font-size:12px}.preview-cards{gap:7px}.preview-card{height:84px;font-size:12px}
}

@media(max-width:540px){
  .main{padding-inline:10px}.topbar{padding-block:12px}.topbar h1{font-size:20px}.eyebrow{font-size:9px}.sync-chip{width:fit-content}
  .card{padding:13px}.card p{font-size:14px}.stat strong{font-size:30px}
  .toolbar{display:grid;grid-template-columns:1fr;gap:9px}.toolbar>.btn,.toolbar>a.btn,.toolbar>button.btn{width:100%}
  .login-card{padding:22px 18px}.login-brand h1{font-size:27px}.login-brand .mark{width:52px;height:52px}
  .preview-buttons{grid-template-columns:1fr}.preview-cards{grid-template-columns:1fr}.preview-card{height:70px}
  .color-row{align-items:stretch}.color-row .input{min-width:0}
}

@media(max-width:380px){
  .sidebar{padding-inline:7px}.sidebar nav a{padding:7px 8px}.sidebar nav a span{font-size:11px}
  .main{padding-inline:8px}.card{padding:12px}.topbar h1{font-size:19px}.btn{font-size:12px;padding-inline:11px}
}

/* 2026 adaptive layer: desktop, phone, tablet and touch-first browsers. */
a,button,.btn,input,select,textarea{touch-action:manipulation}
a,button,.btn{-webkit-tap-highlight-color:transparent}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.sidebar nav a:nth-child(1) i{color:#6ee7ff}.sidebar nav a:nth-child(2) i{color:#8bffb4}.sidebar nav a:nth-child(3) i{color:#ffd166}.sidebar nav a:nth-child(4) i{color:#c7a6ff}.sidebar nav a:nth-child(5) i{color:#ff8dc7}.sidebar nav a:nth-child(6) i{color:#7ce7ff}.sidebar nav a:nth-child(7) i{color:#9cff7f}.sidebar nav a:nth-child(8) i{color:#ffb86b}.sidebar nav a:nth-child(9) i{color:#c6d0ff}.sidebar nav a i{border-radius:9px;background:color-mix(in srgb,currentColor 10%,transparent);font-weight:900}
.device-portal-page{display:block;min-height:100vh;min-height:100dvh;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));overflow-x:hidden}
.portal-shell{position:relative;z-index:1;width:min(1180px,100%);margin:0 auto}.portal-head{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid color-mix(in srgb,var(--ibo-primary) 20%,transparent)}.portal-head .brand{padding:8px 0}.portal-grid{margin-top:22px}
@media (pointer:coarse){.btn,.input,select,textarea{min-height:48px}.sidebar nav a{min-height:46px}.btn{padding-block:12px}}
@media(max-width:820px){
  .sidebar{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
  .main{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(20px,env(safe-area-inset-bottom))}
  .portal-grid{grid-template-columns:1fr}.device-portal-page{padding-inline:max(12px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-right))}.portal-head{min-height:70px}.portal-head .brand small{letter-spacing:.11em}
}
@media(max-width:540px){
  .input,select,textarea{font-size:16px}.portal-head{align-items:center}.portal-head .brand b{font-size:18px}.portal-head .brand-mark{width:36px;height:36px;flex-basis:36px}.portal-head>.btn{width:auto;min-width:82px}
  .device-portal-page .card{overflow:visible}.device-portal-page .table-wrap{margin-inline:-13px;width:calc(100% + 26px);padding-inline:13px}
}
@media(max-height:520px) and (orientation:landscape) and (max-width:1000px){
  .sidebar{position:relative}.topbar{min-height:72px}.content{padding-top:12px}.brand{padding-bottom:4px}
}
