@import "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;0,14..32,800;0,14..32,900&family=JetBrains+Mono:wght@400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f4f6fb;--bg2:#eceef5;--surface:#fff;--surface2:#f8fafc;--surface3:#f1f5f9;--border:#e2e8f0;--border2:#c8d0e0;--accent:#4f46e5;--accent-h:#3d35c4;--accent-dim:#eef2ff;--accent-mid:#c7d2fe;--green:#059669;--green-dim:#ecfdf5;--green-mid:#a7f3d0;--red:#dc2626;--red-dim:#fef2f2;--red-mid:#fecaca;--amber:#d97706;--amber-dim:#fffbeb;--amber-mid:#fde68a;--purple:#7c3aed;--purple-dim:#f5f3ff;--purple-mid:#ddd6fe;--cyan:#0891b2;--cyan-dim:#ecfeff;--cyan-mid:#a5f3fc;--blue:#2563eb;--blue-dim:#eff6ff;--blue-mid:#bfdbfe;--t1:#0f172a;--t2:#1e293b;--t3:#475569;--t4:#94a3b8;--t5:#cbd5e1;--r-sm:6px;--r:8px;--r-lg:12px;--r-xl:16px;--r-2xl:20px;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--mono:"JetBrains Mono", "SF Mono", Consolas, monospace;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 3px #0f172a12, 0 1px 2px #0f172a0a;--shadow:0 4px 12px #0f172a14, 0 1px 3px #0f172a0a;--shadow-md:0 8px 24px #0f172a1a, 0 2px 6px #0f172a0d;--shadow-lg:0 20px 48px #0f172a1f, 0 4px 12px #0f172a0f;--shadow-xl:0 32px 64px #0f172a29, 0 8px 24px #0f172a14;--sb-bg:#fff;--sb-border:#e2e8f0;--sb-active-bg:#eef2ff;--sb-active-color:#4f46e5;--sb-hover-bg:#f4f6fb;--sb-text:#475569;--sb-label:#b0bbc8}[data-theme=dark]{--bg:#0c1120;--bg2:#111827;--surface:#162030;--surface2:#1c2b3f;--surface3:#22344a;--border:#283650;--border2:#344d6b;--accent:#818cf8;--accent-h:#6366f1;--accent-dim:#1e1b4b;--accent-mid:#3730a3;--green:#34d399;--green-dim:#022c22;--green-mid:#064e3b;--red:#f87171;--red-dim:#2d0a0a;--red-mid:#7f1d1d;--amber:#fbbf24;--amber-dim:#2d1a00;--amber-mid:#78350f;--purple:#a78bfa;--purple-dim:#2e1065;--purple-mid:#4c1d95;--cyan:#22d3ee;--cyan-dim:#083344;--cyan-mid:#0e7490;--blue:#60a5fa;--blue-dim:#1e3a5f;--blue-mid:#1d4ed8;--t1:#e8edf5;--t2:#a8b8cc;--t3:#6a80a0;--t4:#3f5474;--t5:#253347;--shadow-xs:0 1px 2px #00000080;--shadow-sm:0 2px 4px #00000080, 0 1px 2px #0006;--shadow:0 4px 16px #00000080, 0 1px 4px #0006;--shadow-md:0 8px 32px #0009, 0 2px 8px #0006;--shadow-lg:0 20px 60px #000000b3, 0 4px 16px #00000080;--shadow-xl:0 32px 80px #000c, 0 8px 24px #00000080;--sb-bg:#0f1a2e;--sb-border:#1e2d44;--sb-active-bg:#818cf81f;--sb-active-color:#818cf8;--sb-hover-bg:#ffffff0a;--sb-text:#6a80a0;--sb-label:#283650}html,body,#root,.card,.sidebar,.main,.topbar,button,input,textarea,select,th,td,.nav-item,.btn,.badge{transition:background-color .2s,color .18s,border-color .18s,box-shadow .18s}html,body,#root{background:var(--bg);height:100%;color:var(--t1);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px}button{cursor:pointer;font-family:var(--font)}input,textarea,select{font-family:var(--font)}a{color:inherit;text-decoration:none}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}.layout{height:100vh;display:flex;overflow:hidden}.main{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.content{flex:1;padding:20px 24px}.sidebar{background:var(--sb-bg);border-right:1px solid var(--sb-border);flex-direction:column;flex-shrink:0;width:232px;transition:background .2s,border-color .2s;display:flex}.sb-head{border-bottom:1px solid var(--sb-border);padding:14px 12px 12px}.sb-logo-wrap{background:#0b1220;border-radius:10px;justify-content:center;align-items:center;padding:8px 12px;display:flex;box-shadow:0 2px 8px #00000040}.sb-logo-wrap img{max-width:100%;height:auto}.sb-sub-line{color:var(--sb-text);text-align:center;letter-spacing:.07em;text-transform:uppercase;margin-top:8px;font-size:9.5px;font-weight:500}.sb-nav{flex:1;padding:6px 8px;overflow-y:auto}.nav-section-label{color:var(--sb-label);text-transform:uppercase;letter-spacing:.12em;margin:16px 0 4px;padding:0 8px;font-size:9px;font-weight:800}.nav-section-label:first-child{margin-top:4px}.nav-item{color:var(--sb-text);border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;margin-bottom:1px;padding:7px 10px;font-size:12.5px;font-weight:500;text-decoration:none;transition:all .12s;display:flex}.nav-item:hover{background:var(--sb-hover-bg);color:var(--t1)}.nav-item.active{background:var(--sb-active-bg);color:var(--sb-active-color);box-shadow:inset 3px 0 0 var(--sb-active-color);border-color:#0000;font-weight:650}.nav-item .ni{text-align:center;opacity:.75;flex-shrink:0;width:16px;font-size:13px}.nav-item.active .ni{opacity:1}.nav-badge{font-size:10px;font-weight:700;font-family:var(--mono);background:var(--surface3);color:var(--t4);border-radius:20px;margin-left:auto;padding:1px 6px}.nav-badge.amber{background:var(--amber-dim);color:var(--amber)}.nav-badge.red{background:var(--red-dim);color:var(--red)}.nav-badge.blue{background:var(--accent-dim);color:var(--accent)}.sb-foot{border-top:1px solid var(--sb-border);padding:8px}.sb-user{border-radius:var(--r);cursor:default;align-items:center;gap:9px;padding:7px 9px;transition:background .12s;display:flex}.sb-user:hover{background:var(--sb-hover-bg)}.sb-avatar{background:var(--accent-dim);border:1.5px solid var(--accent-mid);width:30px;height:30px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:800;display:flex}.sb-uname{color:var(--t1);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:700;overflow:hidden}.sb-urole{color:var(--t4);text-transform:uppercase;letter-spacing:.06em;margin-top:1px;font-size:9px}.sb-logout{color:var(--t5);border-radius:var(--r-sm);white-space:nowrap;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:2px 6px;font-size:10.5px;transition:all .12s}.sb-logout:hover{color:var(--red);background:var(--red-dim)}.sb-theme-btn{border:1px solid var(--sb-border);background:var(--surface2);width:28px;height:28px;color:var(--t3);cursor:pointer;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.sb-theme-btn:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-mid)}.topbar{border-bottom:1px solid var(--border);background:var(--surface);height:50px;box-shadow:var(--shadow-xs);z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0;align-items:center;gap:12px;padding:0 22px;display:flex;position:sticky;top:0}.topbar-title{color:var(--t1);letter-spacing:-.3px;flex:1;font-size:14px;font-weight:800}.topbar-actions{align-items:center;gap:8px;display:flex}.btn{border-radius:var(--r);white-space:nowrap;cursor:pointer;border:none;align-items:center;gap:5px;padding:7px 13px;font-size:12.5px;font-weight:600;transition:all .12s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 4px #4f46e54d}.btn-primary:hover{background:var(--accent-h);transform:translateY(-1px);box-shadow:0 3px 12px #4f46e559}.btn-secondary{background:var(--surface);color:var(--t2);border:1px solid var(--border);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--surface2);border-color:var(--border2);color:var(--t1)}.btn-ghost{color:var(--t3);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--surface2);color:var(--t1);border-color:var(--border)}.btn-success{background:var(--green-dim);color:var(--green);border:1px solid var(--green-mid)}.btn-success:hover{filter:brightness(.94)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid var(--red-mid)}.btn-danger:hover{filter:brightness(.94)}.btn-sm{padding:4px 9px;font-size:11.5px}.btn-xs{padding:3px 7px;font-size:11px}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none!important;transform:none!important}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:box-shadow .18s,border-color .18s,background .2s}.card-p{padding:16px 18px}.card:hover{box-shadow:var(--shadow);border-color:var(--border2)}.badge{border-radius:20px;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.badge-blue{background:var(--accent-dim);color:var(--accent)}.badge-green{background:var(--green-dim);color:var(--green)}.badge-red{background:var(--red-dim);color:var(--red)}.badge-amber{background:var(--amber-dim);color:var(--amber)}.badge-gray{background:var(--surface3);color:var(--t3)}.badge-purple{background:var(--purple-dim);color:var(--purple)}.badge-cyan{background:var(--cyan-dim);color:var(--cyan)}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--t3);font-size:11.5px;font-weight:600}.field input,.field textarea,.field select{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);color:var(--t1);outline:none;padding:8px 11px;font-size:13px;transition:border-color .12s,box-shadow .12s,background .2s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e51a}.field input::placeholder,.field textarea::placeholder{color:var(--t5)}.field textarea{resize:vertical;line-height:1.6}.search-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);color:var(--t1);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E");background-position:9px;background-repeat:no-repeat;outline:none;padding:7px 11px 7px 30px;font-size:12.5px;transition:border-color .12s,box-shadow .12s,background .2s}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e51a}.search-input::placeholder{color:var(--t4)}.filter-select{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);color:var(--t2);font-size:12.5px;font-family:var(--font);cursor:pointer;outline:none;padding:7px 11px;font-weight:500}.filter-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e51a}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{color:var(--t4);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border);text-align:left;background:var(--surface2);white-space:nowrap;padding:9px 14px;font-size:10.5px;font-weight:700}td{border-bottom:1px solid var(--border);color:var(--t2);vertical-align:middle;padding:11px 14px;font-size:12.5px}tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface2)}.stats-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:16px 18px;transition:box-shadow .15s,transform .15s,background .2s,border-color .18s}.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.stat-icon{border-radius:var(--r);justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:11px;font-size:17px;display:flex}.stat-val{color:var(--t1);letter-spacing:-.5px;font-variant-numeric:tabular-nums;font-size:26px;font-weight:900;line-height:1}.stat-label{color:var(--t4);margin-top:4px;font-size:11.5px;font-weight:500}.stat-delta{color:var(--green);margin-top:6px;font-size:11px;font-weight:600}.score-bar{background:var(--surface3);border-radius:2px;height:4px;overflow:hidden}.score-fill{background:var(--accent);border-radius:2px;height:100%}.auth-wrap{grid-template-columns:1fr 420px;min-height:100vh;display:grid}.auth-left{background:linear-gradient(145deg, var(--accent-dim) 0%, var(--bg) 50%, var(--purple-dim) 100%);border-right:1px solid var(--border);justify-content:center;align-items:center;padding:60px;display:flex}.auth-right{background:var(--surface);justify-content:center;align-items:center;padding:44px;display:flex;box-shadow:-4px 0 24px #0f172a0d}.auth-card{width:100%;max-width:340px}.auth-title{color:var(--t1);letter-spacing:-.4px;margin-bottom:4px;font-size:22px;font-weight:900}.auth-sub{color:var(--t3);margin-bottom:26px;font-size:13px}.auth-tabs{background:var(--surface2);border-radius:var(--r);border:1px solid var(--border);gap:2px;margin-bottom:20px;padding:3px;display:flex}.auth-tab{color:var(--t3);background:0 0;border:none;border-radius:6px;flex:1;padding:7px;font-size:12.5px;font-weight:600;transition:all .12s}.auth-tab.active{background:var(--surface);color:var(--t1);box-shadow:var(--shadow-sm)}.auth-form{flex-direction:column;gap:13px;display:flex}.auth-btn{cursor:pointer;border-radius:var(--r);color:#fff;background:var(--accent);border:none;width:100%;margin-top:4px;padding:11px;font-size:13.5px;font-weight:700;transition:all .15s;box-shadow:0 2px 8px #4f46e54d}.auth-btn:hover:not(:disabled){background:var(--accent-h);transform:translateY(-1px);box-shadow:0 5px 16px #4f46e561}.auth-btn:disabled{background:var(--t5);cursor:not-allowed;box-shadow:none}.auth-error{background:var(--red-dim);border:1px solid var(--red-mid);border-radius:var(--r);color:var(--red);padding:9px 11px;font-size:12.5px;font-weight:500}.auth-hint{color:var(--t4);text-align:center;margin-top:14px;font-size:11.5px}.editor-layout{grid-template-columns:1fr 256px;gap:14px;display:grid}.tone-row{flex-wrap:wrap;gap:5px;display:flex}.tone-chip{border:1px solid var(--border);background:var(--surface);color:var(--t3);cursor:pointer;border-radius:20px;padding:4px 11px;font-size:11.5px;font-weight:600;transition:all .1s}.tone-chip:hover{border-color:var(--accent-mid);color:var(--t2)}.tone-chip.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-mid)}.channel-tabs{border:1px solid var(--border);border-radius:var(--r);background:var(--surface2);display:flex;overflow:hidden}.ch-tab{color:var(--t3);cursor:pointer;background:0 0;border:none;padding:5px 12px;font-size:12px;font-weight:600;transition:all .1s}.ch-tab.active{background:var(--surface);color:var(--accent)}.review-layout{grid-template-columns:1fr 420px;align-items:start;gap:14px;display:grid}.review-list{min-width:0}.review-panel-wrap{position:sticky;top:0}.review-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;box-shadow:var(--shadow-sm);margin-bottom:7px;padding:13px 15px;transition:all .12s}.review-item:hover{border-color:var(--accent-mid);box-shadow:var(--shadow)}.review-item.selected{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e51a}.review-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.section-title{color:var(--t4);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;font-size:10.5px;font-weight:800}.empty{text-align:center;color:var(--t4);padding:48px 20px;font-size:13px}.live-dot{background:var(--green);width:6px;height:6px;box-shadow:0 0 0 2px var(--green-mid);border-radius:50%;animation:2s infinite pulse;display:inline-block}.admin-tab{color:var(--t3);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:7px 14px;font-size:12.5px;font-weight:600;transition:all .12s}.admin-tab:hover{color:var(--t1)}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.eng-header{background:var(--t2);color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:11px 22px;display:flex}[data-theme=dark] .eng-header{background:var(--surface2)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--surface2) 25%, var(--surface3) 50%, var(--surface2) 75%);border-radius:var(--r);background-size:400px 100%;border:none;animation:1.4s infinite shimmer}.fade-in{animation:.25s both fadeIn}.slide-in{animation:.2s both slideIn}
