/* Page-unique styles for case-study-high-scale-search.html — prose layout,
   diagram terminal chrome, tables. Shared chrome lives in theme.css. */
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);line-height:1.6;transition:background .2s,color .2s}
a{color:var(--blue)}
.wrap{max-width:820px;margin:0 auto;padding:32px 20px 80px}
.topnav{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;font-family:var(--font-mono);font-size:.85rem}
.topnav a{color:var(--muted);text-decoration:none}
.topnav a:hover{color:var(--accent)}
.theme-toggle{position:relative}

.article{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:28px 32px;margin-top:8px}

.kicker{font-family:var(--font-mono);color:var(--accent);font-size:.85rem;margin:0 0 6px}
h1{font-family:var(--font-sans);font-size:2rem;font-weight:800;letter-spacing:-.02em;margin:0 0 8px}
.subtitle{color:var(--muted);font-size:1.05rem;margin:0 0 28px}
.disclaimer{background:var(--panel-head);border:1px solid var(--border);border-left:3px solid var(--yellow);border-radius:6px;padding:12px 16px;font-size:.9rem;color:var(--muted);margin-bottom:32px}
.disclaimer b{color:var(--fg)}
h2{font-family:var(--font-sans);font-size:1.3rem;font-weight:700;margin:40px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
p{color:var(--fg)}

.term{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:20px 0}
.term-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--panel-head);border-bottom:1px solid var(--border)}
.dot{width:9px;height:9px;border-radius:50%}
.dot-max,.dot-close,.dot-min{cursor:pointer}
.dot-max:focus,.dot-close:focus,.dot-min:focus{outline:none}
.dot-max:focus-visible,.dot-close:focus-visible,.dot-min:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.no-scroll{overflow:hidden}
.term.is-expanded{position:fixed;inset:16px;z-index:100;margin:0;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.term.is-expanded .term-body{flex:1;overflow:auto;text-align:center}
.term.is-expanded .diagram{width:auto;height:100%;min-width:900px}
.term.is-minimized .term-body{display:none}
.term.is-closed{display:none}
.expand-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:99}
.expand-backdrop.is-visible{display:block}
.term-restore{display:none;width:100%;margin:20px 0;padding:10px 16px;background:var(--panel);border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-family:var(--font-mono);font-size:.85rem;cursor:pointer;text-align:center}
.term-restore.is-visible{display:block}
.term-restore:hover{color:var(--fg);border-color:var(--accent)}
.term-title{font-family:var(--font-mono);font-size:.75rem;color:var(--muted);margin-left:8px}
.term-body{padding:16px 18px;overflow-x:auto}
.term-body.diagram-body{padding:12px 6px}
.table-wrap{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin:16px 0}
table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.85rem}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}
th{background:var(--panel-head);color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
tbody tr:nth-child(even){background:var(--panel-head)}
tbody tr:last-child td{border-bottom:none}
th{color:var(--muted);font-weight:600}
code{font-family:var(--font-mono);background:var(--panel-head);padding:1px 6px;border-radius:4px;font-size:.88em}
.tag{display:inline-block;font-family:var(--font-mono);font-size:.72rem;color:var(--accent);border:1px solid var(--border);border-radius:20px;padding:2px 10px;margin:2px 4px 2px 0}
ul.list{padding-left:20px}
ul.list li{margin-bottom:8px}
.cta-row{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}
.cta{font-family:var(--font-mono);font-size:.85rem;text-decoration:none;border:1px solid var(--border);border-radius:6px;padding:8px 16px;color:var(--fg)}
.cta:hover{border-color:var(--accent);color:var(--accent)}
.diagram text{font-family:var(--font-mono)}
