:root{color-scheme:dark;--bg:#070a12;--panel:#0d111c;--panel2:#111725;--line:#20283a;--line2:#2a354b;--text:#f2f5fb;--muted:#8c97aa;--primary:#5d7cff;--primary2:#7b61ff;--success:#28d89b;--warning:#ffbb55;--danger:#ff627d;--shadow:0 24px 70px rgba(0,0,0,.3)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 80% -10%,rgba(93,124,255,.12),transparent 34%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
button,input,select{font:inherit}
button,a{transition:.18s ease}
.shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}
.sidebar{position:sticky;top:0;height:100vh;padding:26px 18px;background:rgba(10,14,24,.94);border-right:1px solid var(--line);display:flex;flex-direction:column;backdrop-filter:blur(18px)}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:0 10px 30px}
.brand-logo{height:28px;width:auto;max-width:190px;object-fit:contain;display:block;flex-shrink:0;filter:drop-shadow(0 8px 18px rgba(93,124,255,.22))}
.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--primary),var(--primary2));display:grid;place-items:center;font-weight:900;font-size:22px;box-shadow:0 10px 30px rgba(93,124,255,.34)}
.brand-meta span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:1.4px}
.brand strong{display:block;font-size:17px;letter-spacing:.2px}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:3px;text-transform:uppercase;letter-spacing:1.4px}
.login-brand{gap:14px;text-align:center;align-items:center}
.login-brand .brand-logo{height:48px;max-width:320px}
.nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#a6afbf;text-align:left;padding:12px 14px;border-radius:11px;cursor:pointer;font-weight:650;display:flex;gap:12px;align-items:center}.nav-item span{width:22px;text-align:center;font-size:18px}.nav-item:hover{color:#fff;background:#131a29}.nav-item.active{color:#fff;background:linear-gradient(90deg,rgba(93,124,255,.2),rgba(93,124,255,.06));box-shadow:inset 3px 0 var(--primary)}
.sidebar-footer{margin-top:auto;display:grid;gap:12px}
.created-by{margin:0 2px 2px;color:#667087;font-size:10px;letter-spacing:1.2px;text-transform:lowercase;font-weight:600}
.created-by span{color:#9aa8c7;letter-spacing:.4px}
.mode-pill{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--muted);font-size:12px}.mode-pill i,.connection-status i{width:8px;height:8px;border-radius:50%;background:var(--muted);box-shadow:none}.mode-pill.offline i,.connection-status.offline i{background:#6b7280}.mode-pill.connecting i,.connection-status.connecting i{background:var(--warning);box-shadow:0 0 12px rgba(255,187,85,.45)}.mode-pill.online i,.connection-status.online i{background:var(--success);box-shadow:0 0 12px var(--success)}.status-offline{color:#9aa3b5!important}.status-connecting{color:var(--warning)!important}.status-online{color:var(--success)!important}.connection-hint{margin:12px 0 0;font-size:12px;line-height:1.6}
.workspace{min-width:0}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);background:rgba(7,10,18,.66);backdrop-filter:blur(16px);position:sticky;top:0;z-index:10}.topbar h1{font-size:24px;margin:3px 0 0}.eyebrow{margin:0;color:#75819a;font-size:10px;font-weight:800;letter-spacing:1.8px}.top-actions{display:flex;align-items:center;gap:14px}.connection-status{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}
.lang-switch{display:flex;align-items:center;gap:6px;border:1px solid var(--line2);background:#121827;border-radius:10px;padding:0 10px;height:38px;color:var(--muted)}.lang-switch span{font-size:12px;opacity:.75}.lang-switch select{border:0;background:transparent;color:#d7deeb;font-size:12px;outline:none;cursor:pointer;padding:8px 2px}.lang-switch select option{background:#121827;color:#d7deeb}
.content{max-width:1500px;margin:auto;padding:30px 34px 60px}.tab-panel{display:none;animation:fade .2s ease}.tab-panel.active{display:block}@keyframes fade{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.kpi-card,.card{border:1px solid var(--line);background:linear-gradient(145deg,rgba(17,23,37,.96),rgba(12,16,27,.96));border-radius:16px;box-shadow:var(--shadow)}.kpi-card{padding:20px;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;inset:auto -10px -30px auto;width:90px;height:90px;border-radius:50%;background:rgba(93,124,255,.09)}.kpi-card span{color:var(--muted);font-size:12px}.kpi-card strong{font-size:30px;display:block;margin:8px 0 2px}.kpi-card small{color:#667087}.kpi-card.success strong{color:var(--success)}.kpi-card.warning strong{color:var(--warning)}.kpi-card.danger strong{color:var(--danger)}
.card{padding:24px}.card h2,.card h3{margin:0}.card-head,.section-intro{display:flex;align-items:center;justify-content:space-between;gap:20px}.card-head{margin-bottom:18px}.card-head h2{font-size:18px;margin-top:5px}.section-intro{margin-bottom:22px}.section-intro h2{margin:5px 0 6px;font-size:24px}.section-intro p:not(.eyebrow),.muted{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.split-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.feature-list{margin-top:24px;display:grid;gap:12px}.feature-list div{display:flex;align-items:center;gap:12px;color:#c7cede}.feature-list b{color:var(--primary);font-size:11px;border:1px solid rgba(93,124,255,.3);border-radius:7px;padding:5px}
button,.button-link{border:0;cursor:pointer;border-radius:10px;text-decoration:none;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));padding:12px 16px;font-weight:750;box-shadow:0 10px 25px rgba(93,124,255,.18)}.primary:hover{filter:brightness(1.12);transform:translateY(-1px)}.secondary{background:#171e2d;border:1px solid var(--line2);padding:9px 13px;color:#d7deeb}.secondary:hover,.ghost:hover{background:#20293b}.ghost{background:transparent;border:1px solid var(--line);padding:9px 12px;color:var(--muted)}.danger{color:#ff8ca0}.icon-button{width:38px;height:38px;border:1px solid var(--line2);background:#121827;color:#cbd3e1;border-radius:10px;cursor:pointer}
.form-layout{grid-template-columns:minmax(0,1fr) minmax(340px,.8fr)}.form-grid{display:grid;gap:18px}.form-grid label{display:grid;gap:8px}.form-grid label>span{font-size:12px;font-weight:700;color:#b8c0d0}.form-grid input,.form-grid select{width:100%;border:1px solid var(--line2);background:#090d16;color:#edf1fa;padding:13px 14px;border-radius:10px;outline:none}.form-grid input:focus,.form-grid select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(93,124,255,.12)}.form-grid label small{color:#657189;font-size:11px}.form-grid .primary{margin-top:4px}.result-card{display:grid;min-height:300px}.result-placeholder{margin:auto;text-align:center;color:var(--muted)}.result-placeholder h3{color:#cbd2df;margin:14px 0 7px}.result-placeholder p{font-size:12px}.result-icon{margin:auto;width:54px;height:54px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;color:var(--primary);font-size:25px}.result-content{display:grid;align-content:center;gap:12px}.result-badge{width:max-content;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800}.result-badge.match{color:#7ff0c7;background:rgba(40,216,155,.12)}.result-badge.close{color:#ffd18a;background:rgba(255,187,85,.12)}.result-badge.no{color:#ff9bab;background:rgba(255,98,125,.12)}.result-row{padding:12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px}.result-row span{color:var(--muted);font-size:12px}.hidden{display:none!important}
.drop-zone{display:grid;place-items:center;text-align:center;min-height:280px;border:1px dashed #34415c;border-radius:14px;background:rgba(9,13,22,.65);cursor:pointer;padding:30px}.drop-zone:hover,.drop-zone.drag{border-color:var(--primary);background:rgba(93,124,255,.06)}.drop-zone input{display:none}.drop-zone h3{margin:12px 0 5px}.drop-zone p,.drop-zone small{color:var(--muted);margin:2px}.drop-zone b{margin-top:16px;color:#a9b9ff}.upload-icon{font-size:28px;width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:rgba(93,124,255,.13);color:#98a9ff}.upload-button{width:100%;margin-top:14px}.progress-panel{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#090d16}.progress-head,.progress-head>div{display:flex;justify-content:space-between;align-items:center;gap:15px}.progress-head>div{flex:1}.progress-head span{font-size:12px;color:var(--muted)}.progress-track{height:8px;background:#1a2232;border-radius:999px;overflow:hidden;margin:15px 0}.progress-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--success));border-radius:inherit;transition:width .35s}
.table-card{padding:0;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:880px}th{padding:14px 18px;text-align:left;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#69758c;background:#0b101b}td{padding:15px 18px;border-top:1px solid var(--line);font-size:12px;color:#c9d0dd}td.right,th.right{text-align:right}.status{display:inline-flex;border-radius:999px;padding:5px 9px;font-weight:750;font-size:10px;background:#1a2232}.status.completed{color:var(--success)}.status.running,.status.queued{color:#91a9ff}.status.failed,.status.cancelled{color:var(--danger)}.row-progress{min-width:130px}.row-progress div{height:5px;background:#1b2332;border-radius:999px;margin-top:6px}.row-progress i{display:block;height:100%;background:var(--primary);border-radius:inherit}.actions{display:flex;justify-content:flex-end;gap:6px;align-items:center;flex-wrap:wrap}.actions button,.actions a{padding:6px 8px;border-radius:7px;border:1px solid var(--line2);background:#141b29;color:#b9c2d1;text-decoration:none;cursor:pointer}.download-menu{display:inline-flex;gap:4px;align-items:center}.download-menu a{font-size:10px;font-weight:700}.empty{text-align:center!important;color:var(--muted)!important;padding:32px!important}.compact-list{display:grid;gap:9px}.compact-item{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:9px 0;font-size:12px}.compact-item:last-child{border:0}.compact-item small{color:var(--muted)}
.settings-layout{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.secret-field{display:grid;grid-template-columns:1fr auto;gap:8px}.settings-actions{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:8px}.settings-actions span{font-size:12px;color:var(--muted)}.security-card{background:linear-gradient(145deg,rgba(93,124,255,.11),rgba(17,23,37,.96))}.shield{width:52px;height:52px;border-radius:15px;background:rgba(93,124,255,.16);color:#9aabff;display:grid;place-items:center;margin-bottom:18px}.security-card p,.security-card li{color:var(--muted);font-size:12px;line-height:1.7}.security-card ul{padding-left:18px}.current-mode{margin-top:24px;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between}.current-mode span{color:var(--muted);font-size:12px}.current-mode strong{font-size:12px}
.toast{position:fixed;right:24px;bottom:24px;background:#151d2c;border:1px solid var(--line2);padding:12px 16px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:50;font-size:12px}.toast.show{opacity:1;transform:none}.toast.error{border-color:rgba(255,98,125,.45);color:#ff9bab}
body.login-page{display:grid;place-items:center;padding:24px}.login-wrap{width:min(440px,100%)}.login-brand{justify-content:center;margin-bottom:22px}.login-card{padding:32px}.login-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.login-card h1{font-size:25px;margin:0 0 8px}.login-card>p{color:var(--muted);font-size:13px;margin:0 0 24px}.error{color:var(--danger)!important}.setup-hint{color:var(--muted);font-size:11px;line-height:1.6;margin-top:-6px}
@media(max-width:1000px){.shell{grid-template-columns:82px 1fr}.sidebar{padding:22px 12px}.brand-meta,.nav-item:not(.active) span+*,.nav-item{font-size:0}.brand{padding-left:7px;justify-content:center;padding-bottom:22px}.brand-logo{height:36px;width:36px;max-width:36px;object-fit:cover;object-position:left center}.nav-item{justify-content:center}.nav-item span{font-size:19px}.sidebar-footer .mode-pill span,.sidebar-footer button{font-size:0}.created-by{text-align:center;font-size:8px;letter-spacing:.6px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.split-grid{grid-template-columns:1fr}}
@media(max-width:680px){.shell{display:block}.sidebar{position:fixed;z-index:20;bottom:0;top:auto;width:100%;height:auto;padding:8px;border-right:0;border-top:1px solid var(--line)}.brand,.sidebar-footer{display:none}.nav{display:grid;grid-template-columns:repeat(5,1fr);gap:2px}.nav-item,.nav-item.active{padding:9px;font-size:0;justify-content:center;box-shadow:none}.nav-item span{font-size:18px}.topbar{height:78px;padding:0 18px}.connection-status{display:none}.content{padding:22px 15px 95px}.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.kpi-card{padding:16px}.section-intro{align-items:flex-start}.settings-actions{align-items:stretch;flex-direction:column}.topbar h1{font-size:20px}.boot-logo{width:min(280px,72vw)}.boot-welcome{font-size:clamp(34px,9vw,56px)}}

/* Boot / Welcome intro */
body.booting{overflow:hidden}
body.booting #appShell{opacity:0;pointer-events:none}
body.booting #appShell.reveal{opacity:1;pointer-events:auto}
.boot-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(93,124,255,.16),transparent 42%),#05070f;opacity:0;pointer-events:none;transition:opacity .7s ease,background .9s ease}
.boot-overlay.active{opacity:1;pointer-events:auto}
.boot-overlay.welcome-phase{background:radial-gradient(circle at 50% 40%,rgba(93,124,255,.08),transparent 36%),rgba(5,7,15,.28);backdrop-filter:blur(2px)}
.boot-overlay.fade-out{opacity:0;pointer-events:none;background:transparent}
.boot-stage{position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none}
.boot-logo-stage.active{opacity:1;animation:bootLogoCycle 4s ease forwards}
.boot-welcome-stage{align-content:center;justify-items:center;gap:10px}
.boot-welcome-stage.active{opacity:1;animation:bootWelcomeCycle 3s ease forwards}
.boot-logo{width:min(360px,70vw);height:auto;position:relative;z-index:1;filter:drop-shadow(0 0 0 rgba(255,255,255,0));transform:scale(.94)}
.boot-glow{position:absolute;width:min(420px,80vw);height:120px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22),rgba(93,124,255,.18) 40%,transparent 70%);filter:blur(18px);opacity:0;transform:scale(.8)}
.boot-welcome-eyebrow{margin:0;color:#7f8ba3;font-size:11px;letter-spacing:4px;font-weight:800}
.boot-welcome{margin:0;font-size:clamp(42px,7vw,72px);font-weight:300;letter-spacing:.08em;color:#f7f9ff;text-shadow:0 0 40px rgba(93,124,255,.35)}
#appShell{transition:opacity 1.1s ease}
#appShell.reveal{opacity:1}
@keyframes bootLogoCycle{
  0%{opacity:0}
  18%{opacity:1}
  18%,78%{opacity:1}
  100%{opacity:0}
}
.boot-logo-stage.active .boot-logo{animation:bootLogoShine 4s ease forwards}
.boot-logo-stage.active .boot-glow{animation:bootGlowPulse 4s ease forwards}
@keyframes bootLogoShine{
  0%{opacity:0;transform:scale(.9);filter:drop-shadow(0 0 0 rgba(255,255,255,0))}
  20%{opacity:1;transform:scale(1);filter:drop-shadow(0 0 18px rgba(255,255,255,.35))}
  45%{filter:drop-shadow(0 0 34px rgba(160,186,255,.75)) brightness(1.18)}
  70%{filter:drop-shadow(0 0 22px rgba(255,255,255,.4)) brightness(1.05);transform:scale(1.02)}
  100%{opacity:0;transform:scale(1.04);filter:drop-shadow(0 0 0 rgba(255,255,255,0)) brightness(1)}
}
@keyframes bootGlowPulse{
  0%{opacity:0;transform:scale(.7)}
  25%{opacity:.85;transform:scale(1)}
  55%{opacity:1;transform:scale(1.12)}
  100%{opacity:0;transform:scale(1.25)}
}
@keyframes bootWelcomeCycle{
  0%{opacity:0;transform:translateY(10px)}
  18%{opacity:1;transform:none}
  62%{opacity:1;transform:none}
  100%{opacity:0;transform:translateY(-6px)}
}
