:root{--c-900:#0d2e5b;--c-700:#26558b;--c-700-hover:#1d4270;--c-500:#1aa2e0;--c-500-hover:#1589c4;--c-500-light:#e6f5fc;--c-100:#eaf4fb;--c-warn:#f9c53b;--c-warn-dark:#b07d00;--c-warn-bg:#fefce8;--c-success:#16a34a;--c-success-light:#dcfce7;--c-success-bg:#f0fdf4;--c-success-text:#15803d;--c-danger:#dc2626;--c-danger-light:#fee2e2;--c-danger-bg:#fef2f2;--c-danger-text:#b91c1c;--n-50:#f8fafc;--n-100:#f1f5f9;--n-200:#e2e8f0;--n-300:#cbd5e1;--n-400:#94a3b8;--n-500:#64748b;--n-700:#334155;--n-900:#0f172a;--bg-page:var(--n-50);--bg-surface:#fff;--border:var(--n-200);--text:var(--c-900);--text-muted:var(--n-500);--text-subtle:var(--n-400);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", sans-serif;--font-mono:"SF Mono", "Fira Code", "Cascadia Code", monospace;--text-xs:.72rem;--text-sm:.82rem;--text-base:.88rem;--text-md:.95rem;--text-lg:1.1rem;--text-xl:1.25rem;--text-2xl:1.45rem;--text-3xl:1.9rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-2xl:16px;--r-full:9999px;--shadow-1:0 1px 3px #0d2e5b12;--shadow-2:0 2px 8px #0d2e5b1a;--shadow-3:0 6px 24px #0d2e5b24;--shadow-4:0 20px 60px #0d2e5b40}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);background:var(--bg-page);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}h1{font-size:var(--text-2xl);color:var(--c-900);font-weight:700;line-height:1.2}h2{font-size:var(--text-xl);color:var(--c-900);font-weight:700;line-height:1.3}h3{font-size:var(--text-lg);color:var(--c-900);font-weight:600}code,kbd,pre{font-family:var(--font-mono)}.gate-overlay{background:var(--c-900);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gate-card{background:var(--c-700);border-radius:var(--r-2xl);padding:var(--sp-12) var(--sp-10) var(--sp-10);align-items:center;gap:var(--sp-4);width:100%;max-width:400px;box-shadow:var(--shadow-4);border:1px solid #ffffff1f;flex-direction:column;display:flex}.gate-icon{font-size:2.4rem;line-height:1}.gate-title{font-size:var(--text-xl);color:#fff;text-align:center;margin:0;font-weight:700}.gate-sub{font-size:var(--text-sm);color:#fff9;text-align:center;margin:0}.gate-input{width:100%;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);color:#fff;font-size:1rem;font-family:var(--font-sans);background:#00000040;border:1.5px solid #ffffff2e;outline:none;transition:border-color .15s}.gate-input::placeholder{color:#ffffff61}.gate-input:focus{border-color:var(--c-500)}.gate-input-wrong{border-color:var(--c-danger)!important}.gate-error{font-size:var(--text-xs);color:#f87171;align-self:flex-start;margin:-6px 0 0}.gate-split{z-index:9999;background:var(--bg-surface);display:flex;position:fixed;inset:0}.gate-left{background:var(--c-900);width:42%;min-width:280px;padding:var(--sp-12) var(--sp-10);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.gate-left:before{content:"";pointer-events:none;background:#ffffff08;border-radius:50%;width:340px;height:340px;position:absolute;top:-100px;right:-100px}.gate-left:after{content:"";pointer-events:none;background:#1aa2e012;border-radius:50%;width:220px;height:220px;position:absolute;bottom:60px;left:-70px}.gate-logo-wrap{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.gate-brand-name{font-size:var(--text-2xl);color:#fff;letter-spacing:-.01em;font-weight:800}.gate-brand-tagline{font-size:var(--text-md);color:#ffffff80;margin:0 0 var(--sp-8);letter-spacing:.01em}.gate-features{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.gate-features li{font-size:var(--text-base);color:#ffffffb3;padding-left:var(--sp-5);line-height:1.55;position:relative}.gate-features li:before{content:"";background:var(--c-500);border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.gate-left-footer{margin-top:var(--sp-10);font-size:var(--text-xs);color:#fff3;letter-spacing:.05em;text-transform:uppercase}.gate-right{background:var(--bg-surface);padding:var(--sp-8);flex:1;justify-content:center;align-items:center;display:flex}.gate-form-wrap{gap:var(--sp-4);flex-direction:column;width:100%;max-width:360px;display:flex}.gate-form-title{font-size:var(--text-2xl);color:var(--c-900);margin:0;font-weight:700}.gate-form-sub{font-size:var(--text-sm);color:var(--text-muted);margin:-8px 0 0;line-height:1.6}.gate-right .gate-input{background:var(--bg-surface);border-color:var(--border);color:var(--text)}.gate-right .gate-input::placeholder{color:var(--text-subtle)}.gate-right .gate-input:focus{border-color:var(--c-500);box-shadow:0 0 0 3px #1aa2e026}.gate-right .gate-input.gate-input-wrong{border-color:var(--c-danger)!important;box-shadow:0 0 0 3px #dc26261f!important}.gate-right .gate-error{color:var(--c-danger-text);margin:-8px 0 0}.gate-right .gate-btn{font-size:var(--text-md);padding:var(--sp-3) var(--sp-4);justify-content:center}.gate-right .gate-btn:hover:not(:disabled){box-shadow:0 4px 18px #1aa2e066}@media (width<=640px){.gate-split{flex-direction:column}.gate-left{width:100%;min-width:0;padding:var(--sp-8) var(--sp-6);justify-content:flex-start}.gate-features,.gate-left-footer{display:none}}.tej-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:9999;padding:var(--sp-4);background:#0d2e5b80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tej-modal{background:var(--bg-surface);border-radius:var(--r-2xl);width:100%;max-width:420px;box-shadow:var(--shadow-4);flex-direction:column;animation:.2s tejSlideIn;display:flex;position:relative;overflow:hidden}@keyframes tejSlideIn{0%{opacity:0;transform:translateY(-10px)scale(.98)}to{opacity:1;transform:none}}.tej-modal-header{align-items:center;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6) var(--sp-4);border-bottom:1px solid var(--border);background:var(--n-50);display:flex}.tej-portal-icon{background:var(--c-500-light);border-radius:var(--r-xl);width:46px;height:46px;color:var(--c-500);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tej-modal-title{font-size:var(--text-md);color:var(--c-900);margin:0;font-weight:700}.tej-modal-sub{font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-mono);margin:3px 0 0}.tej-notice{align-items:flex-start;gap:var(--sp-3);margin:var(--sp-4) var(--sp-6) 0;padding:var(--sp-3) var(--sp-4);background:var(--c-100);border-left:3px solid var(--c-500);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--c-700);line-height:1.55;display:flex}.tej-notice-dot{background:var(--c-500);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.tej-fields{gap:var(--sp-1);padding:var(--sp-4) var(--sp-6) 0;flex-direction:column;display:flex}.tej-label{font-size:var(--text-sm);color:var(--n-700);margin-top:var(--sp-2);margin-bottom:4px;font-weight:600;display:block}.tej-input{width:100%;padding:9px var(--sp-3);border:1.5px solid var(--border);border-radius:var(--r-lg);font-size:var(--text-base);font-family:var(--font-sans);color:var(--text);background:var(--bg-surface);box-sizing:border-box;outline:none;transition:border-color .15s,box-shadow .15s}.tej-input:focus{border-color:var(--c-500);box-shadow:0 0 0 3px #1aa2e026}.tej-input.tej-input-error{border-color:var(--c-danger);box-shadow:0 0 0 3px #dc26261a}.tej-field-wrap{position:relative}.tej-field-wrap .tej-input{padding-right:42px}.tej-pass-toggle{cursor:pointer;width:40px;height:100%;color:var(--text-muted);border-radius:0 var(--r-lg) var(--r-lg) 0;background:0 0;border:none;justify-content:center;align-items:center;transition:color .12s,background .12s;display:flex;position:absolute;top:0;right:0}.tej-pass-toggle:hover{color:var(--c-500);background:var(--c-500-light)}.tej-inline-error{margin:var(--sp-3) var(--sp-6) 0;padding:var(--sp-2) var(--sp-3);background:var(--c-danger-bg);border-left:3px solid var(--c-danger);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--c-danger-text);font-weight:500}.tej-actions{align-items:stretch;gap:var(--sp-2);padding:var(--sp-4) var(--sp-6) var(--sp-5);flex-direction:column;display:flex}.tej-connect-btn{padding:var(--sp-3) var(--sp-4);background:var(--c-500);color:#fff;border-radius:var(--r-lg);font-size:var(--text-md);font-family:var(--font-sans);cursor:pointer;text-align:center;border:none;font-weight:600;transition:background .15s,box-shadow .15s,opacity .15s}.tej-connect-btn:hover:not(:disabled){background:var(--c-500-hover);box-shadow:0 4px 14px #1aa2e059}.tej-connect-btn:disabled{opacity:.4;cursor:not-allowed}.tej-btn-spinner{vertical-align:middle;border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-top:-2px;margin-right:7px;animation:.7s linear infinite tej-spin;display:inline-block}@keyframes tej-spin{to{transform:rotate(360deg)}}.tej-progress-bar{background:var(--n-100);height:3px;position:absolute;bottom:0;left:0;right:0}.tej-progress-bar:after{content:"";background:linear-gradient(90deg, transparent, var(--c-500), var(--c-500), transparent);width:60%;height:100%;animation:1.4s ease-in-out infinite tej-progress;position:absolute;top:0;left:-60%}@keyframes tej-progress{0%{left:-60%}to{left:110%}}.tej-cancel-link{cursor:pointer;font-size:var(--text-sm);font-family:var(--font-sans);color:var(--text-muted);text-align:center;padding:var(--sp-1) 0;text-underline-offset:2px;background:0 0;border:none;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .15s,text-decoration-color .15s}.tej-cancel-link:hover{color:var(--c-900);-webkit-text-decoration-color:var(--n-400);text-decoration-color:var(--n-400)}.btn,.gate-btn{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5);border-radius:var(--r-lg);font-size:var(--text-base);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;border:none;font-weight:600;line-height:1.5;text-decoration:none;transition:background .15s,box-shadow .15s,opacity .15s,border-color .15s,color .15s;display:inline-flex}.btn-blue,.gate-btn{background:var(--c-500);color:#fff}.btn-blue:hover:not(:disabled),.gate-btn:hover:not(:disabled){background:var(--c-500-hover);box-shadow:0 4px 14px #1aa2e059}.btn-green{background:var(--c-success);color:#fff}.btn-green:hover:not(:disabled){background:#15803d;box-shadow:0 4px 14px #16a34a4d}.btn-red{background:var(--c-danger);color:#fff}.btn-red:hover:not(:disabled){background:#b91c1c;box-shadow:0 4px 14px #dc26264d}.btn-outline{color:var(--c-500);border:1.5px solid var(--c-500);background:0 0}.btn-outline:hover:not(:disabled){background:var(--c-500-light)}.btn:disabled,.gate-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.gate-btn{width:100%;padding:var(--sp-3) var(--sp-4);margin-top:var(--sp-1);justify-content:center;font-size:1rem}@keyframes gate-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.gate-shake{animation:.5s gate-shake}.app-topbar{height:52px;padding:0 var(--sp-6);background:var(--c-900);z-index:100;border-bottom:1px solid #0000002e;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.app-topbar-logo{align-items:center;gap:var(--sp-2);display:flex}.app-topbar-name{font-size:var(--text-base);color:#fff;letter-spacing:.02em;font-weight:700}.app-topbar-session{align-items:center;gap:var(--sp-4);display:flex}.ats-loading{align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:#fff9;display:flex}.ats-info{align-items:center;gap:var(--sp-2);border-radius:var(--r-full);padding:5px var(--sp-4);background:#ffffff12;border:1px solid #ffffff1f;display:flex}.ats-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ats-dot-ok{background:#22c55e;box-shadow:0 0 5px #22c55e80}.ats-dot-warn{background:var(--c-warn);box-shadow:0 0 5px #f9c53b80}.ats-dot-crit{background:var(--c-danger);box-shadow:0 0 5px #dc262680}.ats-dot-off{background:#fff3}.ats-username{font-size:var(--text-sm);color:#fff;font-weight:600}.ats-sep{font-size:var(--text-sm);color:#ffffff4d}.ats-duration{font-size:var(--text-sm);font-family:var(--font-mono);color:#ffffffa6}.ats-dur-warn{color:var(--c-warn);font-weight:600}.ats-dur-crit{color:#fca5a5;font-weight:600}.ats-offline{align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:#fff6;display:flex}.ats-disconnect{padding:6px var(--sp-4);border-radius:var(--r-md);color:#fca5a5;font-size:var(--text-sm);cursor:pointer;background:#dc26261f;border:1px solid #dc262673;font-weight:600;transition:background .15s,border-color .15s}.ats-disconnect:hover:not(:disabled){background:#dc262647;border-color:#dc2626bf}.ats-disconnect:disabled{opacity:.45;cursor:default}.ats-notif{margin-left:var(--sp-3);position:relative}.ats-bell{border-radius:var(--r-md);color:#ffffffb3;cursor:pointer;background:#ffffff12;border:1px solid #ffffff1f;justify-content:center;align-items:center;width:34px;height:34px;transition:background .15s,color .15s;display:flex;position:relative}.ats-bell:hover{color:#fff;background:#ffffff24}.ats-bell-badge{color:#fff;text-align:center;pointer-events:none;background:#dc2626;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.notif-dropdown{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);width:320px;box-shadow:var(--shadow-3);z-index:500;animation:.15s fadeIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-dd-head{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--n-50);justify-content:space-between;align-items:center;display:flex}.notif-dd-title{font-size:var(--text-sm);color:var(--text);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.notif-clear-btn{font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;padding:2px 6px;font-weight:600;transition:background .12s,color .12s}.notif-clear-btn:hover{background:var(--n-100);color:var(--c-danger)}.notif-dd-list{max-height:340px;overflow-y:auto}.notif-empty{padding:var(--sp-5) var(--sp-4);text-align:center;font-size:var(--text-sm);color:var(--text-muted);margin:0}.notif-item{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-left:3px solid #0000;border-bottom:1px solid var(--border);transition:background .1s;display:flex}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--n-50)}.notif-item-success{border-left-color:var(--c-success)}.notif-item-error{border-left-color:var(--c-danger)}.notif-item-info{border-left-color:#1aa2e0}.notif-item-msg{font-size:var(--text-sm);color:var(--text);word-break:break-word;flex:1;line-height:1.4}.notif-item-time{font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0;margin-top:1px}.app-shell{background:var(--bg-page);flex-direction:column;min-height:100vh;display:flex}.app-body{flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{width:256px;min-width:256px;color:var(--c-900);z-index:10;background:#f0f4f8;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar-dragover{outline:2px dashed var(--c-500);outline-offset:-4px;background:var(--c-500-light)}.sidebar-brand{align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4);background:var(--c-700);flex-shrink:0;display:flex}.sidebar-brand-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-brand-name{font-size:var(--text-md);color:#fff;letter-spacing:.01em;font-weight:800}.sidebar-upload-wrap{padding:var(--sp-3);border-bottom:1px solid var(--n-200);flex-shrink:0}.sidebar-upload-btn{width:100%;padding:var(--sp-2) var(--sp-3);border:1.5px solid var(--c-500);border-radius:var(--r-lg);color:var(--c-500);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;text-align:center;justify-content:center;align-items:center;gap:var(--sp-2);background:#fff;font-weight:600;transition:background .15s,color .15s,box-shadow .15s;display:flex}.sidebar-upload-btn:hover:not(:disabled),.sidebar-upload-btn.uploading{background:var(--c-500);color:#fff;box-shadow:0 3px 10px #1aa2e040}.sidebar-upload-btn:disabled{opacity:.5;cursor:not-allowed}.sidebar-drop-hint{text-align:center;font-size:var(--text-xs);color:var(--c-500);margin-top:var(--sp-2);font-weight:600;animation:.8s ease-in-out infinite alternate pulse}.sidebar-section-label{padding:var(--sp-3) var(--sp-4) var(--sp-1);letter-spacing:.1em;color:var(--n-400);text-transform:uppercase;flex-shrink:0;font-size:.62rem;font-weight:700}.sidebar-file-nav{padding:var(--sp-1) var(--sp-2) var(--sp-2);gap:var(--sp-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-empty{align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4) var(--sp-5);text-align:center;flex-direction:column;display:flex}.sidebar-empty-illu{filter:drop-shadow(0 2px 6px #1aa2e01f)}.sidebar-empty-title{font-size:var(--text-sm);color:var(--n-700);margin:var(--sp-1) 0 0;font-weight:700}.sidebar-empty-sub{font-size:var(--text-xs);color:var(--text-muted);margin:0;line-height:1.55}.sidebar-empty-btn{margin-top:var(--sp-1);padding:var(--sp-2) var(--sp-5);color:#fff;border-radius:var(--r-lg);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;background:#1aa2e0;border:none;font-weight:700;transition:background .15s,box-shadow .15s;box-shadow:0 2px 8px #1aa2e040}.sidebar-empty-btn:hover{background:var(--c-500-hover);box-shadow:0 4px 14px #1aa2e059}.sidebar-file{border-radius:var(--r-lg);padding:var(--sp-2);cursor:pointer;border:1.5px solid var(--n-200);background:#fff;transition:background .12s,box-shadow .12s;position:relative}.sidebar-file:hover{background:var(--n-50);box-shadow:var(--shadow-1)}.sidebar-file-selected{border-color:var(--c-500);background:var(--c-500-light);border-left-width:3px}.sidebar-file-selected:hover{background:#d6ecf7}.sidebar-file-active{border-color:var(--c-warn);background:var(--c-warn-bg)}.sidebar-file-active:hover{background:#fef3c7}.sidebar-file-active.sidebar-file-selected{border-color:var(--c-warn);background:var(--c-warn-bg);border-left-width:3px}.sidebar-file-row{align-items:center;gap:var(--sp-2);margin-bottom:3px;display:flex}.sidebar-file-dot{border-radius:var(--r-full);background:var(--n-300);flex-shrink:0;width:7px;height:7px;transition:background .15s}.sidebar-file-active .sidebar-file-dot{background:var(--c-warn);box-shadow:0 0 5px #f9c53b99}.sidebar-file-selected:not(.sidebar-file-active) .sidebar-file-dot{background:var(--c-500);box-shadow:0 0 5px #1aa2e066}.sidebar-file-name{font-size:var(--text-sm);color:var(--c-900);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.sidebar-file-del{color:var(--n-400);font-size:var(--text-xs);cursor:pointer;padding:2px var(--sp-1);border-radius:var(--r-sm);background:0 0;border:none;flex-shrink:0;line-height:1;transition:color .12s,background .12s}.sidebar-file-del:hover{color:var(--c-danger);background:var(--c-danger-light)}.sidebar-file-meta{font-size:var(--text-xs);color:var(--text-muted);margin-left:15px;margin-bottom:var(--sp-1);align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.sidebar-file-labels{gap:var(--sp-1);margin-left:15px;margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.sfl-active{background:var(--c-warn);color:#7a4d00;border-radius:var(--r-full);white-space:nowrap;padding:1px 7px;font-size:.65rem;font-weight:700}.sfl-viewing{background:var(--c-500-light);color:var(--c-500-hover);border-radius:var(--r-full);white-space:nowrap;border:1px solid #1aa2e04d;padding:1px 7px;font-size:.65rem;font-weight:700}.sidebar-activate-btn{width:calc(100% - 15px);margin:0 0 var(--sp-2) 15px;border:1.5px solid var(--c-500);border-radius:var(--r-md);color:var(--c-500);font-size:var(--text-xs);font-family:var(--font-sans);cursor:pointer;text-align:center;background:0 0;padding:4px 0;font-weight:600;transition:background .12s,color .12s;display:block}.sidebar-activate-btn:hover:not(:disabled){background:var(--c-500);color:#fff}.sidebar-activate-btn:disabled{opacity:.35;cursor:not-allowed}.sidebar-mini-bar{background:var(--n-200);border-radius:var(--r-full);height:4px;margin:0 0 var(--sp-1) 15px;position:relative;overflow:hidden}.sidebar-mini-found{background:var(--c-success);border-radius:var(--r-full);height:100%;transition:width .4s;position:absolute}.sidebar-mini-fail{background:var(--c-danger);height:100%;transition:width .4s,left .4s;position:absolute}.sidebar-mini-wrong{background:var(--c-warn);height:100%;transition:width .4s,left .4s;position:absolute}.sidebar-file-stats{gap:var(--sp-1);flex-wrap:wrap;margin-left:15px;display:flex}.s-stat{border-radius:var(--r-full);padding:1px 6px;font-size:.62rem;font-weight:700}.s-stat-found{background:var(--c-success-light);color:var(--c-success-text)}.s-stat-fail{background:var(--c-danger-light);color:var(--c-danger-text)}.s-stat-wrong{background:var(--c-warn-bg);color:var(--c-warn-dark)}.s-stat-run{background:var(--c-500-light);color:var(--c-500-hover)}.sidebar-footer{padding:var(--sp-3) var(--sp-4);justify-content:center;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--n-400);border-top:1px dashed var(--n-300);background:var(--n-100);flex-shrink:0;display:flex}.main-content{min-width:0;padding:var(--sp-6) var(--sp-6) var(--sp-12);flex:1;max-width:1160px;height:100%;overflow-y:auto}.header{align-items:center;gap:var(--sp-3) + 2px;margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.header h1{font-size:var(--text-2xl);color:var(--c-900);flex:1;font-weight:700}.session-badge{padding:5px var(--sp-3);border-radius:var(--r-full);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.session-badge.on{background:var(--c-success-light);color:var(--c-success-text)}.session-badge.off{background:var(--c-danger-light);color:var(--c-danger-text)}.session-badge.loading{background:var(--c-500-light);color:var(--c-500-hover)}.session-connect-panel{align-items:center;gap:var(--sp-4);background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-5);box-shadow:var(--shadow-1);transition:border-color .2s,background .2s;display:flex}.session-connect-panel.scp-connecting{border-color:var(--c-500);background:var(--c-500-light)}.scp-icon{background:var(--n-50);border-radius:var(--r-lg) + 2px;border:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.6rem;line-height:1;display:flex}.scp-connecting .scp-icon{background:var(--c-500-light);border-color:var(--c-500);color:var(--c-500);font-size:1.3rem}.scp-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.scp-title{font-size:var(--text-md);color:var(--c-900);font-weight:700}.scp-phase{font-size:var(--text-sm);color:var(--text-muted)}.scp-connecting .scp-phase{color:var(--c-500-hover);font-weight:500}.scp-connect-btn{padding:var(--sp-2) + 1px var(--sp-5);flex-shrink:0}.scp-dots{flex-shrink:0;align-items:center;gap:5px;display:flex}.scp-dots span{border-radius:var(--r-full);background:var(--c-500);width:7px;height:7px;animation:.9s ease-in-out infinite scp-bounce}.scp-dots span:nth-child(2){animation-delay:.15s}.scp-dots span:nth-child(3){animation-delay:.3s}@keyframes scp-bounce{0%,80%,to{opacity:.4;transform:scale(.55)}40%{opacity:1;transform:scale(1)}}.summary-panel{margin-bottom:var(--sp-5)}.stat-grid{gap:var(--sp-3);margin-bottom:var(--sp-3);grid-template-columns:repeat(5,1fr);display:grid}@media (width<=960px){.stat-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=560px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--bg-surface);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-3) var(--sp-3);text-align:center;box-shadow:var(--shadow-1);border-top:4px solid #0000;flex-direction:column;align-items:center;gap:4px;transition:transform .15s,box-shadow .15s;display:flex}.stat-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.stat-icon{border-radius:var(--r-full);justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:4px;display:flex}.stat-value{font-size:2.4rem;font-weight:800;line-height:1;display:block}.stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700;display:block}.stat-total{border-top-color:var(--c-900)}.stat-total .stat-icon{color:var(--c-900);background:#0d2e5b14}.stat-total .stat-value{color:var(--c-900)}.stat-found{background:#f0fdf4;border-top-color:#16a34a}.stat-found .stat-icon{color:#16a34a;background:#dcfce7}.stat-found .stat-value{color:#16a34a}.stat-wrong{background:#fffbeb;border-top-color:#d97706}.stat-wrong .stat-icon{color:#d97706;background:#fef3c7}.stat-wrong .stat-value{color:#d97706}.stat-invalid{background:#fff7ed;border-top-color:#ea580c}.stat-invalid .stat-icon{color:#ea580c;background:#ffedd5}.stat-invalid .stat-value{color:#ea580c}.stat-error{background:#fff1f2;border-top-color:#9f1239}.stat-error .stat-icon{color:#9f1239;background:#ffe4e6}.stat-error .stat-value{color:#9f1239}.seg-bar-wrap{margin-top:var(--sp-1)}.seg-bar{border-radius:var(--r-full);background:var(--n-200);gap:2px;height:22px;display:flex;overflow:hidden}.seg-bar-chunk{justify-content:center;align-items:center;min-width:0;transition:width .4s;display:flex;overflow:hidden}.seg-bar-label{color:#ffffffeb;white-space:nowrap;pointer-events:none;font-size:.68rem;font-weight:700}.seg-legend{gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-2);padding-top:var(--sp-2);flex-wrap:wrap;display:flex}.seg-legend-item{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:5px;display:flex}.seg-legend-dot{border-radius:3px;flex-shrink:0;width:9px;height:9px}.controls-bar{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-direction:column;display:flex}.cb-row{align-items:center;gap:var(--sp-3);background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);flex-wrap:wrap;display:flex}.cb-primary{align-items:center;display:flex}.cb-exports{align-items:center;gap:var(--sp-2);padding-left:var(--sp-3);border-left:1.5px solid var(--border);display:flex}.cb-zone-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-right:var(--sp-1);font-weight:700}.cb-export-btn{text-decoration:none!important}.cb-search{align-items:center;gap:var(--sp-3);margin-left:auto;display:flex}.cb-search input[type=text]{padding:var(--sp-2) var(--sp-4);border:1.5px solid var(--border);border-radius:var(--r-lg);font-size:var(--text-base);font-family:var(--font-sans);color:var(--text);background:var(--bg-page);outline:none;width:300px;transition:border-color .15s,box-shadow .15s}.cb-search input[type=text]:focus{border-color:var(--c-500);box-shadow:0 0 0 3px #1aa2e026}.cb-search input[type=text]::placeholder{color:var(--text-subtle)}.cb-row-count{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.cb-danger{align-items:center;gap:var(--sp-3);background:var(--bg-surface);border:1.5px solid var(--border);border-left:4px solid var(--c-warn);border-radius:var(--r-lg);padding:var(--sp-2) var(--sp-4);min-height:46px;transition:background .2s,border-color .2s;display:flex}.cb-danger-active{background:#fffbeb;border-color:#d97706}.cb-danger-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:#b45309;white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;font-weight:700;display:flex}.cb-clear-btn{border:1.5px solid var(--border);border-radius:var(--r-md);padding:5px var(--sp-4);font-size:var(--text-sm);color:var(--c-danger-text);cursor:pointer;background:0 0;font-weight:600;transition:background .15s,border-color .15s}.cb-clear-btn:hover:not(:disabled){background:var(--c-danger-bg);border-color:var(--c-danger)}.cb-clear-btn:disabled{opacity:.4;cursor:default}.cb-confirm{align-items:center;gap:var(--sp-4);flex-wrap:wrap;flex:1;display:flex}.cb-confirm-warn{font-size:var(--text-sm);color:var(--c-900);flex:1}.cb-confirm-actions{gap:var(--sp-2);flex-shrink:0;display:flex}.cb-cancel{border:1.5px solid var(--border);border-radius:var(--r-md);padding:5px var(--sp-3);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;background:0 0;font-weight:600;transition:background .15s}.cb-cancel:hover{background:var(--n-100)}.cb-confirm-delete{background:var(--c-danger);border-radius:var(--r-md);padding:5px var(--sp-4);font-size:var(--text-sm);color:#fff;cursor:pointer;border:none;font-weight:700;transition:background .15s}.cb-confirm-delete:hover{background:var(--c-danger-text)}.progress-wrap{background:var(--n-200);border-radius:var(--r-full);height:8px;margin-bottom:var(--sp-2);overflow:hidden}.progress-bar{background:var(--c-500);border-radius:var(--r-full);height:100%;transition:width .25s}.progress-label{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--sp-2) + 2px;display:block}.running-dot{color:var(--c-500);animation:1s infinite pulse}.tabs{border-bottom:2px solid var(--border);padding:0 var(--sp-2);gap:0;margin-bottom:0;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab-btn{padding:10px var(--sp-4);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-2px;font-weight:600;transition:color .15s,border-color .15s;display:inline-flex}.tab-label{letter-spacing:.01em}.tab-count{background:var(--n-100);min-width:20px;height:18px;color:var(--text-muted);border-radius:var(--r-full);font-size:var(--text-xs);justify-content:center;align-items:center;padding:0 5px;font-weight:700;line-height:1;transition:background .15s,color .15s;display:inline-flex}.tab-btn:hover{color:var(--c-900)}.tab-btn:hover .tab-count{background:var(--n-200);color:var(--c-900)}.tab-btn.active{color:var(--c-500);border-bottom-color:var(--c-500)}.tab-btn.active .tab-count{color:var(--c-500);background:#1aa2e01f}.tab-btn.tab-success.active{color:var(--c-success);border-bottom-color:var(--c-success)}.tab-btn.tab-success.active .tab-count{color:#15803d;background:#dcfce7}.tab-btn.tab-fail.active{color:var(--c-danger);border-bottom-color:var(--c-danger)}.tab-btn.tab-fail.active .tab-count{color:#9f1239;background:#fff1f2}.tab-btn.tab-skip.active{color:var(--c-warn-dark);border-bottom-color:var(--c-warn)}.tab-btn.tab-skip.active .tab-count{background:var(--c-warn-bg);color:var(--c-warn-dark)}.table-wrap{border:1.5px solid var(--n-200);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow-x:auto}table{border-collapse:collapse;background:var(--bg-surface);width:100%;font-size:var(--text-base);min-width:600px}thead tr{border-bottom:2px solid var(--n-200)}thead th{background:var(--n-50);color:var(--text-muted);text-align:left;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:10px 14px;font-weight:700}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,color .12s}thead th.sortable:hover{background:var(--n-100);color:var(--c-500)}tbody tr:hover{background:#f0f9ff}tbody tr.row-fail{background:#fff8f8}tbody tr.row-fail:hover{background:#fff1f2}tbody tr.row-wrong{background:#fffdf0}tbody tr.row-wrong:hover{background:#fefce8}tbody tr.row-error{background:#fff8f8}tbody tr.row-error:hover{background:#fff1f2}tbody tr.row-found{background:#f9fefb}tbody tr.row-found:hover{background:#f0fdf4}tbody tr.row-running{background:var(--c-500-light)}tbody tr.row-skip{opacity:.8}tbody tr.row-skip:hover{background:var(--n-50);opacity:1}td{border-bottom:1px solid var(--n-100);vertical-align:middle;padding:10px 14px}.td-num{color:var(--text-subtle);font-size:var(--text-xs);text-align:center;width:44px}.td-detail{text-align:center;width:48px}.td-detail-btn{border-radius:var(--r-md);cursor:pointer;color:var(--c-danger-text);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:background .15s;display:inline-flex}.td-detail-btn:hover{background:var(--c-danger-light)}.td-run{text-align:center;width:48px}.btn-row-verify{padding:3px var(--sp-2) + 1px;border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--n-50);color:var(--c-500);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;font-weight:700;line-height:1.4;transition:background .15s,color .15s,border-color .15s}.btn-row-verify:hover:not(:disabled){background:var(--c-500);color:#fff;border-color:var(--c-500)}.btn-row-verify:disabled{opacity:.35;cursor:not-allowed}.td-empty{text-align:center;vertical-align:top;padding:var(--sp-8) var(--sp-4)!important}.table-empty-state{align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);flex-direction:column;max-width:380px;margin:0 auto;display:flex}.tes-title{font-size:var(--text-lg);color:var(--text);margin:0;font-weight:700}.tes-sub{font-size:var(--text-sm);color:var(--text-muted);margin:0;line-height:1.6}.tes-btn{margin-top:var(--sp-1);padding:8px var(--sp-5);border-radius:var(--r-lg);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;border:none;font-weight:700;transition:background .15s,box-shadow .15s,opacity .15s}.tes-btn:disabled{opacity:.5;cursor:default}.tes-btn-blue{color:#fff;background:#1aa2e0;box-shadow:0 2px 8px #1aa2e040}.tes-btn-blue:hover:not(:disabled){background:var(--c-500-hover);box-shadow:0 4px 14px #1aa2e059}.tes-btn-green{background:var(--c-success);color:#fff;box-shadow:0 2px 8px #16a34a33}.tes-btn-green:hover:not(:disabled){background:#15803d;box-shadow:0 4px 14px #16a34a4d}.tes-btn-outline{color:var(--text-muted);background:0 0;border:1.5px solid var(--border)!important}.tes-btn-outline:hover{background:var(--n-100);color:var(--text)}.name-cell{text-align:right;font-size:var(--text-base) + .02rem;direction:rtl;min-width:160px}.cin-code{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--c-900);background:var(--n-100);border-radius:var(--r-sm);padding:1px 6px}.muted{color:var(--text-subtle)}.pill{border-radius:var(--r-full);font-size:var(--text-xs);white-space:nowrap;letter-spacing:.01em;align-items:center;gap:5px;padding:3px 8px;font-weight:700;display:inline-flex}.pill:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.pill-found{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.pill-found:before{background:#16a34a}.pill-needs{background:var(--c-warn-bg);color:var(--c-warn-dark);border:1px solid #fde68a}.pill-needs:before{background:#f59e0b}.pill-invalid{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa}.pill-invalid:before{background:#ea580c}.pill-wrong{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.pill-wrong:before{background:#d97706}.pill-error{color:#9f1239;background:#fff1f2;border:1px solid #fecdd3}.pill-error:before{background:#dc2626}.pill-pending{background:var(--n-100);color:var(--text-muted);border:1px solid var(--n-200)}.pill-pending:before{background:var(--n-400)}.pill-running{background:var(--c-500-light);color:var(--c-500);border:1px solid #1aa2e04d;animation:1s infinite pulse}.pill-running:before{background:var(--c-500)}.pill-skip{background:var(--n-100);color:var(--text-muted);border:1px solid var(--n-200);font-size:.68rem}.pill-skip:before{background:var(--n-400)}.table-toolbar{margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.density-toggle{align-items:center;gap:var(--sp-2);padding:5px var(--sp-3);border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.density-toggle:hover,.density-toggle.active{background:var(--c-500-light);border-color:var(--c-500);color:var(--c-500)}.pg-total{font-size:var(--text-xs);color:var(--text-muted)}.table-compact td{padding:5px var(--sp-3)}.table-compact thead th{padding:7px var(--sp-3)}.pagination{justify-content:center;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);padding:var(--sp-2);display:flex}.pg-btn{padding:6px var(--sp-4);border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font-size:var(--text-sm);color:var(--c-900);cursor:pointer;font-weight:600;transition:background .15s,border-color .15s}.pg-btn:hover:not(:disabled){background:var(--c-500-light);border-color:var(--c-500);color:var(--c-500)}.pg-btn:disabled{opacity:.35;cursor:default}.pg-info{font-size:var(--text-sm);color:var(--text-muted);text-align:center;min-width:100px}.detail-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:400;background:#0d2e5b40;animation:.15s fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.detail-panel{background:var(--bg-surface);border-left:1px solid var(--border);z-index:401;flex-direction:column;width:360px;max-width:90vw;animation:.2s slideInRight;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #0d2e5b1f}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-panel-head{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);background:var(--c-900);justify-content:space-between;align-items:center;display:flex}.detail-panel-title{font-size:var(--text-base);color:#fff;font-weight:700}.detail-panel-close{border-radius:var(--r-md);cursor:pointer;color:#ffffffb3;background:#ffffff1a;border:none;justify-content:center;align-items:center;padding:5px;transition:background .15s;display:flex}.detail-panel-close:hover{color:#fff;background:#fff3}.detail-fields{padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;flex:1;margin:0;display:flex;overflow-y:auto}.detail-field{flex-direction:column;gap:4px;display:flex}.detail-field dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-weight:700}.detail-field dd{font-size:var(--text-base);color:var(--text);margin:0}.detail-name{text-align:right;direction:rtl;font-size:var(--text-md)!important}.detail-field-error{border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);background:#fff1f2;border:1px solid #fca5a5}.detail-error-text{white-space:pre-wrap;word-break:break-word;line-height:1.6;font-size:var(--text-sm)!important;color:var(--c-danger-text)!important}.cbanner{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-lg);margin-bottom:var(--sp-3);background:#f0fdf4;border:1px solid #86efac;border-left:4px solid #16a34a;animation:.25s slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.cbanner-left{align-items:center;gap:var(--sp-3);flex-wrap:wrap;min-width:0;display:flex}.cbanner-check{flex-shrink:0;align-items:center;display:flex}.cbanner-title{font-size:var(--text-base);color:#15803d;white-space:nowrap;font-weight:700}.cbanner-divider{background:#86efac;flex-shrink:0;width:1px;height:18px}.cbanner-chip{padding:2px var(--sp-3);border-radius:var(--r-full);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:5px;font-weight:700;display:inline-flex}.cbanner-chip-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.cbanner-chip-found{color:#15803d;background:#dcfce7}.cbanner-chip-found .cbanner-chip-dot{background:#16a34a}.cbanner-chip-wrong{color:#92400e;background:#fef3c7}.cbanner-chip-wrong .cbanner-chip-dot{background:#d97706}.cbanner-chip-invalid{color:#9a3412;background:#fff7ed}.cbanner-chip-invalid .cbanner-chip-dot{background:#ea580c}.cbanner-chip-error{color:#9f1239;background:#fff1f2}.cbanner-chip-error .cbanner-chip-dot{background:#dc2626}.cbanner-total{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.cbanner-right{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.cbanner-export{padding:5px var(--sp-4);border-radius:var(--r-md);color:#fff;font-size:var(--text-xs);white-space:nowrap;background:#16a34a;font-weight:700;text-decoration:none;transition:background .15s}.cbanner-export:hover{background:#15803d}.cbanner-export-outline{color:var(--c-900);border:1.5px solid var(--border);background:0 0}.cbanner-export-outline:hover{background:var(--n-100)}.cbanner-close{border-radius:var(--r-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:.9rem;line-height:1;transition:background .12s,color .12s}.cbanner-close:hover{background:var(--n-100);color:var(--text)}.toast-stack{bottom:var(--sp-6);right:var(--sp-6);gap:var(--sp-2);z-index:9999;pointer-events:auto;flex-direction:column;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);font-size:var(--text-base);box-shadow:var(--shadow-3);border-left:4px solid #0000;max-width:380px;font-weight:600;animation:.25s slideIn;display:flex}.toast-msg{flex:1;line-height:1.4}.toast-dismiss{cursor:pointer;opacity:.55;color:inherit;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1rem;line-height:1;transition:opacity .15s}.toast-dismiss:hover{opacity:1}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.toast-info{background:var(--c-900);color:#fff;border-left-color:var(--c-500)}.toast-success{background:var(--c-success-bg);color:var(--c-success-text);border-left-color:var(--c-success)}.toast-error{background:var(--c-danger-bg);color:var(--c-danger-text);border-left-color:var(--c-danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes pulse-alt{0%{opacity:.55}to{opacity:1}}.spin{animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.upload-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg) + 2px;padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-5)}.upload-panel-title{font-size:var(--text-md);color:var(--c-900);font-weight:700}.upload-active-badge{font-size:var(--text-xs);background:var(--c-success-light);color:var(--c-success-text);border-radius:var(--r-full);padding:2px var(--sp-2) + 2px;font-weight:600}.upload-dropzone{border:2px dashed var(--n-300);border-radius:var(--r-lg);padding:var(--sp-5);text-align:center;font-size:var(--text-base);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,background .15s}.upload-dropzone:hover,.upload-dropzone.dragover{border-color:var(--c-500);background:var(--c-500-light);color:var(--c-500-hover)}.upload-file-item{align-items:center;gap:var(--sp-2) + 2px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--n-50);border:1px solid var(--border);font-size:var(--text-sm);display:flex}.upload-file-item.upload-file-active{background:var(--c-success-bg);border-color:#86efac}.upload-file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.upload-file-meta{color:var(--text-subtle);white-space:nowrap;font-size:var(--text-xs)}.upload-btn-sm{padding:3px var(--sp-2) + 2px;font-size:var(--text-xs);border-radius:var(--r-sm)}.upload-empty{margin-top:var(--sp-2) + 2px;font-size:var(--text-sm);color:var(--text-subtle);text-align:center}.connect-screen{background:var(--bg-page);padding:var(--sp-8);flex:1;justify-content:center;align-items:center;min-height:0;animation:.2s fadeIn;display:flex}.cs-card{align-items:center;gap:var(--sp-4);background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-2xl);padding:var(--sp-10) var(--sp-12);box-shadow:var(--shadow-2);text-align:center;flex-direction:column;width:100%;max-width:420px;display:flex}.cs-logo{background:var(--c-500-light);width:72px;height:72px;margin-bottom:var(--sp-1);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cs-title{font-size:var(--text-2xl);color:var(--c-900);margin:0;font-weight:700;line-height:1.25}.cs-sub{font-size:var(--text-base);color:var(--text-muted);max-width:300px;margin:0;line-height:1.6}.cs-btn{margin-top:var(--sp-2);padding:11px var(--sp-8);background:var(--c-500);color:#fff;border-radius:var(--r-lg);font-size:var(--text-base);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;border:none;font-weight:700;transition:background .15s,box-shadow .15s;box-shadow:0 2px 8px #1aa2e040}.cs-btn:hover{background:var(--c-500-hover);box-shadow:0 4px 14px #1aa2e059}.cs-dots{gap:var(--sp-2);margin-top:var(--sp-1);display:flex}.cs-dots span{background:var(--c-500);border-radius:50%;width:8px;height:8px;animation:.9s ease-in-out infinite both bounce-dot}.cs-dots span:nth-child(2){animation-delay:.15s}.cs-dots span:nth-child(3){animation-delay:.3s}@keyframes bounce-dot{0%,80%,to{opacity:.35;transform:scale(.65)}40%{opacity:1;transform:scale(1)}}.topbar-hamburger{border-radius:var(--r-sm);cursor:pointer;background:#ffffff1a;border:none;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:32px;height:32px;padding:0;transition:background .15s;display:none}.topbar-hamburger:hover{background:#fff3}.topbar-hamburger span{background:#fff;border-radius:2px;width:16px;height:2px;transition:transform .2s,opacity .2s;display:block}.sidebar-overlay{z-index:199;background:#00000073;animation:.18s fadeIn;display:none;position:fixed;inset:0}@media (width<=1023px){.sidebar{width:220px;min-width:220px}}@media (width<=767px){.topbar-hamburger{display:flex}.sidebar{z-index:200;width:280px;min-width:280px;height:100vh;transition:transform .25s cubic-bezier(.4,0,.2,1);position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:4px 0 24px #00000040}.sidebar--open{transform:translate(0)}.sidebar-overlay{display:block}.main-content{padding:var(--sp-4) var(--sp-3) var(--sp-8)}.header h1{font-size:var(--text-xl)}.cb-row{align-items:stretch;gap:var(--sp-3);flex-direction:column}.cb-exports{border-left:none;border-top:1.5px solid var(--border);padding-left:0;padding-top:var(--sp-2);flex-wrap:wrap}.cb-search,.cb-search input[type=text]{width:100%}.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.table-toolbar{gap:var(--sp-2);flex-wrap:wrap}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{min-width:600px}.stat-grid{grid-template-columns:repeat(2,1fr)}.cbanner{flex-direction:column;align-items:flex-start}.cbanner-right{align-self:flex-end}.pagination{justify-content:center}.session-connect-panel{padding:var(--sp-4) var(--sp-4);gap:var(--sp-3);flex-wrap:wrap}.toast-stack{left:var(--sp-3);right:var(--sp-3);bottom:var(--sp-4)}.toast{width:100%;min-width:0}.notif-dropdown{min-width:280px;max-width:calc(100vw - var(--sp-4));left:auto;right:0}}
