/* theLAB Wiki — Wikipedia-faithful light + theLAB dark */
:root{
  --paper:#ffffff; --canvas:#f6f6f6; --bar:#f8f9fa;
  --ink:#202122; --ink-soft:#54595d; --muted:#72777d;
  --line:#c8ccd1; --line-soft:#eaecf0;
  --link:#3366cc; --link-visited:#795cb2; --link-red:#d33; --link-hover:#447ff5;
  --accent:#1b6ec2; --side:#f8f9fa; --code:#f5f5f5; --code-ink:#b32424;
  --infobox:#f8f9fa; --note:#eaf3ff; --note-line:#3366cc;
  --tag:#eaecf0; --serif:'Georgia','Times New Roman',serif;
  --sans:'Inter',-apple-system,Helvetica,Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
html[data-theme=dark]{
  --paper:#0e1117; --canvas:#080a0f; --bar:#11161f;
  --ink:#e6e9ee; --ink-soft:#aab2bf; --muted:#7d8694;
  --line:#2a3340; --line-soft:#1b212b;
  --link:#5aa0ff; --link-visited:#b69cff; --link-red:#ff6b6b; --link-hover:#8ec0ff;
  --accent:#22d3ee; --side:#11161f; --code:#0b1220; --code-ink:#22d3ee;
  --infobox:#11161f; --note:#0f2030; --note-line:#22d3ee;
  --tag:#1b212b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6}

/* ---- top bar ---- */
.wk-top{background:var(--bar);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.wk-top-inner{display:flex;align-items:center;gap:18px;max-width:1400px;margin:0 auto;padding:8px 18px}
.wk-brand{display:flex;flex-direction:column;text-decoration:none;line-height:1.05}
.wk-logo{font-family:var(--mono);font-weight:700;font-size:20px;color:var(--ink);letter-spacing:-.5px}
.wk-brand-sub{font-size:11px;color:var(--muted);font-style:italic}
.wk-search{flex:1;max-width:520px;display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--paper)}
.wk-search input{flex:1;border:0;padding:7px 12px;font-size:14px;background:transparent;color:var(--ink);outline:none}
.wk-search button{border:0;border-left:1px solid var(--line);background:var(--bar);color:var(--ink-soft);padding:0 12px;cursor:pointer}
.wk-search button:hover{color:var(--accent)}
.wk-top-actions{display:flex;align-items:center;gap:14px;margin-left:auto}
.wk-theme{background:none;border:1px solid var(--line);border-radius:4px;color:var(--ink-soft);cursor:pointer;padding:5px 7px;display:flex}
.wk-theme:hover{color:var(--accent);border-color:var(--accent)}
.wk-theme .ico-moon{display:none}
html[data-theme=dark] .wk-theme .ico-sun{display:none}
html[data-theme=dark] .wk-theme .ico-moon{display:block}
.wk-link{color:var(--link);text-decoration:none;font-size:13px}
.wk-link:hover{text-decoration:underline}
.wk-user{font-size:13px;color:var(--muted);font-family:var(--mono)}

/* ---- shell ---- */
.wk-shell{display:flex;max-width:1400px;margin:0 auto;align-items:flex-start}
.wk-side{width:195px;flex:0 0 195px;padding:18px 12px;font-size:15.5px;position:sticky;top:53px}
.wk-side-logo{display:block;text-decoration:none;color:var(--ink);font-family:var(--mono);font-size:22px;font-weight:700;margin:0 0 18px 6px}
.wk-side-logo .lab-b{color:var(--accent)}
.wk-side-logo small{display:block;font-size:11px;color:var(--muted);font-weight:400;letter-spacing:2px}
.wk-side-group{margin-bottom:16px}
.wk-side-h{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line-soft);padding:0 6px 4px;margin-bottom:6px}
.wk-side a{display:block;color:var(--link);text-decoration:none;padding:5px 6px;border-radius:3px;line-height:1.3}
.wk-side a:hover{text-decoration:underline;background:var(--line-soft)}

.wk-main{flex:1;min-width:0;background:var(--paper);border:1px solid var(--line);border-top:0;margin-bottom:24px}
.wk-tabs{display:flex;gap:0;background:var(--bar);border-bottom:1px solid var(--line);padding:0 8px}
.wk-tab{padding:9px 14px;font-size:13px;color:var(--link);text-decoration:none;border:1px solid transparent;border-bottom:0;margin-top:3px}
.wk-tab:hover{text-decoration:underline}
.wk-tab.active{background:var(--paper);border-color:var(--line);color:var(--ink);border-radius:3px 3px 0 0;position:relative;top:1px}
.wk-tab.new{color:var(--link-red)}
.wk-content{padding:20px 28px 36px}
/* themed default for ALL content links (special pages, history, etc.);
   more-specific rules below (red links, muted, categories) still win */
.wk-content a{color:var(--link);text-decoration:none}
.wk-content a:visited{color:var(--link-visited)}
.wk-content a:hover{text-decoration:underline}

/* ---- article ---- */
.wk-title{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.25;margin:0 0 4px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.wk-byline{font-size:12px;color:var(--muted);margin-bottom:16px}
.wk-article-body{font-size:15px}
.wk-article-body p{margin:0 0 14px}
.wk-article-body a{color:var(--link);text-decoration:none}
.wk-article-body a:visited{color:var(--link-visited)}
.wk-article-body a:hover{text-decoration:underline}
.wk-article-body a.new,.wikilink.new{color:var(--link-red)}
.wk-article-body h2{font-family:var(--serif);font-weight:400;font-size:24px;margin:26px 0 10px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.wk-article-body h3{font-size:18px;margin:20px 0 8px}
.wk-article-body h4{font-size:15px;margin:16px 0 6px}
.wk-article-body h2 .anchor,.wk-article-body h3 .anchor{opacity:0;color:var(--muted);text-decoration:none;font-size:.7em;margin-left:-1em;padding-right:.3em}
.wk-article-body h2:hover .anchor,.wk-article-body h3:hover .anchor{opacity:1}
.wk-article-body ul,.wk-article-body ol{margin:0 0 14px 28px}
.wk-article-body li{margin:4px 0}
.wk-article-body img{max-width:100%;height:auto}
.wk-article-body blockquote{border-left:3px solid var(--line);margin:0 0 14px;padding:2px 16px;color:var(--ink-soft)}
.wk-article-body hr{border:0;border-top:1px solid var(--line);margin:20px 0}

/* code */
code{font-family:var(--mono);font-size:.86em;background:var(--code);border:1px solid var(--line-soft);padding:1px 5px;border-radius:3px;color:var(--code-ink)}
pre{background:var(--code);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:4px;padding:14px 16px;overflow-x:auto;margin:0 0 16px}
pre code{background:none;border:0;padding:0;color:var(--ink);font-size:12.5px;line-height:1.6}
pre .c{color:var(--muted);font-style:italic}

/* tables (Wikipedia wikitable) */
.wk-article-body table{border-collapse:collapse;margin:0 0 16px;font-size:13.5px;background:var(--paper);border:1px solid var(--line)}
.wk-article-body th,.wk-article-body td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}
.wk-article-body th{background:var(--bar);font-weight:600}

/* migrated-content classes (callout / stats) */
.callout{background:var(--note);border:1px solid var(--line-soft);border-left:3px solid var(--note-line);border-radius:4px;padding:12px 16px;margin:0 0 16px;font-size:14px}
.callout .label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--note-line);margin-bottom:4px}
.callout.warn{--note-line:#f59e0b;background:#fff7e6}
html[data-theme=dark] .callout.warn{background:#2a2310}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0 0 18px}
.stat{background:var(--bar);border:1px solid var(--line);border-radius:8px;padding:12px}
.stat .v{font-family:var(--mono);font-size:1.3rem;font-weight:700;color:var(--accent)}
.stat .k{color:var(--muted);font-size:12px;margin-top:4px;font-family:var(--mono)}

/* TOC */
.toc{display:inline-block;min-width:240px;max-width:100%;background:var(--bar);border:1px solid var(--line);border-radius:4px;padding:10px 16px 12px;margin:0 0 18px}
.toc-title{font-weight:600;font-size:13px;text-align:center;margin-bottom:6px}
.toc ul{list-style:none;margin:0;padding-left:14px;font-size:13.5px}
.toc>ul{padding-left:0}
.toc li{margin:3px 0}
.toc a{color:var(--link);text-decoration:none}
.toc a:hover{text-decoration:underline}

/* infobox */
.wk-infobox{float:right;width:300px;max-width:46%;margin:0 0 16px 20px;background:var(--infobox);border:1px solid var(--line);border-radius:4px;font-size:13px}
.wk-infobox .ib-title{font-family:var(--serif);font-size:17px;text-align:center;padding:10px 12px 2px;font-weight:600}
.wk-infobox .ib-sub{text-align:center;color:var(--muted);padding:0 12px 8px;font-size:12px}
.wk-infobox table{width:100%;border-collapse:collapse}
.wk-infobox th,.wk-infobox td{border-top:1px solid var(--line-soft);padding:6px 10px;text-align:left;vertical-align:top}
.wk-infobox th{width:38%;background:var(--bar);font-weight:600;color:var(--ink-soft)}

/* ---- technical-docs readability: labeled lines, code, callouts ---- */
.wk-article-body h3{border-left:3px solid var(--accent);padding-left:11px;margin-top:26px}
.wk-article-body blockquote{border-left:4px solid var(--accent);background:var(--bar);
  padding:12px 16px;border-radius:0 8px 8px 0;margin:0 0 18px;color:var(--ink)}
.wk-article-body blockquote h3{border:0;padding:0;margin:0 0 8px}
.wk-article-body blockquote :last-child{margin-bottom:0}

/* labeled lines (Command / Prompt / Response / Output / Note / Warning / Example) */
.wk-article-body .kv{margin:7px 0;padding:8px 13px;border-left:3px solid var(--line);
  background:var(--bar);border-radius:0 6px 6px 0;font-size:14.5px;line-height:1.5}
.wk-article-body .kv strong{font-family:var(--mono);font-size:10.5px;font-weight:600;
  text-transform:uppercase;letter-spacing:.07em;margin-right:9px;vertical-align:1px}
.wk-article-body .kv code{background:transparent;border:0;padding:0;font-size:13.5px;font-weight:600}
.wk-article-body .kv-cmd{border-left-color:#06b6d4;background:rgba(6,182,212,.07)}
.wk-article-body .kv-cmd strong{color:#0891b2}
html[data-theme=dark] .wk-article-body .kv-cmd strong{color:#22d3ee}
.wk-article-body .kv-cmd code{color:#0e7490}
html[data-theme=dark] .wk-article-body .kv-cmd code{color:#7ef0ff}
.wk-article-body .kv-prompt{border-left-color:#f59e0b;background:rgba(245,158,11,.07)}
.wk-article-body .kv-prompt strong{color:#b45309}
html[data-theme=dark] .wk-article-body .kv-prompt strong{color:#fbbf24}
.wk-article-body .kv-prompt code{color:#92600a}
html[data-theme=dark] .wk-article-body .kv-prompt code{color:#fcd34d}
.wk-article-body .kv-response{border-left-color:#10b981;background:rgba(16,185,129,.07)}
.wk-article-body .kv-response strong{color:#047857}
html[data-theme=dark] .wk-article-body .kv-response strong{color:#34d399}
.wk-article-body .kv-response code{color:#047857}
html[data-theme=dark] .wk-article-body .kv-response code{color:#6ee7b7}
.wk-article-body .kv-output{border-left-color:#94a3b8;background:rgba(148,163,184,.08)}
.wk-article-body .kv-output strong{color:#64748b}
.wk-article-body .kv-output code{color:var(--ink-soft)}
.wk-article-body .kv-note{border-left-color:#3b82f6;background:rgba(59,130,246,.07)}
.wk-article-body .kv-note strong{color:#2563eb}
html[data-theme=dark] .wk-article-body .kv-note strong{color:#60a5fa}
.wk-article-body .kv-warn{border-left-color:#f59e0b;background:rgba(245,158,11,.10)}
.wk-article-body .kv-warn strong{color:#b45309}
html[data-theme=dark] .wk-article-body .kv-warn strong{color:#fbbf24}
.wk-article-body .kv-example{border-left-color:#a78bfa;background:rgba(167,139,250,.07)}
.wk-article-body .kv-example strong{color:#7c3aed}
html[data-theme=dark] .wk-article-body .kv-example strong{color:#c4b5fd}

/* phase-2 embedded legacy "styled island" — original page CSS lives scoped inside */
.kbembed{display:block;margin:0 0 18px;border-radius:8px;overflow:hidden;isolation:isolate}
.kbembed img,.kbembed svg{max-width:100%}

/* categories footer */
.wk-cats{margin-top:26px;border:1px solid var(--line);background:var(--bar);padding:8px 12px;font-size:13px;border-radius:3px}
.wk-cats-label{font-weight:600;margin-right:6px}
.wk-cats a{color:var(--link);text-decoration:none;margin-right:4px}
.wk-cats a:not(:last-child)::after{content:' |';color:var(--muted)}
.wk-cats a:hover{text-decoration:underline}

/* notes / lists */
.wk-note{background:var(--note);border:1px solid var(--line-soft);border-left:3px solid var(--note-line);padding:10px 14px;border-radius:3px;margin:0 0 16px;font-size:14px}
.wk-note.err{--note:#fdecea;--note-line:#d33}
html[data-theme=dark] .wk-note.err{--note:#2a1414}
.wk-note.ok{--note:#eaf7ea;--note-line:#28a745}
html[data-theme=dark] .wk-note.ok{--note:#102a16}
.wk-list{margin:0 0 16px 22px}
.wk-list.cols{columns:3;-webkit-columns:3;column-gap:30px;list-style:none;margin-left:0}
.wk-list.cols li{break-inside:avoid;margin:3px 0}
.wk-list a{color:var(--link);text-decoration:none}
.wk-list a:hover{text-decoration:underline}
.wk-count{color:var(--muted);font-size:12px}

/* results */
.wk-search-big{display:flex;gap:8px;margin:0 0 18px;max-width:640px}
.wk-search-big input{flex:1;padding:9px 12px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink)}
.wk-results{list-style:none;padding:0}
.wk-results li{margin:0 0 16px}
.r-title{font-size:17px;color:var(--link);text-decoration:none}
.r-title:hover{text-decoration:underline}
.r-snip{color:var(--ink-soft);font-size:13.5px;margin:3px 0 0}

/* history / rc / diff */
.wk-hist{list-style:none;padding:0}
.wk-hist li{padding:6px 0;border-bottom:1px solid var(--line-soft);font-size:14px}
.wk-hist input[type=radio]{margin-right:3px}
.wk-hist-meta{color:var(--muted);font-size:12.5px}
.wk-tag{font-family:var(--mono);font-size:10px;text-transform:uppercase;background:var(--tag);padding:1px 6px;border-radius:3px;margin-left:4px}
.wk-tag.cur{color:var(--accent)}
.wk-rc{list-style:none;padding:0}
.rc-day{font-weight:600;margin:14px 0 4px;border-bottom:1px solid var(--line);padding-bottom:3px}
.rc-row{font-size:14px;padding:3px 0}
.rc-time{font-family:var(--mono);color:var(--muted);font-size:12px;margin-right:8px}
.rc-hist,.rc-hist:visited{color:var(--muted);font-size:12px;text-decoration:none;margin-left:6px}
.rc-meta{color:var(--muted);font-size:12.5px;margin-left:6px}
.wk-diff-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:12px;color:var(--muted);margin-bottom:8px}
.wk-diff{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12.5px}
.wk-diff td.marker{width:20px;text-align:center;color:var(--muted);user-select:none}
.wk-diff td.line{white-space:pre-wrap;padding:1px 8px}
.wk-diff tr.add{background:#e6ffec}.wk-diff tr.add td.marker{color:#28a745}
.wk-diff tr.del{background:#ffebe9}.wk-diff tr.del td.marker{color:#d33}
html[data-theme=dark] .wk-diff tr.add{background:#0f2417}
html[data-theme=dark] .wk-diff tr.del{background:#2a1416}

/* editor */
.wk-edit{max-width:none}
.wk-fld{display:block;margin:0 0 14px}
.wk-fld>span{display:block;font-size:13px;font-weight:600;margin-bottom:4px}
.wk-fld small{color:var(--muted);font-weight:400}
.wk-fld input[type=text],.wk-fld input[type=password],.wk-fld input[type=file],.wk-fld select{
  width:100%;max-width:520px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font-size:14px}
.wk-edit-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 16px}
.wk-edit-col{min-width:0}
#contentArea{width:100%;height:460px;font-family:var(--mono);font-size:13px;line-height:1.6;padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);resize:vertical}
.wk-preview-head{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.wk-preview{border:1px solid var(--line-soft);border-radius:4px;padding:12px;height:460px;overflow:auto;background:var(--paper)}
.wk-ibedit{border:1px solid var(--line);border-radius:4px;padding:12px 14px;margin:0 0 14px}
.wk-ibedit legend{font-size:13px;font-weight:600;padding:0 6px}
.ib-line{display:flex;gap:8px;margin-bottom:6px}
.ib-line input{flex:1;padding:6px 9px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font-size:13px}
.wk-edit-actions{display:flex;gap:10px;align-items:center}
.wk-btn{display:inline-block;padding:8px 16px;border:1px solid var(--line);border-radius:4px;background:var(--bar);color:var(--ink);text-decoration:none;font-size:14px;cursor:pointer}
.wk-btn:hover{border-color:var(--accent)}
.wk-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.wk-btn.primary:hover{filter:brightness(1.08)}
.wk-btn.ghost{background:transparent;font-size:13px;padding:5px 10px}

/* login */
.wk-login,.wk-login-form{max-width:380px}
.wk-login-form{margin-top:10px}

/* media */
.wk-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.wk-media-item{border:1px solid var(--line);border-radius:4px;padding:8px;font-size:11px;text-align:center;background:var(--bar)}
.wk-media-item img{max-width:100%;height:80px;object-fit:contain;display:block;margin:0 auto 6px}
.wk-media-item code{font-size:10px;word-break:break-all}
.file-ico{height:80px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);color:var(--muted)}

/* footer */
.wk-foot{border-top:1px solid var(--line);background:var(--bar);margin-top:10px}
.wk-foot-inner{max-width:1400px;margin:0 auto;padding:14px 18px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.wk-foot a{color:var(--link);text-decoration:none}

@media(max-width:900px){
  .wk-side{display:none}
  .wk-infobox{float:none;width:auto;max-width:none;margin:0 0 16px}
  .wk-edit-split{grid-template-columns:1fr}
  .wk-list.cols{columns:1}
  .wk-brand-sub{display:none}
}
