:root{--bg:oklch(0.115 0.005 285);--bg-card:oklch(0.155 0.006 285/0.6);--border:oklch(0.28 0.006 285/0.8);--fg:oklch(0.93 0.004 285);--muted:oklch(0.62 0.01 285);--primary:oklch(0.72 0.185 45);--primary-dim:oklch(0.72 0.185 45/0.12);--primary-border:oklch(0.72 0.185 45/0.35);--online:oklch(0.77 0.15 165);--offline:oklch(0.64 0.2 25);--font-sans:"Instrument Sans",sans-serif;--font-mono:"IBM Plex Mono",monospace}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{min-height:100dvh;background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.atmosphere{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(oklch(.32 .008 285/.16) 1px,transparent 0),linear-gradient(90deg,oklch(.32 .008 285/.16) 1px,transparent 0);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0,black 30%,transparent 75%);mask-image:radial-gradient(ellipse 90% 70% at 50% 0,black 30%,transparent 75%)}.atmosphere:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 55% 38% at 50% -6%,oklch(.72 .185 45/.16),transparent 70%)}main{width:100%;max-width:60rem;margin:0 auto;padding:0 1.5rem 5rem}header{display:flex;align-items:center;gap:1rem;padding:2.25rem 0 1.5rem;border-bottom:1px solid oklch(.28 .006 285/.6)}header h1{font-size:1.25rem;font-weight:600;letter-spacing:-.01em;line-height:1}header .sub{margin-top:.4rem;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:var(--muted)}.logo{width:44px;height:44px;flex:none}.panel{margin-top:2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:.8rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1.5rem}.label{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);margin-bottom:.6rem}input[type=password],textarea{width:100%;background:oklch(.1 .005 285);border:1px solid var(--border);border-radius:.5rem;color:var(--fg);font-family:var(--font-mono);font-size:.85rem;padding:.75rem .9rem;resize:vertical}textarea{min-height:7rem;line-height:1.5}input:focus,textarea:focus{outline:none;border-color:var(--primary-border)}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:1rem}button{font-family:var(--font-sans);font-weight:600;font-size:.88rem;padding:.6rem 1.2rem;border-radius:.5rem;border:1px solid var(--primary-border);background:var(--primary-dim);color:var(--primary);cursor:pointer;transition:background .2s,border-color .2s,opacity .2s}button:hover:not(:disabled){background:oklch(.72 .185 45/.2)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--muted);border-color:var(--border)}button.ghost:hover:not(:disabled){color:var(--fg);border-color:var(--primary-border)}.hint{font-size:11px;color:var(--muted);margin-left:auto}.error,.hint{font-family:var(--font-mono)}.error{color:var(--offline);font-size:.8rem;margin-top:.8rem}.result{margin-top:1.5rem}.result .head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}.result .head .name{font-family:var(--font-mono);font-size:.8rem;color:var(--fg);word-break:break-all}.result .head .actions{display:flex;gap:.5rem}.result .head button{padding:.35rem .75rem;font-size:.78rem}pre{background:oklch(.1 .005 285);border:1px solid var(--border);border-radius:.6rem;padding:1rem;overflow:auto;max-height:28rem;font-family:var(--font-mono);font-size:.78rem;line-height:1.55;color:var(--fg);white-space:pre-wrap;word-break:break-word}.result.failed pre{border-color:var(--offline);color:var(--offline)}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:1.5rem}.login-card{width:100%;max-width:22rem;background:var(--bg-card);border:1px solid var(--border);border-radius:.8rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:2rem;text-align:center}.login-card h1{font-size:1.1rem;font-weight:600;margin:1rem 0 .3rem}.login-card p{font-family:var(--font-mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.18em;margin-bottom:1.5rem}.login-card input{text-align:center;margin-bottom:.8rem}.login-card button{width:100%}