@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600;700&family=Outfit:wght@600;700;800&display=swap";:root{--ink: #0b1220;--field: #f1f5f9;--mist: #d0d7e2;--muted: #5b6575;--accent: #2457b0;--accent-soft: #dce7f8;--deep: #0b1220;--deep-2: #152038;--panel: #ffffff;--panel-2: #e2e8f0;--ok: #2f7a4f;--ok-bg: #e8f4ec;--ok-border: #b7d9c3;--bad: #b42318;--bad-bg: #fef3f2;--bad-border: #fecdca;--warn: #a16207;--focus: #3b82c4;--radius: 4px;--ease: cubic-bezier(.16, 1, .3, 1);--font-display: Outfit, system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color:var(--ink);background:var(--field);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--field);color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}code{font-family:var(--font-mono);font-size:12px;color:var(--muted);background:var(--panel-2);padding:2px 5px;border-radius:3px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;letter-spacing:-.04em;font-size:18px;color:var(--ink)}.logo-mark{width:22px;height:22px;flex-shrink:0;font-size:0;overflow:hidden;background:linear-gradient(var(--accent),var(--accent)) top left / 100% 3px no-repeat,linear-gradient(var(--accent),var(--accent)) top left / 3px 100% no-repeat,linear-gradient(var(--accent),var(--accent)) bottom right / 100% 3px no-repeat,linear-gradient(var(--accent),var(--accent)) bottom right / 3px 55% no-repeat,linear-gradient(var(--ink),var(--ink)) 6px 6px / 10px 10px no-repeat}.sidebar .logo-mark,.mobile-head .logo-mark{background:linear-gradient(var(--accent),var(--accent)) top left / 100% 3px no-repeat,linear-gradient(var(--accent),var(--accent)) top left / 3px 100% no-repeat,linear-gradient(var(--accent),var(--accent)) bottom right / 100% 3px no-repeat,linear-gradient(var(--accent),var(--accent)) bottom right / 3px 55% no-repeat,linear-gradient(#e8ecf2,#e8ecf2) 6px 6px / 10px 10px no-repeat}.side-logo{background:none;color:var(--ink);padding:0;margin-bottom:28px;text-align:left}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:4px;padding:11px 16px;font-weight:600;font-size:13px;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);white-space:nowrap}.btn-primary{background:var(--accent);color:#f4f7fc}.btn-primary:hover{transform:translateY(-1px);background:#1b4a98;box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 28%,transparent)}.btn-primary:active{transform:scale(.98) translateY(0)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-ghost{border:1px solid var(--mist);color:var(--ink);background:transparent}.btn-ghost:hover{background:#fff}.btn-ghost:active{transform:scale(.98)}.btn-google{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#fff;color:var(--ink);border:1px solid var(--mist);border-radius:4px;padding:12px 16px;font-weight:600;font-size:14px;transition:background .2s var(--ease),transform .2s var(--ease)}.btn-google:hover{background:#f4f5f7}.btn-google:active{transform:scale(.98)}.btn-google:disabled{opacity:.45;cursor:not-allowed}.toolbar.filters{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:16px;align-items:end}.filter{display:grid;gap:6px;font-size:11px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.filter select{min-width:140px;background:var(--panel);border:1px solid var(--mist);border-radius:4px;padding:11px 12px;font:13px var(--font-body);color:var(--ink);text-transform:none;letter-spacing:0}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.lede{color:var(--muted);line-height:1.55;margin:0}.lede.tight{margin-top:6px;font-size:14px}.fine{color:var(--muted);font-size:12px;margin:14px 0 0}.fine a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}.form-error{color:var(--bad);font-size:13px;margin:0}.ok-line{color:var(--ok);font-size:13px}.muted{color:var(--muted)}.auth{min-height:100dvh;display:grid;place-items:center;padding:32px 20px;background:radial-gradient(ellipse 80% 50% at 85% 0%,#d4e2f6 0%,transparent 52%),radial-gradient(ellipse 55% 40% at 5% 30%,#e2e8f0 0%,transparent 45%),var(--field)}.auth-card{width:min(100%,420px);background:var(--panel);border:1px solid var(--mist);border-radius:4px;padding:32px 28px;display:grid;gap:14px;box-shadow:0 20px 40px -24px #14161c40}.auth-card h1{margin:0;font-family:var(--font-display);font-size:28px;letter-spacing:-.04em}.auth-card label{display:grid;gap:6px;font-size:12px;color:var(--muted);font-weight:600}.auth-card input{width:100%;background:var(--field);border:1px solid var(--mist);border-radius:4px;padding:12px;outline:none}.auth-card input:focus{border-color:var(--focus);box-shadow:0 0 0 3px #3b82c433;background:#fff}.auth-links{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.auth-links a:hover{color:var(--ink)}.boot{min-height:100dvh;display:grid;place-content:center;gap:16px;text-align:center;color:var(--muted)}.shell{min-height:100dvh;display:flex;position:relative}.sidebar{width:220px;padding:24px 14px;border-right:1px solid #2a3140;background:var(--deep);color:#e8ecf2;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.sidebar .logo,.sidebar .side-logo{color:#e8ecf2}.sidebar nav{display:grid;gap:2px}.nav{text-align:left;padding:10px 12px;border-radius:4px;color:#9aa3b0;font-size:14px;display:flex;align-items:center;justify-content:space-between;transition:background .2s var(--ease),color .2s var(--ease)}.nav:hover,.nav.active{background:var(--deep-2);color:#fff}.nav.active{box-shadow:inset 2px 0 0 var(--accent)}.nav-external{font-size:10px;opacity:.5}.nav-count{font-family:var(--font-mono);font-size:11px;background:var(--deep-2);padding:1px 6px;border-radius:3px;color:#8b95a3}.nav.active .nav-count{background:#2a3140;color:#d5e3f7}.side-foot{margin-top:auto;padding-top:18px;border-top:1px solid #2a3140;display:grid;gap:10px}.side-foot strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;color:#e8ecf2}.side-foot span{color:#8b95a3;font-family:var(--font-mono);font-size:11px;text-transform:uppercase}.side-foot .btn-ghost{border-color:#3a4250;color:#c5ccd6}.side-foot .btn-ghost:hover{background:var(--deep-2);color:#fff}.mobile-head{display:none;position:sticky;top:0;height:60px;padding:0 20px;background:var(--deep);color:#fff;border-bottom:1px solid #2a3140;align-items:center;justify-content:space-between;z-index:4}.mobile-head .logo{color:#fff}.mobile-head button{padding:8px;color:#fff}.nav-scrim{display:none;position:fixed;inset:60px 0 0;border:0;padding:0;background:#00000059;z-index:2;cursor:pointer}.workspace{flex:1;min-width:0;background:var(--field)}.panel{padding:28px clamp(18px,4vw,40px) 48px}.panel.narrow{max-width:720px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.panel-head h1{margin:0;font-family:var(--font-display);font-size:28px;letter-spacing:-.04em}.toolbar{margin-bottom:16px}.toolbar input,.inline input,.modal input,.modal select,.kv-row input,.file-row input,.file-row textarea{width:100%;background:var(--panel);border:1px solid var(--mist);border-radius:4px;padding:11px 12px;outline:none;transition:border-color .15s,box-shadow .15s}.toolbar input:focus,.inline input:focus,.modal input:focus,.modal select:focus,.kv-row input:focus,.file-row input:focus,.file-row textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px #3b82c433}.inline{display:flex;gap:10px;margin:16px 0 20px}.inline input{flex:1}.table-wrap{border:1px solid var(--mist);border-radius:var(--radius);overflow:auto;background:var(--panel)}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--mist);white-space:nowrap;background:#f4f5f7}td{padding:12px 14px;border-bottom:1px solid #eceef2;white-space:nowrap}tr:last-child td{border-bottom:0}tr:hover td{background:#f4f5f7}.empty{text-align:center;color:var(--muted);padding:36px!important}.actions{display:flex;gap:10px;justify-content:flex-end}.actions button,.stack-list button,.danger{color:var(--ink);font-size:12px;font-weight:600;background:none;border:none;cursor:pointer}.actions button:hover{text-decoration:underline}.danger{color:var(--bad)!important}.status{font-family:var(--font-mono);font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status.live{color:var(--ok)}.status.bad{color:var(--bad)}.status.provisioning{color:var(--warn)}.status.archived{color:var(--muted)}.spinner{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.banner{margin:18px clamp(18px,4vw,40px) 0;padding:12px 14px;border:1px solid var(--ok-border);background:var(--ok-bg);border-radius:4px;display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px}.toast-container{position:fixed;top:18px;right:18px;z-index:100;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;padding:12px 14px;border-radius:4px;border:1px solid var(--mist);background:var(--panel);font-size:13px;max-width:min(420px,calc(100vw - 36px));cursor:pointer;display:flex;align-items:center;gap:10px;animation:toast-in .2s ease-out;box-shadow:0 10px 30px #14161c1f}.toast.ok{border-color:var(--ok-border);background:var(--ok-bg)}.toast.err{border-color:var(--bad-border);background:var(--bad-bg)}.toast-icon{flex-shrink:0}.toast.ok .toast-icon{color:var(--ok)}.toast.err .toast-icon{color:var(--bad)}.toast-close{margin-left:auto;padding:4px;color:var(--muted);font-size:16px;line-height:1;opacity:.6}.toast-close:hover{opacity:1}@keyframes toast-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;border:1px dashed var(--mist);border-radius:var(--radius);background:var(--panel)}.empty-state-icon{color:var(--muted);opacity:.45;margin-bottom:20px}.empty-state-title{margin:0 0 8px;font-family:var(--font-display);font-size:18px;letter-spacing:-.02em}.empty-state-desc{margin:0 0 24px;color:var(--muted);max-width:400px;line-height:1.5}.empty-state-action{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px}.error-state-icon{width:48px;height:48px;display:grid;place-items:center;background:var(--bad-bg);border:1px solid var(--bad-border);border-radius:50%;color:var(--bad);margin-bottom:20px}.error-state h3{margin:0 0 8px}.error-state p{color:var(--muted);margin:0 0 20px}.error-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.pill{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;vertical-align:middle}.pill.current{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-border)}.alert-card{border-radius:var(--radius);padding:20px;margin-bottom:20px}.alert-card.success{background:var(--ok-bg);border:1px solid var(--ok-border)}.alert-card h3{margin:0 0 6px;font-family:var(--font-display)}.alert-card p{margin:0 0 16px;color:var(--muted);font-size:13px}.secret-display{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--mist);border-radius:4px;padding:12px}.secret-display code{flex:1;word-break:break-all;color:var(--ink);font-size:13px;background:transparent;padding:0}.skeleton{display:inline-block;background:linear-gradient(90deg,var(--panel-2) 25%,var(--mist) 50%,var(--panel-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton-nav{pointer-events:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-card{border:1px solid var(--mist);border-radius:var(--radius);padding:28px;background:var(--panel);max-width:560px}.empty-card h3{margin:0 0 8px;font-family:var(--font-display)}.empty-card p{color:var(--muted);margin:0 0 16px}.bullets{color:var(--muted);margin:0 0 18px;padding-left:18px}.bullets li{margin:6px 0}.stack-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.stack-list li,.kv-row,.file-row{display:grid;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--mist);border-radius:4px;padding:10px}.stack-list li{grid-template-columns:1fr auto auto}.kv-row{grid-template-columns:1fr 1.4fr auto}.file-row{grid-template-columns:1fr}.file-row textarea{min-height:90px;resize:vertical}.subhead{display:flex;justify-content:space-between;align-items:center;margin:28px 0 12px}.subhead h2,.sub-title{margin:0;font-size:16px;font-family:var(--font-display);letter-spacing:-.02em}.sub-title{margin:28px 0 12px}.facts{margin:0;border:1px solid var(--mist);border-radius:var(--radius);background:var(--panel)}.facts>div{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--mist)}.facts>div:last-child{border-bottom:0}.facts dt{color:var(--muted)}.facts dd{margin:0;font-weight:600}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:8px}.stat-row article{background:var(--panel);border:1px solid var(--mist);border-radius:var(--radius);padding:16px}.stat-row span{display:block;color:var(--muted);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.stat-row strong{font-size:22px;letter-spacing:-.03em;font-family:var(--font-display)}.modal-backdrop{position:fixed;inset:0;background:#14161c8c;display:grid;place-items:center;padding:20px;z-index:30;animation:fade-in .15s}.modal{width:min(100%,420px);background:var(--panel);border:1px solid var(--mist);border-radius:4px;padding:24px;display:grid;gap:12px;animation:modal-in .2s var(--ease)}.modal h3{margin:0;font-family:var(--font-display)}.modal label{display:grid;gap:6px;font-size:12px;color:var(--muted);font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{transform:scale(.97);opacity:0}to{transform:scale(1);opacity:1}}.ssh-cell{font-family:var(--font-mono);font-size:12px;color:var(--ink)}.pod-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.pod-cell strong{font-weight:600}.fine.tight{margin:6px 0 0}.head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.topup-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.topup-divider{display:flex;align-items:center;gap:12px;margin:20px 0 4px;color:var(--muted);font-size:12px}.topup-divider:before,.topup-divider:after{content:"";flex:1;height:1px;background:var(--line, #dfe3e8)}.topup-block{margin-top:16px;padding:14px 16px;border:1px solid var(--line, #dfe3e8);border-radius:12px;background:color-mix(in srgb,var(--bg, #fff) 60%,transparent)}.mono{font-family:var(--font-mono);font-size:12px}.type-rate{display:inline-block;font-family:var(--font-mono);font-size:11px;letter-spacing:.02em;color:var(--muted);background:var(--field);border:1px solid var(--mist);border-radius:4px;padding:2px 7px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.skeleton{animation:none}}@media(max-width:860px){.shell{flex-direction:column}.sidebar{position:fixed;inset:60px auto 0 0;width:260px;transform:translate(-100%);transition:transform .2s;z-index:3}.sidebar.open{transform:translate(0)}.mobile-head{display:flex}.nav-scrim{display:block}.stat-row,.kv-row,.stack-list li{grid-template-columns:1fr}}@media(max-width:520px){.panel-head{flex-direction:column}.panel-head .btn{width:100%}.inline{flex-direction:column}.inline .btn{width:100%}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%}.banner{flex-direction:column;align-items:stretch}}
