/* OS.TV API developer portal — shared styles. Self-contained, theme-aware. Canonical host: https://api.os.tv/ */
:root{
  --bg:#0b1017; --panel:#0f1a27; --panel2:#13202f; --bd:#243244; --bd2:#1a2634;
  --fg:#e7eef6; --muted:#8ea3b8; --dim:#5c6b7a; --accent:#12d39a; --accent2:#3b82f6;
  --amber:#f5b301; --red:#ff5d63; --code:#cfe3ff;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --maxw:1080px;
}
@media (prefers-color-scheme: light){
  :root{ --bg:#f6f8fb; --panel:#fff; --panel2:#f0f4f9; --bd:#dce4ee; --bd2:#e7edf4;
         --fg:#12202f; --muted:#516074; --dim:#8394a6; --code:#0b3a66; }
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
code,pre{font-family:var(--mono)}
code{background:var(--panel2);border:1px solid var(--bd);border-radius:5px;padding:1px 6px;font-size:.86em;color:var(--code)}
pre{background:var(--panel);border:1px solid var(--bd);border-radius:10px;padding:14px 16px;overflow-x:auto;font-size:13px;line-height:1.55}
pre code{background:none;border:none;padding:0;color:var(--fg)}
h1,h2,h3{line-height:1.25;text-wrap:balance}
h1{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}
h2{font-size:20px;font-weight:700;margin:34px 0 10px;padding-top:8px;border-top:1px solid var(--bd2)}
h3{font-size:15px;font-weight:700;margin:22px 0 6px;color:var(--fg)}
p{margin:10px 0}
hr{border:none;border-top:1px solid var(--bd2);margin:26px 0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
/* top bar */
header.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--bd)}
.top .wrap{display:flex;align-items:center;gap:20px;height:58px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.01em;color:var(--fg)}
.brand .mk{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--accent);color:#04120c;font-weight:900;font-size:13px}
.brand .dot{color:var(--accent)}
nav.main{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
nav.main a{color:var(--muted);padding:6px 11px;border-radius:8px;font-size:13.5px;font-weight:600}
nav.main a:hover{color:var(--fg);background:var(--panel);text-decoration:none}
nav.main a.on{color:var(--accent);background:var(--panel)}
/* layout */
main{padding:30px 0 70px}
.lead{color:var(--muted);font-size:16px;max-width:70ch}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700;color:var(--accent)}
/* doc two-col */
.doc{display:grid;grid-template-columns:210px 1fr;gap:36px;align-items:start}
aside.side{position:sticky;top:74px}
aside.side .grp{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin:16px 0 6px}
aside.side a{display:block;color:var(--muted);padding:5px 10px;border-radius:7px;font-size:13.5px}
aside.side a:hover{color:var(--fg);background:var(--panel);text-decoration:none}
aside.side a.on{color:var(--accent);background:var(--panel);font-weight:600}
article{min-width:0;max-width:74ch}
@media (max-width:820px){ .doc{grid-template-columns:1fr} aside.side{position:static;border-bottom:1px solid var(--bd2);padding-bottom:10px;margin-bottom:10px} }
/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:18px 0}
.card{background:var(--panel);border:1px solid var(--bd);border-radius:12px;padding:16px 18px}
.card h3{margin-top:0}
.card p{color:var(--muted);font-size:13.5px;margin:6px 0 0}
/* endpoint rows */
.ep{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--bd);border-radius:10px;padding:10px 14px;margin:8px 0;font-family:var(--mono);font-size:13.5px;flex-wrap:wrap}
.ep .m{font-weight:800;font-size:11px;letter-spacing:.04em;padding:2px 8px;border-radius:6px;background:color-mix(in srgb,var(--accent2) 18%,transparent);color:var(--accent2);border:1px solid color-mix(in srgb,var(--accent2) 45%,transparent)}
.ep .p{color:var(--fg)}
.ep .d{color:var(--dim);font-family:var(--sans);font-size:12.5px;margin-left:auto}
.ep .lock{color:var(--amber);font-size:11px;font-family:var(--sans);font-weight:600}
.ep .pub{color:var(--accent);font-size:11px;font-family:var(--sans);font-weight:600}
/* pills */
.pill{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.03em;padding:2px 9px;border-radius:20px;border:1px solid;vertical-align:middle}
.pill.pub{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.pill.op{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent)}
/* transport badges */
.tb{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.4px;padding:2px 7px;border-radius:10px;margin:0 3px 0 0}
.tb.iptv{color:#3b82f6;background:#3b82f622;border:1px solid #3b82f655}
.tb.ovp{color:#12d39a;background:#12d39a22;border:1px solid #12d39a55}
.tb.ota{color:#f5b301;background:#f5b30122;border:1px solid #f5b30155}
.tb.fast{color:#a855f7;background:#a855f722;border:1px solid #a855f755}
/* tables */
table{width:100%;border-collapse:collapse;font-size:13.5px;margin:14px 0;display:block;overflow-x:auto}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--bd2);vertical-align:top}
th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
td code{white-space:nowrap}
/* notes */
.note{border-left:3px solid var(--accent2);background:var(--panel);border-radius:0 10px 10px 0;padding:12px 16px;margin:16px 0;color:var(--muted);font-size:14px}
.note.warn{border-left-color:var(--amber)}
.note b{color:var(--fg)}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#04120c;font-weight:700;padding:9px 16px;border-radius:9px;font-size:14px}
.btn:hover{text-decoration:none;filter:brightness(1.06)}
.btn.ghost{background:transparent;color:var(--fg);border:1px solid var(--bd)}
footer.foot{border-top:1px solid var(--bd);color:var(--dim);font-size:12.5px;padding:24px 0}
footer.foot .wrap{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.mono-sm{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
