:root{--bg:#090d13;--sidebar:#0c121a;--panel:#111923;--panel2:#151f2b;--line:#243140;--line2:#1d2835;--text:#e9eef6;--muted:#8391a5;--blue:#4c9fff;--cyan:#38d7c1;--orange:#f3a62b;--red:#ff646e;--green:#37d29a;--violet:#a986ff;color-scheme:dark;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:radial-gradient(circle at 82% -10%,#142b42 0,transparent 30%),var(--bg);color:var(--text);font-size:14px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;display:grid;grid-template-columns:228px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:linear-gradient(180deg,#0d141d,#0a1017);padding:24px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 9px 25px}.brand strong,.brand small,.admin-badge strong,.admin-badge small{display:block}.brand small{color:#667589;font-size:9px;letter-spacing:.15em;margin-top:3px}.brand-mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#06111c;font-weight:900;box-shadow:0 10px 35px #2589d733}.brand-mark.small{width:36px;height:36px;border-radius:11px}.main-nav{display:grid;gap:5px}.nav-item{position:relative;color:#929fb0;text-decoration:none;display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;font-weight:650}.nav-item:hover{background:#131e2a;color:#dce6f2}.nav-item.active{background:linear-gradient(90deg,#18324d,#152638);color:#f3f8ff}.nav-item.active:before{content:"";position:absolute;left:-14px;width:3px;height:22px;border-radius:0 3px 3px 0;background:var(--blue);box-shadow:0 0 12px var(--blue)}.nav-icon{width:18px;text-align:center;color:#718399;font-size:17px}.nav-item.active .nav-icon{color:#72b7ff}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line2);padding:17px 8px 0}.admin-badge{display:flex;align-items:center;gap:9px;margin-bottom:12px}.admin-badge>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#1c3045;color:#7fc1ff;font-weight:800}.admin-badge small{color:var(--muted);font-size:9px;margin-top:2px}.logout-button{width:100%;padding:8px;border:1px solid var(--line);background:transparent;color:#8391a5;border-radius:7px;cursor:pointer}.workspace{padding:28px 30px 50px;min-width:0}.page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px}.page-header h1{font-size:27px;margin:3px 0 4px}.page-subtitle{color:var(--muted);margin:0;font-size:12px}.eyebrow{margin:0;color:var(--cyan);font-size:9px;font-weight:850;letter-spacing:.18em}.live-badge,.record-count,.secure-note,.chart-period{color:#9aabbd;border:1px solid var(--line);background:#0d151e;border-radius:99px;padding:7px 11px;font-size:10px}.live-badge i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);margin-right:7px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#121c27,#101720);border:1px solid var(--line);border-radius:14px;padding:18px 19px;box-shadow:0 16px 45px #0003}.stat-card:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-38px;top:-42px;background:currentColor;opacity:.05}.stat-card p{color:#8e9caf;margin:0 0 9px;font-size:11px}.stat-card strong{font-size:30px;line-height:1;display:block}.stat-card small{display:block;color:#647386;margin-top:10px;font-size:9px}.stat-icon{position:absolute;right:16px;top:16px;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:currentColor;color:inherit}.stat-card.blue{color:var(--blue)}.stat-card.green{color:var(--green)}.stat-card.orange{color:var(--orange)}.stat-card.violet{color:var(--violet)}.stat-card strong{color:var(--text)}.panel{background:rgba(17,25,35,.96);border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 70px #0003}.panel.compact{padding:13px;margin-bottom:15px}.panel-heading{min-height:67px;padding:16px 19px;border-bottom:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2,.panel-heading p{margin:0}.panel-heading h2{font-size:16px}.panel-heading p{color:var(--muted);font-size:10px;margin-top:4px}.chart-wrap{padding:10px 18px 18px;overflow:hidden}.line-chart{display:block;width:100%;height:auto;min-height:270px}.grid-line{stroke:#24313f;stroke-width:1;stroke-dasharray:4 5}.axis-text{fill:#66778c;font-size:10px}.trend-line{fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px #4da3ff66)}.chart-point{fill:#0e1721;stroke:#70b7ff;stroke-width:2}.primary,.secondary,.ghost{border-radius:8px;padding:9px 14px;font-weight:750;border:0;cursor:pointer;text-decoration:none}.primary{background:linear-gradient(135deg,#278ff7,#32b7ad);color:#fff;box-shadow:0 8px 25px #228bd72c}.primary:disabled{opacity:.4;cursor:not-allowed}.secondary{background:#1a2a3a;color:#cee6ff;border:1px solid #31516f}.ghost{background:transparent;border:1px solid var(--line);color:#aeb9c8}input,select,textarea{background:#0b1118;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:9px 11px;outline:none;min-width:0}textarea{resize:vertical;min-height:82px}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #4da3ff16}.search-row,.filter-grid,.log-filters{display:flex;gap:8px;align-items:center}.search-row input{width:min(360px,100%)}.filter-grid input{width:240px}.filter-grid select{width:160px}.log-filters{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 1fr auto auto}.clear-link{color:#8495aa;text-decoration:none;padding:8px;font-size:11px}.table-panel{overflow:hidden}.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:920px}.license-table{min-width:1380px}.logs-table{min-width:1160px}.data-table th{text-align:left;color:#79889b;background:#0d141d;font-size:9px;letter-spacing:.075em;padding:11px 13px;white-space:nowrap}.data-table td{border-top:1px solid var(--line2);padding:12px 13px;vertical-align:middle}.data-table tbody tr:hover{background:#131c27}.data-table td small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.data-table code{font-family:"SFMono-Regular",Consolas,monospace;color:#c9ddf5;font-size:11px}.date-cell{white-space:nowrap;color:#a3afbd;font-size:11px}.note-cell{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#adb9c7}.count-badge{display:inline-grid;place-items:center;min-width:28px;padding:4px 8px;border-radius:99px;background:#172a3e;color:#78baff;font-weight:800}.pill{display:inline-block;padding:4px 8px;border-radius:99px;font-size:9px;font-weight:800;white-space:nowrap}.pill.active,.pill.bound{color:#63e5b1;background:#15362a}.pill.unactivated{color:#76baff;background:#172c43}.pill.expired,.pill.extended{color:#ffc35e;background:#3b2d16}.pill.disabled{color:#ff8088;background:#3b1d23}.pill.unbound{color:#c0a0ff;background:#2e2446}.row-actions{display:flex;gap:5px;align-items:center;flex-wrap:nowrap}.row-actions form{display:flex}.mini{background:#192431;border:1px solid #2b3b4c;color:#b7c3d1;padding:5px 8px;border-radius:6px;font-size:9px;cursor:pointer;white-space:nowrap}.mini:hover{border-color:#4e7194;color:#fff}.mini.danger{color:#ff7b84}.mini:disabled{opacity:.32;cursor:not-allowed}.copy-card{appearance:none;border:0;background:transparent;padding:0;color:inherit;text-align:left;cursor:pointer}.copy-card code{border-bottom:1px dashed #46627e}.copy-card:hover code{color:#79bbff}.compact-copy{white-space:nowrap}.machine{white-space:nowrap}.success-text{color:var(--green);font-size:11px}.error-text{color:#ff8a91;font-size:11px}.empty{text-align:center;padding:62px!important;color:var(--muted)}.empty strong,.empty span{display:block}.empty strong{color:var(--text);font-size:15px;margin-bottom:5px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:13px 18px;border-top:1px solid var(--line2);color:var(--muted);font-size:11px}.pagination a{display:inline-block;color:#b9dcff;text-decoration:none;border:1px solid var(--line);padding:6px 10px;border-radius:6px;margin-left:6px}.flash{padding:10px 13px;border-radius:8px;margin-bottom:14px}.flash.error{background:#391c22;color:#ff9ba1;border:1px solid #673039}.flash.success{background:#153528;color:#74e5b1;border:1px solid #276148}.modal{width:min(460px,calc(100vw - 30px));border:1px solid #2a3b4e;border-radius:15px;background:#111923;color:var(--text);padding:0;box-shadow:0 35px 120px #000b}.modal::backdrop{background:#03070cbf;backdrop-filter:blur(3px)}.modal form{padding:20px;display:grid;gap:13px}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:2px}.modal-head h2,.modal-head p{margin:0}.modal-head h2{font-size:18px}.modal-head p{color:var(--muted);font-size:10px;margin-top:4px}.modal-close{border:0;background:transparent;color:#8190a3;font-size:24px;cursor:pointer;line-height:1}.modal label,.settings-form label{display:grid;gap:7px;color:#aab6c5;font-size:11px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.settings-grid{display:grid;grid-template-columns:minmax(0,620px) minmax(240px,330px);gap:18px;align-items:start}.settings-card{overflow:hidden}.settings-form{padding:20px;display:grid;gap:16px}.settings-form button{justify-self:start}.settings-form small{color:var(--muted);font-size:9px}.shield{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#17392c;color:var(--green)}.security-tip{display:flex;gap:12px;padding:16px;background:#121b26;border:1px solid var(--line);border-radius:12px;color:#8998aa}.security-tip>span{width:24px;height:24px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#1b3650;color:#77baff;font-weight:800}.security-tip strong{color:#cbd6e3}.security-tip p{font-size:11px;line-height:1.7;margin:5px 0 0}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#e8f4ff;color:#0d2235;padding:9px 15px;border-radius:8px;font-weight:750;opacity:0;pointer-events:none;transition:.2s;z-index:100}.toast.show{opacity:1;transform:translate(-50%,0)}.login-shell,.created-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card,.created-card{width:min(410px,100%);background:#111923;border:1px solid var(--line);border-radius:20px;padding:34px;box-shadow:0 28px 100px #0008}.login-card h1,.created-card h1{margin:14px 0 6px}.muted{color:var(--muted)}.stack-form{display:grid;gap:14px;margin-top:24px}.stack-form label{display:grid;gap:7px;color:#aab6c5;font-size:12px}.created-card{text-align:center}.success-icon{width:58px;height:58px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#17392c;color:var(--green);font-size:28px}.card-secret{margin:24px 0 14px;padding:18px;border-radius:12px;background:#091018;border:1px solid #28435d;color:#9ed1ff;font:700 21px/1.2 "SFMono-Regular",monospace;letter-spacing:.06em}.text-link{display:block;color:#8ebce9;margin-top:18px;text-decoration:none}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.log-filters{grid-template-columns:1fr 1fr 1fr}.settings-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.main-nav{grid-template-columns:repeat(5,minmax(90px,1fr));overflow:auto}.nav-item{justify-content:center}.nav-item.active:before{display:none}.sidebar-foot{display:none}.workspace{padding:20px 14px 40px}.page-header{align-items:flex-start}.stats-grid{grid-template-columns:1fr 1fr}.filter-grid,.search-row{flex-wrap:wrap}.filter-grid input,.filter-grid select{width:100%}.log-filters{grid-template-columns:1fr 1fr}.line-chart{min-width:760px}.chart-wrap{overflow:auto}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.main-nav{grid-template-columns:repeat(5,105px)}.page-header{flex-direction:column}.log-filters{grid-template-columns:1fr}}

/* 卡密列表的按端绑定展示 */
.slot-cell { min-width: 220px; }
.slot-line { display: flex; align-items: center; gap: 6px; line-height: 1.9; }
.slot-tag {
  flex: none; min-width: 52px; padding: 1px 6px; border-radius: 6px;
  font-size: 12px; text-align: center;
  background: rgba(125, 145, 190, 0.16); color: #56607a;
}

/* Account filter wraps with the existing controls on narrow screens. */
.filter-grid{flex-wrap:wrap}

.logs-heading,.logs-selection{display:flex;align-items:center;gap:16px}
.logs-selection{padding:0 4px 16px;flex-wrap:wrap}
.logs-selection label{display:flex;align-items:center;gap:6px;cursor:pointer}
.logs-selection input,.logs-select-column input{width:16px;height:16px;padding:0;accent-color:var(--blue)}
.logs-select-column{width:52px}
[data-logs-selection][hidden],[data-logs-checkbox][hidden]{display:none!important}
