:root{--black-0:#0a0a0a;--black-1:#0f0f0f;--gray-0:#1a1a1a;--gray-1:#262626;--gray-2:#404040;--gray-3:#737373;--gray-4:#a3a3a3;--white-0:#e5e5e5;--red-0:#7f1d1d;--red-1:#ef4444;--green-0:#4ade80;--orange-0:#f59e0b;--purple-0:#8b5cf6;--blue-0:#06b6d4;--bg-primary:var(--black-0);--fg-primary:var(--white-0);--bg-secondary:var(--gray-0);--fg-secondary:var(--gray-4);--bg-muted:var(--gray-0);--fg-muted:var(--gray-3);--bg-accent:var(--white-0);--fg-accent:var(--black-0);--bg-card:var(--black-1);--fg-card:var(--white-0);--border:var(--gray-1);--ring:var(--gray-2);--success:var(--green-0);--warning:var(--orange-0);--error:var(--red-1);--info:var(--purple-0);--font-sans:"Geist Variable", system-ui, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, monospace;--radius:0px}*{box-sizing:border-box}html,body{background:var(--bg-primary);color:var(--fg-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px}a{color:inherit;text-decoration:none}::selection{background:color-mix(in srgb, var(--blue-0) 30%, transparent)}.app-shell{grid-template-columns:224px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--bg-primary);flex-direction:column;gap:24px;padding:16px 12px;display:flex}.sidebar-wordmark{font-family:var(--font-mono);letter-spacing:.08em;padding:4px 8px;font-size:16px;font-weight:700}.nav-section-label,.section-label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:500}.nav-link{color:var(--fg-muted);border-radius:var(--radius);padding:6px 8px;font-weight:500;display:block}.nav-link:hover{background:color-mix(in srgb, var(--bg-secondary) 50%, transparent);color:var(--fg-primary)}.nav-link.active{background:var(--bg-secondary);color:var(--fg-primary)}.sidebar-foot{flex-direction:column;gap:8px;margin-top:auto;display:flex}.main{min-width:0;position:relative}.noise-bg:before{content:"";pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.page{max-width:1040px;padding:32px}.page-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-title{margin:0;font-size:20px;font-weight:600}.page-sub{color:var(--fg-muted);margin-top:4px;font-size:13px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card+.card{margin-top:16px}.card-title{margin:0 0 12px;font-size:14px;font-weight:600}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);border-bottom:1px solid var(--border);padding:8px 12px;font-size:12px;font-weight:500}.table td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}.table tr:last-child td{border-bottom:none}.chip{border-radius:var(--radius);text-transform:lowercase;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.chip .dot{background:currentColor;border-radius:9999px;width:6px;height:6px}.chip-success{color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent)}.chip-warning{color:var(--warning);background:color-mix(in srgb, var(--warning) 10%, transparent)}.chip-error{color:var(--error);background:color-mix(in srgb, var(--error) 10%, transparent)}.chip-info{color:var(--info);background:color-mix(in srgb, var(--info) 10%, transparent)}.chip-muted{color:var(--fg-muted);background:color-mix(in srgb, var(--fg-muted) 10%, transparent)}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field-label{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);font-size:12px;font-weight:500}.field-hint{color:var(--fg-muted);font-size:12px}.input,.select{background:var(--bg-primary);border:1px solid var(--border);color:var(--fg-primary);border-radius:var(--radius);font:inherit;width:100%;padding:8px 10px}.input.mono{font-family:var(--font-mono);font-size:13px}.input:focus,.select:focus{outline:2px solid var(--ring);outline-offset:1px}.input::placeholder{color:var(--fg-muted)}.btn{font:inherit;border:1px solid var(--border);color:var(--fg-secondary);cursor:pointer;border-radius:var(--radius);background:0 0;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:color-mix(in srgb, var(--bg-secondary) 50%, transparent);color:var(--fg-primary)}.btn:disabled{opacity:.5;cursor:default;pointer-events:none}.btn-primary{background:var(--bg-accent);color:var(--fg-accent);border-color:var(--bg-accent)}.btn-primary:hover{background:var(--fg-primary);color:var(--fg-accent)}.btn-danger{color:var(--error);border-color:color-mix(in srgb, var(--error) 40%, transparent)}.btn-danger:hover{background:color-mix(in srgb, var(--error) 10%, transparent);color:var(--error)}.btn-success{color:var(--success);border-color:color-mix(in srgb, var(--success) 40%, transparent)}.btn-success:hover{background:color-mix(in srgb, var(--success) 10%, transparent);color:var(--success)}.btn-sm{padding:4px 10px;font-size:12px}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.mono{font-family:var(--font-mono);font-size:13px}.muted{color:var(--fg-muted)}.error-text{color:var(--error);font-size:13px}.key-reveal{font-family:var(--font-mono);background:var(--bg-primary);border:1px solid var(--warning);color:var(--warning);word-break:break-all;margin:8px 0;padding:12px;font-size:13px}.code-block{font-family:var(--font-mono);background:var(--bg-primary);border:1px solid var(--border);color:var(--fg-secondary);white-space:pre;padding:12px;font-size:12.5px;overflow-x:auto}.gate-row{border-bottom:1px solid var(--border);align-items:baseline;gap:10px;padding:6px 0;display:flex}.gate-row:last-child{border-bottom:none}.gate-name{font-family:var(--font-mono);flex-shrink:0;width:96px;font-size:13px}.gate-ms{font-family:var(--font-mono);color:var(--fg-muted);flex-shrink:0;margin-left:auto;font-size:12px}.gate-detail{color:var(--fg-secondary);font-size:13px}.wizard-steps{border:1px solid var(--border);gap:0;margin-bottom:24px;display:flex}.wizard-step{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);border-right:1px solid var(--border);background:var(--bg-card);flex:1;padding:10px 12px;font-size:12px;font-weight:500}.wizard-step:last-child{border-right:none}.wizard-step.current{color:var(--fg-accent);background:var(--bg-accent)}.wizard-step.done{color:var(--success)}.template-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.template-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;text-align:left;font:inherit;color:inherit;border-radius:var(--radius);padding:14px}.template-card:hover{border-color:var(--ring)}.template-card.selected{border-color:var(--info);outline:1px solid var(--info)}.template-card .tpl-name{margin-bottom:4px;font-weight:600}.template-card .tpl-url{font-family:var(--font-mono);color:var(--fg-muted);word-break:break-all;font-size:12px}.stack{flex-direction:column;gap:16px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.banner{border:1px solid var(--warning);background:color-mix(in srgb, var(--warning) 8%, transparent);color:var(--warning);padding:10px 12px;font-size:13px}.login-shell{place-items:center;min-height:100vh;display:grid}.login-card{width:380px;max-width:calc(100vw - 48px)}.login-card .card-title{font-family:var(--font-mono);letter-spacing:.08em;margin-bottom:4px;font-size:18px}.loading-row{color:var(--fg-muted);font-family:var(--font-mono);padding:24px;font-size:13px}@media (width<=760px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:4px;padding:8px 12px}.sidebar-foot{flex-direction:row;margin-top:0;margin-left:auto}.page{padding:20px 16px}}
