:root{--bg:#0d1b26;--panel:#13293a;--panel2:#0f2230;--border:#1e3d52;--text:#d7e7f0;--muted:#7fa4b8;--accent:#37c1c9;--accent2:#8ef0e2;--danger:#ff7a7a;--ok:#6fe0a8}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:-apple-system,Apple SD Gothic Neo,Pretendard,Malgun Gothic,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,textarea.sql,table.data{font-family:ui-monospace,SF Mono,Menlo,monospace}.topbar{background:var(--panel2);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:24px;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.topbar .logo{color:var(--accent2);letter-spacing:1px;font-weight:700}.topbar nav{gap:16px;display:flex}.topbar nav a{color:var(--muted)}.topbar nav a.active,.topbar nav a:hover{color:var(--text);text-decoration:none}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);font-size:12px}.wrap{max-width:1280px;margin:0 auto;padding:24px 20px 80px}h1{margin:8px 0 16px;font-size:22px}h2{color:var(--accent2);margin:24px 0 10px;font-size:16px}.muted{color:var(--muted)}.small{font-size:12px}.grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.card h3{color:var(--accent2);margin:0 0 6px;font-size:15px}.card .cnt{float:right;color:var(--muted);font-size:12px}.tablewrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:12.5px}table.data th,table.data td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:420px;padding:6px 10px;overflow:hidden}table.data th{background:var(--panel2);color:var(--muted);position:sticky;top:0}table.data tr:hover td{background:#37c1c90f}table.data td.num{text-align:right;font-variant-numeric:tabular-nums}.badge{border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:1px 8px;font-size:11px;display:inline-block}.badge.warn{color:#ffcf87;border-color:#6b5528}.badge.pk{color:var(--accent2);border-color:var(--accent)}.badge.fk{color:#b8a1ff;border-color:#5b4a91}button,.btn{background:var(--accent);color:#06222a;cursor:pointer;border:0;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600}button:hover{filter:brightness(1.1)}button:disabled{opacity:.5;cursor:default}button.ghost{border:1px solid var(--border);color:var(--muted);background:0 0}textarea.sql{background:var(--panel2);width:100%;min-height:140px;color:var(--text);border:1px solid var(--border);resize:vertical;border-radius:8px;padding:12px;font-size:13px}input[type=text],input[type=password]{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;width:100%;padding:9px 12px;font-size:14px}.err{color:var(--danger);white-space:pre-wrap;font-size:13px}.ok{color:var(--ok)}.login-box{background:var(--panel);border:1px solid var(--border);border-radius:12px;max-width:360px;margin:14vh auto;padding:28px}.login-box h1{text-align:center;font-size:18px}.login-box .field{margin:12px 0}.login-box button{width:100%;margin-top:8px}.statgrid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:10px 0;display:grid}.stat{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.stat .k{color:var(--muted);font-size:11px}.stat .v{font-variant-numeric:tabular-nums;margin-top:2px;font-size:17px;font-weight:600}.mermaid-box{background:#fdfefe;border-radius:10px;padding:14px;overflow-x:auto}.rel-reason{color:var(--muted);font-size:12px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;display:flex}.pager{align-items:center;gap:8px;margin:12px 0;display:flex}.doc{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:24px 28px;line-height:1.75}.doc h1{margin:4px 0 14px;font-size:20px}.doc h2{color:var(--accent2);border-top:1px solid var(--border);margin:26px 0 10px;padding-top:18px;font-size:16px}.doc h3{margin:18px 0 8px;font-size:14px}.doc table{border-collapse:collapse;width:100%;margin:10px 0;font-size:12.5px;display:block;overflow-x:auto}.doc th,.doc td{border:1px solid var(--border);text-align:left;padding:6px 10px}.doc th{background:var(--panel2);color:var(--muted);white-space:nowrap}.doc pre{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:12px;line-height:1.6;overflow-x:auto}.doc code{background:var(--panel2);border-radius:4px;padding:1px 5px;font-size:12.5px}.doc pre code{background:0 0;padding:0}.doc img{border:1px solid var(--border);border-radius:8px;max-width:100%;margin:8px 0}.doc ul{padding-left:22px}.doc li{margin:3px 0}.doc blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:10px 0;padding:2px 14px}.doc a.tbl-link{color:var(--accent2);border-bottom:1px dashed var(--accent)}.doc input[type=checkbox]{accent-color:var(--accent);margin-right:6px}
