:root{--bg: #f0f1f6;--panel: rgba(230,232,242,.65);--card: rgba(225,228,240,.55);--text: #1d1d1f;--muted: #86868b;--accent: #0071e3;--accent-hover: #0077ed;--accent-soft: rgba(0,113,227,.08);--border: rgba(100,110,140,.1);--border-strong: rgba(100,110,140,.16);--shadow-sm: 0 2px 8px rgba(0,0,0,.04);--shadow: 0 8px 30px rgba(60,70,100,.08);--shadow-lg: 0 20px 60px rgba(60,70,100,.12);--radius: 16px;--radius-lg: 22px;--radius-xl: 28px;--glass-bg: rgba(230,232,245,.6);--glass-border: rgba(200,205,225,.5);--glass-blur: saturate(180%) blur(20px);--transition: .3s cubic-bezier(.25, .46, .45, .94);--spring: .5s cubic-bezier(.34, 1.56, .64, 1)}[data-theme=dark]{--bg: #121214;--panel: rgba(30,30,34,.75);--card: rgba(38,38,42,.65);--text: #f5f5f7;--muted: #98989d;--accent: #2997ff;--accent-hover: #40a9ff;--accent-soft: rgba(41,151,255,.12);--border: rgba(255,255,255,.08);--border-strong: rgba(255,255,255,.14);--shadow-sm: 0 2px 8px rgba(0,0,0,.2);--shadow: 0 8px 30px rgba(0,0,0,.28);--shadow-lg: 0 20px 60px rgba(0,0,0,.4);--glass-bg: rgba(32,32,38,.72);--glass-border: rgba(255,255,255,.1);--glass-blur: saturate(180%) blur(20px)}[data-theme=dark] .nav{background:#16161ad1;border-bottom-color:#ffffff0f}[data-theme=dark] .nav-dropdown-panel,[data-theme=dark] .search-results{background:#24242af0}[data-theme=dark] .search{background:#ffffff0f}[data-theme=dark] .search:focus-within{background:#282830f2}[data-theme=dark] .hero-card.light{background:#26262cb3;border-color:#ffffff14}[data-theme=dark] .pill{background:#ffffff14;border-color:#ffffff1a}[data-theme=dark] .login-card,[data-theme=dark] .login-page{background:var(--bg)}[data-theme=dark] .login-card{background:var(--glass-bg)}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background:#ffffff0f!important;color:var(--text);border-color:#ffffff1a!important}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{background:#ffffff17!important;border-color:var(--accent)!important}[data-theme=dark] .section-card{background:var(--glass-bg);border-color:var(--glass-border)}[data-theme=dark] .adm-side{background:#1c1c20d9;border-color:#ffffff0f}[data-theme=dark] .adm-side-item:hover{background:#ffffff0f}[data-theme=dark] .adm-side-item.active{background:#2997ff1f}[data-theme=dark] .adm-panel{background:#202026b3;border-color:#ffffff14}[data-theme=dark] .adm-form-row input,[data-theme=dark] .adm-batch textarea{background:#ffffff0f;border-color:#ffffff1a}[data-theme=dark] .adm-form-row input:focus,[data-theme=dark] .adm-batch textarea:focus{background:#ffffff17;border-color:var(--accent)}[data-theme=dark] .adm-search{background:#ffffff0f;border-color:#ffffff14}[data-theme=dark] .adm-danger-item{background:#ffffff0a}[data-theme=dark] .adm-data-pill{background:#ffffff0a;border-color:#ffffff14}[data-theme=dark] .adm-timeline-item:hover,[data-theme=dark] .adm-comment-item:hover{background:#ffffff0d}[data-theme=dark] .nav-dropdown-item:hover,[data-theme=dark] .search-result-item:hover,[data-theme=dark] .user-menu-item:hover{background:#ffffff0f}[data-theme=dark] .user-menu-logout:hover{background:#ff3b301f}[data-theme=dark] .nav-dropdown-num,[data-theme=dark] .progress-bar-lg,[data-theme=dark] .user-menu-progress-bar,[data-theme=dark] .btn{background:#ffffff14}[data-theme=dark] .btn:hover{background:#ffffff24}[data-theme=dark] .checklist-item:hover{background:#ffffff0a}[data-theme=dark] .comment-box{background:var(--glass-bg);border-color:var(--glass-border)}[data-theme=dark] .profile-page-header{background:var(--glass-bg)}[data-theme=dark] .profile-tab{color:var(--muted)}[data-theme=dark] .hero-title{background-image:linear-gradient(135deg,#f5f5f7,#98989d,#f5f5f7)}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,system-ui,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}#root{height:100%}a{color:var(--accent);text-decoration:none;transition:opacity var(--transition)}a:hover{opacity:.8}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.nav{position:sticky;top:0;z-index:100;background:#ebedf5bf;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border)}.nav-inner{max-width:1120px;margin:0 auto;padding:0 24px;height:52px;display:flex;align-items:center;gap:24px}.logo{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.3px;flex-shrink:0}.nav-menu{display:flex;gap:6px;align-items:center;flex:1}.nav-menu>.nav-dropdown,.nav-user-dropdown{position:relative}.nav-menu>.nav-dropdown>a,.nav-menu>.nav-link{color:var(--text);text-decoration:none;font-size:14px;font-weight:500;opacity:.65;transition:opacity var(--transition);padding:6px 12px;border-radius:8px;display:block}.nav-menu>.nav-dropdown:hover>a,.nav-menu>.nav-link:hover{opacity:1;background:#0000000a}.nav-menu>.nav-link.active{opacity:1;color:var(--accent);font-weight:600}.nav-dropdown-panel{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:200px;padding:8px;border-radius:var(--radius);border:1px solid var(--glass-border);background:#f5f6fce0;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%) translateY(6px);transition:opacity .2s ease,transform .2s ease,visibility .2s}.nav-dropdown:hover>.nav-dropdown-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%) translateY(0)}.nav-dropdown-panel:before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}.nav-dropdown-wide{min-width:320px}.nav-dropdown-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:10px;cursor:pointer;font-size:13.5px;font-weight:500;color:var(--text);transition:background .15s ease}.nav-dropdown-item:hover{background:var(--accent-soft)}.nav-dropdown-badge{font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:2px 8px;border-radius:6px;white-space:nowrap;flex-shrink:0}.nav-dropdown-num{width:20px;height:20px;border-radius:6px;background:#0000000d;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--muted);flex-shrink:0}.nav-dropdown-group{padding:4px 0}.nav-dropdown-group+.nav-dropdown-group{border-top:1px solid var(--border);margin-top:4px;padding-top:8px}.nav-dropdown-group-title{font-size:12px;font-weight:700;color:var(--text);letter-spacing:.3px;padding:6px 14px;display:flex;align-items:center;gap:8px;border-radius:6px;transition:background .15s}.nav-dropdown-group-title:hover{background:var(--hover)}.nav-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.search{position:relative;display:flex;align-items:center;gap:6px;background:#0000000a;border:1px solid transparent;border-radius:10px;padding:7px 12px;transition:all var(--transition)}.search:focus-within{background:#f0f1f8f2;border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.search-active{z-index:200}.search input{border:0;outline:0;width:140px;background:transparent;color:var(--text);font-size:13px;transition:width .2s ease}.search:focus-within input{width:200px}.search .icon{font-size:13px;opacity:.45;flex-shrink:0;line-height:1}.search-results{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:420px;overflow-y:auto;padding:6px;border-radius:var(--radius);border:1px solid var(--glass-border);background:#f5f6fceb;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);box-shadow:var(--shadow-lg);animation:searchDropIn .18s ease-out}@keyframes searchDropIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.search-empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:13px}.search-result-item{padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .15s ease}.search-result-item:hover{background:var(--accent-soft)}.search-result-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}.search-result-badge{font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:5px;white-space:nowrap;flex-shrink:0}.search-result-section{font-size:13.5px;font-weight:600;color:var(--text)}.search-result-match{font-size:12px;color:var(--muted);line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-field{font-size:10.5px;font-weight:600;color:var(--accent);margin-right:6px;opacity:.7}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:980px;border:none;background:#0000000a;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn:hover{background:#00000014}.btn:active{transform:scale(.97)}.primary{background:var(--accent);color:#fff;border:none}.primary:hover{background:var(--accent-hover);color:#fff}.primary:disabled{opacity:.5;cursor:not-allowed}.container{padding:32px 24px 60px;max-width:1120px;margin:0 auto}.layout{display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:start}.sidebar{border-radius:var(--radius-lg);padding:20px;position:sticky;top:76px}.sidebar h2{font-size:15px;font-weight:600;color:var(--muted);margin:0 0 12px;letter-spacing:-.2px}.sidebar .list{list-style:none;display:flex;flex-direction:column;gap:4px}.chapter-link{width:100%;padding:10px 14px;border-radius:12px;border:none;background:transparent;color:var(--text);text-align:left;cursor:pointer;font-size:14px;font-weight:500;line-height:1.4;transition:all var(--transition)}.chapter-link:hover{background:#0000000a}.chapter-link.active{background:var(--accent);color:#fff;box-shadow:0 4px 14px #0071e34d}.content h2{font-size:28px;font-weight:700;letter-spacing:-.5px;margin:0 0 4px}.subtitle{color:var(--muted);font-size:15px;margin-bottom:20px}.section-card{border-radius:var(--radius-lg);padding:24px;margin-bottom:16px;transition:transform var(--transition),box-shadow var(--transition)}.section-card:hover{transform:translateY(-1px)}.section-card summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px}.section-card summary::-webkit-details-marker{display:none}.section-card h3{margin:0;font-size:18px;font-weight:600;letter-spacing:-.3px}.section-card h4{margin:20px 0 8px;font-size:13px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.section-card ul,.section-card ol{margin:6px 0 0;padding-left:20px}.section-card li{margin-bottom:4px;font-size:14px;line-height:1.6;color:var(--text);opacity:.85}.arrow{width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .3s ease;flex-shrink:0}details[open] .arrow{transform:rotate(45deg)}.collapse{display:none}details[open] .collapse{display:block;animation:collapseOpen .35s ease}@keyframes collapseOpen{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.tip{border-radius:14px;padding:16px 18px;margin-top:16px;background:#0071e30f;border:1px solid rgba(0,113,227,.12);border-left:4px solid var(--accent)}.tip-title{font-weight:700;font-size:14px;margin-bottom:6px;color:var(--accent)}.tip ul{margin:6px 0 0;padding-left:18px}.tip li{font-size:14px;color:var(--text);opacity:.85}.video-task-bar{display:flex;align-items:center;gap:10px;margin:16px 0 0;padding:10px 14px;border-radius:10px;background:#0071e30f;border:1px solid rgba(0,113,227,.12);font-size:13px;color:var(--text)}.video-task-bar:has(.video-task-icon.done){background:#34c7590f;border-color:#34c75926}.video-task-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:700;flex-shrink:0}.video-task-icon.done{background:#34c759}.video-task-label{font-weight:600}.video-task-hint{margin-left:auto;font-size:11px;color:var(--muted);font-weight:400}.video-wrap{margin-top:16px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);transition:transform var(--transition),box-shadow var(--transition)}.video-wrap:hover{transform:scale(1.005);box-shadow:var(--shadow-lg)}.video-container{position:relative;margin-top:16px}.video-idx-toggle{position:absolute;top:10px;right:10px;z-index:5;width:34px;height:34px;border-radius:8px;border:none;cursor:pointer;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s,transform .15s;opacity:.7}.video-idx-toggle:hover{opacity:1;transform:scale(1.08)}.video-idx-toggle.open{background:var(--accent);opacity:1}.video-idx-panel{position:absolute;top:10px;right:10px;z-index:10;width:260px;max-height:calc(100% - 60px);background:var(--card-bg, #fff);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 30px #00000026;display:flex;flex-direction:column;overflow:hidden;animation:idxSlideIn .2s ease}@keyframes idxSlideIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.video-idx-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text)}.video-idx-close{width:24px;height:24px;border-radius:6px;border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:13px;display:flex;align-items:center;justify-content:center;transition:background .15s}.video-idx-close:hover{background:var(--glass-bg);color:var(--text)}.video-idx-list{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1;scrollbar-width:thin}.video-idx-list::-webkit-scrollbar{width:3px}.video-idx-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.video-idx-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;cursor:pointer;text-align:left;font-family:inherit;transition:background .15s}.video-idx-item:hover{background:var(--glass-bg)}.video-idx-item.active{background:var(--accent-soft)}.video-idx-num{width:22px;height:22px;border-radius:50%;background:var(--glass-bg);color:var(--muted);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.video-idx-item.active .video-idx-num{background:var(--accent);color:#fff}.video-idx-body{display:flex;flex-direction:column;gap:2px;min-width:0}.video-idx-label{font-size:13px;color:var(--text);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.video-idx-item.active .video-idx-label{color:var(--accent);font-weight:600}.video-idx-time{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;font-family:SF Mono,Menlo,Consolas,monospace}.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.show{opacity:1;transform:none}.content-fade-in{animation:contentIn .3s ease-out}@keyframes contentIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero{position:relative;border-radius:var(--radius-xl);padding:56px 40px;overflow:hidden;margin-bottom:32px}.hero-blur{position:relative;overflow:hidden}.hero-blur:before{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;background:radial-gradient(800px 500px at 20% 20%,rgba(0,113,227,.15),transparent 60%),radial-gradient(600px 400px at 80% 10%,rgba(88,86,214,.12),transparent 60%),radial-gradient(500px 300px at 50% 90%,rgba(52,199,89,.08),transparent 50%);filter:blur(60px);z-index:0;animation:float 20s ease infinite}@keyframes float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(2%,-1%) rotate(.5deg)}66%{transform:translate(-1%,1%) rotate(-.5deg)}}.hero-blur .hero-content{position:relative;z-index:1}.hero-title{font-size:48px;font-weight:700;letter-spacing:-1.5px;margin:0 0 8px;line-height:1.1}.hero-subtitle{font-size:18px;color:var(--muted);font-weight:400}.gradient-text{background:linear-gradient(135deg,#1d1d1f,#424245,#1d1d1f);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;color:transparent}.shiny-text{background:linear-gradient(120deg,var(--accent),#5856d6,#34c759,var(--accent));background-size:300% 300%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 8s ease infinite}@keyframes shimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.home-stats{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:28px;padding:14px 24px;border-radius:14px;background:#00000008;font-size:14px;color:var(--muted);font-weight:400}[data-theme=dark] .home-stats{background:#ffffff0a}.home-stats strong{font-weight:700;color:var(--text)}.home-stats-dot{opacity:.3}.hero-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:32px}.hero-card{border-radius:var(--radius-lg);padding:28px;position:relative;overflow:hidden;transition:transform var(--spring),box-shadow var(--transition)}.hero-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hero-card.dark{color:#fff;background:linear-gradient(135deg,#1d1d1f,#2c2c2e);border:1px solid rgba(255,255,255,.08)}.hero-card.dark:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(400px 300px at 10% 10%,rgba(0,113,227,.2),transparent 60%);pointer-events:none}.hero-card.light{background:#e1e4f58c;border:1px solid var(--glass-border);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.hero-heading{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;opacity:.7;margin-bottom:4px}.hero-title-xl{font-size:24px;font-weight:700;letter-spacing:-.5px;margin:6px 0 8px;line-height:1.2}.hero-sub{font-size:14px;opacity:.75;line-height:1.5}.pill-row{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 16px}.pill{display:inline-block;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600;background:#ffffff1f;border:1px solid rgba(255,255,255,.15);color:inherit;letter-spacing:.3px}.hero-card.light .pill{background:var(--accent-soft);border-color:#0071e31a;color:var(--accent)}.cta{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:980px;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all var(--transition);text-decoration:none}.cta:hover{opacity:1;transform:translate(2px)}.cta.primary{background:var(--accent);color:#fff}.cta.light{background:#0000000f;color:var(--text)}.chev{display:inline-block;width:8px;height:8px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);transition:transform var(--transition)}.cta:hover .chev{transform:rotate(45deg) translate(2px)}.hero-progress{display:flex;align-items:center;gap:10px;margin-bottom:14px}.hero-progress-bar{flex:1;height:5px;border-radius:3px;background:#ffffff26;overflow:hidden}.hero-card.light .hero-progress-bar{background:#0000000f}.hero-progress-fill{display:block;height:100%;border-radius:3px;background:#ffffffb3;transition:width .5s ease}.hero-progress-fill.done{background:#34c759}.hero-card.light .hero-progress-fill{background:var(--accent)}.hero-card.light .hero-progress-fill.done{background:#34c759}.hero-progress-text{font-size:12px;font-weight:700;opacity:.8;white-space:nowrap;min-width:40px;text-align:right}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden}.login-theme-toggle{position:absolute;top:20px;right:24px;z-index:10}.login-page:before{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;background:radial-gradient(600px 400px at 25% 30%,rgba(0,113,227,.12),transparent 60%),radial-gradient(500px 350px at 75% 70%,rgba(88,86,214,.1),transparent 60%),radial-gradient(400px 300px at 50% 10%,rgba(52,199,89,.06),transparent 50%);filter:blur(60px);z-index:0;animation:float 20s ease infinite}.login-page-inner{position:relative;z-index:1;width:100%;max-width:380px;padding:0 20px}.login-brand{text-align:center;margin-bottom:32px}.login-brand .logo{font-size:32px;font-weight:700;color:var(--text);letter-spacing:-.5px}.login-card{padding:36px;border-radius:var(--radius-xl)}.login-card h2{font-size:24px;font-weight:700;letter-spacing:-.3px;margin-bottom:24px}.login-field{margin-bottom:16px}.login-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--muted)}.login-field input{width:100%;padding:12px 16px;border-radius:12px;border:1px solid var(--border-strong);background:#f0f1f8cc;color:var(--text);font-size:15px;outline:none;transition:all var(--transition)}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0071e31a;background:#f5f6fcf2}.login-field input::placeholder{color:#c7c7cc}.login-error{color:#ff3b30;font-size:13px;font-weight:500;padding:8px 12px;background:#ff3b300f;border-radius:10px;margin-bottom:12px}.login-footer{text-align:center;margin-top:24px}.login-footer a{color:var(--muted);font-size:13px;font-weight:500;transition:color var(--transition)}.login-footer a:hover{color:var(--accent);opacity:1}.admin-table{width:100%;border-collapse:collapse;margin-top:12px}.admin-table th,.admin-table td{padding:12px 14px;text-align:left}.admin-table th{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border-strong)}.admin-table td{border-bottom:1px solid var(--border);font-size:14px}.admin-table tbody tr{transition:background var(--transition)}.admin-table tbody tr:hover{background:#0071e308}.btn-sm{padding:5px 12px;border-radius:8px;border:1px solid var(--border-strong);background:#ebedf8b3;color:var(--text);cursor:pointer;font-size:12px;font-weight:500;margin-right:6px;transition:all var(--transition)}.btn-sm:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn-sm.danger{color:#ff3b30;border-color:#ff3b3033}.btn-sm.danger:hover{background:#ff3b300f;border-color:#ff3b30}.btn.danger{background:#ff3b30;color:#fff;border-color:#ff3b30}.btn.danger:hover{background:#e0342b}.admin-msg{padding:12px 18px;border-radius:14px;background:#34c75914;color:#248a3d;border:1px solid rgba(52,199,89,.15);font-size:14px;font-weight:500;margin-bottom:20px;cursor:pointer;transition:opacity var(--transition)}.admin-msg:hover{opacity:.8}.admin-heatmap-wrap{overflow-x:auto}.admin-heatmap{display:inline-flex;flex-direction:column;gap:2px;min-width:100%}.admin-heatmap-header{display:flex;gap:2px;padding-bottom:6px}.admin-heatmap-name-col{width:80px;flex-shrink:0}.admin-heatmap-ch-label{width:48px;font-size:10px;font-weight:600;color:var(--muted);text-align:center;flex-shrink:0}.admin-heatmap-row{display:flex;gap:2px;align-items:center}.admin-heatmap-name{width:80px;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.admin-heatmap-cell{width:48px;height:24px;border-radius:5px;flex-shrink:0;transition:opacity .3s ease;cursor:default}.admin-heatmap-cell:hover{outline:2px solid var(--accent);outline-offset:-1px}.admin-heatmap-scale{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:11px;color:var(--muted)}.admin-heatmap-gradient{width:100px;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--border),#ff9500,#007aff,#34c759)}.adm-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden}.adm-login:before{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:radial-gradient(700px 500px at 30% 25%,rgba(0,113,227,.1),transparent 60%),radial-gradient(500px 400px at 70% 75%,rgba(88,86,214,.08),transparent 60%);filter:blur(80px);animation:float 20s ease infinite}.adm-login-inner{position:relative;z-index:1;width:100%;max-width:380px;padding:0 24px;text-align:center}.adm-login-mark{width:72px;height:72px;border-radius:20px;margin:0 auto 24px;background:linear-gradient(135deg,var(--accent),#5856d6);color:#fff;font-size:32px;font-weight:700;letter-spacing:-1px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px #0071e340}.adm-login-title{font-size:28px;font-weight:700;letter-spacing:-.5px;color:var(--text);margin:0}.adm-login-sub{font-size:15px;color:var(--muted);margin:6px 0 32px;font-weight:400}.adm-login-card{padding:36px;border-radius:var(--radius-xl);text-align:left}.adm-login-btn{width:100%;justify-content:center;margin-top:16px;padding:12px!important;font-size:15px!important}.adm-shell{display:flex;min-height:100vh}.adm-side{width:260px;flex-shrink:0;position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;background:var(--glass-bg);border-right:1px solid var(--border);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);z-index:50}.adm-side-head{display:flex;align-items:center;gap:14px;padding:24px 24px 20px}.adm-side-mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#5856d6);color:#fff;font-size:18px;font-weight:700;letter-spacing:-.5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #0071e333}.adm-side-brand{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.3px}.adm-side-sub{font-size:11px;color:var(--muted);margin-top:1px;font-weight:500}.adm-side-nav{flex:1;padding:8px 12px;display:flex;flex-direction:column;gap:2px}.adm-side-item{position:relative;display:block;width:100%;text-align:left;padding:10px 16px;border-radius:10px;border:none;background:transparent;color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.adm-side-item:hover{background:#0000000a}.adm-side-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.adm-side-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.adm-side-foot{padding:16px 20px 20px;border-top:1px solid var(--border)}.adm-side-user{display:flex;align-items:center;gap:12px;margin-bottom:14px}.adm-side-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#7c3aed);color:#fff;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.adm-side-name{font-size:14px;font-weight:600;color:var(--text)}.adm-side-role{font-size:11px;color:var(--muted);margin-top:1px}.adm-side-actions{display:flex;gap:8px}.adm-side-actions .btn{flex:1;font-size:12px;padding:6px 12px;justify-content:center}.adm-main{flex:1;margin-left:260px;padding:40px 48px 60px;min-height:100vh}.adm-header{margin-bottom:32px}.adm-header h1{font-size:32px;font-weight:700;letter-spacing:-.8px;color:var(--text);margin:0 0 4px}.adm-header p{font-size:15px;color:var(--muted);margin:0;font-weight:400}.adm-content{max-width:960px}.adm-panel{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);margin-bottom:16px}.adm-panel-title{font-size:16px;font-weight:600;color:var(--text);letter-spacing:-.2px;margin:0 0 16px}.adm-panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.adm-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.adm-metric{border-radius:var(--radius-lg);padding:24px 20px;text-align:center;transition:transform var(--spring)}.adm-metric:hover{transform:translateY(-2px)}.adm-metric-num{font-size:36px;font-weight:700;color:var(--accent);letter-spacing:-1px;line-height:1}.adm-metric-label{font-size:12px;color:var(--muted);margin-top:6px;font-weight:500;letter-spacing:.2px}.adm-duo{display:grid;grid-template-columns:300px 1fr;gap:16px;margin-bottom:16px}.adm-duo>.adm-panel:first-child{display:flex;flex-direction:column;align-items:center;gap:24px;padding:32px 24px}.adm-ring-wrap{position:relative;display:flex;align-items:center;justify-content:center}.adm-ring-center{position:absolute;text-align:center}.adm-ring-num{font-size:40px;font-weight:700;color:var(--accent);letter-spacing:-1.5px;line-height:1}.adm-ring-num span{font-size:20px;font-weight:600}.adm-ring-label{font-size:12px;color:var(--muted);margin-top:2px;font-weight:500}.adm-ring-legend{width:100%;display:flex;flex-direction:column;gap:10px}.adm-ring-legend-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text)}.adm-ring-legend-row strong{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}.adm-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.adm-insights{display:flex;flex-direction:column;gap:14px}.adm-insight{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:var(--text);line-height:1.6}.adm-insight-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:7px}.adm-empty-hint{color:var(--muted);font-size:14px;text-align:center}.adm-timeline{display:flex;flex-direction:column;gap:4px}.adm-timeline-item{display:flex;gap:14px;padding:12px 14px;border-radius:12px;transition:background .15s ease}.adm-timeline-item:hover{background:var(--accent-soft)}.adm-timeline-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#5ac8fa);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.adm-timeline-body{flex:1;min-width:0}.adm-timeline-head{display:flex;align-items:center;gap:8px;font-size:13px}.adm-timeline-time{color:var(--muted);font-size:12px;margin-left:auto}.adm-timeline-text{font-size:13px;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-form-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.adm-form-row input{flex:1;min-width:140px;padding:10px 14px;border-radius:12px;border:1px solid var(--border-strong);background:#f0f1f8cc;color:var(--text);font-size:14px;outline:none;transition:all var(--transition)}.adm-form-row input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0071e31a;background:#f5f6fcf2}.adm-batch-toggle{margin-top:12px}.adm-link-btn{background:none;border:none;color:var(--accent);font-size:13px;font-weight:500;cursor:pointer;padding:0;font-family:inherit;transition:opacity var(--transition)}.adm-link-btn:hover{opacity:.7}.adm-batch{margin-top:14px}.adm-batch textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border-strong);background:#f0f1f8cc;color:var(--text);font-size:14px;font-family:inherit;resize:vertical;outline:none;transition:all var(--transition)}.adm-batch textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0071e31a;background:#f5f6fcf2}.adm-hint{color:var(--muted);font-size:13px;margin-bottom:10px}.adm-search{padding:8px 14px;border-radius:10px;border:1px solid var(--border);font-size:13px;background:var(--glass-bg);color:var(--text);outline:none;width:180px;transition:all var(--transition)}.adm-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e314}.adm-count{font-size:12px;font-weight:500;color:var(--muted);margin-left:8px;font-variant-numeric:tabular-nums}.adm-comment-list{display:flex;flex-direction:column;gap:4px}.adm-comment-item{display:flex;gap:14px;padding:14px 12px;border-radius:12px;align-items:flex-start;transition:background .15s ease}.adm-comment-item:hover{background:var(--accent-soft)}.adm-comment-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#5856d6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.adm-comment-body{flex:1;min-width:0}.adm-comment-head{display:flex;align-items:center;gap:8px;font-size:13px}.adm-comment-sid{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.adm-comment-time{color:var(--muted);font-size:12px;margin-left:auto}.adm-comment-text{font-size:14px;color:var(--text);margin-top:4px;line-height:1.6}.adm-comment-del{opacity:0;transition:opacity .15s ease;flex-shrink:0;align-self:center}.adm-comment-item:hover .adm-comment-del{opacity:1}.adm-data-pills{display:flex;gap:12px;flex-wrap:wrap}.adm-data-pill{padding:10px 16px;border-radius:10px;background:var(--glass-bg);border:1px solid var(--border);font-size:13px;color:var(--text)}.adm-danger-zone{border-color:#ff3b3026}.adm-danger-list{display:flex;flex-direction:column;gap:10px}.adm-danger-item{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:var(--glass-bg);border-radius:12px;gap:16px}.adm-danger-critical{background:#ff3b300a;border:1px solid rgba(255,59,48,.12)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.modal-panel{width:90%;max-width:400px;padding:32px;border-radius:var(--radius-xl);text-align:center;animation:slideDown .25s cubic-bezier(.34,1.56,.64,1)}.modal-icon{font-size:40px;margin-bottom:12px}.modal-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px}.modal-message{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:24px}.modal-actions{display:flex;gap:12px;justify-content:center}@media (max-width: 960px){.layout,.hero-grid{grid-template-columns:1fr}.hero-title{font-size:36px}.nav-inner{gap:12px}.search{display:none}.mobile-search-toggle{display:flex}.nav-dropdown-panel{left:0;transform:none;min-width:180px}.nav-dropdown:hover>.nav-dropdown-panel{transform:translateY(0)}.nav-dropdown-wide{min-width:240px}.adm-side{width:100%;position:fixed;top:0;left:0;right:0;bottom:auto;height:auto;flex-direction:row;align-items:center;padding:0 16px;gap:0;border-right:none;border-bottom:1px solid var(--border);z-index:100}.adm-side-head{padding:12px 0;gap:10px;flex-shrink:0}.adm-side-mark{width:32px;height:32px;font-size:14px;border-radius:9px}.adm-side-brand{font-size:14px}.adm-side-sub{display:none}.adm-side-nav{flex-direction:row;gap:2px;padding:0 12px;overflow-x:auto;flex:1;min-width:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}.adm-side-nav::-webkit-scrollbar{display:none}.adm-side-item{white-space:nowrap;padding:8px 14px;font-size:13px;border-radius:8px;flex-shrink:0}.adm-side-item.active:before{display:none}.adm-side-foot{display:none}.adm-main{margin-left:0;padding:80px 20px 40px}.adm-header h1{font-size:24px}.adm-metrics{grid-template-columns:repeat(2,1fr)}.adm-duo{grid-template-columns:1fr}.adm-metric-num{font-size:28px}}.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:none;background:transparent;cursor:pointer;padding:0;flex-shrink:0}.hamburger,.hamburger:before,.hamburger:after{display:block;width:18px;height:2px;background:var(--text);border-radius:2px;transition:transform .3s ease,opacity .2s ease}.hamburger{position:relative}.hamburger:before,.hamburger:after{content:"";position:absolute;left:0}.hamburger:before{top:-6px}.hamburger:after{top:6px}.hamburger.open{background:transparent}.hamburger.open:before{top:0;transform:rotate(45deg)}.hamburger.open:after{top:0;transform:rotate(-45deg)}.mobile-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease}.mobile-drawer{position:fixed;top:48px;left:0;right:0;max-height:calc(100vh - 48px);overflow-y:auto;padding:12px 16px 24px;background:#f5f6fcf2;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border-bottom:1px solid var(--border);box-shadow:var(--shadow-lg);animation:slideDown .25s cubic-bezier(.25,.46,.45,.94);z-index:9999}[data-theme=dark] .mobile-drawer{background:#1c1c20f2}.mobile-drawer-section{padding:8px 0}.mobile-drawer-section+.mobile-drawer-section{border-top:1px solid var(--border)}.mobile-drawer-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);padding:6px 12px 4px;margin-bottom:2px}.mobile-drawer-item{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;font-size:14px;color:var(--text);cursor:pointer;transition:background var(--transition)}.mobile-drawer-item:active{background:var(--accent-soft)}.mobile-drawer-badge{flex-shrink:0;display:inline-block;padding:2px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600}@media (max-width: 640px){.mobile-menu-btn{display:flex}}.mobile-search-toggle{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:none;background:var(--accent-soft);cursor:pointer;font-size:15px;transition:background var(--transition)}.mobile-search-toggle:hover{background:var(--accent);color:#fff}.mobile-search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:80px;animation:fadeIn .2s ease}.mobile-search-panel{width:92%;max-width:480px;border-radius:var(--radius-lg);background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-lg);overflow:hidden;animation:slideDown .25s cubic-bezier(.34,1.56,.64,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.mobile-search-bar{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}.mobile-search-bar input{flex:1;border:0;outline:0;background:transparent;font-size:16px;color:var(--text);font-family:inherit}.mobile-search-close{border:none;background:transparent;font-size:18px;color:var(--muted);cursor:pointer;padding:4px;line-height:1}.mobile-search-results{max-height:50vh;overflow-y:auto;padding:8px}.skeleton-wrap{padding:32px;border-radius:var(--radius-lg);background:var(--glass-bg);border:1px solid var(--border)}.skeleton-title{height:24px;width:45%;border-radius:8px;margin-bottom:20px}.skeleton-line{height:14px;width:100%;border-radius:6px;margin-bottom:12px}.skeleton-block{height:120px;width:100%;border-radius:var(--radius);margin-top:16px}.shimmer{background:linear-gradient(90deg,var(--border) 25%,var(--card) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmerMove 1.5s ease-in-out infinite}@keyframes shimmerMove{0%{background-position:200% 0}to{background-position:-200% 0}}.profile-comment-goto{margin-left:auto;font-size:12px;color:var(--accent);opacity:0;transition:opacity .2s ease}.profile-comment-item:hover .profile-comment-goto{opacity:1}.profile-comment-item{transition:background .15s ease;border-radius:10px;padding:12px!important}.profile-comment-item:hover{background:var(--accent-soft)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);transition:transform var(--spring),box-shadow var(--transition);cursor:pointer}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-title{font-size:18px;font-weight:600;margin:0 0 4px;letter-spacing:-.2px}.card-desc{color:var(--muted);font-size:14px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:600}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.cli-launcher{display:flex;align-items:center;gap:14px;margin:16px 0;padding:14px 18px;border-radius:14px;background:#1a1b26;border:1px solid rgba(255,255,255,.08)}.cli-launch-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:8px;border:none;background:#34c759;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.cli-launch-btn:hover{background:#2db84d;transform:translateY(-1px)}.cli-launch-icon{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:14px;font-weight:700}.cli-launch-hint{font-size:12px;color:#fff6}.cli-terminal{margin:16px 0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;font-family:SF Mono,Fira Code,Consolas,Courier New,monospace}.cli-titlebar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#2d2e3a;border-bottom:1px solid rgba(255,255,255,.06)}.cli-dots{display:flex;gap:7px}.cli-dot{width:12px;height:12px;border-radius:50%;cursor:pointer;transition:opacity .2s}.cli-dot:hover{opacity:.8}.cli-dot.red{background:#ff5f57}.cli-dot.yellow{background:#ffbd2e}.cli-dot.green{background:#28c840}.cli-title{flex:1;text-align:center;font-size:12px;color:#ffffff80;font-weight:500}.cli-title-actions{display:flex;gap:4px}.cli-action-btn{width:28px;height:28px;border:none;border-radius:6px;background:#ffffff0f;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.cli-action-btn:hover{background:#ffffff1f}.cli-screen{background:#1a1b26;color:#c0caf5;padding:16px;min-height:200px;max-height:400px;overflow-y:auto;font-size:13px;line-height:1.7;cursor:text}.cli-screen::-webkit-scrollbar{width:6px}.cli-screen::-webkit-scrollbar-track{background:transparent}.cli-screen::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.cli-welcome{color:#ffffff4d;margin-bottom:12px;font-size:12px;line-height:1.6}.cli-line{white-space:pre-wrap;word-break:break-all}.cli-prompt-text{color:#7aa2f7;font-weight:600}.cli-line.cli-ok .cli-prompt-text{color:#7aa2f7}.cli-line.cli-ok span:last-child{color:#9ece6a}.cli-line.cli-err .cli-prompt-text{color:#7aa2f7}.cli-line.cli-err span:last-child{color:#f7768e}.cli-line.cli-err-msg{color:#f7768e;font-size:11px;opacity:.8}.cli-line.cli-skip span:last-child{color:#e0af68;font-style:italic}.cli-line.cli-out{color:#a9b1d6;opacity:.7}.cli-step-banner{color:#bb9af7;margin:10px 0 4px;font-size:12px;font-weight:600;opacity:.8}.cli-input-line{display:flex;align-items:center;white-space:nowrap}.cli-input-line .cli-prompt-text{flex-shrink:0}.cli-input{flex:1;border:none;outline:none;background:transparent;color:#c0caf5;font-family:inherit;font-size:13px;caret-color:#7aa2f7;padding:0;line-height:1.7}.cli-shake{animation:cliShake .3s ease}@keyframes cliShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.cli-complete{text-align:center;padding:20px 0 8px}.cli-complete-icon{display:inline-flex;width:40px;height:40px;border-radius:50%;background:#34c75926;color:#34c759;font-size:20px;font-weight:700;align-items:center;justify-content:center;margin-bottom:8px}.cli-complete-title{color:#9ece6a;font-size:15px;font-weight:700;margin-bottom:4px}.cli-complete-stats{color:#ffffff80;font-size:12px;margin-bottom:12px}.cli-complete-stats strong{color:#c0caf5}.cli-restart-btn{padding:6px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#7aa2f7;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}.cli-restart-btn:hover{background:#7aa2f71a}.cli-hint-bubble{margin:6px 0 8px;padding:10px 14px;border-radius:10px;background:#7aa2f714;border:1px solid rgba(122,162,247,.18);animation:hintFadeIn .25s ease}@keyframes hintFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cli-hint-row{font-size:12px;line-height:1.6;color:#a9b1d6}.cli-hint-row+.cli-hint-row{margin-top:4px}.cli-hint-why{color:#bb9af7}.cli-hint-mask code{background:#ffffff0f;padding:2px 6px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:12px;color:#e0af68;letter-spacing:.5px}.cli-hint-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;margin-right:6px;background:#7aa2f726;color:#7aa2f7;vertical-align:middle}.cli-hint-why .cli-hint-tag{background:#bb9af726;color:#bb9af7}.cli-hint-more{margin-top:6px;font-size:11px;color:#ffffff4d;cursor:pointer;transition:color .2s}.cli-hint-more:hover{color:#ffffff80}.cli-perfect,.cli-good{font-size:12px;margin-bottom:10px;font-weight:600}.cli-perfect{color:#f7768e}.cli-good{color:#e0af68}.cli-statusbar{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:#24253a;border-top:1px solid rgba(255,255,255,.06);font-size:11px;color:#ffffff59}.cli-status-step{flex:1;text-align:center;color:#ffffff80;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 12px}.cli-status-hint{opacity:.6}.checklist-block{margin:20px 0}.checklist-block h4{margin:0 0 12px;font-size:15px;font-weight:600;color:var(--text)}.checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.checklist-item{border-radius:12px;transition:background var(--transition)}.checklist-item label{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;border-radius:12px;border:1px solid var(--border);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all var(--transition)}.checklist-item label:hover{border-color:var(--accent);background:var(--accent-soft)}.checklist-item.checked label{border-color:#34c7594d;background:#34c7590f}.checklist-item input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.check-mark{width:22px;height:22px;border-radius:7px;flex-shrink:0;border:2px solid var(--border-strong);background:var(--panel);display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative}.check-mark:after{content:"";display:block;width:6px;height:10px;border:solid transparent;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);transition:transform .2s ease;margin-top:-2px}.checklist-item.checked .check-mark{background:#34c759;border-color:#34c759}.checklist-item.checked .check-mark:after{border-color:#fff;transform:rotate(45deg) scale(1)}.check-label{font-size:14px;color:var(--text);line-height:1.4;transition:color var(--transition)}.checklist-item.checked .check-label{color:var(--muted);text-decoration:line-through}.section-nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}.section-nav-btn{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:14px;border:1px solid var(--border-strong);background:transparent;cursor:pointer;transition:all .2s ease;max-width:48%;text-align:left}.section-nav-btn:hover{border-color:var(--accent);background:var(--accent-soft)}.section-nav-btn.next{margin-left:auto;text-align:right}.section-nav-btn.chapter{border-color:#34c7594d}.section-nav-btn.chapter:hover{background:#34c7590f;border-color:#34c759}.section-nav-arrow{font-size:18px;font-weight:600;color:var(--accent);flex-shrink:0;line-height:1}.section-nav-btn.chapter .section-nav-arrow{color:#34c759}.section-nav-label{display:flex;flex-direction:column;gap:2px;min-width:0}.section-nav-hint{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.section-nav-name{font-size:13.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.completion-toast{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:14px;padding:16px 28px;border-radius:18px;background:#f5f6fceb;border:1px solid rgba(52,199,89,.25);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);box-shadow:0 12px 40px #34c75926,0 4px 12px #0000000f;animation:toastIn .5s cubic-bezier(.34,1.56,.64,1),toastOut .4s ease 3s forwards;overflow:hidden}[data-theme=dark] .completion-toast{background:#24242af0;border-color:#34c7594d}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-20px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-16px)}}.completion-icon{font-size:32px;line-height:1}.completion-text{min-width:0}.completion-title{font-size:16px;font-weight:700;color:#34c759}.completion-sub{font-size:13px;color:var(--muted);margin-top:2px}.completion-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:-8px;width:6px;height:6px;border-radius:2px;opacity:.85;animation:confettiFall 1.6s ease-out forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) scale(1);opacity:.9}to{transform:translateY(70px) rotate(360deg) scale(0);opacity:0}}.progress-bar-mini{display:block;height:4px;border-radius:2px;background:var(--border);overflow:hidden;width:100%}.progress-bar-lg{height:8px;border-radius:4px;background:var(--border);overflow:hidden;margin:12px 0 8px}.progress-bar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#34c759,#30d158);transition:width .5s cubic-bezier(.4,0,.2,1);min-width:0}.chapter-link{display:flex;flex-direction:column;gap:6px}.chapter-name{text-align:left}.chapter-progress-info{display:flex;align-items:center;gap:8px;width:100%}.chapter-pct{font-size:11px;font-weight:600;color:var(--accent);min-width:32px;text-align:right}.chapter-link.active .chapter-pct{color:#fffc}.sidebar-sections{list-style:none;padding:4px 0 8px;margin:0;display:flex;flex-direction:column;gap:1px}.sidebar-section-item{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:10px;font-size:13px;color:var(--text);cursor:pointer;transition:background .15s ease}.sidebar-section-item:hover{background:#0000000a}[data-theme=dark] .sidebar-section-item:hover{background:#ffffff0d}.sidebar-section-item.current{background:var(--accent-soft);font-weight:600}.sidebar-section-item.done{opacity:.6}.sidebar-section-check{width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;background:#0000000d;color:var(--muted)}[data-theme=dark] .sidebar-section-check{background:#ffffff14}.sidebar-section-item.done .sidebar-section-check{background:#34c7591f;color:#34c759}.sidebar-section-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-section-count{font-size:11px;font-weight:600;color:var(--muted);flex-shrink:0}.progress-overview{border-radius:var(--radius-lg);padding:32px;margin-bottom:32px}.progress-overview-header{display:flex;align-items:center;justify-content:space-between}.progress-overview-header h3{margin:0;font-size:20px;font-weight:700;letter-spacing:-.3px}.progress-overview-pct{font-size:32px;font-weight:700;color:var(--accent);letter-spacing:-1px}.progress-overview-detail{font-size:13px;color:var(--muted);font-weight:500}.progress-chapter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:20px;margin-top:24px}.progress-chapter-item{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;padding:16px 8px;border-radius:var(--radius-lg);transition:background var(--transition)}.progress-chapter-item:hover{background:var(--accent-soft)}.progress-chapter-ring{position:relative;width:64px;height:64px}.progress-chapter-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-chapter-ring circle{transition:stroke-dasharray .5s ease}.ring-pct{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--text)}.progress-chapter-label{font-size:12px;font-weight:600;color:var(--text);text-align:center;line-height:1.3}.progress-chapter-sub{font-size:11px;color:var(--muted);font-weight:500}.comment-section{margin-top:40px;padding:28px;border-radius:var(--radius-lg)}.comment-title{margin:0 0 24px;font-size:18px;font-weight:700;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}.comment-compose{display:flex;gap:14px;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--border)}.comment-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--accent),#5ac8fa);color:#fff;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;text-transform:uppercase}.comment-input-wrap{flex:1;display:flex;flex-direction:column;gap:10px}.comment-input{width:100%;padding:14px 16px;border-radius:14px;border:1px solid var(--border-strong);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text);font-size:14px;font-family:inherit;resize:vertical;outline:none;transition:all var(--transition);line-height:1.5;min-height:80px}.comment-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0071e31a;background:#f5f6fcf2}.comment-input::placeholder{color:#c7c7cc}.comment-input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.comment-char-count{font-size:12px;color:var(--muted);font-weight:500}.btn-comment-submit{padding:8px 20px!important;font-size:13px!important;border-radius:10px!important}.comment-loading,.comment-empty{text-align:center;padding:32px 0;color:var(--muted);font-size:14px;font-weight:500}.comment-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}.comment-item{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--border);transition:background var(--transition)}.comment-item:last-child{border-bottom:none}.comment-item:hover{background:#0071e305;margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:12px}.comment-body{flex:1;min-width:0}.comment-meta{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}.comment-author{font-size:14px;font-weight:600;color:var(--text)}.comment-time{font-size:12px;color:var(--muted);font-weight:500}.comment-delete{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;padding:2px 6px;border-radius:6px;transition:all var(--transition);font-weight:500;opacity:0}.comment-item:hover .comment-delete{opacity:1}.comment-delete:hover{color:#ff3b30;background:#ff3b300f}.comment-content{font-size:14px;color:var(--text);line-height:1.6;word-break:break-word;white-space:pre-wrap}.comment-error{display:flex;align-items:center;gap:6px;margin-top:10px;padding:10px 14px;border-radius:10px;background:#ff3b300f;border:1px solid rgba(255,59,48,.15);color:#ff3b30;font-size:13px;font-weight:500;animation:shakeX .4s ease}.comment-error-icon{font-size:15px;flex-shrink:0}@keyframes shakeX{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}.modal-card{width:400px;max-width:90vw;padding:28px 32px;border-radius:18px;background:var(--glass-bg);border:1px solid var(--border);box-shadow:0 20px 60px #0000004d}.login-success{color:#28a745;font-size:13px;font-weight:500;padding:8px 12px;background:#28a74514;border-radius:10px;margin-bottom:12px}.theme-toggle{width:34px;height:34px;border-radius:50%;border:1px solid var(--border-strong);background:#00000008;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;line-height:1;transition:all .25s ease;flex-shrink:0}.theme-toggle:hover{background:var(--accent-soft);border-color:var(--accent);transform:scale(1.08)}[data-theme=dark] .theme-toggle{background:#ffffff0f}.nav-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#7c3aed);color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s,box-shadow .2s;flex-shrink:0}.nav-user-dropdown:hover .nav-avatar{transform:scale(1.08);box-shadow:0 0 0 3px #6366f140}.nav-user-panel{right:0;left:auto!important;transform:translateY(6px)!important;min-width:240px!important;padding:0!important;border-radius:var(--radius)}.nav-user-panel:before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}.nav-user-panel>*:first-child{border-radius:var(--radius) var(--radius) 0 0}.nav-user-panel>*:last-child{border-radius:0 0 var(--radius) var(--radius)}.nav-user-dropdown:hover>.nav-user-panel{transform:translateY(0)!important}.user-menu-header{display:flex;align-items:center;gap:12px;padding:16px 16px 12px}.user-menu-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#7c3aed);color:#fff;font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-menu-name{font-size:14px;font-weight:700;color:var(--text)}.user-menu-sid{font-size:12px;color:var(--muted);margin-top:1px}.user-menu-progress{padding:0 16px 12px}.user-menu-progress-label{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:6px}.user-menu-progress-label span{color:var(--accent);font-weight:700}.user-menu-progress-bar{height:5px;border-radius:3px;background:#0000000f;overflow:hidden}.user-menu-progress-bar span{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),#7c3aed);transition:width .4s ease}.user-menu-divider{height:1px;background:var(--border);margin:0}.user-menu-item{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;font-size:13.5px;font-weight:500;color:var(--text);transition:background .15s ease}.user-menu-item:hover{background:var(--accent-soft)}.user-menu-item span{font-size:15px;width:20px;text-align:center;flex-shrink:0}.user-menu-logout{color:#ff3b30}.user-menu-logout:hover{background:#ff3b300f}.profile-page{max-width:780px;margin:0 auto;padding:30px 0 60px}.profile-page-header{display:flex;align-items:center;gap:20px;padding:28px 32px;border-radius:18px;margin-bottom:24px}.profile-avatar-lg{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#7c3aed);color:#fff;font-weight:700;font-size:26px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-user-info{flex:1}.profile-name-lg{font-size:20px;font-weight:700;color:var(--text)}.profile-sid-lg{font-size:13px;color:var(--muted);margin-top:2px}.profile-summary{font-size:13px;color:var(--muted);margin-top:6px}.profile-tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--glass-bg);border-radius:12px;padding:4px;border:1px solid var(--border)}.profile-tab{flex:1;padding:10px 0;border:none;background:none;font-size:14px;font-weight:500;color:var(--muted);border-radius:10px;cursor:pointer;transition:all .2s}.profile-tab:hover{color:var(--text)}.profile-tab.active{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 2px 8px #6366f14d}.profile-content{padding:24px 28px;border-radius:18px;margin-bottom:20px}.profile-progress-grid{display:flex;flex-direction:column;gap:12px;margin-top:20px}.profile-progress-card{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:14px;border:1px solid var(--border);background:var(--glass-bg);cursor:pointer;transition:all .2s}.profile-progress-card:hover{border-color:var(--accent);transform:translate(4px)}.profile-progress-ring{width:52px;height:52px;position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}.profile-progress-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.profile-progress-ring span{position:relative;z-index:1}.profile-comment-list{list-style:none;padding:0;margin:0}.profile-comment-item{padding:14px 0;border-bottom:1px solid var(--border)}.profile-comment-item:last-child{border-bottom:none}.profile-comment-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-bottom:6px}.profile-comment-badge{background:#6366f11a;color:var(--accent);padding:2px 10px;border-radius:6px;font-weight:600;font-size:12px}.profile-comment-text{font-size:14px;color:var(--text);line-height:1.6;word-break:break-word;white-space:pre-wrap}.nav{transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease}.focus-mode .nav{transform:translateY(-100%);opacity:0;pointer-events:none}.focus-mode .sidebar{display:none}.focus-mode .layout{grid-template-columns:1fr}.focus-mode .container{max-width:800px;padding-top:16px}.focus-mode .content h2,.focus-mode .subtitle{text-align:center}.focus-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:200;animation:focusBarIn .4s cubic-bezier(.34,1.56,.64,1)}.focus-bar-inner{display:flex;align-items:center;gap:14px;padding:10px 20px;border-radius:980px;box-shadow:0 8px 40px #0000001f,0 2px 8px #0000000f}.focus-dots{display:flex;gap:6px;align-items:center}.focus-dot{width:8px;height:8px;border-radius:50%;border:none;padding:0;background:var(--border-strong);cursor:pointer;transition:all .25s cubic-bezier(.34,1.56,.64,1)}.focus-dot:hover{transform:scale(1.4)}.focus-dot.active{background:var(--accent);width:22px;border-radius:4px;box-shadow:0 0 8px #0071e34d}.focus-dot.done{background:#34c759}.focus-dot.done.active{background:#34c759;box-shadow:0 0 8px #34c7594d}.focus-sep{width:1px;height:16px;background:var(--border);flex-shrink:0}.focus-title{font-size:13px;font-weight:500;color:var(--text);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.focus-keys{width:26px;height:26px;border-radius:50%;border:1px solid var(--border-strong);background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);font-family:inherit}.focus-keys:hover{border-color:var(--accent);color:var(--accent)}.focus-exit{padding:6px 16px;border-radius:980px;border:none;background:var(--accent);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition);font-family:inherit}.focus-exit:hover{background:var(--accent-hover)}@keyframes focusBarIn{0%{opacity:0;transform:translate(-50%) translateY(24px) scale(.92)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}[data-theme=dark] .focus-bar-inner{box-shadow:0 8px 40px #0006,0 2px 8px #0003}.shortcuts-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.shortcuts-panel{width:90%;max-width:380px;padding:36px;border-radius:var(--radius-xl);animation:slideDown .3s cubic-bezier(.34,1.56,.64,1)}.shortcuts-panel h3{margin:0 0 24px;font-size:20px;font-weight:700;letter-spacing:-.5px;text-align:center}.shortcuts-grid{display:flex;flex-direction:column;gap:8px}.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:8px 4px;border-bottom:1px solid var(--border)}.shortcut-row:last-child{border-bottom:none}.shortcut-row kbd{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:4px 10px;border-radius:8px;background:var(--glass-bg);border:1px solid var(--border-strong);font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;font-weight:600;color:var(--text);box-shadow:0 1px 3px #0000000f}.shortcut-row span{font-size:14px;color:var(--muted);font-weight:500}.section-time{margin-left:auto;padding:2px 10px;border-radius:980px;background:#6366f114;color:var(--accent);font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.02em}.section-card summary{display:flex;align-items:center;gap:8px}.section-card summary h3{flex:0 1 auto}.hero-time{font-size:13px;color:#fff9;font-weight:500;margin-top:4px;letter-spacing:.02em}.hero-card.light .hero-time{color:var(--muted)}.user-menu-streak{display:flex;align-items:center;gap:6px;padding:8px 12px;margin:4px 0;border-radius:10px;background:linear-gradient(135deg,#ff95001a,#ff3b3014);font-size:13px;font-weight:500;color:var(--text)}.user-menu-streak strong{color:#ff9500;font-weight:700}.streak-flame{font-size:16px}.badge-section{margin-top:28px}.badge-section h3{margin:0 0 16px;font-size:16px;font-weight:700}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.badge-card{display:flex;flex-direction:column;align-items:center;padding:20px 12px;border-radius:var(--radius);background:var(--glass-bg);border:1px solid var(--border);text-align:center;opacity:.4;filter:grayscale(1);transition:all .3s ease}.badge-card.earned{opacity:1;filter:none;border-color:#6366f133;background:linear-gradient(135deg,#6366f10f,#a855f70a)}.badge-card.earned:hover{transform:translateY(-2px);box-shadow:0 4px 16px #6366f11f}.badge-icon{font-size:32px;margin-bottom:8px}.badge-name{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px}.badge-desc{font-size:11px;color:var(--muted);line-height:1.4}.badge-toast{position:fixed;top:80px;right:24px;z-index:10000;display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:16px;background:var(--glass-bg);border:1px solid rgba(99,102,241,.2);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 8px 32px #6366f126;animation:badgeToastIn .5s cubic-bezier(.34,1.56,.64,1),badgeToastOut .4s ease 3s forwards}.badge-toast-icon{font-size:28px}.badge-toast-title{font-size:11px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.badge-toast-name{font-size:15px;font-weight:700;color:var(--text)}@keyframes badgeToastIn{0%{opacity:0;transform:translate(40px) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes badgeToastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}.onboard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.onboard-panel{width:90%;max-width:420px;padding:40px 36px 32px;border-radius:var(--radius-xl);text-align:center;animation:slideDown .4s cubic-bezier(.34,1.56,.64,1)}.onboard-icon{font-size:48px;margin-bottom:16px}.onboard-panel h3{margin:0 0 12px;font-size:22px;font-weight:700;letter-spacing:-.5px}.onboard-panel p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 24px}.onboard-panel kbd{display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;border-radius:5px;background:var(--glass-bg);border:1px solid var(--border-strong);font-family:SF Mono,Menlo,monospace;font-size:11px;font-weight:600;margin:0 1px}.onboard-actions{display:flex;gap:10px;justify-content:center}.onboard-actions .btn{min-width:100px;justify-content:center}.onboard-skip{display:block;margin:16px auto 0;padding:4px 12px;background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;font-family:inherit}.onboard-skip:hover{color:var(--text)}.topology-wrap{margin:20px 0;padding:20px;border-radius:var(--radius);background:var(--glass-bg);border:1px solid var(--border);overflow:hidden}.topology-svg{width:100%;height:auto;max-height:340px;display:block;margin:0 auto}.topo-node rect,.topo-node circle,.topo-node polygon,.topo-node ellipse{fill:var(--glass-bg);stroke:var(--text);stroke-width:2;transition:all .2s}.topo-node line{stroke:var(--text);stroke-width:1.5}.topo-switch rect{fill:#e0edff;stroke:#4a90d9}.topo-router circle{fill:#e8f5e9;stroke:#43a047}.topo-pc rect{fill:#f3f0ff;stroke:#7c4dff}.topo-server rect{fill:#fce4ec;stroke:#e91e63}.topo-cloud{fill:#e3f2fd;stroke:#90caf9;stroke-width:2}.topo-ap polygon{fill:#fff3e0;stroke:#ff9800}.topo-wave{stroke:#ff9800;stroke-width:2}.topo-led{fill:#4caf50}[data-theme=dark] .topo-switch rect{fill:#4a90d926;stroke:#5ea3e8}[data-theme=dark] .topo-router circle{fill:#43a04726;stroke:#66bb6a}[data-theme=dark] .topo-pc rect{fill:#7c4dff1f;stroke:#b388ff}[data-theme=dark] .topo-server rect{fill:#e91e631f;stroke:#f06292}[data-theme=dark] .topo-cloud{fill:#90caf91a;stroke:#90caf966}[data-theme=dark] .topo-ap polygon{fill:#ff98001f;stroke:#ffb74d}[data-theme=dark] .topo-node line{stroke:var(--text)}.topo-label{text-anchor:middle;font-size:12px;font-weight:700;fill:var(--text);font-family:inherit}.topo-ip{text-anchor:middle;font-size:9.5px;font-weight:500;fill:var(--muted);font-family:SF Mono,Menlo,monospace}.topo-link line{stroke:var(--border-strong);stroke-width:2}.topo-link.trunk line{stroke:#4a90d9;stroke-width:3;stroke-dasharray:8 4}.topo-link-label{text-anchor:middle;font-size:9px;font-weight:600;fill:var(--muted);font-family:inherit}.topo-annotation{font-size:10px;fill:var(--muted);font-family:inherit;font-weight:500}.topo-annotation.highlight{fill:var(--accent);font-weight:700;font-size:11px}.topo-active rect,.topo-active circle,.topo-active polygon,.topo-active ellipse{filter:drop-shadow(0 0 6px currentColor);transition:filter .3s}.topo-link-active line{transition:stroke .3s,stroke-width .3s}.topo-anim-controls{margin-top:12px;display:flex;align-items:center;justify-content:center}.topo-play-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:999px;border:none;background:linear-gradient(135deg,var(--accent),#5856d6);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 12px #0071e34d}.topo-play-btn:hover{transform:translateY(-1px);box-shadow:0 4px 20px #0071e366}.topo-play-btn:active{transform:scale(.97)}.topo-play-btn svg{flex-shrink:0}.topo-anim-playing{display:flex;align-items:center;gap:12px;width:100%}.topo-stop-btn{width:32px;height:32px;border-radius:50%;border:none;background:#ff3b301f;color:#ff3b30;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s}.topo-stop-btn:hover{background:#ff3b3033}.topo-anim-progress{flex:1;min-width:0}.topo-anim-dots{display:flex;gap:6px;margin-bottom:6px;flex-wrap:wrap}.topo-anim-dot{width:8px;height:8px;border-radius:50%;background:var(--border-strong);transition:all .3s}.topo-anim-dot.active{width:20px;border-radius:4px;background:var(--dot-color, var(--accent));box-shadow:0 0 8px var(--dot-color, var(--accent))}.topo-anim-dot.done{background:var(--dot-color, var(--accent));opacity:.5}.topo-anim-label{font-size:12px;font-weight:600;line-height:1.4;animation:animLabelIn .3s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topo-blocked-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#ff3b30;color:#fff;font-size:10px;font-weight:700;margin-right:6px;vertical-align:middle}.topo-anim-done{color:#34c759!important}@keyframes animLabelIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.cmd-block{margin:20px 0}.cmd-block>h4{font-size:15px;font-weight:700;margin:0 0 12px;display:flex;align-items:center;gap:6px}.cmd-block>h4:before{content:"";display:inline-block;width:4px;height:16px;border-radius:2px;background:var(--accent)}.cmd-card{margin-bottom:14px;border-radius:var(--radius);background:var(--glass-bg);border:1px solid var(--border);overflow:hidden}.cmd-header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);background:#6366f108}.cmd-step-num{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cmd-step-title{font-size:14px;font-weight:600;color:var(--text)}.cmd-why{padding:10px 16px;font-size:13px;line-height:1.6;color:var(--muted);background:#ff98000a;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:8px}.cmd-why-tag{flex-shrink:0;padding:1px 8px;border-radius:4px;background:#ff98001f;color:#f59e0b;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-top:1px}.cmd-code{margin:0;padding:14px 16px;font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.7;background:#1e1e2e;color:#cdd6f4;overflow-x:auto}.cmd-line{white-space:pre}.cmd-prompt{color:#a6e3a1;font-weight:600}.cmd-text{color:#f5e0dc}.cmd-output{color:#6c7086;font-style:italic}.ai-fab{position:fixed;bottom:28px;right:28px;z-index:300;width:56px;height:56px;border-radius:50%;border:none;background:radial-gradient(circle at 40% 35%,#1a2a4a,#0d1117);color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px #6366f159,0 0 0 2px #5ac8fa40;transition:all .3s cubic-bezier(.34,1.56,.64,1);animation:aiFabIn .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.ai-fab:hover{transform:scale(1.1);box-shadow:0 8px 32px #6366f173}.ai-fab-icon{font-style:normal;font-weight:700}.ai-fab .net-avatar{filter:drop-shadow(0 2px 6px rgba(99,102,241,.4))}.focus-mode .ai-fab{bottom:80px}@keyframes aiFabIn{0%{opacity:0;transform:scale(.5) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.net-avatar{transition:transform .3s}.net-avatar:hover{transform:scale(1.08)}.net-avatar .av-eye{transition:r .15s}.net-avatar .av-antenna-dot{animation:avPulse 2s ease-in-out infinite}.net-avatar.thinking{animation:avBob .8s ease-in-out infinite}.net-avatar.thinking .av-signal{animation:avSignal .6s ease-in-out infinite}.net-avatar.thinking .av-thinking-mouth circle{animation:avThinkDot 1.2s ease-in-out infinite}.net-avatar.thinking .av-thinking-mouth circle:nth-child(2){animation-delay:.2s}.net-avatar.thinking .av-thinking-mouth circle:nth-child(3){animation-delay:.4s}.net-avatar.speaking .av-speak-mouth{animation:avSpeak .35s ease-in-out infinite alternate}@keyframes avPulse{0%,to{opacity:.7;r:2.5}50%{opacity:1;r:3.5}}@keyframes avBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes avSignal{0%,to{opacity:.3}50%{opacity:1}}@keyframes avThinkDot{0%,to{opacity:.3}50%{opacity:1}}@keyframes avSpeak{0%{ry:3}to{ry:6}}.ai-panel{position:fixed;bottom:24px;right:24px;z-index:301;width:400px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 120px);border-radius:20px;display:flex;flex-direction:column;box-shadow:0 12px 48px #00000026,0 4px 16px #00000014;animation:aiPanelIn .35s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes aiPanelIn{0%{opacity:0;transform:translateY(24px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.ai-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#6366f10f,#a855f70a);flex-shrink:0}.ai-header-info{display:flex;align-items:center;gap:10px}.ai-header-icon{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center}.ai-header-info>.net-avatar{flex-shrink:0}.ai-header-title{font-size:15px;font-weight:700;color:var(--text)}.ai-header-sub{font-size:11px;color:var(--muted);margin-top:1px}.ai-close{width:30px;height:30px;border-radius:50%;border:none;background:transparent;color:var(--muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.ai-close:hover{background:var(--glass-bg);color:var(--text)}.ai-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.ai-welcome{text-align:center;padding:24px 8px}.ai-welcome-icon{font-size:40px;font-weight:700;background:linear-gradient(135deg,#6366f1,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px}.ai-welcome-avatar{display:flex;justify-content:center;margin-bottom:12px}.ai-welcome-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:6px}.ai-welcome-sub{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:20px}.ai-quick-asks{display:flex;flex-direction:column;gap:8px}.ai-quick-btn{padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--glass-bg);color:var(--text);font-size:13px;font-weight:500;text-align:left;cursor:pointer;transition:all var(--transition);font-family:inherit}.ai-quick-btn:hover{border-color:var(--accent);background:#6366f10d}.ai-msg{display:flex;gap:8px;align-items:flex-start}.ai-msg-user{justify-content:flex-end}.ai-msg-avatar{width:28px;height:28px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-msg-bubble{max-width:85%;padding:10px 14px;border-radius:16px;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word}.ai-msg-bubble.ai-md{white-space:normal}.ai-msg-user .ai-msg-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.ai-msg-assistant .ai-msg-bubble{background:var(--glass-bg);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.ai-md p{margin:0 0 8px}.ai-md p:last-child{margin-bottom:0}.ai-md strong{font-weight:700}.ai-md em{font-style:italic}.ai-md ul,.ai-md ol{margin:6px 0;padding-left:20px}.ai-md li{margin-bottom:3px}.ai-md li::marker{color:var(--accent)}.ai-md h1,.ai-md h2,.ai-md h3,.ai-md h4{font-weight:700;margin:10px 0 6px;line-height:1.3}.ai-md h1{font-size:16px}.ai-md h2{font-size:15px}.ai-md h3{font-size:14px}.ai-md h4{font-size:13px}.ai-md code{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12px;padding:1.5px 5px;border-radius:5px;background:#0000000f;color:#d63384}[data-theme=dark] .ai-md code{background:#ffffff14;color:#f0a8c8}.ai-md pre{margin:8px 0;padding:10px 12px;border-radius:10px;background:#1e1e2e;color:#cdd6f4;overflow-x:auto;font-size:12px;line-height:1.6}.ai-md pre code{background:none;color:inherit;padding:0;font-size:inherit}.ai-md blockquote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--accent);color:var(--muted);font-style:italic}.ai-md table{width:100%;border-collapse:collapse;margin:8px 0;font-size:12px}.ai-md th,.ai-md td{padding:5px 8px;border:1px solid var(--border);text-align:left}.ai-md th{background:var(--accent-soft);font-weight:600}.ai-md hr{border:none;border-top:1px solid var(--border);margin:10px 0}.ai-md a{color:var(--accent);text-decoration:underline}.ai-typing{display:flex;gap:5px;padding:14px 18px}.ai-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:aiDot 1.4s infinite both}.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}@keyframes aiDot{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.ai-error{text-align:center;font-size:12px;color:#ef4444;padding:6px 12px;background:#ef44440f;border-radius:8px}.ai-input-bar{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--border);flex-shrink:0;background:var(--card-bg)}.ai-input{flex:1;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--glass-bg);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color var(--transition)}.ai-input:focus{border-color:var(--accent)}.ai-input::placeholder{color:var(--muted)}.ai-send{width:40px;height:40px;border-radius:12px;border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition);flex-shrink:0}.ai-send:hover{background:var(--accent-hover)}.ai-send:disabled{opacity:.4;cursor:not-allowed}[data-theme=dark] .ai-panel{box-shadow:0 12px 48px #0006,0 4px 16px #0003}@media (max-width: 640px){.nav-inner{padding:0 14px;height:48px;gap:10px}.logo{font-size:16px}.nav-menu{display:none}.nav-actions{gap:6px}.nav-actions .btn{font-size:12px;padding:6px 12px}.theme-toggle{width:32px;height:32px;font-size:14px}.nav-avatar{width:30px;height:30px;font-size:12px}.nav-user-panel{right:-8px;min-width:220px}.container{padding:16px 12px 48px}.layout{gap:16px}.hero.hero-blur{padding:32px 16px}.hero-title.gradient-text{font-size:26px}.hero-subtitle{font-size:13px}.hero-grid{grid-template-columns:1fr;gap:14px;margin-top:20px}.hero-card{padding:22px}.hero-title-xl{font-size:20px}.hero-sub{font-size:13px}.hero-time{font-size:12px}.pill{font-size:11px;padding:3px 10px}.home-stats{flex-wrap:wrap;font-size:12px;padding:10px 14px;gap:4px;justify-content:center}.section-card{padding:16px;margin-bottom:12px;border-radius:14px}.section-card h3{font-size:15px}.section-card h4{font-size:12px;margin:16px 0 6px}.section-card li{font-size:13px}.section-time{font-size:11px;padding:2px 8px}details[open] .collapse{padding-top:8px}.topology-wrap{padding:12px;margin:14px 0;overflow-x:auto}.topology-svg{min-width:420px}.cmd-card{margin-bottom:10px}.cmd-header{padding:10px 12px}.cmd-step-title{font-size:13px}.cmd-why{padding:8px 12px;font-size:12px}.cmd-code{padding:10px 12px;font-size:12px}.section-nav{flex-direction:column;gap:8px}.section-nav-btn{padding:12px 14px;max-width:100%;width:100%}.section-nav-btn.next{margin-left:0}.section-nav-name{font-size:13px}.cli-launcher{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.cli-terminal{margin:12px 0}.cli-screen{min-height:160px;max-height:320px;padding:12px;font-size:12px}.cli-input{font-size:12px}.cli-statusbar{font-size:10px;padding:5px 10px}.cli-status-step{font-size:10px}.checklist-block{padding:14px}.check-label{font-size:13px}.comment-section{padding:18px 14px}.comment-compose{flex-direction:column;gap:10px}.comment-compose .comment-avatar{display:none}.comment-input,.comment-content{font-size:13px}.profile-page-header{flex-direction:column;text-align:center;padding:24px 16px}.profile-avatar-lg{width:56px;height:56px;font-size:22px}.profile-name-lg{font-size:20px}.profile-tabs{gap:0;overflow-x:auto;padding:0}.profile-tab{font-size:13px;padding:10px 14px;white-space:nowrap}.profile-content{padding:18px 14px}.profile-progress-grid{grid-template-columns:1fr}.badge-grid{grid-template-columns:repeat(2,1fr);gap:10px}.badge-card{padding:16px 10px}.badge-icon{font-size:26px}.badge-name{font-size:12px}.badge-desc{font-size:10px}.login-card{padding:28px 20px}.focus-bar{bottom:16px}.focus-bar-inner{padding:8px 14px;gap:10px}.focus-dot{width:6px;height:6px}.focus-dot.active{width:16px}.focus-title{font-size:12px;max-width:140px}.focus-exit{font-size:11px;padding:5px 12px}.ai-fab{width:48px;height:48px;font-size:20px;bottom:calc(20px + env(safe-area-inset-bottom));right:16px}.ai-panel{bottom:0;right:0;left:0;width:100%;max-width:100%;height:80vh;max-height:80vh;border-radius:20px 20px 0 0}.ai-header{padding:12px 14px}.ai-body{padding:14px}.ai-quick-btn{font-size:12px;padding:8px 12px}.ai-input-bar{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.shortcuts-panel{padding:28px 20px;max-width:92vw}.onboard-panel{padding:32px 20px 24px;max-width:92vw}.onboard-panel h3{font-size:18px}.onboard-panel p{font-size:13px}.completion-toast{padding:16px 20px;max-width:92vw;left:50%}.focus-bar{bottom:calc(16px + env(safe-area-inset-bottom))}button,a,.checklist-item,.nav-dropdown-item,.mobile-drawer-item{min-height:44px}}.error-boundary{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:24px;background:var(--bg)}.error-boundary-card{text-align:center;max-width:420px;padding:48px 32px;border-radius:20px;background:var(--card);border:1px solid var(--border);box-shadow:0 8px 32px #00000014}.error-boundary-icon{font-size:48px;margin-bottom:16px}.error-boundary-card h2{font-size:20px;font-weight:700;margin:0 0 8px}.error-boundary-msg{font-size:13px;color:var(--muted);margin:0 0 24px;word-break:break-word}.error-boundary-actions{display:flex;gap:10px;justify-content:center}.lazy-loading{display:flex;justify-content:center;align-items:center;min-height:40vh;width:100%}.lazy-spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:lazy-spin .7s linear infinite}@keyframes lazy-spin{to{transform:rotate(360deg)}}.subnet-practice{max-width:820px;margin:0 auto;padding:32px 0 64px}.subnet-header{margin-bottom:28px}.subnet-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.subnet-title-row h2{font-size:26px;font-weight:700;margin:0}.subnet-stats{display:flex;gap:12px}.subnet-stat{font-size:13px;font-weight:600;padding:4px 10px;border-radius:8px;background:var(--card);border:1px solid var(--border)}.subnet-stat.correct{color:#34c759;border-color:#34c7594d;background:#34c75914}.subnet-subtitle{color:var(--muted);font-size:14px;margin:6px 0 0}.subnet-controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.subnet-control-group{display:flex;align-items:center;gap:8px}.subnet-control-label{font-size:13px;font-weight:600;color:var(--muted)}.subnet-toggle{display:flex;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--card)}.subnet-toggle button{padding:6px 14px;font-size:13px;font-weight:500;border:none;background:transparent;color:var(--text);cursor:pointer;transition:all .2s;min-height:unset}.subnet-toggle button:not(:last-child){border-right:1px solid var(--border)}.subnet-toggle button.active{background:var(--accent);color:#fff}.subnet-toggle button:hover:not(.active){background:var(--hover)}.subnet-theory-btn{margin-left:auto;font-size:13px!important}.subnet-theory{padding:24px;border-radius:16px;margin-bottom:24px}.subnet-theory h4{margin:0 0 16px;font-size:16px;font-weight:700}.subnet-theory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.subnet-theory-grid>div{font-size:13px;line-height:1.6}.subnet-theory-grid strong{display:block;font-size:14px;margin-bottom:4px;color:var(--accent)}.subnet-theory-grid p{margin:2px 0;color:var(--muted)}.subnet-theory-grid code{display:block;font-size:12px;color:var(--text);background:var(--hover);padding:2px 6px;border-radius:4px;margin-top:3px;font-family:SF Mono,Fira Code,monospace}.subnet-ref-table{width:100%;font-size:12px;border-collapse:collapse;margin-top:6px}.subnet-ref-table th,.subnet-ref-table td{padding:3px 6px;text-align:left;border-bottom:1px solid var(--border)}.subnet-ref-table th{font-weight:600;color:var(--muted);font-size:11px;text-transform:uppercase}.subnet-question{border-radius:16px;padding:28px;margin-bottom:24px}.subnet-q-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.subnet-q-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:6px;background:#007aff1a;color:var(--accent)}.subnet-q-diff{font-size:12px;color:var(--muted)}.subnet-q-prompt{font-size:16px;line-height:1.7;margin-bottom:20px}.subnet-q-prompt code{font-size:17px;font-weight:700;color:var(--accent);background:#007aff14;padding:2px 8px;border-radius:6px}.subnet-bar{display:flex;height:32px;border-radius:8px;overflow:hidden;margin-bottom:24px;box-shadow:0 2px 8px #00000014}.subnet-bar-seg{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600;transition:all .4s ease;position:relative;min-width:20px}.subnet-bar-seg span{text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.subnet-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.subnet-field{display:flex;flex-direction:column;gap:5px}.subnet-field label{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}.subnet-field-hint{font-size:11px;font-weight:400;color:var(--muted)}.subnet-field-input-row{display:flex;align-items:center;gap:8px;position:relative}.subnet-field-input-row input{flex:1;padding:8px 12px;border-radius:8px;border:1.5px solid var(--border);background:var(--card);color:var(--text);font-size:14px;font-family:SF Mono,Fira Code,monospace;transition:border-color .2s;min-height:unset}.subnet-field-input-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #007aff1f}.subnet-field.correct .subnet-field-input-row input{border-color:#34c759;background:#34c7590d}.subnet-field.wrong .subnet-field-input-row input{border-color:#ff3b30;background:#ff3b300d}.subnet-field-icon{font-size:18px;font-weight:700;flex-shrink:0}.subnet-field-icon.correct{color:#34c759}.subnet-field-icon.wrong{color:#ff3b30}.subnet-field-answer{font-size:12px;color:#ff3b30;padding:4px 0}.subnet-field-answer code{font-weight:600;color:var(--text);background:var(--hover);padding:1px 6px;border-radius:4px;margin-left:4px}.subnet-split-group{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--border)}.subnet-split-label{grid-column:1 / -1;font-size:14px;font-weight:700;padding-left:10px;margin-bottom:2px}.subnet-actions{display:flex;align-items:center;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.subnet-submit:disabled{opacity:.5;cursor:not-allowed}.subnet-result{font-size:15px;font-weight:700;padding:6px 16px;border-radius:8px}.subnet-result.correct{color:#34c759;background:#34c7591a}.subnet-result.wrong{color:#ff3b30;background:#ff3b301a}.range-page{padding-top:16px}.range-page-header{text-align:center;margin-bottom:32px}.range-page-header h1{font-size:28px;font-weight:700;margin:0 0 6px}.range-page-header p{color:var(--muted);font-size:14px;margin:0}.range-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:32px}.range-tab{padding:8px 20px;border-radius:10px;border:1.5px solid var(--border);background:var(--card);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;min-height:unset}.range-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.range-tab:hover:not(.active){border-color:var(--accent);color:var(--accent)}.range-tab-soon{font-size:10px;font-weight:600;padding:1px 5px;border-radius:4px;background:#ff950026;color:#ff9500;margin-left:6px;vertical-align:middle}.troubleshoot{max-width:820px;margin:0 auto;padding:32px 0 64px}.ts-scenario{border-radius:16px;padding:28px}.ts-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.ts-header h3{margin:0;font-size:18px;font-weight:700}.ts-diff{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px}.ts-diff-easy{background:#34c7591f;color:#34c759}.ts-diff-medium{background:#ff95001f;color:#ff9500}.ts-diff-hard{background:#ff3b301f;color:#ff3b30}.ts-desc{font-size:14px;line-height:1.7;color:var(--text);margin-bottom:12px}.ts-symptom{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border-radius:8px;background:#ff3b300f;border:1px solid rgba(255,59,48,.15);font-size:13px;margin-bottom:20px}.ts-symptom-icon{font-size:16px;flex-shrink:0}.ts-topo{margin-bottom:20px;border-radius:12px;background:var(--hover);padding:12px;overflow-x:auto}.ts-topo-svg{width:100%;max-height:260px}.ts-device:hover{opacity:.85}@keyframes ts-pulse-anim{0%,to{opacity:1}50%{opacity:.3}}.ts-pulse{animation:ts-pulse-anim 1.2s ease-in-out infinite}.ts-config{padding:16px;border-radius:10px;margin-bottom:20px}.ts-config-title{font-size:13px;font-weight:700;margin-bottom:8px;color:var(--accent)}.ts-config-pre{font-family:SF Mono,Fira Code,monospace;font-size:12px;line-height:1.6;margin:0;white-space:pre-wrap;color:var(--text)}.ts-options{margin-bottom:16px}.ts-options-title{font-size:14px;font-weight:600;margin-bottom:12px}.ts-option{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;margin-bottom:8px;border:1.5px solid var(--border);cursor:pointer;transition:all .2s;font-size:14px}.ts-option:hover{border-color:var(--accent);background:#007aff0a}.ts-option.chosen{border-color:var(--accent);background:#007aff0f}.ts-option.correct{border-color:#34c759;background:#34c75914}.ts-option.wrong{border-color:#ff3b30;background:#ff3b300f}.ts-option input[type=radio]{margin-top:2px;flex-shrink:0}.ts-option-letter{font-weight:700;font-size:13px;min-width:22px;height:22px;line-height:22px;text-align:center;border-radius:6px;background:var(--hover);flex-shrink:0}.ts-option.correct .ts-option-letter{background:#34c759;color:#fff}.ts-option.wrong .ts-option-letter{background:#ff3b30;color:#fff}.ts-explanation{padding:16px 20px;border-radius:10px;margin-bottom:8px;font-size:13px;line-height:1.7}.ts-explanation.correct{background:#34c75914;border:1px solid rgba(52,199,89,.2)}.ts-explanation.wrong{background:#ff3b300f;border:1px solid rgba(255,59,48,.15)}.ts-explanation-title{font-weight:700;font-size:15px;margin-bottom:6px}.ts-explanation.correct .ts-explanation-title{color:#34c759}.ts-explanation.wrong .ts-explanation-title{color:#ff3b30}.ts-explanation p{margin:0}.protocol-analysis{max-width:820px;margin:0 auto;padding:32px 0 64px}.pa-card{border-radius:16px;padding:28px}.pa-packet{margin:20px 0;display:flex;flex-direction:column;gap:2px}.pa-layer{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.pa-layer-label{width:90px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:10px 6px;border-left:4px solid;background:var(--hover)}.pa-layer-name{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:600}.pa-layer-proto{font-size:12px;font-weight:700}.pa-fields{flex:1;display:flex;flex-wrap:wrap}.pa-field{padding:8px 12px;border-bottom:3px solid;flex:1;min-width:100px;border-right:1px solid var(--border)}.pa-field:last-child{border-right:none}.pa-field.quiz{background:#007aff0a}.pa-field-name{font-size:10px;color:var(--muted);font-weight:600;text-transform:uppercase;margin-bottom:2px}.pa-field-value{font-size:13px;font-weight:600;font-family:SF Mono,Fira Code,monospace;word-break:break-all}.pa-field-bits{font-size:9px;color:var(--muted);margin-top:2px}.pa-questions{margin-top:20px}.wrong-book{max-width:820px;margin:0 auto;padding:32px 0 64px}.wrong-book-empty{text-align:center;padding:64px 24px;border-radius:16px}.wrong-book-empty-icon{font-size:48px;margin-bottom:12px}.wrong-book-empty p{color:var(--muted);font-size:15px;margin:0}.wrong-book-list{display:flex;flex-direction:column;gap:12px}.wrong-book-card{padding:20px;border-radius:14px}.wrong-book-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.wrong-book-type{font-size:11px;font-weight:600;padding:2px 8px;border-radius:5px;border:1px solid}.wrong-book-time{font-size:11px;color:var(--muted);margin-left:auto}.wrong-book-remove{font-size:14px;color:var(--muted);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:4px;min-height:unset;transition:all .15s}.wrong-book-remove:hover{color:#ff3b30;background:#ff3b3014}.wrong-book-title{font-size:15px;font-weight:700;margin-bottom:4px}.wrong-book-q{font-size:13px;color:var(--muted);margin-bottom:12px;line-height:1.5}.wrong-book-answers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wrong-book-answer{padding:10px 12px;border-radius:8px;font-size:13px}.wrong-book-answer.wrong{background:#ff3b300f;border:1px solid rgba(255,59,48,.15)}.wrong-book-answer.correct{background:#34c7590f;border:1px solid rgba(52,199,89,.15)}.wrong-book-label{display:block;font-size:11px;font-weight:600;margin-bottom:4px}.wrong-book-answer.wrong .wrong-book-label{color:#ff3b30}.wrong-book-answer.correct .wrong-book-label{color:#34c759}.wrong-book-answer code{font-family:SF Mono,Fira Code,monospace;font-size:12px;word-break:break-all}@media (max-width: 640px){.subnet-practice,.troubleshoot,.protocol-analysis{padding:16px 0 48px}.subnet-title-row{flex-direction:column;align-items:flex-start}.subnet-title-row h2{font-size:22px}.subnet-controls{flex-direction:column;align-items:flex-start}.subnet-theory-btn{margin-left:0}.subnet-theory-grid,.subnet-fields,.subnet-split-group{grid-template-columns:1fr}.subnet-question,.ts-scenario,.pa-card{padding:20px 16px}.range-tabs{flex-wrap:wrap}.ts-topo{padding:8px}.pa-layer{flex-direction:column}.pa-layer-label{width:100%;flex-direction:row;gap:8px;padding:8px 12px;border-left-width:3px}.pa-fields{flex-direction:column}.pa-field{border-right:none;border-bottom-width:2px}.wrong-book{padding:16px 0 48px}.wrong-book-answers{grid-template-columns:1fr}}.app-toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:12px;font-size:14px;font-weight:500;z-index:10000;cursor:pointer;animation:toastIn .3s ease;box-shadow:0 8px 32px #0000002e;max-width:90vw}.app-toast-error{background:#ff3b30;color:#fff}.app-toast-info{background:var(--card);color:var(--text);border:1px solid var(--border)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}
