:root,[data-theme=dark]{--t-bg:#08080a;--t-card:#111114;--t-bg-raised:#16161a;--t-text:#e4e4e7;--t-dim:#71717a;--t-muted:#52525b;--t-border:#27272a;--t-bdr-weak:#ffffff0f;--t-accent:#0071e3;--t-accent-soft:#0071e31f;--t-green:#2ecc71;--t-red:#e74c3c;--t-amber:#f39c12;--t-badge-bg:#ffffff0f;--radius-sm:6px;--radius-md:10px;--radius-lg:14px}[data-theme=light]{--t-bg:#f5f5f7;--t-card:#fff;--t-bg-raised:#fafafa;--t-text:#1d1d1f;--t-dim:#86868b;--t-muted:#aeaeb2;--t-border:#d2d2d7;--t-bdr-weak:#0000000f;--t-accent:#0071e3;--t-accent-soft:#0071e31a;--t-green:#2ecc71;--t-red:#e74c3c;--t-amber:#f39c12;--t-badge-bg:#0000000a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{color:var(--t-text);background:var(--t-bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,system-ui,sans-serif;font-size:15px;line-height:1.5}body{min-height:100vh}a{color:var(--t-accent);text-decoration:none}a:hover{text-decoration:underline}code{background:var(--t-badge-bg);border-radius:4px;padding:1px 5px;font-family:SF Mono,ui-monospace,monospace;font-size:.85em}pre,code{word-break:break-all}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--t-border);padding:10px 14px;font-size:14px}th{color:var(--t-dim);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}tr:last-child td{border-bottom:none}hr{border:0;border-top:1px solid var(--t-border);margin:16px 0}h1{font-size:1.5rem;font-weight:700}h2{font-size:1.15rem;font-weight:600}.dim{color:var(--t-dim)}.muted{color:var(--t-muted)}.sm{font-size:13px}.xs{font-size:11px}.mono{font-family:SF Mono,ui-monospace,monospace;font-size:.9em}.fw500{font-weight:500}.text-green{color:var(--t-green)}.text-red{color:var(--t-red)}.content-area,.setup-wrapper{max-width:960px;margin:0 auto;padding:32px 20px 64px}.topbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.back-link{color:var(--t-dim);font-size:14px}.back-link:hover{color:var(--t-text);text-decoration:none}.card-stack{flex-direction:column;gap:16px;display:flex}.flex-row{align-items:center;gap:8px;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.hidden{display:none!important}.mt{margin-top:16px}.mt-sm{margin-top:8px}.theme-toggle{border:1px solid var(--t-border);color:var(--t-dim);cursor:pointer;background:0 0;border-radius:20px;padding:4px 10px;font-size:18px;line-height:1}.theme-toggle:hover{color:var(--t-text);border-color:var(--t-dim)}.card{background:var(--t-card);border-radius:var(--radius-lg);border:1px solid var(--t-bdr-weak);overflow:hidden}.card-header{border-bottom:1px solid var(--t-bdr-weak);justify-content:space-between;align-items:center;padding:16px 20px;font-size:14px;font-weight:600;display:flex}.card-title{font-weight:600}.card-body{padding:20px}.card-body-flush{padding:0}.spec-label{text-transform:uppercase;letter-spacing:.06em;color:var(--t-dim);margin-bottom:8px;font-size:11px;font-weight:600}.spec-divider{border-color:var(--t-bdr-weak);margin:16px 0}.kv-grid{grid-template-columns:120px 1fr;gap:4px 12px;font-size:14px;display:grid}.kv-grid dt{color:var(--t-dim);font-size:13px}.kv-grid dd{word-break:break-all;font-family:SF Mono,ui-monospace,monospace;font-size:.9em}.btn{border-radius:var(--radius-sm);border:1px solid var(--t-border);background:var(--t-card);color:var(--t-text);cursor:pointer;align-items:center;gap:4px;padding:7px 16px;font-size:14px;font-weight:500;transition:background .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--t-bg-raised)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--t-accent);border-color:var(--t-accent);color:#fff}.btn-primary:hover{background:color-mix(in srgb,var(--t-accent) 85%,black)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--t-badge-bg)}.btn-sm{padding:4px 10px;font-size:12px}.badge{background:var(--t-badge-bg);color:var(--t-dim);border-radius:10px;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.badge-ok{color:var(--t-green);background:color-mix(in srgb,var(--t-green) 12%,transparent)}.badge-accent{color:var(--t-accent);background:var(--t-accent-soft)}.badge-warn{color:var(--t-amber);background:color-mix(in srgb,var(--t-amber) 12%,transparent)}.badge-err{color:var(--t-red);background:color-mix(in srgb,var(--t-red) 12%,transparent)}.badge-pending{color:var(--t-dim);background:color-mix(in srgb,var(--t-dim) 12%,transparent)}.table-wrap{overflow-x:auto}.th-cb{text-align:center;width:40px}.th-cb input{cursor:pointer}.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.th-sortable:hover{color:var(--t-text)}.th-sortable:after{content:" ";opacity:.3;font-size:.7em}.sorted-asc:after,.sorted-desc:after{content:" ";opacity:1;color:var(--t-accent)}.empty-state{text-align:center;padding:60px 20px}.empty-icon{color:var(--t-dim);margin-bottom:8px;font-size:32px}.empty-title{margin-bottom:4px;font-weight:600}.empty-desc{color:var(--t-muted);font-size:13px}.form-group{margin-bottom:12px}.form-label{color:var(--t-dim);margin-bottom:4px;font-size:13px;font-weight:500;display:block}.form-select,.form-input{background:var(--t-bg);width:100%;color:var(--t-text);border:1px solid var(--t-border);border-radius:var(--radius-sm);outline:none;padding:7px 12px;font-size:14px}.form-select:focus,.form-input:focus{border-color:var(--t-accent)}.form-textarea{background:var(--t-bg);width:100%;min-height:120px;color:var(--t-text);border:1px solid var(--t-border);border-radius:var(--radius-sm);resize:vertical;outline:none;padding:12px;font-family:SF Mono,monospace;font-size:13px}.form-textarea:focus{border-color:var(--t-accent)}.code-block{background:var(--t-bg);border:1px solid var(--t-border);border-radius:var(--radius-md);white-space:pre-wrap;word-break:break-all;max-height:400px;padding:16px;font-family:SF Mono,monospace;font-size:13px;overflow:auto}.nic-row{border-bottom:1px solid var(--t-bdr-weak);flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0;font-size:13px;display:flex}.nic-row:last-child{border-bottom:none}.nic-name{min-width:90px;font-family:SF Mono,monospace;font-size:.9em;font-weight:600}.nic-item{color:var(--t-dim);align-items:center;gap:3px;display:inline-flex}.deploy-expand td{padding:0}.deploy-panel{background:var(--t-bg-raised);border-top:1px solid var(--t-bdr-weak);padding:16px 20px}.deploy-textarea{min-height:100px}.provider-display{cursor:pointer;border-bottom:1px dashed var(--t-dim)}.provider-display:hover{color:var(--t-accent)}.provider-input{width:140px;padding:2px 6px;font-size:13px}.node-header{margin-bottom:20px}.home-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:24px;display:grid}.home-card{border-radius:var(--radius-lg);background:var(--t-card);border:1px solid var(--t-bdr-weak);padding:24px;text-decoration:none;transition:border-color .15s;display:block}.home-card:hover{border-color:var(--t-accent);text-decoration:none}.home-card h2{color:var(--t-text);margin:12px 0 4px}.home-card p{color:var(--t-dim);font-size:13px;line-height:1.5}.card-link{margin-top:12px;font-size:14px;font-weight:500;display:inline-block}.card-link.admin{color:var(--t-amber)}.tab-bar{border-bottom:1px solid var(--t-border);gap:2px;margin-bottom:20px;display:flex}.tab-item{color:var(--t-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 20px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.tab-item:hover{color:var(--t-text)}.tab-item.active{color:var(--t-text);border-bottom-color:var(--t-accent)}.tab-panel{display:none}.tab-panel.active{display:block}.card-footer{border-top:1px solid var(--t-bdr-weak);align-items:center;gap:8px;padding:12px 20px;display:flex}.template-editor{background:var(--t-bg);width:100%;min-height:300px;color:var(--t-text);resize:vertical;border:none;outline:none;padding:16px;font-family:SF Mono,monospace;font-size:13px;line-height:1.6}.page-header{margin-bottom:8px}.page-title{font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--t-dim);margin-top:2px;font-size:13px}#deleteDialog{background:var(--t-card);color:var(--t-text);width:100%;max-width:26rem;box-shadow:0 0 0 1px var(--t-bdr-weak), 0 16px 48px -12px #000000a6;border:none;border-radius:16px;margin:auto;padding:0}#deleteDialog[open]{flex-direction:column;display:flex}#deleteDialog::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#00000080}.dialog-title{padding:28px 28px 0;font-size:17px;font-weight:600}.dialog-body{padding:8px 28px 28px}.dialog-body p{color:var(--t-muted);margin:0;font-size:13px}.dialog-actions{justify-content:flex-end;gap:8px;padding:0 28px 28px;display:flex}
