.auth-local{--色-主色: #6366f1;--色-主色-悬停: #4f46e5;--渐变-主色: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--渐变-主色-悬停: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--色-背景-深: #f5f7fa;--色-背景-卡片-提升: rgba(255, 255, 255, .92);--色-文字-主: #0f172a;--色-文字-次: #475569;--色-文字-三级: #94a3b8;--色-文字-链接: #6366f1;--色-文字-链接-悬停: #4f46e5;--色-边框: rgba(15, 23, 42, .1);--色-边框-中: rgba(15, 23, 42, .16);--色-边框-焦点: #6366f1;--色-边框-错误: #ef4444;--色-危险: #ef4444;--色-危险-淡: rgba(239, 68, 68, .1);--色-成功: #10b981;--色-成功-淡: rgba(16, 185, 129, .1);--色-分割线: rgba(15, 23, 42, .08);--阴影-大: 0 20px 50px rgba(15, 23, 42, .1);--阴影-主色光: 0 8px 24px rgba(99, 102, 241, .28);--阴影-主色光-强: 0 12px 32px rgba(99, 102, 241, .38);--焦点环: 0 0 0 3px rgba(99, 102, 241, .18);--尺寸-圆角-极小: 4px;--尺寸-圆角-中: 10px;--尺寸-圆角-大: 14px;--尺寸-圆角-极大: 20px;--字号-小: 12px;--字号-正常: 13px;--字号-中: 15px;--字号-大: 18px;--字重-中等: 500;--字重-粗: 600;--字重-加粗: 700;--动画-快: .15s ease;--动画-正常: .22s ease;--动画-极慢: .55s ease;--玻璃-模糊-大: blur(18px);min-height:calc(100vh + -0px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px 48px;position:relative;z-index:1;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;color:var(--色-文字-主);background:radial-gradient(900px 500px at 15% 10%,rgba(99,102,241,.14),transparent 55%),radial-gradient(800px 480px at 90% 20%,rgba(139,92,246,.1),transparent 50%),linear-gradient(165deg,#f8fafc,#f5f7fa 45%,#eef2ff)}html[data-theme=dark] .auth-local{--色-背景-深: #0b0f1a;--色-背景-卡片-提升: rgba(30, 35, 55, .88);--色-文字-主: #f1f5f9;--色-文字-次: #94a3b8;--色-文字-三级: #64748b;--色-文字-链接: #a5b4fc;--色-文字-链接-悬停: #c7d2fe;--色-边框: rgba(148, 163, 184, .16);--色-边框-中: rgba(148, 163, 184, .26);--色-边框-焦点: #818cf8;--色-分割线: rgba(148, 163, 184, .12);--阴影-大: 0 24px 56px rgba(0, 0, 0, .5);--阴影-主色光: 0 8px 28px rgba(99, 102, 241, .35);--阴影-主色光-强: 0 14px 36px rgba(99, 102, 241, .45);--焦点环: 0 0 0 3px rgba(129, 140, 248, .28);color:var(--色-文字-主);background:radial-gradient(900px 500px at 15% 10%,rgba(99,102,241,.22),transparent 55%),radial-gradient(800px 480px at 90% 20%,rgba(139,92,246,.16),transparent 50%),linear-gradient(165deg,#0b0f1a,#111827 45%,#1e1b4b)}html[data-theme=dark] .auth-local__title{color:var(--色-文字-主)}html[data-theme=dark] .auth-local__input{background:#0f1423e6;color:var(--色-文字-主);border-color:var(--色-边框)}html[data-theme=dark] .auth-local__box{background:#0f1423e6}.auth-local__brand{display:flex;flex-direction:column;align-items:center;margin-bottom:28px;position:relative}.auth-local__brand:after{content:"";position:absolute;top:-10px;left:50%;transform:translate(-50%);width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.18),transparent 65%);filter:blur(32px);z-index:0;pointer-events:none}.auth-local__logo{position:relative;z-index:1;width:72px;height:72px;border-radius:var(--尺寸-圆角-大);background:var(--渐变-主色);display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;font-weight:var(--字重-加粗);margin-bottom:14px;box-shadow:var(--阴影-主色光-强),inset 0 1px #ffffff4d;border:1px solid rgba(255,255,255,.25);letter-spacing:.06em;font-family:Segoe UI,DIN Alternate,Helvetica Neue,sans-serif}.auth-local__title{position:relative;z-index:1;font-size:28px;font-weight:var(--字重-加粗);color:var(--色-文字-主);margin:0 0 6px;letter-spacing:-.02em}.auth-local__subtitle{position:relative;z-index:1;margin:0;font-size:var(--字号-正常);color:var(--色-文字-次)}.auth-local__card{width:100%;max-width:420px;background:var(--色-背景-卡片-提升);backdrop-filter:var(--玻璃-模糊-大);-webkit-backdrop-filter:var(--玻璃-模糊-大);border:1px solid var(--色-边框);border-radius:var(--尺寸-圆角-极大);padding:36px;box-shadow:var(--阴影-大)}.auth-local__card-title{font-size:var(--字号-大);font-weight:var(--字重-粗);color:var(--色-文字-主);margin:0 0 24px}.auth-local__field{margin-bottom:16px}.auth-local__label{display:block;font-size:var(--字号-小);font-weight:var(--字重-中等);color:var(--色-文字-次);margin-bottom:8px}.auth-local__input-wrap{position:relative;display:flex;align-items:center;gap:8px}.auth-local__icon{position:absolute;left:14px;font-size:16px;color:var(--色-文字-三级);pointer-events:none;z-index:1;line-height:1}.auth-local__input{width:100%;height:46px;padding:0 14px 0 42px;background:#fff;border:1px solid var(--色-边框);border-radius:var(--尺寸-圆角-中);color:var(--色-文字-主);font-size:var(--字号-中);font:inherit;outline:none;transition:border-color var(--动画-快),box-shadow var(--动画-快);box-sizing:border-box}.auth-local__input--bare{padding-left:14px}.auth-local__input::placeholder{color:var(--色-文字-三级)}.auth-local__input:hover{border-color:var(--色-边框-中)}.auth-local__input:focus{border-color:var(--色-边框-焦点);box-shadow:var(--焦点环)}.auth-local__code-btn{flex-shrink:0;height:46px;padding:0 14px;border-radius:var(--尺寸-圆角-中);border:1px solid rgba(99,102,241,.35);background:#6366f114;color:var(--色-主色);font:inherit;font-size:var(--字号-正常);font-weight:var(--字重-中等);cursor:pointer;white-space:nowrap;transition:background var(--动画-快),opacity var(--动画-快)}.auth-local__code-btn:hover:not(:disabled){background:#6366f124}.auth-local__code-btn:disabled{opacity:.45;cursor:not-allowed}.auth-local__options{display:flex;align-items:center;justify-content:space-between;margin:4px 0 20px}.auth-local__check{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--字号-正常);color:var(--色-文字-次)}.auth-local__box{width:18px;height:18px;border-radius:var(--尺寸-圆角-极小);border:1.5px solid var(--色-边框-中);background:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--动画-快)}.auth-local__box.is-on{background:var(--渐变-主色);border-color:transparent;box-shadow:var(--阴影-主色光);color:#fff;font-size:11px;font-weight:700}.auth-local__link{background:none;border:none;color:var(--色-文字-链接);font:inherit;font-size:var(--字号-正常);font-weight:var(--字重-中等);cursor:pointer;padding:0;text-decoration:none}.auth-local__link:hover{color:var(--色-文字-链接-悬停)}.auth-local__submit{width:100%;height:48px;background:var(--渐变-主色);border:1px solid rgba(255,255,255,.2);border-radius:var(--尺寸-圆角-中);color:#fff;font:inherit;font-size:var(--字号-中);font-weight:var(--字重-粗);cursor:pointer;letter-spacing:6px;box-shadow:var(--阴影-主色光),inset 0 1px #ffffff38;transition:transform var(--动画-正常),box-shadow var(--动画-正常),background var(--动画-正常);display:flex;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden}.auth-local__submit:hover:not(:disabled){background:var(--渐变-主色-悬停);box-shadow:var(--阴影-主色光-强),inset 0 1px #ffffff4d;transform:translateY(-1px)}.auth-local__submit:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.auth-local__msg{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:var(--尺寸-圆角-中);font-size:var(--字号-正常);font-weight:var(--字重-中等);margin-top:16px;border:1px solid}.auth-local__msg--err{background:var(--色-危险-淡);color:var(--色-危险);border-color:#ef444440}.auth-local__msg--ok{background:var(--色-成功-淡);color:var(--色-成功);border-color:#10b98140}.auth-local__foot{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:20px;padding-top:20px;border-top:1px solid var(--色-分割线);font-size:var(--字号-正常);color:var(--色-文字-三级)}.auth-local__icp{margin:1.25rem 0 0;text-align:center;font-size:.75rem;line-height:1.4;color:var(--色-文字-三级, #94a3b8)}.auth-local__icp a{color:inherit;text-decoration:none}.auth-local__icp a:hover{text-decoration:underline}.app-bg--auth .topnav,.app-bg--auth .app-footer{display:none}.app-bg--auth .app-shell{max-width:none;padding:0}.app-bg--auth .app-main{padding:0;min-height:100vh}.app-bg--auth{background:transparent!important}.app-bg--auth:before{display:none}:root{--radius-xs: 4px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--font-display: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-body: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--ease: .18s ease;--ease-out: .22s ease;--top-height: 58px;--glass-blur: blur(18px)}:root,html[data-theme=light]{--bg-deep: #f8fafc;--bg-base: #f5f7fa;--bg-panel: rgba(255, 255, 255, .92);--bg-elevated: #ffffff;--bg-hover: rgba(99, 102, 241, .06);--bg-input: #ffffff;--bg-topbar: rgba(255, 255, 255, .82);--border: rgba(15, 23, 42, .1);--border-strong: rgba(15, 23, 42, .16);--border-focus: #6366f1;--divider: rgba(15, 23, 42, .08);--text: #0f172a;--text-muted: #475569;--text-dim: #94a3b8;--primary: #6366f1;--primary-hover: #4f46e5;--primary-soft: rgba(99, 102, 241, .1);--primary-soft-2: rgba(99, 102, 241, .16);--violet: #8b5cf6;--grad-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--grad-primary-hover: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--accent: var(--primary);--accent-hover: var(--primary-hover);--accent-text: #ffffff;--danger: #ef4444;--danger-muted: rgba(239, 68, 68, .1);--ok: #10b981;--ok-muted: rgba(16, 185, 129, .1);--warn: #f59e0b;--warn-muted: rgba(245, 158, 11, .12);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow: 0 8px 28px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 50px rgba(15, 23, 42, .1);--shadow-primary: 0 8px 24px rgba(99, 102, 241, .28);--shadow-primary-strong: 0 12px 32px rgba(99, 102, 241, .38);--focus-ring: 0 0 0 3px rgba(99, 102, 241, .18);--glow-a: rgba(99, 102, 241, .14);--glow-b: rgba(139, 92, 246, .1);--grid-line: rgba(99, 102, 241, .05);--brand-grad-a: #0f172a;--brand-grad-b: #6366f1;--brand-grad-c: #8b5cf6;--sea: var(--primary);--sea-bright: #818cf8;--sea-muted: var(--primary-soft);--copper: var(--primary);--copper-hot: var(--primary-hover);--copper-muted: var(--primary-soft);--amber: var(--violet)}html[data-theme=dark]{--bg-deep: #0b0f1a;--bg-base: #111827;--bg-panel: rgba(30, 35, 55, .78);--bg-elevated: rgba(40, 46, 72, .9);--bg-hover: rgba(99, 102, 241, .12);--bg-input: rgba(15, 20, 35, .85);--bg-topbar: rgba(15, 20, 35, .78);--border: rgba(148, 163, 184, .14);--border-strong: rgba(148, 163, 184, .24);--border-focus: #818cf8;--divider: rgba(148, 163, 184, .12);--text: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--primary: #818cf8;--primary-hover: #a5b4fc;--primary-soft: rgba(99, 102, 241, .18);--primary-soft-2: rgba(99, 102, 241, .28);--violet: #a78bfa;--grad-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--grad-primary-hover: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--accent: var(--primary);--accent-hover: var(--primary-hover);--accent-text: #ffffff;--danger: #f87171;--danger-muted: rgba(248, 113, 113, .14);--ok: #34d399;--ok-muted: rgba(52, 211, 153, .14);--warn: #fbbf24;--warn-muted: rgba(251, 191, 36, .14);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow: 0 10px 32px rgba(0, 0, 0, .4);--shadow-lg: 0 24px 56px rgba(0, 0, 0, .5);--shadow-primary: 0 8px 28px rgba(99, 102, 241, .35);--shadow-primary-strong: 0 14px 36px rgba(99, 102, 241, .45);--focus-ring: 0 0 0 3px rgba(129, 140, 248, .28);--glow-a: rgba(99, 102, 241, .22);--glow-b: rgba(139, 92, 246, .16);--grid-line: rgba(148, 163, 184, .05);--brand-grad-a: #f8fafc;--brand-grad-b: #a5b4fc;--brand-grad-c: #c4b5fd;--sea: var(--primary);--sea-bright: #a5b4fc;--sea-muted: var(--primary-soft);--copper: var(--primary);--copper-hot: var(--primary-hover);--copper-muted: var(--primary-soft);--amber: var(--violet)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--text);background:var(--bg-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--primary);text-decoration:none;transition:color var(--ease)}a:hover{color:var(--primary-hover)}button,input{font:inherit}.mono{font-variant-numeric:tabular-nums;letter-spacing:.01em;word-break:break-all}.muted-sm{font-size:.86rem;color:var(--text-dim)}.app-bg{min-height:100vh;position:relative;overflow-x:hidden;background:radial-gradient(900px 500px at 12% 0%,var(--glow-a),transparent 55%),radial-gradient(800px 480px at 92% 8%,var(--glow-b),transparent 50%),linear-gradient(165deg,var(--bg-deep) 0%,var(--bg-base) 48%,color-mix(in srgb,var(--primary) 6%,var(--bg-base)) 100%)}.app-bg:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.4;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 75% 55% at 50% 18%,#000 12%,transparent 72%);mask-image:radial-gradient(ellipse 75% 55% at 50% 18%,#000 12%,transparent 72%);z-index:0}.app-shell{position:relative;z-index:1;max-width:1040px;margin:0 auto;padding:0 1.5rem 2.5rem;min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;padding-top:.35rem}.app-footer{margin-top:2.5rem;padding-top:1.15rem;border-top:1px solid var(--divider);display:flex;flex-wrap:wrap;gap:.4rem .6rem;font-size:.82rem;color:var(--text-dim)}.app-footer__sep{opacity:.5}.app-footer__icp{flex-basis:100%;margin:.35rem 0 0;text-align:center;font-size:.75rem;line-height:1.4;color:var(--text-dim)}.app-footer__icp a{color:inherit;text-decoration:none}.app-footer__icp a:hover{text-decoration:underline}.topnav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--top-height);margin:.75rem 0 1.35rem;padding:.55rem .95rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-topbar);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-sm);animation:rise .55s ease both}.topnav__brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--text);text-decoration:none;flex-shrink:0}.topnav__brand:hover{color:var(--text);text-decoration:none}.topnav__mark{width:2rem;height:2rem;border-radius:10px;background:var(--grad-primary);box-shadow:var(--shadow-primary),inset 0 1px #ffffff47;border:1px solid rgba(255,255,255,.22);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.06em;line-height:1;font-family:Segoe UI,DIN Alternate,Helvetica Neue,sans-serif}.topnav__brand-text{font-family:var(--font-display);font-weight:700;font-size:1.05rem;letter-spacing:-.01em}.topnav__links{display:flex;flex-wrap:wrap;gap:.2rem;align-items:center;justify-content:flex-end}.nav-link{position:relative;color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500;padding:.42rem .72rem;border-radius:var(--radius-sm);transition:color var(--ease),background var(--ease)}.nav-link:hover{color:var(--text);background:var(--bg-hover);text-decoration:none}.nav-link.active{color:var(--primary);background:var(--primary-soft);font-weight:600}.nav-link.active:after{content:"";position:absolute;left:.72rem;right:.72rem;bottom:.1rem;height:2px;border-radius:2px;background:var(--grad-primary);animation:nav-underline .28s ease both}@keyframes nav-underline{0%{transform:scaleX(.35);opacity:0}to{transform:scaleX(1);opacity:1}}.topnav__user{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:var(--text-dim);margin-left:.25rem;padding:.28rem .55rem;border-radius:999px;background:var(--primary-soft);border:1px solid transparent}.theme-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:2.05rem;height:2.05rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;transition:color var(--ease),border-color var(--ease),background var(--ease)}.theme-toggle:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--primary-soft)}.theme-toggle svg{width:1rem;height:1rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid transparent;border-radius:var(--radius-sm);padding:.62rem 1.15rem;cursor:pointer;font-weight:600;font-size:.9rem;text-decoration:none;transition:transform var(--ease-out),background var(--ease),border-color var(--ease),box-shadow var(--ease),color var(--ease)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:not(:disabled):hover{transform:translateY(-1px);text-decoration:none}.btn:not(:disabled):active{transform:translateY(0)}.btn--primary{background:var(--grad-primary);color:#fff;border-color:#fff3;box-shadow:var(--shadow-primary),inset 0 1px #ffffff38}.btn--primary:not(:disabled):hover{background:var(--grad-primary-hover);box-shadow:var(--shadow-primary-strong),inset 0 1px #ffffff4d;color:#fff}.btn--ghost{background:var(--bg-panel);border-color:var(--border);color:var(--text);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.btn--ghost:not(:disabled):hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));background:var(--primary-soft);color:var(--primary)}.btn--danger{background:var(--danger-muted);border-color:color-mix(in srgb,var(--danger) 40%,transparent);color:var(--danger)}.btn--danger:not(:disabled):hover{background:color-mix(in srgb,var(--danger) 18%,transparent)}.btn--sm{padding:.38rem .8rem;font-size:.84rem}.btn--block{width:100%}.cta-row{display:flex;flex-wrap:wrap;gap:.65rem}.hero--overview{padding:.5rem 0 1.35rem;animation:rise .7s ease both}.hero__eyebrow,.page-head__eyebrow{margin:0 0 .55rem;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}.hero__title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:.7rem}.hero__brand{font-family:var(--font-display);font-weight:700;font-size:clamp(2.1rem,5vw,2.85rem);line-height:1.12;letter-spacing:-.02em;margin:0;background:linear-gradient(118deg,var(--brand-grad-a) 8%,var(--brand-grad-b) 55%,var(--brand-grad-c) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__lead{margin:0 0 1.25rem;max-width:36rem;color:var(--text-muted);font-size:.98rem;line-height:1.65}.hero__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-bottom:1.35rem}.fact{padding:1.05rem 1.15rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-sm);transition:border-color var(--ease),transform var(--ease),box-shadow var(--ease)}.fact:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));transform:translateY(-2px);box-shadow:var(--shadow)}.fact__label{display:block;font-size:.76rem;color:var(--text-dim);margin-bottom:.4rem;letter-spacing:.04em;font-weight:500}.fact__value{display:block;font-size:1.05rem;font-weight:650;color:var(--text)}.fact__value--lg{font-size:1.55rem;font-weight:700;letter-spacing:-.02em;background:var(--grad-primary);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__error{margin-top:1rem}.status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .8rem;border-radius:999px;font-size:.8rem;font-weight:650;letter-spacing:.02em;border:1px solid transparent}.status-badge:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:currentColor}.status-badge--inline{padding:.16rem .55rem;font-size:.74rem}.status-badge--active{color:var(--ok);background:var(--ok-muted);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.status-badge--unbound{color:var(--primary);background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 28%,transparent)}.status-badge--expired,.status-badge--banned,.status-badge--revoked{color:var(--danger);background:var(--danger-muted);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.status-badge--revoked{font-weight:700;box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 35%,transparent)}.license-revoked-banner{margin:0 0 .85rem;font-weight:650}.panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.info-panel{padding:1.3rem 1.4rem 1.4rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-panel);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow)}.info-panel__head{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--divider)}.info-panel__head h2{font-family:var(--font-display);font-weight:650;font-size:1.12rem;margin:0 0 .3rem;letter-spacing:-.01em;color:var(--text)}.info-panel__head p{margin:0;font-size:.86rem;color:var(--text-dim)}.kv-list{margin:0;display:flex;flex-direction:column;gap:.85rem}.kv{display:grid;grid-template-columns:5.5rem 1fr;gap:.75rem;align-items:baseline}.kv dt{margin:0;font-size:.84rem;color:var(--text-dim)}.kv dd{margin:0;font-size:.94rem;color:var(--text);font-weight:500}.empty-block{padding:.25rem 0}.empty-block--large{text-align:center;padding:2.4rem 1.5rem;border-radius:var(--radius-lg);border:1px dashed color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--bg-panel);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.empty-block__title{margin:0 0 .4rem;font-size:1.12rem;font-weight:650}.empty-block__desc{margin:0 auto 1rem;color:var(--text-dim);font-size:.9rem;line-height:1.6;max-width:28rem}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.page-head__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,3.2vw,1.9rem);margin:0 0 .35rem;letter-spacing:-.02em}.page-head__desc{margin:0;color:var(--text-muted);font-size:.92rem;max-width:34rem;line-height:1.6}.device-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.device-card{padding:1.2rem 1.25rem 1.15rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-panel);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-sm);transition:border-color var(--ease),transform var(--ease),box-shadow var(--ease)}.device-card:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));transform:translateY(-2px);box-shadow:var(--shadow)}.device-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.95rem}.device-card__title{margin:0;font-size:1.02rem;font-weight:650}.device-card__meta{margin:0 0 .95rem;display:flex;flex-direction:column;gap:.5rem}.device-card__meta>div{display:grid;grid-template-columns:4.5rem 1fr;gap:.5rem}.device-card__meta dt{margin:0;font-size:.78rem;color:var(--text-dim)}.device-card__meta dd{margin:0;font-size:.86rem;color:var(--text)}.device-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding-top:.85rem;border-top:1px solid var(--divider)}.confirm-hint{font-size:.84rem;color:var(--danger);margin-right:.25rem}.security-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem;align-items:start}.security-form{display:flex;flex-direction:column;gap:.9rem}.security-form label,.auth-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.84rem;color:var(--text-muted);font-weight:500}.security-form input,.auth-form input,.activate-form input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.72rem .9rem;color:var(--text);outline:none;transition:border-color var(--ease),box-shadow var(--ease)}.security-form input:hover,.auth-form input:hover,.activate-form input:hover{border-color:var(--border-strong)}.security-form input:focus,.auth-form input:focus,.activate-form input:focus{border-color:var(--border-focus);box-shadow:var(--focus-ring)}.security-form input::placeholder,.auth-form input::placeholder,.activate-form input::placeholder{color:var(--text-dim)}.tip-list{margin:0;padding-left:1.1rem;color:var(--text-muted);font-size:.88rem;line-height:1.7}.tip-list li+li{margin-top:.3rem}.auth-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:min(70vh,600px);padding:1rem 0 2rem}.auth-stage__glow{position:absolute;width:min(480px,90vw);height:280px;border-radius:50%;background:radial-gradient(circle,var(--glow-a) 0%,transparent 70%),radial-gradient(circle at 80% 40%,var(--glow-b) 0%,transparent 55%);filter:blur(6px);pointer-events:none}.auth-panel{position:relative;width:100%;max-width:400px;padding:1.85rem 1.7rem 1.6rem;border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--bg-panel);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-lg)}.auth-panel__brand{text-align:center;margin-bottom:1.35rem}.auth-panel__mark{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;margin-bottom:.75rem;border-radius:10px;background:var(--grad-primary);color:#fff;font-weight:700;box-shadow:var(--shadow-primary)}.auth-panel__brand h1{font-family:var(--font-display);font-weight:700;font-size:1.65rem;margin:0 0 .35rem;letter-spacing:-.02em;color:var(--text)}.auth-panel__brand p{margin:0;color:var(--text-dim);font-size:.9rem}.auth-form{display:flex;flex-direction:column;gap:.9rem}.field-row{display:flex;gap:.55rem;align-items:stretch}.field-row input{flex:1;min-width:0}.field-row .btn{flex-shrink:0;white-space:nowrap}.activate-form{display:flex;flex-direction:column;gap:.85rem}.activate-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.84rem;color:var(--text-muted);font-weight:500}.activate-form__hint{margin:0;font-size:.88rem;color:var(--text-dim);line-height:1.5}.overview,.page-license,.page-devices,.page-security{display:flex;flex-direction:column;gap:1rem}.auth-panel__foot{margin:1.15rem 0 0;text-align:center;font-size:.88rem;color:var(--text-dim)}.form-error{color:var(--danger);font-size:.88rem;margin:0;padding:.55rem .75rem;border-radius:var(--radius-sm);background:var(--danger-muted);border:1px solid color-mix(in srgb,var(--danger) 28%,transparent)}.form-ok{color:var(--ok);font-size:.88rem;margin:0;padding:.55rem .75rem;border-radius:var(--radius-sm);background:var(--ok-muted);border:1px solid color-mix(in srgb,var(--ok) 28%,transparent)}.page-loading{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:3rem 1rem;color:var(--text-dim)}.spinner{width:1.5rem;height:1.5rem;border:2px solid color-mix(in srgb,var(--primary) 25%,transparent);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.anim-rise{animation:rise .7s ease both}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:860px){.hero__facts,.panel-grid,.device-grid,.security-layout{grid-template-columns:1fr}.topnav{flex-direction:column;align-items:flex-start;position:relative}.topnav__links{width:100%;justify-content:flex-start}.topnav__user{max-width:220px}}@media(max-width:520px){.app-shell{padding:0 1rem 2rem}.kv{grid-template-columns:1fr;gap:.15rem}.page-head{flex-direction:column}}
