:root{color-scheme:dark;--bg: #0f1115;--surface: #171a21;--border: #262b36;--text: #e7e9ee;--muted: #8b93a5;--ok: #3ecf8e;--warning: #e9b949;--danger: #ef5a5a;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app-shell{max-width:1100px;margin:0 auto;padding:32px 24px 80px;display:flex;flex-direction:column;gap:20px}.workspace-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.workspace-header .eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--muted)}.workspace-header h1{margin:4px 0;font-size:24px}.workspace-header p{margin:0;color:var(--muted);max-width:520px}button{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px}button:hover{border-color:#3a4152}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#2b5fd9;border-color:#2b5fd9}.notice{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;font-size:13px}.notice.danger{background:#ef5a5a1f;color:var(--danger)}.notice.ok{background:#3ecf8e1f;color:var(--ok)}.node-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;align-items:start}.surface{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.node-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.node-card-head h2{display:flex;align-items:center;gap:6px;font-size:15px;margin:0}.node-card-head small{color:var(--muted)}.node-card-body{display:flex;flex-direction:column;gap:4px;margin:12px 0;font-size:13px;color:var(--muted)}.node-card-body strong{color:var(--text)}.node-card-actions{display:flex;gap:8px}.status-pill{padding:4px 10px;border-radius:999px;font-size:11px;text-transform:capitalize;white-space:nowrap}.status-pill.ok{background:#3ecf8e26;color:var(--ok)}.status-pill.warning{background:#e9b94926;color:var(--warning)}.status-pill.danger{background:#ef5a5a26;color:var(--danger)}.job-details{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.job-details h3{display:flex;align-items:center;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:12px 0 6px}.candidate-list,.log-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px;max-height:180px;overflow-y:auto}.candidate-list li,.log-feed li{padding:6px 8px;border-radius:6px;background:#ffffff08}.candidate-list li.winner{border:1px solid var(--ok)}.candidate-list li.muted{color:var(--muted)}.log-feed li time{color:var(--muted);margin-right:6px}.log-feed li.warning{color:var(--warning)}.log-feed li.error{color:var(--danger)}.empty-state{color:var(--muted);font-size:13px;padding:24px;text-align:center}.loading-screen{min-height:100vh;display:grid;place-items:center;color:var(--muted);font-size:14px}.wide{width:100%}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-panel{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px}.auth-mark{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}.auth-mark svg{color:var(--ok);flex:none}.auth-mark h1{margin:0;font-size:22px;line-height:1.15}.auth-mark p{margin:6px 0 0;color:var(--muted);font-size:14px}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:6px;font-size:13px;color:var(--muted)}.auth-form input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-size:14px}.auth-form input:focus{outline:none;border-color:#3a4152}.inline-error{min-height:20px;display:flex;align-items:center;gap:8px;color:var(--danger);font-size:13px}.back-link{display:flex;align-items:center;gap:4px;width:fit-content;background:none;border:none;padding:0;margin-bottom:10px;color:var(--muted);font-size:13px;cursor:pointer}.back-link:hover{color:var(--text)}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;align-items:flex-start;gap:14px;text-align:left;height:auto}.tool-card:hover{border-color:#3a4152}.tool-card svg{color:var(--ok);flex:none;margin-top:2px}.tool-card h2{margin:0 0 4px;font-size:15px}.tool-card p{margin:0;color:var(--muted);font-size:13px}.danger-link{color:var(--danger)}.muted-inline{color:var(--muted);font-size:13px;margin:4px 0}.ip-compare{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.ip-compare h3{display:flex;align-items:center;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px}.ip-compare-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.ip-compare-list li{display:flex;justify-content:space-between;padding:4px 8px;border-radius:6px;background:#ffffff08}.ip-compare-list code{color:var(--text)}.add-node-form{display:flex;flex-direction:column;gap:4px}.add-node-form h2{margin:0 0 12px;font-size:16px}.add-node-form form{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;align-items:end}.add-node-form label{display:grid;gap:6px;font-size:13px;color:var(--muted)}.add-node-form input,.add-node-form select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-size:14px}.add-node-form .node-card-actions,.add-node-form .inline-error{grid-column:1 / -1}.dc-badge{display:inline-flex;align-items:center;gap:5px;width:fit-content;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;margin:4px 0 10px}.dc-hetzner{background:#d9770626;color:#f0a63a}.dc-lightsail{background:#2b5fd926;color:#6f9bf5}.dc-justhosting{background:#9b5ce026;color:#b98af0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin:10px 0}.stat-tile{background:#ffffff08;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted)}.stat-tile strong{color:var(--text);font-size:13px;display:flex;align-items:center;gap:4px}.stage-progress{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px 4px}.stage-progress-failed{color:var(--danger);font-size:13px;font-weight:600;margin-bottom:14px}.stage-step{display:flex;align-items:center;gap:5px;font-size:11px;padding:4px 8px;border-radius:999px;background:#ffffff08;color:var(--muted)}.stage-step-done{color:var(--ok)}.stage-step-current{color:var(--warning);background:#e9b9491f;font-weight:600}.stage-step-dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}.stage-step-current .stage-step-dot{opacity:1}@media(max-width:640px){.app-shell{padding:20px 14px 60px;gap:16px}.workspace-header{flex-direction:column;align-items:stretch}.workspace-header h1{font-size:20px}.workspace-header p{max-width:none}.node-grid,.tool-grid{grid-template-columns:1fr}.node-card-actions{flex-wrap:wrap}.add-node-form form{grid-template-columns:1fr}.auth-panel{padding:20px}.stat-grid{grid-template-columns:repeat(2,1fr)}}
