:root{--bg:#f7f8fa;--panel:#fff;--panel-2:#f0f2f5;--text:#1c2430;--muted:#5b6675;--border:#e2e6ec;--brand:#2f6df6;--brand-ink:#1b4fd0;--accent:#0ea5a4;--warn-bg:#fff6e6;--warn-border:#f2c66a;--code-bg:#f2f4f8;--sidebar-w:288px;--radius:12px;--shadow:0 1px 2px #141e320f, 0 8px 24px #141e320d}@media (prefers-color-scheme:dark){:root{--bg:#0f1420;--panel:#161d2b;--panel-2:#1c2536;--text:#e6ebf2;--muted:#9aa7ba;--border:#263048;--brand:#6ea0ff;--brand-ink:#9dbcff;--accent:#2dd4bf;--warn-bg:#2a2313;--warn-border:#5c4a1f;--code-bg:#0e1523;--shadow:0 1px 2px #0000004d, 0 10px 30px #00000059}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,Meiryo,sans-serif;line-height:1.75}a{color:var(--brand-ink);text-decoration:none}a:hover{text-decoration:underline}.layout{align-items:stretch;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--panel);border-right:1px solid var(--border);align-self:flex-start;height:100vh;padding:22px 16px 40px;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:12px;padding:6px 8px 18px;display:flex}.brand-badge{background:linear-gradient(135deg, var(--brand), var(--accent));color:#fff;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.brand-title{letter-spacing:.01em;font-size:15px;font-weight:800;line-height:1.25}.brand-sub{color:var(--muted);font-size:12px}.nav-group{margin-top:18px}.nav-group h4{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;padding:0 10px;font-size:11px}.nav-link{color:var(--text);border-radius:9px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;font-weight:500;display:flex}.nav-link:hover{background:var(--panel-2);text-decoration:none}.nav-link.active{background:color-mix(in srgb, var(--brand) 16%, transparent);color:var(--brand-ink);font-weight:700}.nav-link .ico{text-align:center;flex:none;width:20px}.main{flex-direction:column;flex:auto;min-width:0;display:flex}.content{width:100%;max-width:880px;margin:0 auto;padding:40px 28px 88px}.topbar{border-bottom:1px solid var(--border);background:var(--panel);z-index:5;align-items:center;gap:12px;padding:12px 16px;display:none;position:sticky;top:0}.crumb{color:var(--muted);margin-bottom:8px;font-size:13px}.crumb a{color:var(--muted)}h1.page-title{letter-spacing:.01em;margin:4px 0 6px;font-size:30px;line-height:1.3}.page-lead{color:var(--muted);margin:0 0 26px;font-size:16px}.prose{font-size:15.5px}.prose h2{border-top:1px solid var(--border);margin:34px 0 12px;padding-top:8px;font-size:21px}.prose h2:first-child{border-top:0;margin-top:6px;padding-top:0}.prose h3{margin:22px 0 8px;font-size:17px}.prose p{margin:12px 0}.prose ul,.prose ol{margin:12px 0;padding-left:1.4em}.prose li{margin:5px 0}.prose code{background:var(--code-bg);border-radius:6px;padding:.12em .4em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.88em}.prose pre{background:var(--code-bg);border:1px solid var(--border);border-radius:10px;margin:16px 0;padding:14px 16px;overflow-x:auto}.prose pre code{background:0 0;padding:0;font-size:13px;line-height:1.65}.prose blockquote{border-left:4px solid var(--brand);background:color-mix(in srgb, var(--brand) 7%, transparent);border-radius:0 10px 10px 0;margin:16px 0;padding:12px 16px}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose table{border-collapse:collapse;width:100%;margin:18px 0;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:9px 12px}.prose th{background:var(--panel-2);white-space:nowrap;font-weight:700}.prose a{color:var(--brand-ink);font-weight:600}.prose hr{border:0;border-top:1px solid var(--border);margin:28px 0}.card-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:22px 0;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 16px 18px;transition:transform .12s,border-color .12s;display:block}.card:hover{border-color:var(--brand);text-decoration:none;transform:translateY(-2px)}.card .ico{font-size:22px}.card h3{color:var(--text);margin:8px 0 4px;font-size:16px}.card p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.card .cat{color:var(--brand-ink);letter-spacing:.04em;font-size:11px;font-weight:700}.tenant-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:24px 0;display:grid}.tenant-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;transition:border-color .12s,transform .12s}.tenant-card:hover{border-color:var(--brand);text-decoration:none;transform:translateY(-2px)}.tenant-card .tname{color:var(--text);font-size:17px;font-weight:800}.tenant-card .tlabel{color:var(--accent);font-family:ui-monospace,monospace;font-size:12px}.tenant-card .tpurpose{color:var(--muted);margin-top:8px;font-size:13px}.tenant-card .lock{float:right;color:var(--muted);font-size:13px}.callout{border:1px solid var(--warn-border);background:var(--warn-bg);border-radius:10px;margin:18px 0;padding:14px 16px;font-size:14px}.callout strong{color:var(--text)}.kv{border-collapse:collapse;width:100%;margin:18px 0;font-size:14.5px}.kv th{text-align:left;width:190px;color:var(--muted);border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px;font-weight:600}.kv td{border-bottom:1px solid var(--border);padding:10px 12px}.kv code{background:var(--code-bg);border-radius:6px;padding:.12em .45em;font-family:ui-monospace,monospace;font-size:.9em}.pill{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.foot{border-top:1px solid var(--border);color:var(--muted);margin-top:40px;padding-top:18px;font-size:13px}.log-item{border-left:3px solid var(--brand);margin:22px 0;padding:2px 0 2px 16px}.log-item .date{color:var(--muted);font-family:ui-monospace,monospace;font-size:12px}.log-item h3{margin:4px 0 6px;font-size:17px}@media (max-width:860px){.layout{flex-direction:column}.sidebar{border-right:0;border-bottom:1px solid var(--border);flex-basis:auto;width:100%;height:auto;display:none;position:static}.sidebar.open{display:block}.topbar{display:flex}.content{padding:24px 18px 72px}h1.page-title{font-size:24px}}.menu-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:8px;padding:7px 11px;font-size:14px}.menu-title{font-size:15px;font-weight:800}.gate-overlay{z-index:1000;background:radial-gradient(1200px 600px at 50% -10%, color-mix(in srgb, var(--brand) 22%, transparent), transparent), var(--bg);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.gate-card{background:var(--panel);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);text-align:center;border-radius:16px;padding:30px 26px 26px}.gate-badge{background:linear-gradient(135deg, var(--brand), var(--accent));color:#fff;border-radius:14px;place-items:center;width:52px;height:52px;margin:0 auto 12px;font-size:26px;display:grid}.gate-title{margin:0 0 4px;font-size:20px}.gate-sub{color:var(--muted);margin:0 0 22px;font-size:14px}.gate-label{text-align:left;color:var(--muted);margin:0 0 6px;font-size:13px;font-weight:600;display:block}.gate-input{border:1px solid var(--border);background:var(--panel-2);width:100%;color:var(--text);border-radius:10px;outline:none;padding:12px 14px;font-size:16px}.gate-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 25%, transparent)}.gate-error{color:#e5484d;text-align:left;margin:10px 0 0;font-size:13px}.gate-btn{color:#fff;background:var(--brand);cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:16px;padding:12px 14px;font-size:15px;font-weight:700}.gate-btn:hover{background:var(--brand-ink)}.gate-note{color:var(--muted);margin:18px 0 0;font-size:12px}
