/* Theme tokens. Light by default; dark follows the system unless the reader picks a theme (data-theme on <html>). */
:root{--bg:#fff;--ink:#222438;--muted:#62677c;--body:#3d4156;--line:#e2e5ef;--link:#4753d0;--card:#fff;--soft:#f7f8fc;--tint:#f0f2ff;--tint-line:#c9cff7;--code:#f0f1f6;--chip:#eeefff;--shot-line:#d5d9e7}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#111218;--ink:#eceef6;--muted:#a3a8bd;--body:#c9ccdb;--line:#2b2e3b;--link:#98a2ff;--card:#181a23;--soft:#181a23;--tint:#1d2033;--tint-line:#3a4170;--code:#22252f;--chip:#262a45;--shot-line:#2b2e3b;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#111218;--ink:#eceef6;--muted:#a3a8bd;--body:#c9ccdb;--line:#2b2e3b;--link:#98a2ff;--card:#181a23;--soft:#181a23;--tint:#1d2033;--tint-line:#3a4170;--code:#22252f;--chip:#262a45;--shot-line:#2b2e3b;color-scheme:dark}
body{background:var(--bg);color:var(--ink)}
p{color:var(--muted)}
footer,header{border-color:var(--line)}

/* Header actions */
.head-actions{display:flex;align-items:center;gap:10px}
.theme-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:18px;line-height:1;cursor:pointer}
.theme-btn:hover{border-color:var(--tint-line)}

.post-header{padding-top:40px;padding-bottom:20px;max-width:820px}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:22px}
.crumbs a{color:var(--link);font-weight:600}
.post-header h1{font-size:clamp(34px,4.4vw,52px)}
.post-meta{font-size:14px;margin:18px 0 0}
.post{max-width:820px;padding-bottom:80px}
.post h2{font-size:30px;letter-spacing:-1px;margin:56px 0 14px;scroll-margin-top:30px}
.post h3{font-size:20px;margin:32px 0 8px}
.post p,.post li{font-size:17px;line-height:1.75;color:var(--body)}
.post ul,.post ol{padding-left:24px}
.post li{margin-bottom:8px}
.post a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.post .store-badge,.post .platform-button{text-decoration:none}
.post .platform-button{color:white}
.post b{color:var(--ink)}
.post .platform-button b,.cta-box b{color:inherit}
.summary{background:var(--tint);border:1px solid var(--tint-line);border-radius:14px;padding:22px 26px;margin:28px 0}
.summary p{margin:0 0 10px}
.summary ol{margin:0}
.toc{border:1px solid var(--line);border-radius:14px;padding:20px 26px;margin:28px 0}
.toc b{font-family:Manrope,system-ui,sans-serif}
.toc ol{margin:10px 0 0}
.toc li{font-size:15px;margin-bottom:4px}
.toc a{text-decoration:none}
.post h3.step span{display:inline-block;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--link);background:var(--chip);border-radius:6px;padding:3px 8px;margin-right:8px;vertical-align:3px}
.post code{background:var(--code);border-radius:5px;padding:1px 6px;font-size:.9em}
.post figcaption{text-align:center}

/* App screenshots: light/dark pair, one shown to match the page */
.post figure.shot{margin:22px 0 30px}
.shot img{display:block;width:100%;height:auto}
.shot .td{display:none}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .shot .tl{display:none}:root:not([data-theme="light"]) .shot .td{display:block}}
:root[data-theme="dark"] .shot .tl{display:none}
:root[data-theme="dark"] .shot .td{display:block}
.shot-d img{border:1px solid var(--shot-line);border-radius:12px;box-shadow:0 14px 40px #2328461a}
.shot-m{max-width:260px;margin-left:auto!important;margin-right:auto!important}
.shot-m img{border:7px solid #15161d;border-radius:32px;box-shadow:0 14px 40px #23284622}
.shot-row{display:flex;gap:18px;justify-content:center;margin:22px 0 30px}
.shot-row .shot{flex:1;max-width:240px;margin:0!important}

/* Platform switch */
.plat{margin:24px 0 8px}
.plat-tabs{display:none;gap:4px;padding:4px;background:var(--soft);border:1px solid var(--line);border-radius:12px;width:max-content;max-width:100%}
.js .plat-tabs{display:flex}
.plat-tabs button{border:0;background:transparent;color:var(--muted);font:600 14px 'DM Sans',system-ui,sans-serif;padding:9px 16px;border-radius:9px;cursor:pointer}
:root[data-platform="mobile"] .plat-tabs [data-p="mobile"],:root[data-platform="desktop"] .plat-tabs [data-p="desktop"]{background:var(--card);color:var(--ink);box-shadow:0 1px 4px #23284620}
:root[data-platform="mobile"] .pv-desktop,:root[data-platform="desktop"] .pv-mobile{display:none}
.pv-label{font-size:13px!important;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--link)!important;margin:28px 0 -10px}
.js .pv-label{display:none}

.table-wrap{overflow-x:auto;margin:24px 0}
.post table{border-collapse:collapse;width:100%;font-size:15px}
.post th,.post td{text-align:left;border-bottom:1px solid var(--line);padding:12px 10px;vertical-align:top;color:var(--body)}
.post th{font-family:Manrope,system-ui,sans-serif;font-size:14px;color:var(--ink)}
.callout{border-left:4px solid var(--purple);background:var(--soft);padding:16px 22px;border-radius:0 10px 10px 0;margin:24px 0}
.callout p{margin:0}
.cta-box{background:#222438;color:white;border-radius:20px;padding:34px;margin:56px 0 20px;text-align:center}
.cta-box h2{color:white;margin:0 0 10px}
.cta-box p{color:#c9ccdb;margin:0 auto 22px;max-width:560px}
.cta-box .platform-links{justify-content:center}
.cta-box .platform-button{background:#3a3d50}
details{border-color:var(--line)}
.post details p{font-size:16px}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
.related a,.post-list a{display:block;border:1px solid var(--line);border-radius:14px;padding:20px;text-decoration:none;background:var(--card)}
.related a:hover,.post-list a:hover{border-color:var(--tint-line);background:var(--tint)}
.related b,.post-list b{display:block;font-family:Manrope,system-ui,sans-serif;font-size:17px;color:var(--ink);line-height:1.35;margin-bottom:6px}
.related span,.post-list span{font-size:14px;color:var(--muted);line-height:1.5}
.post-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:90px}
.post-list a.featured{grid-column:1/-1;background:var(--tint);border-color:var(--tint-line);padding:30px}
.post-list a.featured b{font-size:24px}
@media(max-width:700px){.post h2{font-size:25px}
.post p,.post li{font-size:16px}
.related,.post-list{grid-template-columns:1fr}
.cta-box{padding:26px 20px}
.shot-row{gap:10px}
.shot-m img{border-width:5px;border-radius:22px}
.plat-tabs button{padding:8px 12px;font-size:13px}
.theme-btn{width:34px;height:34px}
}
details.toc{padding:16px 24px}
details.toc summary{font-family:Manrope,system-ui,sans-serif;font-weight:700}
details.toc ol{columns:2;column-gap:36px;margin:12px 0 0;padding-left:20px}
details.toc li{break-inside:avoid;font-size:14px;line-height:1.5;margin-bottom:6px}
@media(max-width:700px){details.toc ol{columns:1}}

/* Phones: each table row becomes a labeled card, so nothing scrolls sideways */
@media(max-width:700px){
.table-wrap{overflow:visible}
.post table,.post tbody,.post tr,.post td{display:block;width:100%}
.post thead{display:none}
.post tr{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--card)}
.post td{border:0;padding:4px 0;font-size:15px}
.post td[data-label]:not([data-label=""]){display:grid;grid-template-columns:38% 1fr;gap:12px;align-items:baseline}
.post td[data-label]:not([data-label=""])::before{content:attr(data-label);font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.post td:first-child{font-weight:700;color:var(--ink)}
.post td+td{border-top:1px solid var(--line);padding-top:6px;margin-top:2px}
}
