:root{--bg: #15171a;--card: #1f2226;--line: #30343a;--fg: #e8e6e1;--muted: #9aa0a6;--green: #3fb96b;--red: #e5534b;--amber: #e0a526;--blue: #6ea8fe;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;font-size:16px;line-height:1.6}a{color:var(--blue)}.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;z-index:10;background:var(--card);padding:8px 12px;border-radius:var(--radius)}.app{max-width:880px;margin:0 auto;padding:0 16px 48px}.header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:16px}.header h1{font-size:1.05rem;margin:0;flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.header .who{color:var(--muted);font-size:.85rem;overflow-wrap:anywhere}.btn{appearance:none;border:1px solid var(--line);background:#272b30;color:var(--fg);border-radius:var(--radius);padding:10px 16px;font:inherit;font-size:.95rem;cursor:pointer;min-height:44px}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.btn-primary{background:#1f5d38;border-color:#2b7d4b}.btn-danger{background:#5d2320;border-color:#8a3a35}.btn-dev{background:#4a3a10;border-color:var(--amber);color:#f4dfa6;width:100%}.btn-small{padding:6px 12px;min-height:36px;font-size:.85rem}.btn-link{background:none;border:none;color:var(--blue);padding:4px;min-height:36px;cursor:pointer;font:inherit;text-decoration:underline}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px}.card h2{font-size:1rem;margin:0 0 4px;overflow-wrap:anywhere}.card-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.grid{display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:620px){.grid{grid-template-columns:1fr 1fr}}.muted{color:var(--muted)}.small{font-size:.85rem}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.8rem;border:1px solid var(--line);white-space:nowrap}.badge[data-state=running]{color:var(--green);border-color:var(--green)}.badge[data-state=stopped]{color:var(--muted)}.badge[data-state=starting],.badge[data-state=booting],.badge[data-state=stopping]{color:var(--amber);border-color:var(--amber)}.badge[data-state=maintenance]{color:var(--blue);border-color:var(--blue)}.badge[data-state=unknown]{color:var(--muted);border-style:dashed}.role-tag{font-size:.75rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px;white-space:nowrap}.field{display:block;margin-bottom:12px}.field>span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:4px}.field input{width:100%;background:#15171a;color:var(--fg);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;font:inherit;min-height:44px}.field input:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.notice{border:1px solid var(--red);background:#2a1b1a;color:#ffd7d3;border-radius:var(--radius);padding:10px 12px;margin:12px 0;overflow-wrap:anywhere}.notice-info{border-color:var(--blue);background:#1a2130;color:#d5e3ff}.notice-warn{border-color:var(--amber);background:#2a2310;color:#f4dfa6}.backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.backdrop[data-guard=on] .dialog{pointer-events:none}.dialog{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;max-width:420px;width:100%}.dialog h2{margin:0 0 8px;font-size:1.05rem}.dialog p{margin:0 0 16px;overflow-wrap:anywhere}.dialog .actions{justify-content:flex-end}.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:16px;-webkit-overflow-scrolling:touch}.tabs button{appearance:none;background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:10px 12px;font:inherit;font-size:.9rem;cursor:pointer;white-space:nowrap;min-height:44px}.tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--blue)}.tabs button:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0}.dl dt{color:var(--muted);font-size:.85rem}.dl dd{margin:0;overflow-wrap:anywhere}
