:root{color-scheme:light dark;--bg:#0f1419;--card:#1a2029;--fg:#e6edf3;--accent:#3b82f6;--run:#22c55e;--stop:#64748b;--err:#ef4444}*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:var(--bg);color:var(--fg)}.login{min-height:100vh;display:grid;place-items:center}.card{background:var(--card);padding:2rem;border-radius:12px;display:flex;flex-direction:column;gap:1rem;min-width:320px}.card label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;min-width:0}input,select,button,textarea{padding:.6rem .8rem;border-radius:8px;border:1px solid #2d3746;background:#0d1117;color:var(--fg)}input,select,textarea{width:100%}button{background:var(--accent);border:none;cursor:pointer;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}.error{color:var(--err)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:var(--card)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:1.5rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem;border-bottom:1px solid #2d3746}.badge{padding:.15rem .5rem;border-radius:999px;font-size:.75rem}.badge.running{background:var(--run);color:#04210f}.badge.stopped{background:var(--stop);color:#fff}.stat{background:var(--card);padding:1rem 1.25rem;border-radius:10px}.stat b{font-size:1.6rem;display:block}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:1.05em;height:1.05em;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;display:inline-block;vertical-align:-2px;animation:spin .7s linear infinite}.spinner.lg{width:2.2em;height:2.2em;border-width:3px}.overlay{position:fixed;inset:0;background:#060a0f99;backdrop-filter:blur(2px);display:grid;place-items:center;z-index:50}.overlay .box{background:var(--card);padding:1.5rem 2rem;border-radius:12px;display:flex;gap:1rem;align-items:center;box-shadow:0 10px 40px #0006}.gauge{margin-top:.6rem;height:8px;background:#0d1117;border-radius:999px;overflow:hidden}.gauge-fill{height:100%;border-radius:999px;transition:width .5s ease}.stat .sub{opacity:.55;font-size:.9rem;font-weight:400}.ssh-cmd{display:block;background:#0d1117;border:1px solid #2d3746;padding:.7rem .9rem;border-radius:8px;font-family:ui-monospace,monospace;font-size:.95rem;user-select:all;overflow-x:auto;white-space:nowrap}.overlay .box h3{font-size:1.05rem}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;width:100%;background:var(--card);border:2px solid #2d3746;border-radius:12px;padding:1.1rem 1.2rem;cursor:pointer;color:var(--fg);font-weight:400;transition:border-color .15s,transform .15s}.tpl-card:hover{border-color:#3f4c5f;transform:translateY(-2px)}.tpl-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f62e}.tpl-card .tpl-head{font-size:.78rem;font-weight:600;letter-spacing:.02em;opacity:.5}.tpl-card .tpl-id{font-weight:400;opacity:.8}.tpl-card .tpl-desc{margin:.2rem 0 0;font-size:1rem;opacity:.95;width:100%}.tpl-card:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f62e}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol,.md pre,.md blockquote,.md table{margin:.4rem 0}.md h1,.md h2,.md h3,.md h4{margin:.5rem 0 .3rem;line-height:1.3}.md h1{font-size:1.25rem}.md h2{font-size:1.1rem}.md h3,.md h4{font-size:1rem}.md ul,.md ol{padding-left:1.2rem}.md code{background:#0d1117;border:1px solid #2d3746;border-radius:5px;padding:.05rem .3rem;font-size:.85em}.md pre{background:#0d1117;border:1px solid #2d3746;border-radius:8px;padding:.6rem .7rem;overflow-x:auto}.md pre code{background:none;border:0;padding:0}.md a{color:var(--accent)}.md blockquote{border-left:3px solid #2d3746;padding-left:.7rem;opacity:.85}.md table{border-collapse:collapse;font-size:.85em}.md th,.md td{border:1px solid #2d3746;padding:.25rem .45rem}.md img{max-width:100%}.notes-card{background:var(--card);border-radius:10px;padding:1rem 1.25rem;margin-top:1rem}.notes-card h3{margin:0 0 .5rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;opacity:.5;text-transform:uppercase}
