:root{--bg: #f4f5f7;--panel: #fff;--fg: #1c1f24;--muted: #6b7280;--line: #e3e6ea;--line-2: #eef0f3;--accent: #2563eb;--accent-bg: #eaf1ff;--ok: #15803d;--ok-bg: #dcfce7;--warn: #b45309;--warn-bg: #fef3c7;--bad: #b91c1c;--bad-bg: #fee2e2}@media(prefers-color-scheme:dark){:root{--bg: #0f1216;--panel: #161a20;--fg: #e6e8eb;--muted: #8b939e;--line: #262c35;--line-2: #1e232b;--accent: #60a5fa;--accent-bg: #172033;--ok: #4ade80;--ok-bg: #14352a;--warn: #fbbf24;--warn-bg: #3a2c0d;--bad: #f87171;--bad-bg: #3b1616}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.55 system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.page{width:1040px;max-width:100%;margin:0 auto;padding:0 20px 60px}.top{display:flex;align-items:center;gap:16px;height:56px;border-bottom:1px solid var(--line);margin-bottom:24px}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}.tabs{display:flex;gap:2px;min-width:0;overflow-x:auto}.tabs button{background:none;border:none;padding:6px 12px;border-radius:6px;color:var(--muted);cursor:pointer;font:inherit;height:auto}.tabs button.active{background:var(--panel);color:var(--fg);box-shadow:0 0 0 1px var(--line)}.who{margin-left:auto;display:flex;align-items:center;gap:10px;white-space:nowrap;flex-shrink:0}.logout{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.nowrap{white-space:nowrap}.spacer{flex:1}.head{display:flex;align-items:center;gap:12px;margin:0 0 12px;height:32px}.head h2{margin:0;font-size:18px}h3{margin:0 0 10px;font-size:14px}p{margin:0 0 10px}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:16px}.row{display:flex;align-items:center;gap:10px;min-height:32px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}.big{font-size:28px;font-weight:600;line-height:1.2}.bar{height:6px;background:var(--line-2);border-radius:3px;overflow:hidden;margin:8px 0}.bar>div{height:100%;background:var(--accent)}.bar>div.warn{background:var(--warn)}.empty{color:var(--muted);padding:40px;text-align:center;background:var(--panel);border:1px dashed var(--line);border-radius:10px}.error{background:var(--bad-bg);color:var(--bad);padding:10px 12px;border-radius:8px;margin:0 0 12px;white-space:pre-wrap}.notice{background:var(--accent-bg);padding:10px 12px;border-radius:8px;margin:0 0 12px}.notice a{font-weight:600}table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:4px}th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:8px;border-bottom:1px solid var(--line-2);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tr:last-child td{border-bottom:none}td.wrap{white-space:normal}table.kv td:first-child{color:var(--muted);width:38%}.actions{text-align:right}.actions button{margin-left:6px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;padding:6px 14px;border-radius:6px;cursor:pointer;height:32px;white-space:nowrap}button:disabled{opacity:.45;cursor:default}button.ghost{background:none;color:var(--accent);border-color:var(--line);padding:0 10px;height:28px}button.danger{background:var(--bad);border-color:var(--bad);color:#fff}button.ghost.danger{background:none;color:var(--bad)}input[type=text],input:not([type]),select,textarea{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);height:32px}input:disabled,select:disabled{opacity:.5}input[type=checkbox],input[type=radio]{width:16px;height:16px;margin:0;vertical-align:middle;accent-color:var(--accent)}.form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:10px}.form.two{grid-template-columns:1fr 1fr}.form.three{grid-template-columns:1fr 1fr auto}.form>input,.form>select{width:100%}input.short{width:84px;height:28px;padding:3px 8px;text-align:right}.badge{display:inline-block;font-size:12px;line-height:20px;padding:0 8px;border-radius:999px;background:var(--line-2);color:var(--muted);white-space:nowrap}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.state{display:inline-block;font-size:12px;line-height:18px;padding:0 6px;border-radius:4px;background:var(--line-2)}.state.running,.state.active{background:var(--ok-bg);color:var(--ok)}.state.exited,.state.dead,.state.missing,.state.inactive{background:var(--bad-bg);color:var(--bad)}.state.restarting,.state.paused,.state.created{background:var(--warn-bg);color:var(--warn)}.hosts{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 6px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:13px}.chip .auth{font-size:11px;color:var(--muted)}.chip .auth.none{color:var(--warn)}pre.output,pre.log{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all;margin:10px 0 0}pre.log{max-height:70vh;overflow:auto}pre.inline{margin:0;font-size:12px;white-space:pre-wrap;color:var(--muted)}.list{list-style:none;padding:0;margin:0 0 8px}.list li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line-2)}.list li button{margin-left:auto}.steps{padding-left:1.4em;margin:0}.steps li{margin:4px 0}.opt{display:block;padding:4px 0}.opt input{margin-right:8px}.combo{position:relative}.combo input{width:100%}.combo-list{position:absolute;z-index:5;left:0;right:0;margin:4px 0 0;padding:4px 0;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:320px;overflow:auto;box-shadow:0 8px 24px #0000001f}.combo-list li{padding:6px 12px;cursor:pointer;display:flex;gap:8px;align-items:baseline}.combo-list li:hover,.combo-list li.sel{background:var(--accent-bg)}.status-line{height:32px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;overflow:hidden;white-space:nowrap}.warn-text{color:var(--warn)}tr.muted td{color:var(--muted)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.modal-body{background:var(--panel);border-radius:10px;padding:16px 18px;width:960px;max-width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:auto}.modal-body>*{flex-shrink:0}.avatar{width:22px;height:22px;border-radius:50%;vertical-align:middle;margin-right:8px;background:var(--line-2)}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;height:132px;display:flex;flex-direction:column}.tile .bar{margin:4px 0 8px}.tile-title{color:var(--muted);font-size:12px}.tile-value{font-size:28px;font-weight:600;line-height:1.3;margin:2px 0 4px}.tile-sub{color:var(--muted);font-size:12px;margin-top:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.two-col .card{margin-bottom:16px}.bar.inline{display:inline-block;width:60%;vertical-align:middle;margin:0 8px 0 0}.stack .row{min-height:36px}.chev{background:none;border:none;color:var(--muted);font-size:20px;line-height:1;padding:0 4px;height:auto;width:20px;transform:rotate(0);transition:transform .15s}.chev.open{transform:rotate(90deg)}.hosts.inline{margin:0;display:inline-flex;gap:6px}@media(max-width:900px){.tiles{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart{position:relative}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis{fill:var(--muted);font-size:10px}.chart .crosshair{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}.chart .dot{stroke:var(--panel);stroke-width:2}.chart-foot{display:flex;gap:12px;align-items:center;min-height:20px;font-size:12px;color:var(--muted);flex-wrap:wrap}.chart-foot .legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}.chart-foot .tooltip{margin-left:auto;color:var(--fg)}.chart-title{font-size:12px;color:var(--muted);margin-bottom:2px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.seg button{background:none;border:none;color:var(--muted);height:26px;padding:0 10px;border-radius:0;font-size:12px}.seg button.on{background:var(--accent-bg);color:var(--fg)}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.three-col .card{margin-bottom:16px}@media(max-width:900px){.three-col{grid-template-columns:1fr}}.field{display:flex;gap:8px;margin-top:6px}.field>input,.field>textarea{flex:1;min-width:0}.field.column{flex-direction:column}.field.column>button{align-self:flex-end}textarea.mono{font-size:12px;height:auto;resize:vertical}.ai-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 4px}.ai-actions>.muted{margin-right:auto}h4{margin:16px 0 4px;font-size:13px;font-weight:600}table.kv td{white-space:normal}.form.pick{grid-template-columns:1fr 220px 1fr}.form.reg{grid-template-columns:1fr auto auto}@media(max-width:640px){.page{padding:0 12px 40px}.top{flex-wrap:wrap;height:auto;padding:8px 0;gap:8px 12px;margin-bottom:16px}.brand .muted{display:none}.who{margin-left:auto;gap:8px}.who>span:not(.badge){display:none}.tabs{order:3;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.tabs button{padding:6px 10px;flex:0 0 auto}.head{height:auto;min-height:32px;flex-wrap:wrap;row-gap:6px}.card{padding:12px}.row,.stack .row{flex-wrap:wrap;row-gap:4px}.form,.form.two,.form.three,.form.pick,.form.reg{grid-template-columns:1fr}.form>span:empty{display:none}.form>button:not(.ghost){width:100%}.field:not(.column){flex-direction:column}.field>button{width:100%;align-self:stretch}.grid,.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile{height:auto;min-height:110px;padding:12px;min-width:0}.tile-value{font-size:22px}.two-col,.three-col,.charts{grid-template-columns:1fr}.modal{padding:8px;align-items:flex-start}.modal-body{padding:12px;max-height:96vh}.status-line{height:auto;white-space:normal}.empty{padding:24px 12px}table.stack,table.stack tbody,table.stack tr{display:block;width:100%}table.stack thead,table.stack colgroup{display:none}table.stack tr{padding:10px 0;border-bottom:1px solid var(--line-2)}table.stack tr:last-child{border-bottom:none}table.stack td{display:flex;align-items:center;gap:10px;padding:3px 0;border:none;white-space:normal;overflow:visible;text-overflow:clip}table.stack td[data-label]:before{content:attr(data-label);flex:0 0 88px;color:var(--muted);font-size:12px}table.stack td.actions{justify-content:flex-end;padding-top:8px}table.stack td.actions button{margin-left:0}table.stack td.actions:before{content:none}table.stack td .avatar{flex:0 0 auto}.bar.inline{width:40%}}@media(max-width:900px){.charts{grid-template-columns:1fr}}
