/* Dhīr edge post (3 November 2026). Builds on dhir-training.css; scoped to .dt.edge, colours from the brand guideline. */
.dt.edge .points{max-width:68ch}
.dt.edge .evals{margin-top:20px}
.dt.edge .stages.edge-two{grid-template-columns:repeat(2,1fr)}
@media (max-width:720px){.dt.edge .stages.edge-two{grid-template-columns:1fr}}

/* Code and table (from the original post) */
.prose .dt.edge code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;padding:1px 5px;border-radius:4px;background:var(--offwhite)}
.prose .dt.edge pre.code{margin:0 0 26px;padding:18px 20px;background:var(--teal-s2);color:var(--on-dark);border-radius:10px;overflow-x:auto;font-size:14px;line-height:1.65;max-width:100%}
.prose .dt.edge pre.code code{padding:0;background:none;color:inherit;font-size:inherit;white-space:pre}
.dt.edge .tbl.wide-tbl{margin:20px 0 4px}
.dt.edge .tbl.wide-tbl table{min-width:720px}
.dt.edge .tbl.wide-tbl td{font-size:15px}
.dt.edge .tbl.wide-tbl td.l{text-align:left}
.dt.edge .tbl.wide-tbl th[scope="row"]{vertical-align:top;border-right:1px solid var(--b-row)}
.dt.edge .tbl.wide-tbl td[rowspan]{vertical-align:top;color:var(--sec)}

/* Shared bits */
.dt.edge .edge-key{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;font-size:13.5px;color:var(--sec)}
.dt.edge .edge-key span{display:inline-flex;align-items:center;gap:7px}
.dt.edge .edge-key i{width:12px;height:12px;border-radius:3px;display:inline-block}
.dt.edge .m-w{background:var(--brand)}
.dt.edge .m-kv{background:var(--c-code)}
.dt.edge .m-buf{background:var(--c-indic)}
.dt.edge .k2{background:var(--soft-line)}
.dt.edge .k5{background:var(--brand)}
.dt.edge .edge-btn{border:1px solid var(--accent);background:var(--accent);color:var(--on-brand);border-radius:10px;padding:8px 16px;min-height:40px;font-size:14.5px;font-weight:500;cursor:pointer}
.dt.edge .edge-btn:hover{background:var(--brand-h)}

/* Memory budget */
.dt.edge .edge-slab{display:block;font-size:15px;color:var(--sec);margin-top:4px}
.dt.edge .edge-slab b{color:var(--ink);font-weight:600}
.dt.edge .edge-mem{position:relative;margin:30px 0 4px}
.dt.edge .edge-mem-bar{display:flex;height:40px;background:var(--s-sec);border-radius:8px;overflow:hidden}
.dt.edge .edge-mem-bar span{display:block;height:100%;transition:width .5s ease}
.dt.edge .edge-ram{position:absolute;top:-8px;bottom:-6px;width:0;border-left:2px dashed var(--ink);transition:left .5s ease}
.dt.edge .edge-ram em{position:absolute;bottom:100%;transform:translateX(-100%);padding-right:6px;font-style:normal;font-size:12.5px;color:var(--ink);white-space:nowrap}
.dt.edge .readout b{white-space:normal}
.dt.edge .readout b.ok{color:var(--brand)}
.dt.edge .readout b.warn{color:var(--c-indic)}
.dt.edge .readout b.bad{color:var(--c-math)}

/* Experts */
.dt.edge .edge-moe{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dt.edge .edge-moe-col{background:var(--s-main);border:1px solid var(--b-panel);border-radius:12px;padding:16px 18px}
.dt.edge .edge-moe-col h4{margin:0 0 12px;font-size:15.5px;color:var(--ink)}
.dt.edge .edge-moe-col p{margin:12px 0 0;font-size:14.5px;color:var(--sec)}
.dt.edge .edge-moe-col p b{color:var(--ink);font-size:18px}
.dt.edge .edge-experts{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;height:92px}
.dt.edge .edge-experts i{border-radius:6px;background:var(--b-panel);transition:background .35s ease}
.dt.edge .edge-experts i.on{background:var(--brand)}
.dt.edge .edge-experts.dense{grid-template-columns:1fr}
.dt.edge .edge-experts.dense i{background:var(--c-indic)}
@media (max-width:600px){.dt.edge .edge-moe{grid-template-columns:1fr}
.dt.edge .edge-experts{height:72px}}

/* Speeds */
.dt.edge .edge-sp{grid-template-columns:150px 1fr 70px}
.dt.edge .edge-two-bars{display:grid;gap:4px}
.dt.edge .edge-two-bars .track{height:13px}
.dt.edge .edge-sp .val{font-weight:400;color:var(--sec);line-height:1.25;font-size:14px}
.dt.edge .edge-sp .val b{color:var(--ink);font-weight:600}
.dt.edge .edge-stream{margin-top:22px;border-top:1px solid var(--b-panel);padding-top:18px}
.dt.edge .edge-screen{background:var(--s-main);border:1px solid var(--b-panel);border-radius:12px;padding:16px 18px;min-height:132px;font-size:15.5px;line-height:1.6;color:var(--body)}
.dt.edge .edge-caret{display:inline-block;width:8px;height:1.1em;vertical-align:-3px;margin-left:2px;background:var(--accent);animation:edgeblink 1s steps(1) infinite}
@keyframes edgeblink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.dt.edge .edge-caret{animation:none}
.dt.edge .edge-experts i,.dt.edge .edge-mem-bar span,.dt.edge .edge-ram{transition:none}}
@media (max-width:560px){.dt.edge .edge-sp{grid-template-columns:96px 1fr 58px}
.dt.edge .edge-screen{min-height:190px}}

/* Quantization */
.dt.edge .edge-q{grid-template-columns:80px 1fr 130px}
.dt.edge .edge-q .val{font-weight:400;color:var(--sec);line-height:1.3;font-size:14px}
.dt.edge .edge-q .val b{color:var(--ink);font-weight:600}
@media (max-width:560px){.dt.edge .edge-q{grid-template-columns:60px 1fr 104px}}

/* Rows built by dhir-edge.js (speeds, quantization) and the memory verdict */
.dt.edge .edge-cap{position:absolute;right:0;top:-24px;font-size:12.5px;color:var(--sec);white-space:nowrap}
.dt.edge .readout b.tight{color:var(--c-indic)}
.dt.edge .readout b.no{color:var(--c-math)}
.dt.edge .row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:8px 20px;align-items:center;padding:12px 0;border-top:1px solid var(--b-panel)}
.dt.edge .row:first-child{border-top:0}
.dt.edge .rl{font-size:15px;font-weight:600;color:var(--ink);line-height:1.35}
.dt.edge .rl small{display:block;font-weight:400;font-size:13px;color:var(--sec)}
.dt.edge .rb{display:grid;gap:6px}
.dt.edge .bl{display:grid;grid-template-columns:56px minmax(0,1fr) 88px;gap:10px;align-items:center;font-size:14px}
.dt.edge .bl em{font-style:normal;color:var(--sec)}
.dt.edge .bl b{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);text-align:right}
.dt.edge .tr{height:14px;border-radius:4px;background:var(--s-sec);overflow:hidden}
.dt.edge .tr span{display:block;height:100%;min-width:2px;border-radius:4px}
.dt.edge .bl.na b{font-weight:400;color:var(--sec)}
@media (max-width:640px){.dt.edge .row{grid-template-columns:1fr}}
.dt.edge .edge-ram{left:50%}
