*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{max-width:1000px;margin:0 auto;padding:16px}.top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.brand{font-size:20px;font-weight:700;color:var(--text)}.auth{display:flex;align-items:center;gap:8px}.who{color:var(--muted);font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}h2{font-size:19px;margin:0 0 10px}.error{color:var(--danger);background:var(--danger-soft);padding:8px 12px;border-radius:10px;margin:8px 0;word-break:break-word}.banner{border:1px solid var(--border);border-radius:12px;padding:10px 14px;margin:10px 0;font-size:14px}.banner.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.banner.ok-b{background:var(--accent-soft);border-color:var(--ok);color:var(--ok)}.banner.prod{position:sticky;top:0;z-index:5}button,.btn{background:var(--card2);color:var(--text);border:1px solid var(--border);padding:8px 13px;border-radius:10px;cursor:pointer;font-size:14px}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.5;cursor:default}.kn-theme-toggle{padding:6px 9px}.small-btn{padding:4px 10px;font-size:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:14px}.gate{text-align:center;margin-top:40px}.gate p{margin:6px 0 14px}.row{display:flex;gap:8px;align-items:center}.row.between{justify-content:space-between;align-items:center}.tabs{display:flex;gap:8px;margin:4px 0 14px}.tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}.ns{padding:6px 10px}.ns-head,.tbl-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:none;padding:8px 4px;font-size:15px;color:var(--text);cursor:pointer}.ns-head:hover,.tbl-head:hover{border:none;color:var(--accent)}.ns-name{font-weight:700}.tbl-name{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.tw{width:14px;color:var(--muted)}.ns-body{padding-left:8px}.tbl{border-top:1px solid var(--border)}.cols{padding:4px 0 10px 24px;overflow-x:auto}.grid{border-collapse:collapse;font-size:13px;width:100%}.grid th{text-align:left;color:var(--muted);font-weight:600;padding:5px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.grid td{padding:4px 10px;border-top:1px solid var(--border);vertical-align:top}.grid-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;margin-top:6px}.sqlbox{width:100%;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px;font-size:14px;resize:vertical}.rows-out{margin-top:12px}.grid.facets td{vertical-align:middle}.grid.facets select,.grid.facets input{padding:4px 8px;font-size:13px;border-radius:8px}.facet-val{width:160px}.gensql{background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:10px 0 0;font-size:12.5px;white-space:pre-wrap;word-break:break-word;overflow-x:auto}.help .intro{margin-bottom:10px}.help h3.sec{font-size:15px;margin:18px 2px 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.help .arrow{color:var(--accent);font-weight:700;padding:0 2px}.gotchas{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.gotcha h4,.cat h4{font-size:14.5px;margin:0 0 6px}.gotcha p,.cat h4+*{margin-top:0}.maptable{display:flex;flex-direction:column;gap:6px;margin-top:8px}.maptable.head{margin:6px 0 2px}.col-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}.maprow{display:grid;grid-template-columns:1fr 22px 1fr;align-items:center;gap:6px}.maprow .arrow{text-align:center}.maprow code{display:block;background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:6px 9px;font-size:12.5px;white-space:pre-wrap;word-break:break-word}.maprow code.pg{border-color:var(--accent)}.maprow .mapnote{grid-column:1 / -1;padding:0 2px}@media (max-width: 620px){.maprow{grid-template-columns:1fr}.maprow .arrow{text-align:left;transform:rotate(90deg);width:22px}}
