:root{--pf-bg:#0f1115;--pf-surface:#181b22;--pf-border:#2a2f3a;--pf-text:#e6e9ef;--pf-muted:#9aa3b2;--pf-accent:#7be33b;--pf-accent-ink:#081009;--pf-running:#34d399;--pf-sleeping:#f59e0b;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{background:var(--pf-bg);color:var(--pf-text);margin:0}.portal{max-width:880px;margin:0 auto;padding:2rem 1.25rem 4rem}.portal__header{border-bottom:1px solid var(--pf-border);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:1rem;display:flex}.portal__header h1{margin:0;font-size:1.4rem}.portal__brand{align-items:center;gap:.6rem;display:flex}.portal__logo{color:var(--pf-text);flex:none;display:block}.portal__nav{border-bottom:1px solid var(--pf-border);gap:.25rem;margin:1.5rem 0 1.75rem;display:flex}.portal__nav-item{appearance:none;color:var(--pf-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.6rem .95rem;font-size:.95rem}.portal__nav-item:hover{color:var(--pf-text)}.portal__nav-item--active{color:var(--pf-text);border-bottom-color:var(--pf-accent);font-weight:600}.portal__page-head{margin-bottom:1.25rem}.portal__page-head h2{margin:0 0 .25rem}.portal__page-sub{color:var(--pf-muted);max-width:62ch;margin:0;font-size:.9rem;line-height:1.45}.portal__empty{color:var(--pf-muted)}.portal__empty code,.portal__page-sub code{background:var(--pf-bg);border:1px solid var(--pf-border);border-radius:5px;padding:.1rem .35rem;font-size:.85em}.plan-picker h3{margin:1.5rem 0 .6rem;font-size:1.05rem}.plan-picker h3:first-of-type{margin-top:0}.portal__app-list,.plan-picker__addons{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.placement-toggle{background:var(--pf-surface);border:1px solid var(--pf-border);border-radius:8px;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.placement-toggle__name{flex:1;font-weight:600}.placement-toggle__runtime{color:var(--pf-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.placement-toggle__switch{border:1px solid var(--pf-border);background:var(--pf-bg);color:var(--pf-text);cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.25rem .75rem;display:inline-flex}.placement-toggle__switch--cloud{border-color:var(--pf-accent);color:var(--pf-accent)}.placement-toggle__switch:disabled{opacity:.6;cursor:progress}.node-status{align-items:center;gap:.75rem;display:flex}.node-status__badge{border:1px solid var(--pf-border);border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .6rem;font-size:.85rem;display:inline-flex}.node-status__dot{background:var(--pf-sleeping);border-radius:50%;width:.55rem;height:.55rem}.node-status__badge--running .node-status__dot{background:var(--pf-running)}.node-status__tier{color:var(--pf-muted);font-size:.8rem}.plan-picker__tiers{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.plan-card{background:var(--pf-surface);border:1px solid var(--pf-border);cursor:pointer;border-radius:10px;flex-direction:column;gap:.25rem;padding:1rem;display:flex}.plan-card--selected{border-color:var(--pf-accent);box-shadow:0 0 0 1px var(--pf-accent)}.plan-card__tier{font-weight:700}.plan-card__price{font-size:1.5rem}.plan-card__ram,.plan-card__egress{color:var(--pf-muted);font-size:.8rem}.addon{background:var(--pf-surface);border:1px solid var(--pf-border);border-radius:8px;justify-content:space-between;padding:.6rem 1rem;display:flex}.addon__price{color:var(--pf-muted)}.credential-setup{background:var(--pf-surface);border:1px solid var(--pf-border);border-radius:10px;flex-direction:column;gap:.6rem;padding:1rem 1.25rem;display:flex}.credential-setup__field{flex-direction:column;gap:.25rem;display:flex}.credential-setup__kind{border:1px solid var(--pf-border);border-radius:8px;gap:1rem;display:flex}.credential-setup__error{color:#f87171;margin:0}.credential-setup__saved{color:var(--pf-running);margin:0}.portal__footer{border-top:1px solid var(--pf-border);color:var(--pf-muted);margin-top:2rem;padding-top:1rem;font-size:.82rem}input[type=password],select{background:var(--pf-bg);color:var(--pf-text);border:1px solid var(--pf-border);border-radius:6px;padding:.4rem .6rem}input[type=radio]{accent-color:var(--pf-accent)}button[type=submit]{background:var(--pf-accent);color:var(--pf-accent-ink);cursor:pointer;border:none;border-radius:6px;align-self:flex-start;padding:.5rem 1rem;font-weight:600}
