:root{color-scheme:dark;font:14px 'Segoe UI','Microsoft YaHei',sans-serif;--bg:#0c0a13;--panel:#15111e;--raised:#1b1526;--field:#100d18;--line:#30263e;--ink:#eee8f8;--muted:#aa9bbd;--faint:#82738f;--accent:#bc9cf8;--primary:#8554e2;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 90% 0,#6033ae14,transparent 50%),var(--bg)}
button,input,select,textarea{font:inherit;color:inherit;border:1px solid var(--line);border-radius:8px;background:var(--field);padding:10px 13px}button{cursor:pointer;white-space:nowrap;transition:background .16s,border-color .16s,color .16s}button:hover{border-color:#745795;background:#251b32;color:#d8c1ff}button:disabled{opacity:.5;cursor:wait}input:focus-visible,button:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #ac85ef;outline-offset:3px}input::placeholder,textarea::placeholder{color:var(--faint)}select{cursor:pointer}
.primary{color:#fff;background:linear-gradient(110deg,#8c54e9,#6756dc);border-color:#a37be559;box-shadow:0 4px 20px #6f35cc15}.primary:hover{color:#fff;background:linear-gradient(110deg,#9b63f1,#7965e8);border-color:#c39bf080}.danger{background:#e25c7f0c;color:#ef9ab3;border-color:#9f445d59}.danger:hover{color:#ffc0d2;background:#a3334f33;border-color:#c26d8677}.danger-text{color:#f0a6bc;line-height:1.8}
header{height:76px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;background:#100c18f5;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px}.brand img{width:40px;height:40px;object-fit:contain}.brand strong{font-size:23px;letter-spacing:3px;font-weight:600}.brand span{font-size:12px;color:var(--muted);border-left:1px solid #453153;padding-left:16px;letter-spacing:2px}#session-tools{display:flex;align-items:center;gap:10px}#session-tools button{font-size:12px;padding:8px 14px;background:transparent}#identity{color:var(--muted);margin-right:12px;font-size:12px}
#app{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:calc(100vh - 76px)}aside{background:#110d18;border-right:1px solid var(--line);padding:26px 14px;display:flex;flex-direction:column;position:sticky;top:76px;height:calc(100vh - 76px)}nav{display:flex;flex-direction:column;gap:6px}nav button{position:relative;border:1px solid transparent;text-align:left;padding:13px 18px;background:transparent;color:var(--muted);font-size:13px}nav button:hover{background:#22182f;border-color:transparent}nav button.active{background:linear-gradient(90deg,#7e43cb32,#6f48ac0d);color:#d0b3ff;border-color:#9e74d526;font-weight:600}nav button.active:before{content:'';position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:4px;background:#b18aef}.aside-note{margin-top:auto;padding:22px 16px 6px;color:var(--faint);line-height:2;font-size:11px;letter-spacing:.4px}
main{padding:34px 36px;max-width:1600px;width:100%;min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:14px}.eyebrow{font-size:10px;color:#9e83bd;margin:0 0 7px;letter-spacing:3px}h1{font-size:26px;margin:0;font-weight:550;letter-spacing:1px}h2{font-size:17px;font-weight:550;margin:0 0 16px}h3{font-size:15px;font-weight:550}p{line-height:1.9;color:var(--muted)}small,.hint{font-size:11px;color:var(--muted);line-height:1.9}.balance{font-size:12px;color:#ceb1f8;background:#9c6fe317;border:1px solid #a780d82b;border-radius:20px;padding:8px 15px}
.toolbar,.actions,.scope-line,.row,.dialog-actions{display:flex;align-items:center;gap:10px}.toolbar{margin:22px 0 17px;flex-wrap:wrap}.grow{flex:1}.toolbar input{width:240px;font-size:12px}.toolbar span{color:var(--muted);font-size:12px}.toolbar button{font-size:12px}.card{background:linear-gradient(130deg,#191321,var(--panel));border:1px solid var(--line);border-radius:14px;padding:26px;margin-bottom:22px}.compact{padding:18px 21px}.narrow{max-width:700px}.scope-line{flex-wrap:wrap;margin-bottom:9px;gap:9px}.scope-line strong{font-size:12px;margin-right:9px;color:#c7b5dc;font-weight:500}.chip{display:inline-flex;flex-direction:row;align-items:center;gap:7px;background:#ffffff03;border:1px solid #44344e;border-radius:7px;padding:7px 10px;font-size:11px;cursor:pointer;color:var(--muted)}.chip:has(input:checked){background:#8852c726;border-color:#986ec959;color:#d8baff}input[type=checkbox]{accent-color:#9561ea;width:14px;height:14px;margin:0;flex-shrink:0}#selection-count{font-size:11px;color:var(--muted);margin-left:5px}#clear-selection{font-size:11px;padding:6px 8px;border:none;background:transparent;color:#b597d6}
.table-wrap{overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:13px}table{width:100%;border-collapse:collapse;text-align:left}th{background:#1b1424;color:var(--muted);font-weight:500;font-size:11px;white-space:nowrap}td,th{padding:17px 16px;border-bottom:1px solid #30253c}td{font-size:12px;color:#d6cbe4}td:nth-child(2){font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#a67bda06}td button{font-size:11px;padding:5px 8px;margin:2px 4px 2px 0;box-shadow:none}td p{max-width:450px;white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}.badge{display:inline-block;padding:4px 9px;border-radius:6px;background:#53bf8c17;color:#8adbb8;font-size:11px;white-space:nowrap}.badge.disabled{background:#e16e8c17;color:#ec9ab3}.badge.pending{background:#e2b25814;color:#dfc18b}.badge.expired{background:#92859e19;color:#b0a4be}.empty{text-align:center;padding:36px;color:var(--faint)}
form{display:flex;flex-direction:column;gap:18px}label{display:flex;flex-direction:column;gap:9px;font-size:12px;color:#cbbddd}textarea{resize:vertical;width:100%;line-height:1.8}form>.primary,form>.danger{align-self:flex-start;min-width:128px}.row{align-items:flex-start}.row label{flex:1;min-width:0}.row input{width:100%}.check{flex-direction:row;align-items:center;gap:9px}.dialog-actions{justify-content:flex-end;margin-top:13px}dialog{border:1px solid #79569e66;border-radius:16px;padding:30px;width:500px;max-width:94vw;max-height:88vh;overflow:auto;color:inherit;background:#18121f;box-shadow:0 30px 120px #0008}dialog::backdrop{background:#050309ad;backdrop-filter:blur(3px)}
.auth{position:relative;width:440px;max-width:92%;margin:64px auto;padding:36px 38px;border:1px solid #9f77d63b;border-radius:20px;background:radial-gradient(ellipse at 0 0,#70449e18,transparent 65%),#15101ef5;box-shadow:0 35px 120px #0005}.auth:before{content:'';position:absolute;left:45px;right:45px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,#b18ae7aa,transparent)}.auth h1{font-size:25px;margin-bottom:14px}.auth p{font-size:12px;line-height:1.8;margin:0 0 8px}.auth .primary{align-self:stretch;margin-top:5px;height:43px}.auth form{margin-top:26px}.auth input,.auth select{width:100%;height:43px}.auth .brand-tagline{font-size:11px;color:#b99cda;letter-spacing:.5px}.auth-eyebrow{font-size:9px;letter-spacing:3px;color:#b79bcf;margin-bottom:12px}.login-logo{width:65px;height:65px;object-fit:contain;margin-bottom:24px;filter:drop-shadow(0 10px 22px #7a35d333)}
#issue-result{margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}#credentials{background:#0e0a16;color:#d8c2f8;font-family:Consolas,monospace}#issue-result .actions{margin:12px 0}.section-title{margin-top:28px}.device-item{padding:17px 0;border-bottom:1px solid var(--line)}.device-item small{display:block}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#30213f;color:#f5eaff;border:1px solid #8b61ae77;max-width:90%;padding:13px 22px;border-radius:10px;z-index:100;box-shadow:0 12px 35px #0005;font-size:12px}#notice.error{background:#542237;border-color:#ad5d7777}#account-form>.admin-only{display:flex;flex-direction:column;gap:17px}.account-password{min-width:190px;white-space:nowrap}.account-password code{display:inline-block;min-width:105px;font:12px Consolas,monospace;user-select:text;color:#c4a6e8}.account-password button{margin-left:4px}
@media(max-width:1100px){main{padding:28px 24px}#app{grid-template-columns:180px minmax(0,1fr)}aside{padding:24px 10px}td,th{padding:15px 12px}}
@media(max-width:900px){header{padding:0 18px}.brand span{display:none}#app{grid-template-columns:150px minmax(0,1fr)}aside{padding:20px 9px}nav button{padding:12px 14px}main{padding:24px 18px}.scope-line{gap:7px}#identity{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-line strong{width:100%;margin-bottom:3px}}
@media(max-width:600px){header{height:66px;padding:0 15px}#app{display:block;min-height:calc(100vh - 66px)}aside{height:auto;position:static;padding:10px;border-right:0;border-bottom:1px solid var(--line)}nav{flex-direction:row;overflow:auto;gap:4px}nav button{padding:10px 12px;flex-shrink:0;font-size:12px}nav button.active:before{display:none}.aside-note{display:none}main{padding:24px 14px}.brand strong{font-size:20px}.brand img{width:34px;height:34px}.row{flex-wrap:wrap}.row label{min-width:100px}.card{padding:20px 16px}.page-head{margin-bottom:22px}h1{font-size:23px}#session-tools{gap:5px}#session-tools button{padding:7px 9px;font-size:11px}#identity{display:none}.auth{margin:30px auto;padding:29px 25px}.toolbar input{width:100%}.toolbar .grow{display:none}.toolbar span{flex:1}.balance{font-size:11px;padding:7px 11px}.account-password{min-width:185px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

/* Persistent portal themes */
.header-tools{display:flex;align-items:center;gap:18px;min-width:0}
#theme-tools{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--field);flex-shrink:0}
#theme-tools button{padding:6px 12px;font-size:12px;line-height:18px;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--muted)}
#theme-tools button[aria-pressed=true]{background:#8953d833;border-color:#a878e64d;color:#ddc6ff}
:root[data-theme=light]{color-scheme:light;--bg:#f5f3fa;--panel:#fff;--raised:#f0ebf7;--field:#fff;--line:#e1d9eb;--ink:#30263e;--muted:#70617f;--faint:#82758f;--accent:#7441bd;--primary:#7846d4}
:root[data-theme=light] body{background:radial-gradient(ellipse at 90% 0,#a476ed12,transparent 50%),var(--bg)}
:root[data-theme=light] button:hover{border-color:#af8dd5;background:#f0e9fa;color:#6936a8}
:root[data-theme=light] .primary,:root[data-theme=light] .primary:hover{color:#fff;background:linear-gradient(110deg,#8550db,#6651d5)}
:root[data-theme=light] header{background:#ffffffed}
:root[data-theme=light] .brand span{border-color:var(--line)}
:root[data-theme=light] aside{background:#faf8fd}
:root[data-theme=light] nav button:hover{background:#efe9f7}
:root[data-theme=light] nav button.active{background:linear-gradient(90deg,#8953d81c,#8953d807);color:#6d37af;border-color:#a780d830}
:root[data-theme=light] nav button.active:before{background:#8b51d0}
:root[data-theme=light] .eyebrow{color:#7d5e9c}
:root[data-theme=light] .balance{color:#7245a6;background:#8c59d60c;border-color:#b69bd144}
:root[data-theme=light] .card{background:linear-gradient(130deg,#fdfbff,var(--panel))}
:root[data-theme=light] .scope-line strong,:root[data-theme=light] label{color:#5f4b75}
:root[data-theme=light] .chip{background:#fff;border-color:#e0d5eb}
:root[data-theme=light] .chip:has(input:checked){background:#8c52d411;border-color:#b99cd6;color:#6a389c}
:root[data-theme=light] #clear-selection{color:#7b4baa}
:root[data-theme=light] th{background:#f6f2fb}
:root[data-theme=light] td,:root[data-theme=light] th{border-bottom-color:var(--line)}
:root[data-theme=light] td{color:#4c3e5b}
:root[data-theme=light] tbody tr:hover{background:#9566c907}
:root[data-theme=light] .badge{color:#24744f;background:#259b6912}
:root[data-theme=light] .badge.disabled{color:#a33d59;background:#d9527310}
:root[data-theme=light] .badge.pending{color:#85601b;background:#d8a12e16}
:root[data-theme=light] .badge.expired{color:#746282;background:#87719812}
:root[data-theme=light] dialog{background:#fff;border-color:#ccb8df;box-shadow:0 24px 90px #3b21582b}
:root[data-theme=light] dialog::backdrop{background:#24103759}
:root[data-theme=light] .auth{background:radial-gradient(ellipse at 0 0,#9a6edb0b,transparent 65%),#fff;border-color:#ddcceb;box-shadow:0 25px 80px #4c2c7212}
:root[data-theme=light] .auth .brand-tagline,:root[data-theme=light] .auth-eyebrow{color:#8359a5}
:root[data-theme=light] #credentials{background:#f9f6fd;color:#643d8b}
:root[data-theme=light] .account-password code{color:#71479a}
:root[data-theme=light] .danger{color:#ab3858;border-color:#d5a4b4;background:#d95a7808}
:root[data-theme=light] .danger:hover{color:#942344;border-color:#b85d78;background:#faedf1}
:root[data-theme=light] .danger-text{color:#a83b59}
:root[data-theme=light] #notice{background:#f8f2ff;color:#5e3b7e;border-color:#c6aadf;box-shadow:0 12px 35px #46226819}
:root[data-theme=light] #notice.error{background:#fff0f4;color:#9d304e;border-color:#ddb0bf}
:root[data-theme=light] #theme-tools button[aria-pressed=true]{background:#8651ce16;border-color:#ae8bd144;color:#6c38a5}
@media(max-width:900px){.header-tools{gap:9px}}
@media(max-width:600px){.header-tools{gap:7px}#theme-tools{gap:0;padding:2px}#theme-tools button{padding:5px 7px;font-size:11px}.brand{gap:7px}.brand strong{letter-spacing:1px}}
