:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f0f1f3;--text:#1f2733;--text-muted:#6b7280;--border:#dfe3e8;--accent:#d97706;--accent-hover:#b45309;--accent-text:#fff;--danger:#dc2626;--danger-bg:#fef2f2;--danger-border:#fecaca;--success:#15803d;--success-bg:#f0fdf4;--success-border:#bbf7d0;--shadow:0 1px 3px #0f172a14}:root[data-theme=dark]{--bg:#12151a;--surface:#1b2027;--surface-2:#242a33;--text:#e5e8ec;--text-muted:#98a1ad;--border:#333b46;--accent:#f59e0b;--accent-hover:#fbbf24;--accent-text:#1f2733;--danger:#f87171;--danger-bg:#2c1a1a;--danger-border:#5c2b2b;--success:#4ade80;--success-bg:#15251a;--success-border:#245c35;--shadow:0 1px 3px #0006}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}.app{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:4px 8px 16px;font-size:20px;font-weight:700;display:flex}.brand-icon{display:inline-flex}.nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-item{text-align:left;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:9px 12px}.nav-item:hover{background:var(--surface-2)}.nav-item-active,.nav-item-active:hover{background:var(--accent);color:var(--accent-text);font-weight:600}.sidebar-footer{border-top:1px solid var(--border);padding-top:12px}.sidebar-footer .btn{width:100%}.content{flex:1;max-width:980px;padding:24px 32px 48px}.page-title{margin:0 0 20px;font-size:26px}.page{flex-direction:column;gap:20px;display:flex}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:18px 20px}.card-title{margin:0 0 14px;font-size:17px}.subcard{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;margin-bottom:12px;padding:12px 14px}.row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.row:first-child{margin-top:0}.row-spread{justify-content:space-between;width:100%}.row-form{align-items:flex-end}.field>.row{margin-top:0}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:10px;display:grid}.stack{flex-direction:column;gap:10px;margin-top:10px;display:flex}.field{flex-direction:column;flex:1;gap:4px;min-width:200px;display:flex}.field-label{color:var(--text-muted);font-size:13px;font-weight:600}input[type=text],input[type=password],input[type=number],select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;width:100%;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical;font-family:ui-monospace,Cascadia Mono,JetBrains Mono,Menlo,monospace;font-size:13px}.checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.checkbox-spaced{margin-top:14px}.checkbox input{accent-color:var(--accent);width:16px;height:16px}.checkbox:has(input:disabled){cursor:default;color:var(--text-muted)}.bar{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:6px;overflow:hidden}.bar-fill{background:var(--accent);height:100%;transition:width .3s linear}.group-label{color:var(--text-muted);margin:16px 0 8px;font-size:13px;font-weight:600}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;padding:8px 14px}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:var(--danger);border-color:var(--danger-border)}.btn-danger:hover:not(:disabled){background:var(--danger-bg)}.btn-small{border-radius:6px;padding:3px 10px;font-size:13px}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}.table thead th{color:var(--text-muted);font-size:13px;font-weight:600}.table tbody tr:last-child th,.table tbody tr:last-child td{border-bottom:none}.table-kv th{width:130px;color:var(--text-muted);font-weight:600}.banner{overflow-wrap:anywhere;border:1px solid;border-radius:8px;margin-top:12px;padding:10px 12px}.banner-error{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.banner-success{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.banner a{color:inherit;font-weight:600}.flag{border:1px solid var(--border);color:var(--text-muted);background:var(--surface-2);border-radius:999px;margin-right:4px;padding:1px 8px;font-size:12px;display:inline-block}.flag-on{border-color:var(--success-border);background:var(--success-bg);color:var(--success)}.mono,code{font-family:ui-monospace,Cascadia Mono,JetBrains Mono,Menlo,monospace;font-size:13px}.muted{color:var(--text-muted)}.field-error{color:var(--danger)}.appkey{overflow-wrap:anywhere}.progress{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;margin-top:12px;padding:12px}.connection-state{margin-top:12px}.steps{margin:0 0 8px;padding:0;list-style:none}.steps-row{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;gap:2px 20px;margin:0;padding:14px 20px;display:flex}.step{color:var(--text-muted);align-items:baseline;gap:8px;padding:3px 0;display:flex}.step-mark{text-align:center;flex:none;width:16px}.step-active .step-mark:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse;display:inline-block}.step-pending .step-mark:before{content:"";border:1px solid var(--border);border-radius:50%;width:8px;height:8px;display:inline-block}.step-active{color:var(--text)}.step-active .step-label{font-weight:600}.step-done,.step-done .step-mark{color:var(--success)}.step-failed,.step-failed .step-mark{color:var(--danger)}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.step-active .step-mark:before{animation:none}}@media (width<=720px){.app{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;height:auto;position:static}.nav{flex-flow:wrap}.content{padding:16px}}
