/* ==========================================================================
   components.css — shared components (header, mobile header, tab bar, cards, chips, buttons, section titles, post/product cards, tutorial row, app icon, trust strip, footer)
   ========================================================================== */
[hidden]{display:none!important}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Vazirmatn','IRANSansX',system-ui,sans-serif;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input{font:inherit;color:inherit}
h1,h2,h3,p{margin:0}ul{margin:0;padding:0;list-style:none}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.ic{flex:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px);border-bottom:1px solid rgba(16,24,40,.07)}
.site-header::after{content:none}
.hdr{display:flex;align-items:center;gap:28px;height:64px}
.brand{display:inline-flex;align-items:center;gap:10px;flex:none}
.brand-text{font-weight:800;font-size:21px;letter-spacing:-.4px;font-family:'Vazirmatn',system-ui,sans-serif}
.brand-text b{color:var(--primary)}.brand-text em{font-style:normal;color:var(--text-3);font-weight:600}
.hdr-nav{display:flex;gap:4px}
.hdr-nav a{padding:0 14px;height:40px;display:inline-flex;align-items:center;border-radius:10px;font-weight:600;font-size:15px;color:var(--text-2);transition:background .22s ease,color .22s ease}
.hdr-nav a:hover{background:rgba(16,24,40,.045);color:var(--text)}
.hdr-nav a.is-active{background:var(--accent-soft);color:var(--primary-ink)}
.hdr-tools{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.search{display:flex;align-items:center;gap:8px;width:300px;height:40px;padding-inline:14px 8px;background:var(--surface-2);border:0;border-radius:12px;color:var(--text-3);transition:.22s ease}
.search:focus-within{background:#fff;box-shadow:0 0 0 4px rgba(29,107,201,.14)}
.search input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:14px;color:var(--text)}
.search kbd{font:600 12px/1 system-ui;border:1px solid var(--divider);border-radius:6px;padding:3px 7px;background:#fff;color:var(--text-3)}
.icon-btn{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--text-2);cursor:pointer}
.icon-btn:hover{color:var(--primary-ink);border-color:var(--primary)}
.cart-badge{position:absolute;top:-5px;inset-inline-end:-5px;min-width:18px;height:18px;border-radius:9px;background:var(--badge);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding-inline:4px;box-shadow:0 0 0 2px #fff}
.menu-btn{display:none}
/* section heads */
.sec{margin-top:56px}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.sec-title{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:800;letter-spacing:-.2px}
.sec-title::before{content:"";width:5px;height:24px;border-radius:3px;background:var(--bar,var(--primary))}
.sec-title small{font-size:14px;font-weight:500;color:var(--text-3);margin-inline-start:4px}
.bar-teal{--bar:var(--teal)}.bar-purple{--bar:var(--purple)}.bar-orange{--bar:var(--orange)}.bar-cyan{--bar:linear-gradient(var(--neon),var(--primary))}
.more{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:var(--primary);white-space:nowrap}
.more:hover{gap:8px}
/* generic card */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .22s ease,border-color .22s ease}
@media (hover:hover) and (pointer:fine){
 a.card:hover,.card.hov:hover{box-shadow:var(--shadow-hover)}
}
.pill{display:inline-flex;align-items:center;gap:4px;height:24px;padding-inline:10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--accent-soft);color:var(--primary-ink);white-space:nowrap}
.pill.teal{background:#ccfbf1;color:#0f766e}.pill.purple{background:#ede9fe;color:#6d28d9}.pill.orange{background:#fff1db;color:#b45309}.pill.glass{background:rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.28)}
.meta{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding-inline:22px;border-radius:14px;font-weight:700;font-size:15px;border:0;cursor:pointer;transition:.2s;white-space:nowrap}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(29,107,201,.18)}.btn-primary:hover{background:var(--primary-hover)}
.btn-ghost{background:#fff;border:1px solid var(--border);color:var(--text)}.btn-ghost:hover{border-color:var(--primary);color:var(--primary-ink)}
.btn-neon{background:var(--navy);color:#fff;box-shadow:var(--shadow)}
/* post card */
.post{display:flex;flex-direction:column}
.post .thumb{aspect-ratio:16/9;background:linear-gradient(145deg,#eaf2fc,#efecfb 50%,#e3f4f1);overflow:hidden}
.post .thumb img{width:100%;height:100%;object-fit:cover}
.post .body{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px;flex:1}
.post h3{font-size:17px;line-height:1.65;font-weight:700}
.post p{font-size:14px;line-height:1.85;color:var(--text-2)}
.post .meta{margin-top:auto;padding-top:6px}
/* product card */
.prod{display:flex;flex-direction:column;position:relative}
.prod .pimg{aspect-ratio:1;background:#fff;display:grid;place-items:center;padding:18px}
.prod .pimg img{width:100%;height:100%;object-fit:contain}
.prod .pbody{padding:4px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.prod .pcat{font-size:12px;color:var(--text-3);font-weight:600}
.prod h3{font-size:15px;line-height:1.6;font-weight:700}
.price{margin-top:auto;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.price b{font-size:17px;font-weight:800}.price span{font-size:12px;color:var(--text-3)}
.price s{font-size:12px;color:var(--text-3);width:100%}
.disc{position:absolute;top:12px;inset-inline-start:12px;background:var(--red);color:#fff;font-size:12px;font-weight:800;border-radius:8px;padding:2px 8px}
/* app chip */
.app-ic{border-radius:22%;box-shadow:0 2px 8px rgba(16,24,40,.12);background:#fff}
.stars{color:var(--orange-ink);display:inline-flex;align-items:center;gap:3px;font-weight:700;font-size:13px}
/* footer */
.site-footer{margin-top:72px;background:#fff;border-top:1px solid var(--border);position:relative}
.site-footer::before{content:none}
.ft-grid{display:grid;grid-template-columns:1.3fr .8fr 1fr 1.3fr;gap:36px;padding-block:44px 32px}
.ft-about p{color:var(--text-2);font-size:14px;margin-top:14px;max-width:300px}
.ft-seals{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:18px;overflow:visible}
.sf-footer__enamad{display:block;width:125px;height:136px;min-width:125px;min-height:136px;line-height:0;flex-shrink:0;overflow:visible}
.sf-footer__enamad a{display:block;width:125px;height:136px;line-height:0;flex-shrink:0;background:url('../img/enamad.png') center / 125px 136px no-repeat}
.sf-footer__enamad img,img[code]{display:block;width:125px;height:136px;max-width:none;max-height:none;min-width:125px;min-height:136px;object-fit:contain;filter:none;flex-shrink:0;visibility:visible;opacity:0}
.sf-footer__enamad img.is-loaded,img[code].is-loaded{opacity:1}
.sf-footer__trust-seal{display:flex;align-items:center;justify-content:center;line-height:0}
.enamad{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px dashed var(--divider);border-radius:12px;font-size:11.5px;line-height:1.6;color:var(--text-2);background:var(--surface-2)}
.enamad .ic{color:var(--teal)}.enamad.zp .ic{color:#f5b301}
.ft-title{font-size:15px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.ft-title::before{content:"";width:14px;height:3px;border-radius:2px;background:var(--orange)}
.ft-links li{margin-bottom:6px}.ft-links a{color:var(--text-2);font-size:14px}.ft-links a:hover{color:var(--primary)}
.ft-hours li{display:flex;flex-direction:column;font-size:14px;margin-bottom:10px}.ft-hours span{color:var(--text-3);font-size:13px}.ft-hours b{font-weight:600}
.ft-addr,.ft-phones{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--text-2);margin-bottom:12px}
.ft-addr .ic,.ft-phones .ic{color:var(--primary);margin-top:4px}
.ft-addr a:hover{color:var(--primary)}
.ft-phones{flex-wrap:wrap}.ft-phones a{font-weight:700;color:var(--text)}
.ft-bar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-block:16px;color:var(--text-3);font-size:13px}
.ft-bar{padding-inline-end:150px}
.rss{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--border);border-radius:999px;padding:3px 12px;color:var(--orange-ink);font-weight:600}
/* chat fab */
.chat-fab{position:fixed;bottom:22px;left:22px;z-index:60;display:flex;align-items:center;gap:8px;height:50px;padding-inline:16px 20px;border-radius:999px;background:var(--primary);color:#fff;font-weight:700;font-size:14px;box-shadow:0 8px 20px rgba(29,107,201,.22)}
.chat-fab::after{content:"";position:absolute;top:8px;right:10px;width:9px;height:9px;border-radius:50%;background:var(--green);border:2px solid #fff}
/* scroller */
.hscroll{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);padding-bottom:10px;scrollbar-width:thin}
.hscroll>*{scroll-snap-align:start;flex:none}
@media (max-width:1100px){.search{width:220px}.hdr{gap:16px}}
@media (max-width:860px){
 :root{--gut:16px}
 .hdr{flex-wrap:wrap;height:auto;padding-block:10px;gap:10px}
 .hdr-nav{display:none}.menu-btn{display:grid}
 .hdr-tools{display:contents}
 .brand{order:1}.cart{order:2;margin-inline-start:auto}.menu-btn{order:3}
 .search{order:4;width:100%}
 .search kbd{display:none}
 .sec{margin-top:40px}.sec-title{font-size:20px}
 .ft-grid{grid-template-columns:1fr 1fr;gap:28px}
 .ft-about{grid-column:1/-1}
 .ft-bar{flex-direction:column;gap:10px;padding-inline-end:0;padding-bottom:80px}
 .chat-fab span{display:none}.chat-fab{width:54px;height:54px;padding:0;justify-content:center}
}

/* ==========================================================================
   Mobile components (m-*)
   ========================================================================== */

 .m-main{padding:4px 16px 0}
 /* header */
 .m-head{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:.5px solid rgba(16,24,40,.08);padding-top:env(safe-area-inset-top)}
 .m-head-in{height:54px;display:flex;align-items:center;justify-content:space-between;padding-inline:16px 10px}
 .m-head .brand{order:0}.m-head .m-tools{order:0}
 .m-head .brand-mark{width:30px;height:30px}.m-head .brand-text{font-size:19px}
 .m-tools{display:flex;gap:2px}
 .m-ib{position:relative;width:44px;height:44px;display:grid;place-items:center;border:0;background:none;color:var(--text);border-radius:12px;cursor:pointer}
 .m-ib:active{background:rgba(16,24,40,.06)}
 .m-badge{position:absolute;top:6px;inset-inline-end:4px;min-width:17px;height:17px;border-radius:9px;background:var(--badge);color:#fff;font-size:10.5px;font-weight:800;display:grid;place-items:center;padding-inline:4px;box-shadow:0 0 0 2px #fff}
 .m-search{display:flex;gap:8px;align-items:center;padding:0 16px 12px}
 .m-search label{flex:1;display:flex;align-items:center;gap:8px;height:44px;padding-inline:14px;border-radius:12px;background:#fff;border:1px solid var(--border);color:var(--text-3)}
 .m-search input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:16px;color:var(--text)}
 .m-cancel{border:0;background:none;color:var(--primary);font-weight:700;height:44px;padding-inline:4px}
 /* tab bar */
 .m-tabbar{position:fixed;inset-inline:0;bottom:0;z-index:70;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:rgba(252,252,253,.94);backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);border-top:.5px solid rgba(16,24,40,.1)}
 .m-tabbar a{min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-3);font-size:10.5px;font-weight:700}
 .m-tabbar a .ic{stroke-width:1.7}
 .m-tabbar a.on{color:var(--primary-ink);font-weight:800}
 .m-tabbar a.on .ic{stroke-width:2.1}
 /* sections */
 .m-sec{margin-top:32px}
 .m-shead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
 .m-stitle{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:800;letter-spacing:-.2px}
 .m-stitle::before{content:"";width:4px;height:20px;border-radius:2px;background:var(--bar,var(--primary))}
 .m-more{display:inline-flex;align-items:center;gap:2px;min-height:44px;padding-inline:8px 0;color:var(--primary);font-weight:700;font-size:15px}
 .m-card{display:block;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}
 .m-card:active,.m-row:active{opacity:.85}
 /* lead */
 .m-lead-img{aspect-ratio:16/9;overflow:hidden;background:var(--surface-2)}.m-lead-img img{width:100%;height:100%;object-fit:cover}
 .m-lead-body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:8px}
 .m-meta{display:flex;align-items:center;justify-content:space-between;color:var(--text-3);font-size:13px}.m-meta>span:last-child{display:inline-flex;gap:4px;align-items:center}
 .m-lead h2{font-size:17px;line-height:1.55;font-weight:800}
 .m-lead p{font-size:15px;color:var(--text-2);line-height:1.85}
 .m-readmore{display:inline-flex;align-items:center;gap:4px;color:var(--primary);font-weight:700;font-size:15px;min-height:32px}
 /* grouped list */
 .m-list{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding-inline:14px}
 .m-list.flush{margin-top:12px}
 .m-row{display:flex;gap:14px;align-items:flex-start;padding-block:14px;min-height:44px}
 .m-list>.m-row+.m-row{border-top:1px solid var(--border)}
 .m-thumb{width:104px;height:74px;border-radius:12px;object-fit:cover;flex:none;background:var(--surface-2)}
 .m-rtx{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
 .m-rtx h3{font-size:13.5px;line-height:1.6;font-weight:700}
 .m-rmeta{font-size:13px;color:var(--text-3)}
 .m-stack{display:flex;flex-direction:column;gap:12px}
 /* tutorials */
 .m-num{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;font-weight:900;font-size:17px}
 .m-num.grad-1{background:#e3f4f1;color:#0f766e}.m-num.grad-2{background:#efecfb;color:#4b3fb0}
 .m-num.grad-3{background:#eaf2fc;color:#0b57ad}.m-num.grad-4{background:#fdeee4;color:#a4400c}
 .m-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
 .m-chip{display:inline-flex;align-items:center;gap:4px;height:26px;padding-inline:9px;border-radius:999px;background:var(--surface-2);color:var(--text-2);font-size:12.5px;font-weight:600}
 .m-chip.teal{background:#ccfbf1;color:#0f766e}.m-chip.orange{background:#fff1db;color:#b45309}.m-chip.purple{background:#ede9fe;color:#6d28d9}
 /* apps grid */
 .m-apps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:18px 10px 14px}
 .m-app{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;min-width:0}
 .m-app img{width:60px;height:60px;border-radius:14px}
 .m-app span{font-size:12px;line-height:1.5;font-weight:600;color:var(--text);word-break:break-word}
 .m-approw .app-ic{width:56px;height:56px;border-radius:13px;flex:none}
 .m-approw{align-items:center}.m-approw h3{font-size:15px}
 .m-price{font-size:12.5px;font-weight:800;border-radius:999px;padding:3px 11px;flex:none}.m-price.free{background:#dcfce7;color:#15803d}.m-price.paid{background:var(--accent-soft);color:var(--primary-ink)}
 /* buttons */
 .m-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:14px;font-weight:800;font-size:16px;border:0}
 .m-btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(29,107,201,.2)}
 .m-btn-ghost{background:#fff;border:1px solid var(--border);color:var(--text);font-size:14.5px}
 .m-btn-ghost .ic{color:var(--green)}
 .m-btn-soft{background:var(--accent-soft);color:var(--primary-ink);margin-top:12px}
 /* chat card */
 .m-chat{display:flex;align-items:center;gap:14px;padding:16px;border-radius:20px;color:#fff;background:linear-gradient(135deg,#2566c4,#5552bd);box-shadow:var(--shadow-hover)}
 .m-chat-ic{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.2);flex:none}
 .m-chat div{flex:1;display:flex;flex-direction:column;gap:2px}.m-chat b{font-size:17px;display:flex;align-items:center;gap:8px}.m-chat div span{font-size:13.5px;line-height:1.75;color:rgba(255,255,255,.88)}
 .m-live{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(48,209,88,.35)}
 /* contact + footer */
 .m-contact{padding:16px;display:flex;flex-direction:column;gap:14px}
 .m-crow{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--text-2)}
 .m-crow>.ic{color:var(--primary);background:var(--accent-soft);border-radius:12px;padding:9px;width:40px;height:40px;flex:none}
 .m-crow div{display:flex;flex-direction:column}.m-crow b{color:var(--text);font-size:15.5px}
 .m-calls{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 .m-flinks{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;justify-content:center}
 .m-flinks a{min-height:44px;display:inline-flex;align-items:center;padding-inline:14px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:13.5px;font-weight:600;color:var(--text-2)}
 .m-seals{display:flex;gap:10px;justify-content:center;margin-top:18px}
 .m-copy{text-align:center;font-size:12.5px;color:var(--text-3);margin-top:8px}.m-copy a{color:var(--orange-ink);font-weight:700;display:inline-flex;align-items:center;min-height:44px}
 .m-head .brand{min-height:44px}

 .m-pgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
 .m-pc{position:relative;display:flex;flex-direction:column;gap:4px;padding:12px;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}
 .m-pimg{aspect-ratio:1;display:grid;place-items:center;margin-bottom:4px}.m-pimg img{width:100%;height:100%;object-fit:contain}
 .m-pcat{font-size:12px;color:var(--text-3);font-weight:600}
 .m-pc h3{font-size:12.5px;line-height:1.55;font-weight:700;word-break:break-word}
 .m-pprice{margin-top:auto;padding-top:4px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}
 .m-pprice b{font-size:15.5px;font-weight:900}.m-pprice span{font-size:12px;color:var(--text-3)}.m-pprice s{width:100%;font-size:12px;color:var(--text-3)}
 .m-pprice b.ask{font-size:14px;color:var(--primary)}
 .m-pc .disc{top:10px;inset-inline-start:10px}
/* ==========================================================================
   Chrome / render modes
   ========================================================================== */

/* ---- chrome switching: one header/footer markup set, shown per render mode ----
   body.mode-desktop    : desktop home templates (safety net: under 760px they fall back to mobile chrome)
   body.mode-mobile     : mobile home templates (always mobile chrome; centred 480px shell on wide screens)
   body.mode-responsive : store templates (chrome follows the 760px breakpoint)                       */
.m-head,.m-tabbar,.m-footer{display:none}
.mode-mobile{background:#e9edf3}
.mode-mobile .page-shell{max-width:var(--mobile-shell);margin-inline:auto;background:var(--bg);min-height:100vh;box-shadow:0 0 0 1px var(--border);padding-bottom:calc(var(--tabbar-h) + 30px + env(safe-area-inset-bottom));font-size:var(--fs-body-m)}
.mode-mobile .site-header,.mode-mobile .site-footer,.mode-mobile .chat-fab{display:none}
.mode-mobile .m-head,.mode-mobile .m-footer{display:block}
.mode-mobile .m-tabbar{display:grid;max-width:var(--mobile-shell);margin-inline:auto}
.m-footer{padding-inline:16px}
@media (max-width:760px){
 .mode-mobile{background:var(--bg)}.mode-mobile .page-shell{box-shadow:none}
 .mode-desktop .site-header,.mode-desktop .site-footer,.mode-desktop .chat-fab,.mode-responsive .site-header,.mode-responsive .site-footer,.mode-responsive .chat-fab{display:none}
 .mode-desktop .m-head,.mode-desktop .m-footer,.mode-responsive .m-head,.mode-responsive .m-footer{display:block}
 .mode-desktop .m-tabbar,.mode-responsive .m-tabbar{display:grid}
 .mode-desktop .page-shell,.mode-responsive .page-shell{padding-bottom:calc(var(--tabbar-h) + 30px + env(safe-area-inset-bottom));font-size:var(--fs-body-m)}
}
.brand-h1{margin:0;font:inherit;display:inline-flex}
/* admin preview banner (only rendered for ?preview_style= by an admin) */
.preview-bar{position:fixed;top:0;inset-inline:0;z-index:200;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:6px 12px;background:#101828;color:#fff;font-size:13px}
.preview-bar b{background:var(--orange);color:#101828;border-radius:6px;padding:0 8px}.preview-bar code{color:var(--cyan)}.preview-bar a{color:var(--cyan);font-weight:700;text-decoration:underline}
/* tone utilities (category tiles, quick tiles, service cards) — set --c (ink) and --cs (soft background) */
.tone-blue{--c:#0b57ad;--cs:#eaf2fc}.tone-teal{--c:#0f766e;--cs:#e3f4f1}.tone-purple{--c:#5b45c4;--cs:#efecfb}.tone-orange{--c:#a4500b;--cs:#fdf1e3}
.tone-gray{--c:#475467;--cs:#f2f4f7}.tone-indigo{--c:#4b4fc4;--cs:#ecedfb}.tone-red{--c:#b4322a;--cs:#fdecea}
.tone-cyan{--c:#0e6a8a;--cs:#e5f2f8}.tone-green{--c:#166534;--cs:#e6f6ec}.tone-amber{--c:#8a5a00;--cs:#fdf3dc}
/* gradient placeholders (tutorial thumbnails without an image) */
.grad-1{background:linear-gradient(135deg,#0f766e,#2b7a9e)}.grad-2{background:linear-gradient(135deg,#5552bd,#2566c4)}.grad-3{background:linear-gradient(135deg,#1d6bc9,#2b7a9e)}.grad-4{background:linear-gradient(135deg,#c2410c,#c9372c)}
