:root{--bg: #f5f6f8;--panel: #ffffff;--text: #1f2328;--muted: #656d76;--line: #d8dee4;--primary: #1f6feb;--primary-weak: #ddf4ff;--danger: #cf222e;--danger-weak: #ffebe9;--warn: #9a6700;--warn-weak: #fff8c5;--ok: #1a7f37;--ok-weak: #dafbe1;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,Yu Gothic UI,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:18px;margin:0 0 12px}h2{font-size:15px;margin:0 0 8px}h3{font-size:14px;margin:12px 0 6px}.topbar{display:flex;align-items:center;gap:16px;padding:8px 16px;background:#24292f;color:#fff}.topbar a{color:#fff}.topbar nav{display:flex;gap:14px;flex:1;flex-wrap:wrap}.topbar .active{text-decoration:underline;font-weight:600}.main{padding:16px;max-width:1400px;margin:0 auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px;margin-bottom:12px}.grid2{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.2fr);gap:12px;align-items:start}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:12px}table{width:100%;border-collapse:collapse;background:var(--panel)}th,td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}th{background:#f6f8fa;font-weight:600;white-space:nowrap}tr.clickable:hover{background:#f6f8fa;cursor:pointer}dl.kv{display:grid;grid-template-columns:110px 1fr;gap:4px 8px;margin:0}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0}input,select,textarea{font:inherit;padding:5px 7px;border:1px solid var(--line);border-radius:4px;background:#fff}textarea{width:100%;min-height:60px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-weak);border-color:var(--primary)}label.field{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}label.field>span{color:var(--muted);font-size:12px}.field-error{color:var(--danger);font-size:12px}button{font:inherit;padding:5px 12px;border:1px solid var(--line);border-radius:4px;background:#f6f8fa;cursor:pointer}button:hover:not(:disabled){background:#eef1f4}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.primary:hover:not(:disabled){background:#1158c7}button.danger{color:var(--danger)}button.link{border:none;background:none;color:var(--primary);padding:0}.badge{display:inline-block;padding:1px 6px;border-radius:10px;font-size:12px;background:#eaeef2;white-space:nowrap}.badge.warn{background:var(--warn-weak);color:var(--warn)}.badge.danger{background:var(--danger-weak);color:var(--danger)}.badge.ok{background:var(--ok-weak);color:var(--ok)}.badge.info{background:var(--primary-weak);color:var(--primary)}.notice{padding:8px 12px;border-radius:6px;margin-bottom:8px;border:1px solid var(--line)}.notice.warn{background:var(--warn-weak);border-color:#d4a72c}.notice.danger{background:var(--danger-weak);border-color:#ff8182}.notice.ok{background:var(--ok-weak);border-color:#4ac26b}.notice.info{background:var(--primary-weak);border-color:#54aeff}.promise{color:#8250df;font-weight:600}.unknown{color:#8c959f;font-style:italic}.tabs{display:flex;gap:4px;margin-bottom:8px;border-bottom:1px solid var(--line)}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none}.tabs button.on{border-bottom-color:var(--primary);font-weight:600}.skeleton{background:linear-gradient(90deg,#eef1f4,#f6f8fa,#eef1f4);height:14px;border-radius:3px;margin:6px 0}.save-state{font-size:12px;padding:2px 8px;border-radius:10px}.save-state.saved{color:var(--ok)}.save-state.dirty{color:var(--warn);background:var(--warn-weak)}.save-state.saving{color:var(--muted)}.save-state.failed{color:#fff;background:var(--danger);font-weight:600}.overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10}.dialog{background:#fff;border-radius:8px;padding:16px;width:min(860px,95vw);max-height:90vh;overflow:auto}.side-panel{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);background:#fff;border-left:1px solid var(--line);padding:16px;overflow:auto;z-index:9;box-shadow:-4px 0 12px #00000014}.login{max-width:360px;margin:80px auto}
