/* Mediagg documentation.
   Tokens are the site's own, copied verbatim from public/index.html so the docs cannot drift into
   a second palette. Dark only, like the rest of the site: there is no theme toggle anywhere here
   and no prefers-color-scheme block, deliberately. */
:root{
  --bg:#0b0d10; --bg2:#11151b; --card:#151a21; --line:rgba(255,255,255,.09);
  --ink:#f2f5f8; --muted:#93a1b0; --dim:#6c7a89;
  --red:#ff3d3d; --amber:#ffb443;
  --r:18px; --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
 font:16px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
 -webkit-font-smoothing:antialiased}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}

/* Header ------------------------------------------------------------------------------------ */
header{border-bottom:1px solid var(--line);padding:18px 0;position:sticky;top:0;
 background:rgba(11,13,16,.88);backdrop-filter:blur(14px);z-index:5}
.hd{display:flex;align-items:center;justify-content:space-between;gap:16px}
.mark{border-radius:8px;display:block}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:17px;
 text-decoration:none;color:var(--ink)}
.back{color:var(--muted);text-decoration:none;font-size:14px}
.back:hover{color:var(--ink)}

/* Layout ------------------------------------------------------------------------------------ */
.layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:56px;
 align-items:start;padding-top:40px;padding-bottom:88px}
.doc{min-width:0;max-width:720px}

/* Sidebar ----------------------------------------------------------------------------------- */
.sb{position:sticky;top:92px;font-size:14.5px}
.sbfold summary{display:none}
.sbhome{display:block;color:var(--muted);text-decoration:none;padding:4px 0 14px;
 border-bottom:1px solid var(--line);margin-bottom:14px;font-weight:600}
.sbhome:hover,.sbhome.on{color:var(--ink)}
.sbsec{margin:0 0 14px}
.sbtitle{display:block;color:var(--ink);text-decoration:none;font-weight:700;padding:5px 0;
 letter-spacing:-.01em}
.sbtitle:hover{color:var(--red)}
.sbsec ul{list-style:none;margin:2px 0 0;padding:0 0 0 1px;display:none}
.sbsec.open ul{display:block}
.sbsec li{margin:0}
.sbsec li a{display:block;color:var(--dim);text-decoration:none;padding:4px 0 4px 13px;
 border-left:1px solid var(--line);line-height:1.45}
.sbsec li a:hover{color:var(--ink);border-left-color:var(--muted)}
.sbsec li a.on{color:var(--red);border-left-color:var(--red)}

/* Article ----------------------------------------------------------------------------------- */
.crumbs{font-size:13px;color:var(--dim);margin:0 0 18px;display:flex;flex-wrap:wrap;
 align-items:center;gap:8px}
.crumbs a{color:var(--dim);text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.crumbs i{font-style:normal;opacity:.45}
.doc h1{font-size:clamp(1.9rem,4.4vw,2.6rem);letter-spacing:-.03em;margin:0 0 12px;line-height:1.12}
.plats{display:flex;gap:7px;margin:0 0 14px}
.plat{border:1px solid var(--line);border-radius:999px;padding:3px 11px;font-size:12px;
 color:var(--muted);background:rgba(255,255,255,.03);letter-spacing:.01em}
.doc .sub{color:var(--dim);font-size:15px;margin:0 0 36px;line-height:1.6}
.doc p{color:var(--muted);margin:0 0 18px}
.doc h2{font-size:1.3rem;letter-spacing:-.02em;margin:46px 0 14px;color:var(--ink)}
.doc h3{font-size:1.05rem;letter-spacing:-.01em;margin:32px 0 10px;color:var(--ink)}
.doc strong{color:var(--ink)}
.doc a{color:var(--red)}
.doc ul,.doc ol{color:var(--muted);padding-left:20px;margin:0 0 18px}
.doc li{margin:9px 0}
code{background:rgba(255,255,255,.07);border-radius:5px;padding:2px 7px;font-size:.9em;
 color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
pre{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:16px 18px;
 overflow-x:auto;margin:0 0 18px}
pre code{background:none;padding:0;font-size:13.5px;line-height:1.6}
.note{border:1px solid var(--line);border-radius:12px;padding:18px 20px;
 background:rgba(255,255,255,.03);margin:0 0 18px}
.note p:last-child{margin-bottom:0}
.stubnote{border-style:dashed}
.steps{counter-reset:s;list-style:none;padding:0}
.steps li{counter-increment:s;position:relative;padding-left:44px;margin:18px 0}
.steps li::before{content:counter(s);position:absolute;left:0;top:1px;width:28px;height:28px;
 border-radius:50%;background:rgba(255,61,61,.14);color:var(--red);font-weight:800;font-size:14px;
 display:flex;align-items:center;justify-content:center}
/* Tables get their own scroller: the page body must never scroll sideways. */
.tablewrap{overflow-x:auto;margin:0 0 18px;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;font-size:14.5px}
th,td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--line);color:var(--muted);
 vertical-align:top}
th{color:var(--ink);font-weight:700;white-space:nowrap;background:rgba(255,255,255,.02)}
tbody tr:last-child td{border-bottom:0}
/* A quoted label split across two lines reads as two chips. The wrapper scrolls, so keeping
   them whole costs the page nothing. */
td code,th code{white-space:nowrap}

/* Section cards ----------------------------------------------------------------------------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:14px;margin:34px 0 0}
.card{display:block;border:1px solid var(--line);border-radius:var(--r);padding:20px;
 background:var(--card);text-decoration:none;transition:border-color .25s var(--ease),
 transform .25s var(--ease)}
.card:hover{border-color:rgba(255,255,255,.2);transform:translateY(-2px)}
.ic{width:24px;height:24px;color:var(--red);display:block;margin:0 0 12px}
.ct{display:block;color:var(--ink);font-weight:700;letter-spacing:-.01em;margin:0 0 5px}
.cs{display:block;color:var(--dim);font-size:14px;line-height:1.55}
.soon{display:inline-block;margin-left:8px;font-size:11px;font-weight:600;color:var(--amber);
 border:1px solid rgba(255,180,67,.3);border-radius:999px;padding:1px 8px;vertical-align:1px}

/* Previous / next --------------------------------------------------------------------------- */
.pnav{display:flex;gap:14px;margin:56px 0 0;padding-top:28px;border-top:1px solid var(--line);
 flex-wrap:wrap}
.pn{flex:1 1 200px;border:1px solid var(--line);border-radius:12px;padding:14px 18px;
 text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;
 transition:border-color .25s var(--ease)}
.pn:hover{border-color:rgba(255,255,255,.2)}
.pn b{display:block;font-size:12px;font-weight:600;color:var(--dim);margin:0 0 3px;
 text-transform:uppercase;letter-spacing:.06em}
.pn.next{text-align:right}

/* Footer ------------------------------------------------------------------------------------ */
footer{border-top:1px solid var(--line);padding:34px 0;color:var(--dim);font-size:14px}
.fin{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
footer a{color:var(--muted);text-decoration:none;margin-left:20px}
footer a:hover{color:var(--ink)}

/* Narrow ------------------------------------------------------------------------------------
   The home page drops its nav links below 820px, which is fine for a marquee and useless here.
   The tree folds into a disclosure instead, so every page stays reachable from every page. */
@media(max-width:860px){
  .layout{grid-template-columns:1fr;gap:26px;padding-top:26px}
  .sb{position:static}
  .sbfold summary{display:block;cursor:pointer;list-style:none;color:var(--ink);font-weight:700;
   border:1px solid var(--line);border-radius:12px;padding:13px 18px;background:var(--card)}
  .sbfold summary::-webkit-details-marker{display:none}
  .sbfold summary::after{content:"";float:right;width:8px;height:8px;margin:7px 2px 0 0;
   border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
   transform:rotate(45deg);transition:transform .2s var(--ease)}
  .sbfold[open] summary::after{transform:rotate(225deg);margin-top:10px}
  .sbin{padding:18px 18px 4px;border:1px solid var(--line);border-top:0;
   border-radius:0 0 12px 12px;margin-top:-12px}
  .sbsec ul{display:block}
  .doc h1{font-size:clamp(1.7rem,7vw,2.2rem)}
  .pn.next{text-align:left}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
