:root{--bg-primary:#0f1117;--bg-secondary:#161822;--bg-card:#1a1d2e;--bg-card-hover:#1e2235;--bg-hover:#252a3a;--bg-input:#141621;--accent:#10b981;--accent-hover:#34d399;--accent-glow:rgba(16,185,129,.12);--accent-glow-strong:rgba(16,185,129,.25);--accent-light:#6ee7b7;--accent-gradient:linear-gradient(135deg,#10b981,#06b6d4);--text-primary:rgba(255,255,245,.92);--text-secondary:rgba(235,235,245,.6);--text-muted:rgba(235,235,245,.36);--border:hsla(0,0%,100%,.08);--border-hover:hsla(0,0%,100%,.15);--border-accent:rgba(16,185,129,.35);--success:#10b981;--warning:#f59e0b;--error:#ef4444;--info:#3b82f6;--radius:14px;--radius-sm:8px;--radius-xs:6px;--radius-full:9999px;--transition:.2s cubic-bezier(.4,0,.2,1);--transition-slow:.35s cubic-bezier(.4,0,.2,1);--shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 14px rgba(0,0,0,.35);--shadow-lg:0 10px 30px rgba(0,0,0,.4);--shadow-glow:0 0 20px rgba(16,185,129,.15)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{background:var(--bg-primary);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}#app,body{min-height:100vh}#app{display:flex;flex-direction:column;width:100%}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.fade-slide-enter-active,.fade-slide-leave-active{transition:opacity .25s ease,transform .25s ease}.fade-slide-enter-from{opacity:0;transform:translateY(12px)}.fade-slide-leave-to{opacity:0;transform:translateY(-8px)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;transition:var(--transition)}.card:hover{border-color:var(--border-hover)}.card.disabled{opacity:.5;pointer-events:none}.card-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:14px 20px}.card-header.space-between{justify-content:space-between}.card-header h2{color:var(--text-secondary);font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.full-height{min-height:calc(100vh - 140px)}.sidebar{align-self:start;display:flex;flex-direction:column;gap:20px;position:sticky;top:84px}.btn{align-items:center;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:.82rem;font-weight:600;gap:10px;justify-content:center;padding:10px;transition:var(--transition)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-glow)}.btn.warning{background:var(--warning);color:#000}.btn:disabled{cursor:not-allowed;opacity:.35}.btn-outline{align-items:center;background:none;border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:.72rem;gap:5px;padding:4px 12px;transition:var(--transition)}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;padding:24px;text-align:center;transition:var(--transition)}.drop-zone:hover{background:var(--accent-glow);border-color:var(--accent)}.drop-icon{margin-bottom:8px;opacity:.5}.input-sm{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-primary);font-family:Inter,monospace;font-size:.78rem;padding:7px 10px;width:80px}.input-sm:focus{border-color:var(--accent);outline:none}.status-msg{border-radius:var(--radius-sm);font-size:.78rem;font-weight:500;margin:0 20px 16px;padding:10px 14px}.status-msg.info{background:var(--bg-hover);color:var(--text-primary)}.status-msg.success{background:#10b9811a;color:var(--success)}.status-msg.error{background:#ef44441a;color:var(--error)}.empty-state{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:16px;justify-content:center;padding:80px 20px;text-align:center}.empty-icon{opacity:.15}.badge{background:var(--bg-primary);border-radius:var(--radius-full);color:var(--text-muted);font-size:.68rem;font-weight:600;padding:2px 10px}.fade-slide-enter-active,.fade-slide-leave-active{transition:all .25s ease-out}.fade-slide-enter-from{opacity:0;transform:translate(20px)}.fade-slide-leave-to{opacity:0;transform:translate(-20px)}
