    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
    /* Brief focus flash on click — fades quickly instead of lingering */
    *:focus:not(:focus-visible) { outline: none; animation: tap-flash 0.2s ease-out forwards; }
    @keyframes tap-flash { 0% { opacity: 0.85; } 100% { opacity: 1; } }
    details > summary { list-style: revert; display: list-item; cursor: pointer; }
    details > summary::-webkit-details-marker { display: inline; }
    body { background: var(--bg); }
    .app { min-height: 100vh; background: var(--bg); color: #c8d4e0; font-family: 'Exo 2', sans-serif; padding-top: var(--banner-h); }
    .app::before { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 0;
      background: repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(0,255,136,0.022) 40px),
        repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(0,255,136,0.022) 40px); }
    .header { position: sticky; top: var(--banner-h); z-index: 20; background: rgba(7,9,15,0.97);
      backdrop-filter: blur(12px); padding: 0 24px;
      transition: transform 0.28s cubic-bezier(0.4,0,0.2,1); }
    body.hdr-is-hidden .header { transform: none !important; }
    /* Peek arrow — only shown on mobile when header is hidden */
    .header-top { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; flex-wrap: wrap; gap: 10px; }
    .logo { display: flex; align-items: center; gap: 11px; cursor: default; }
    .logo-hex { width: 34px; height: 34px; flex-shrink: 0; background: linear-gradient(135deg, #00ff88, #00ccff);
      clip-path: polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
      display: flex; align-items: center; justify-content: center; font-size: 15px; color: var(--bg); }
    .logo-wordmark { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 22px; letter-spacing: 2px; color: #fff; }
    .logo-wordmark span { color: var(--accent); }
    .logo-sub { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: #6a7890; letter-spacing: 3px; }
    .header-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
    .currency-toggle { display: flex; align-items: center; border: 1px solid rgba(255,255,255,0.1); overflow: hidden; flex-shrink: 0; }
    :root { --banner-h: 0px; --fpv-name:18px; --fpv-price:26px; --fpv-meta:11px; --fpv-nav:11px; --fpv-cat:12px; --sbm-body:15px; --accent:#00ff88; --accent2:#00ccff; --bg:#07090f; --sb-track: rgba(0,255,136,0.06); --sb-thumb: rgba(0,255,136,0.25); --sb-thumb-hover: rgba(0,255,136,0.45); }

    /* ── Global grey readability boost ───────────────────────────────────────
       Dark greys on black are hard to read especially on mobile screens.
       These rules remap the common grey palette to lighter, more readable values.
       Specificity is kept low so accent colors (green, blue, orange) still win. ── */
    [style*="color:#334"]    { color:#7a8898 !important; }
    [style*="color:#3a4050"] { color:#7a8898 !important; }
    [style*="color:#4a5060"] { color:#8a9aaa !important; }
    [style*="color:#4a5568"] { color:#8a9aaa !important; }
    [style*="color:#445"]    { color:#6a7585 !important; }
    [style*="color:#556"]    { color:#7a8898 !important; }
    [style*="color:#667"]    { color:#8a98a8 !important; }
    [style*="color:#778"]    { color:#9aaabb !important; }
    [style*="color:#889"]    { color:#aabbcc !important; }
    [style*="color:#99a"]    { color:#b0bfcc !important; }
    [style*="color:#aab"]    { color:#c0ccd8 !important; }
    [style*="color:#99aabb"] { color:#b0c4d4 !important; }
    [style*="color:#8a9baa"] { color:#a0b0be !important; }
    [style*="color:#7a8090"] { color:#9aa0ac !important; }
    [style*="color:#8b949e"] { color:#a8b4bc !important; }
    [style*="color:#aa8830"] { color:#c4a040 !important; }
    [style*="color:#6699aa"] { color:#88aabc !important; }
    .cur-btn { background: transparent; border: none; color: #7a8898; font-family: 'Share Tech Mono', monospace; font-size: var(--fpv-nav);
      letter-spacing: 1px; padding: 7px 14px; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
    .cur-btn.active { background: rgba(var(--accent-rgb),0.12); color: var(--accent); }
    .cur-btn:hover:not(.active) { background: rgba(255,255,255,0.04); color: #b0bfcc; }
    .cur-divider { width: 1px; background: rgba(255,255,255,0.08); align-self: stretch; }
    .save-indicator { font-family: 'Share Tech Mono', monospace; font-size: 9px; letter-spacing: 1px; padding: 4px 10px; transition: opacity 0.4s; opacity: 0; }
    .save-indicator.saving { opacity: 1; color: #ffcc00; }
    .save-indicator.saved  { opacity: 1; color: #00ff88; }
    .save-indicator.error  { opacity: 1; color: #ff3366; }
    .toolbar { display: flex; align-items: center; gap: 10px; padding: 10px 0; flex-wrap: wrap; }
    .search-wrap { position: relative; }
    .search-wrap svg { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: #6a7890; pointer-events: none; }
    .search-input { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
      color: #c8d4e0; font-family: 'Exo 2', sans-serif; font-size: 16px;
      padding: 8px 12px 8px 34px; width: 230px; outline: none; transition: border-color 0.2s; }
    .search-input:focus { border-color: rgba(0,255,136,0.35); }
    .search-input::placeholder { color: #9aaec0; font-size: 15px; }
    .sort-select { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
      color: #aabbcc; font-family: 'Exo 2', sans-serif; font-size: var(--fpv-nav); padding: 8px 10px; outline: none; cursor: pointer; }
    .sort-select option { background: #0b0e16; }
    .categories { display: none; }  /* hidden — using cat-select dropdown instead */
    .cat-btn { background: transparent; border: 1px solid rgba(255,255,255,0.07); color: #7a8898;
      font-family: 'Rajdhani', sans-serif; font-weight: 500; font-size: var(--fpv-cat);
      letter-spacing: 1px; padding: 5px 13px; cursor: pointer; transition: all 0.2s; text-transform: uppercase; }
    .cat-btn:hover { border-color: rgba(0,255,136,0.25); color: #b0bfcc; }
    .cat-select { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); color: #aabbcc; font-family: 'Share Tech Mono', monospace; font-size: var(--fpv-nav); letter-spacing: 1px; padding: 7px 10px; outline: none; cursor: pointer; min-width: 170px; }
    .cat-select option { background: #0d1018; }
    .subcat-select { background:rgba(255,255,255,0.04);border:1px solid rgba(0,204,255,0.2);color:#00ccff;font-family:'Share Tech Mono',monospace;font-size:var(--fpv-nav);letter-spacing:1px;padding:7px 10px;outline:none;cursor:pointer;min-width:160px; }
    .subcat-select:disabled { opacity:0.28;cursor:default;border-color:rgba(255,255,255,0.06);color:#6a7890;pointer-events:none; }
    .subcat-select option { background:#0d1018; }
    /* coupon cards */
    .coupon-card { background:rgba(255,170,0,0.03);border:1px solid rgba(255,170,0,0.12);padding:14px 16px;margin-bottom:10px;display:flex;align-items:center;gap:16px;transition:border-color 0.2s; }
    .coupon-card:hover { border-color:rgba(255,170,0,0.3); }
    .coupon-card:last-child { margin-bottom:0; }
    .cp-code-box { display:block;font-family:'Share Tech Mono',monospace;font-size:19px;font-weight:700;color:#ffaa00;letter-spacing:3px;background:rgba(255,170,0,0.07);border:1px solid rgba(255,170,0,0.22);padding:10px 16px;cursor:pointer;transition:all 0.15s;text-align:center;min-width:130px;white-space:nowrap; }
    .cp-code-box:hover { background:rgba(255,170,0,0.16);border-color:rgba(255,170,0,0.45); }
    .cp-copied-lbl { font-size:11px;color:#00ff88;font-family:'Share Tech Mono',monospace;display:none;margin-top:4px;letter-spacing:1px;text-align:center; }
    .cp-disc-lbl { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:30px;color:#00ff88;line-height:1.2; }
    /* Force the inline (13% off) parenthetical onto its own line */
    .cp-disc-lbl span { display:block;font-size:15px;font-weight:600;color:#88aabb;letter-spacing:0.5px;margin-top:2px; }
    .cp-minord-lbl { font-family:'Share Tech Mono',monospace;font-size:14px;color:#8eaabe;letter-spacing:1px;margin-top:5px; }
    .cp-note-lbl { font-size:14px;color:#8eaabe;margin-top:5px; }
    .cp-exp-lbl { font-family:'Share Tech Mono',monospace;font-size:13px;letter-spacing:1px;margin-top:6px;color:#8eaabe; }
    .feat-star-btn { background:transparent;border:none;font-size:18px;cursor:pointer;line-height:1;padding:0 2px;transition:transform 0.15s; }
    @media (hover: hover) { .feat-star-btn:hover { transform:scale(1.3); } }
    /* date picker */
    .date-wrap { position:relative;display:flex;align-items:center;gap:0; }
    .date-wrap input { flex:1;border-radius:0; }
    .date-cal-btn { background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-left:none;color:#aabbcc;cursor:pointer;padding:0 8px;height:34px;font-size:13px;transition:color 0.15s;flex-shrink:0; }
    .date-cal-btn:hover { color:#00ff88; }
    .cal-popup { display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:300;background:#0d1018;border:1px solid rgba(0,255,136,0.25);padding:10px;min-width:230px;box-shadow:0 8px 32px rgba(0,0,0,0.6); }
    .cal-popup.open { display:block; }
    .cal-head { display:flex;align-items:center;justify-content:space-between;margin-bottom:8px; }
    .cal-head-lbl { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:13px;color:#dce8f0;letter-spacing:1px; }
    .cal-nav { background:transparent;border:none;color:#aabbcc;cursor:pointer;font-size:16px;padding:0 4px;transition:color 0.15s; }
    .cal-nav:hover { color:#00ff88; }
    .cal-dow { display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px; }
    .cal-dow span { font-family:'Share Tech Mono',monospace;font-size:8px;color:#b0bfcc;text-align:center;padding:2px 0; }
    .cal-days { display:grid;grid-template-columns:repeat(7,1fr);gap:2px; }
    .cal-day { font-family:'Share Tech Mono',monospace;font-size:10px;color:#aabbcc;text-align:center;padding:4px 2px;cursor:pointer;border:1px solid transparent;transition:all 0.12s; }
    .cal-day:hover { color:#00ff88;border-color:rgba(0,255,136,0.3); }
    .cal-day.today { color:#00ccff;border-color:rgba(0,204,255,0.3); }
    .cal-day.selected { background:rgba(0,255,136,0.15);color:#00ff88;border-color:rgba(0,255,136,0.5); }
    .cal-day.empty { cursor:default; }
    .cal-day.empty:hover { color:#aabbcc;border-color:transparent; }
    /* drone builder */
    #builderPage { display:none;position:fixed;top:var(--banner-h);left:0;right:0;bottom:0;z-index:210;background:#07090f;overflow-y:auto; }
    .bld-header { background:rgba(0,0,0,0.4);border-bottom:1px solid rgba(255,255,255,0.06);padding:16px 28px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:10;backdrop-filter:blur(10px); }
    .bld-back { background:rgba(0,255,136,0.08);border:1px solid rgba(0,255,136,0.3);color:#00ff88;cursor:pointer;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:1px;padding:8px 16px;transition:all 0.2s;white-space:nowrap;flex-shrink:0; }
    .bld-back:hover { background:rgba(0,255,136,0.18);border-color:rgba(0,255,136,0.6); }
    .bld-title-bar { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:20px;letter-spacing:2px;color:#dce8f0; }
    /* drone type selection grid */
    .bld-kits-wrap { padding:28px; }
    .bld-kits-intro { font-family:'Share Tech Mono',monospace;font-size:10px;color:#9aaabb;letter-spacing:2px;text-transform:uppercase;margin-bottom:20px; }
    .bld-kits-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px; }
    .bld-kit-card { background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.07);padding:22px 18px;cursor:pointer;transition:all 0.2s;text-align:center; }
    @media (hover: hover) { .bld-kit-card:hover { border-color:rgba(0,255,136,0.35);background:rgba(0,255,136,0.03);transform:translateY(-2px); } }
    .bld-kit-icon { font-size:36px;margin-bottom:10px; }
    .kit-icon-select { background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);color:#c8d4e0;font-size:20px;padding:6px 10px;width:100%;outline:none;cursor:pointer; }
    .kit-icon-select:focus { border-color:rgba(0,255,136,0.4); }
    .kit-icon-preview { font-size:28px;width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);flex-shrink:0; }
    .bld-kit-name { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:17px;color:#dce8f0;letter-spacing:1px;margin-bottom:4px; }
    .bld-kit-vtx { font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;padding:2px 8px;display:inline-block; }
    .bld-kit-vtx.analog  { color:#ff6b35;border:1px solid rgba(255,107,53,0.3); }
    .bld-kit-vtx.digital { color:#00ccff;border:1px solid rgba(0,204,255,0.3); }
    .bld-kit-vtx.both    { color:#aa88ff;border:1px solid rgba(170,136,255,0.3); }
    .bld-kit-desc { font-size:12px;color:#9aaabb;margin-top:8px;line-height:1.5; }
    /* parts list view */
    .bld-parts-wrap { padding:0 28px 40px; }
    .bld-parts-header { display:flex;align-items:center;gap:14px;padding:20px 0 16px;border-bottom:1px solid rgba(255,255,255,0.06);margin-bottom:20px; }
    .bld-parts-kitname { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:22px;color:#dce8f0;letter-spacing:1px; }
    .bld-parts-vtx-toggle { display:flex;gap:6px; }
    .bld-vtx-btn { background:transparent;border:1px solid rgba(255,255,255,0.1);color:#9aaabb;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1px;padding:5px 12px;cursor:pointer;transition:all 0.2s; }
    .bld-vtx-btn.active-analog  { border-color:rgba(255,107,53,0.5);color:#ff6b35;background:rgba(255,107,53,0.07); }
    .bld-vtx-btn.active-digital { border-color:rgba(0,204,255,0.5);color:#00ccff;background:rgba(0,204,255,0.07); }
    .bld-parts-list { display:flex;flex-direction:column;gap:10px; }
    .bld-part-row { display:flex;align-items:center;gap:14px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.06);padding:12px 14px;transition:border-color 0.2s; }
    .bld-part-row:hover { border-color:rgba(255,255,255,0.12); }
    .bld-part-img-wrap { position:relative;flex-shrink:0;cursor:zoom-in; }
    .bld-part-img { width:72px;height:56px;object-fit:cover;border:1px solid rgba(255,255,255,0.06);display:block;transition:opacity 0.15s; }
    .bld-part-img-wrap:hover .bld-part-img { opacity:0.7; }
    #bld-img-zoom-preview { position:fixed;z-index:9999;width:240px;height:185px;object-fit:cover;border:1px solid rgba(255,255,255,0.15);box-shadow:0 8px 40px rgba(0,0,0,0.8);pointer-events:none;display:none;border-radius:2px; }
    .bld-part-img-ph { width:72px;height:56px;background:#0a0c14;border:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;color:#b0bfcc;font-size:18px;flex-shrink:0; }
    .bld-part-info { flex:1;min-width:0; }
    .bld-part-name { font-size:14px;color:#c8d8e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px; }
    .bld-part-cat  { font-family:'Share Tech Mono',monospace;font-size:11px;color:#b0bfcc;letter-spacing:1px; }
    .bld-part-price { font-family:'Share Tech Mono',monospace;font-size:14px;color:#00ff88;white-space:nowrap; }
    .bld-part-links { display:flex;gap:6px;flex-wrap:wrap; }
    .bld-part-link { background:rgba(255,107,53,0.08);border:1px solid rgba(255,107,53,0.25);color:#ff6b35;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1px;padding:7px 12px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:all 0.2s;display:inline-block; }
    .bld-part-link:hover { background:rgba(255,107,53,0.18);border-color:rgba(255,107,53,0.5); }
    .bld-part-link.print { background:rgba(0,204,255,0.07);border-color:rgba(0,204,255,0.25);color:#00ccff; }
    .bld-part-link.print:hover { background:rgba(0,204,255,0.15);border-color:rgba(0,204,255,0.5); }
    .bld-empty { text-align:center;padding:60px;color:#b0bfcc;font-family:'Share Tech Mono',monospace;font-size:11px; }
    .bld-view-toggle { display:flex;gap:4px;margin-left:auto; }
    .bld-view-btn { background:transparent;border:1px solid rgba(255,255,255,0.1);color:#9aaabb;cursor:pointer;padding:5px 9px;font-size:13px;transition:all 0.2s; }
    .bld-view-btn.active { border-color:rgba(0,204,255,0.4);color:#00ccff;background:rgba(0,204,255,0.07); }
    .bld-parts-list.card-view { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px; }
    .bld-parts-list.card-view .bld-part-row { flex-direction:column;align-items:center;padding:14px;text-align:center; }
    .bld-parts-list.card-view .bld-part-img-wrap { width:100%; }
    .bld-parts-list.card-view .bld-part-img { width:100%;height:140px; }
    .bld-parts-list.card-view .bld-part-img-ph { width:100%;height:140px; }
    .bld-parts-list.card-view .bld-part-name { white-space:normal; }
    .bld-parts-list.card-view .bld-part-info { width:100%; }
    .bld-parts-list.card-view .bld-part-cat { text-align:center; }
    .bld-parts-list.card-view .bld-part-price { text-align:center; }
    .bld-parts-list.card-view .bld-part-links { justify-content:center; }
    /* Shop-this-build modal */
    #shopBuildModal { display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.88);backdrop-filter:blur(8px);overflow:hidden; }
    #shopBuildModal.open { display:flex;align-items:center;justify-content:center;padding:20px 12px; }
    .sbm-box { background:#0b0e17;border:1px solid rgba(255,255,255,0.08);width:100%;max-width:820px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,0.8); }
    .sbm-head { padding:22px 24px 18px;border-bottom:2px solid rgba(0,255,136,0.1);background:#0b0e17;flex-shrink:0;display:flex;flex-direction:column;gap:6px; }
    .sbm-head-top { display:flex;align-items:center;gap:12px; }
    .sbm-icon { font-size:28px;line-height:1; }
    .sbm-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:22px;color:#dce8f0;letter-spacing:1px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
    .sbm-close { background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.22);color:#dce8f0;font-size:18px;cursor:pointer;width:34px;height:34px;display:flex;align-items:center;justify-content:center;transition:all 0.2s;line-height:1;flex-shrink:0; }
    .sbm-close:hover { background:rgba(255,80,80,0.18);border-color:rgba(255,80,80,0.5);color:#ff5050; }
    .sbm-vtx-toggle { display:flex;gap:6px; }
    .sbm-hint { font-family:'Share Tech Mono',monospace;font-size:13px;color:#aabbcc;letter-spacing:1px;padding:10px 24px;border-bottom:1px solid rgba(255,255,255,0.04); }
    .sbm-scroll { overflow-y:auto;flex:1;min-height:0; }
    .sbm-list { padding:14px 24px;display:flex;flex-direction:column;gap:6px; }
    .sbm-row { display:grid;grid-template-columns:72px 1fr auto auto auto auto;align-items:center;gap:0;background:rgba(255,255,255,0.015);border:1px solid rgba(255,255,255,0.05);transition:all 0.2s;overflow:hidden;min-height:72px; }
    .sbm-row:hover { border-color:rgba(0,204,255,0.2);background:rgba(0,204,255,0.02); }
    .sbm-img-wrap { display:block;width:72px;height:72px;flex-shrink:0;cursor:zoom-in; }
    .sbm-img-wrap img { width:100%;height:100%;object-fit:cover;display:block; }
    .sbm-img { width:72px;height:72px;object-fit:cover;display:block;border-right:1px solid rgba(255,255,255,0.05); }
    .sbm-img-ph { width:72px;height:72px;background:#0a0c14;display:flex;align-items:center;justify-content:center;color:#b0bfcc;font-size:18px;border-right:1px solid rgba(255,255,255,0.05); }
    .sbm-info { padding:0 14px;min-width:0;display:flex;flex-direction:column;justify-content:center;overflow:hidden; }
    .sbm-name { font-size:var(--sbm-body);color:#ccd8e4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;line-height:1.3;margin-bottom:3px; }
    .sbm-cat  { font-family:'Share Tech Mono',monospace;font-size:var(--sbm-body);color:#b0bfcc;letter-spacing:1px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
    .sbm-row.vtx-excluded { opacity:0.28;filter:grayscale(60%); }
    .sbm-row.vtx-excluded .sbm-price { color:#9aaabb; }
    .sbm-row.deselected { opacity:0.32;filter:grayscale(50%);cursor:pointer; }
    .sbm-row.deselected:hover { opacity:0.6;filter:grayscale(20%);border-color:rgba(0,255,136,0.25); }
    .sbm-row.sbm-dep-row { border-left:3px solid rgba(0,204,255,0.35);cursor:default; }
    .sbm-row.sbm-dep-row:hover { border-color:rgba(0,204,255,0.35);background:rgba(255,255,255,0.015); }
    .sbm-row.selectable { cursor:pointer; }
    .sbm-row.selectable:hover { border-color:rgba(0,255,136,0.35);background:rgba(0,255,136,0.03); }
    .sbm-check { display:flex;align-items:center;justify-content:center;width:32px;flex-shrink:0;border-left:1px solid rgba(255,255,255,0.04);color:#00ff88;font-size:14px; }
    .sbm-check.off { color:#b0bfcc; }
    .sbm-cat-divider { padding:8px 0 4px;font-family:'Share Tech Mono',monospace;font-size:11px;color:#8a9baa;letter-spacing:2px;text-transform:uppercase;display:flex;align-items:center;gap:8px; }
    .sbm-cat-divider::after { content:'';flex:1;height:1px;background:rgba(255,255,255,0.12); }
    #sbmList.card-view .sbm-check { width:100%;height:36px;border-left:none;border-top:1px solid rgba(255,255,255,0.06);font-size:13px; }
    #sbmList.card-view .sbm-cat-divider { grid-column:1/-1; }
    .sbm-vtx-label { font-family:'Share Tech Mono',monospace;font-size:11px;padding:3px 8px;letter-spacing:1px;border:1px solid;flex-shrink:0;align-self:center;margin-right:6px; }
    .sbm-vtx-label.analog  { color:#ff6b35;border-color:rgba(255,107,53,0.35); }
    .sbm-vtx-label.digital { color:#00ccff;border-color:rgba(0,204,255,0.35); }
    /* Modal card view */
    #sbmList.card-view { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;padding:16px 24px; }
    #sbmList.card-view .sbm-row { display:flex;flex-direction:column;align-items:stretch;text-align:center;height:auto !important;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.02); }
    #sbmList.card-view .sbm-row:hover { border-color:rgba(0,204,255,0.25);background:rgba(0,204,255,0.03); }
    #sbmList.card-view .sbm-img-wrap { width:100%;height:150px;cursor:default; }
    #sbmList.card-view .sbm-img-wrap img { width:100%;height:150px;object-fit:cover;display:block;border-bottom:1px solid rgba(255,255,255,0.06); }
    #sbmList.card-view .sbm-img { width:100%;height:150px;border-right:none;border-bottom:1px solid rgba(255,255,255,0.06); }
    #sbmList.card-view .sbm-img-ph { width:100%;height:150px;border-right:none;border-bottom:1px solid rgba(255,255,255,0.06); }
    #sbmList.card-view .sbm-info { padding:12px 12px 6px;width:100%;display:flex;flex-direction:column;align-items:center;flex:1; }
    #sbmList.card-view .sbm-name { white-space:normal;font-size:var(--sbm-body);line-height:1.35;text-align:center;margin-bottom:4px; }
    #sbmList.card-view .sbm-cat { text-align:center;margin:0; }
    #sbmList.card-view .sbm-price { padding:8px 12px;border-left:none;border-top:1px solid rgba(255,255,255,0.05);width:100%;text-align:center;font-size:calc(var(--sbm-body) + 1px); }
    #sbmList.card-view .sbm-btn { width:100%;height:46px;justify-content:center;border-left:none;border-top:1px solid rgba(255,107,53,0.2);font-size:var(--sbm-body); }
    #sbmList.card-view .sbm-vtx-label { display:none; }
    .sbm-price { font-family:'Share Tech Mono',monospace;font-size:var(--sbm-body);color:#00ff88;white-space:nowrap;padding:0 10px;border-left:1px solid rgba(255,255,255,0.04);min-width:80px;max-width:120px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px; }
    .sbm-btn { background:rgba(255,107,53,0.1);border-left:1px solid rgba(255,107,53,0.25);color:#ff6b35;font-family:'Share Tech Mono',monospace;font-size:var(--sbm-body);font-weight:600;letter-spacing:1px;padding:0 24px;height:72px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:all 0.2s;display:flex;align-items:center; }
    .sbm-btn:hover { background:rgba(255,107,53,0.22);border-left-color:rgba(255,107,53,0.55); }
    .sbm-note { font-family:'Share Tech Mono',monospace;font-size:11px;color:#ff6b35;opacity:0.8;margin-top:3px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
    .kit-dep-picker { background:rgba(0,204,255,0.04);border:1px solid rgba(0,204,255,0.15);padding:6px 8px;margin-top:4px;display:flex;flex-direction:column;gap:4px; }
    .kit-dep-picker label { display:flex;align-items:center;gap:6px;cursor:pointer;font-size:10px;color:#b0bfcc; }
    .kit-dep-picker label:hover { color:#c0ccd8; }
    .kit-dep-badge { font-family:'Share Tech Mono',monospace;font-size:9px;color:#00ccff;opacity:0.7;margin-top:2px; }
    #sbmList.card-view .sbm-note { white-space:normal;text-align:center; }
    .sbm-prints { padding:14px 24px 4px;border-top:1px solid rgba(255,255,255,0.05); }
    .sbm-prints-title { font-family:'Share Tech Mono',monospace;font-size:11px;color:#8a9baa;letter-spacing:2px;text-transform:uppercase;margin-bottom:10px; }
    .sbm-prints-list { display:flex;gap:8px;flex-wrap:wrap;padding-bottom:10px; }
    .sbm-divider { height:1px;background:rgba(255,255,255,0.04);margin:8px 24px; }
    .sbm-footer { padding:18px 24px 22px;border-top:1px solid rgba(255,255,255,0.07);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;flex-shrink:0; }
    .sbm-count { font-family:'Share Tech Mono',monospace;font-size:13px;color:#aabbcc;letter-spacing:1px; }
    .sbm-total-block { text-align:right; }
    .sbm-total-label { font-family:'Share Tech Mono',monospace;font-size:12px;color:#aabbcc;letter-spacing:2px;text-transform:uppercase;margin-bottom:4px; }
    .sbm-total-value { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:28px;color:#00ff88;letter-spacing:1px; }
    .bld-prints-section { margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,0.06); }
    .bld-prints-title { font-family:'Share Tech Mono',monospace;font-size:10px;color:#9aaabb;letter-spacing:2px;text-transform:uppercase;margin-bottom:10px; }
    .bld-prints-list { display:flex;gap:8px;flex-wrap:wrap; }
    /* ── Custom Build ── */
    #bldCustomWrap { padding:0 0 80px; }
    .cbld-header { display:flex;align-items:center;gap:14px;padding:20px 28px 16px;border-bottom:1px solid rgba(255,255,255,0.06);position:sticky;top:0;z-index:5;background:#07090f; }
    .cbld-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:20px;color:#dce8f0;letter-spacing:2px;flex:1; }
    .cbld-cats { display:flex;gap:6px;flex-wrap:wrap;padding:14px 28px 0; }
    .cbld-cats::-webkit-scrollbar { display:none; }
    .cbld-cat-btn { background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);color:#aabbcc;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1px;padding:5px 12px;cursor:pointer;transition:all 0.2s;white-space:nowrap; }
    .cbld-cat-btn.active { border-color:rgba(0,204,255,0.5);color:#00ccff;background:rgba(0,204,255,0.07); }
    .cbld-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;padding:14px 28px; }
    .cbld-card { background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.06);transition:all 0.2s;cursor:pointer;position:relative; }
    .cbld-card:hover { border-color:rgba(0,255,136,0.3);background:rgba(0,255,136,0.02); }
    .cbld-card.selected { border-color:#00ff88;border-width:2px;background:rgba(0,255,136,0.13);box-shadow:0 0 0 2px rgba(0,255,136,0.25),inset 0 0 20px rgba(0,255,136,0.08); }
    .cbld-card img { width:100%;height:120px;object-fit:cover;display:block;border-bottom:1px solid rgba(255,255,255,0.05); }
    .cbld-card-ph { width:100%;height:120px;background:#0a0c14;display:flex;align-items:center;justify-content:center;color:#6a7890;font-size:28px;border-bottom:1px solid rgba(255,255,255,0.05); }
    .cbld-card-body { padding:8px 10px; }
    .cbld-card-name { font-size:11px;color:#c8d8e8;line-height:1.35;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
    .cbld-card.selected .cbld-card-name { color:#e8fff8; }
    .cbld-card-cat { font-family:'Share Tech Mono',monospace;font-size:11px;color:#8a98a8;letter-spacing:1px;margin-bottom:5px; }
    .cbld-card-price { font-family:'Share Tech Mono',monospace;font-size:13px;color:#00ff88; }
    .cbld-card-check { position:absolute;top:0;right:0;left:0;height:26px;background:rgba(0,255,136,0.92);color:#07090f;font-weight:800;font-size:11px;display:flex;align-items:center;justify-content:center;letter-spacing:1px;opacity:0;transition:opacity 0.15s; }
    .cbld-card.selected .cbld-card-check { opacity:1; }
    .cbld-footer { position:fixed;bottom:0;left:0;right:0;z-index:21;background:rgba(7,9,15,0.97);border-top:1px solid rgba(0,255,136,0.12);backdrop-filter:blur(12px);padding:12px 28px;display:none;align-items:center;gap:16px; }
    .cbld-footer.visible { display:flex; }
    .cbld-footer-top-row { display:flex;align-items:center;gap:16px;flex:1;min-width:0; }
    .cbld-footer-btns { display:flex;gap:10px;align-items:center;flex-shrink:0; }
    .cbld-btn { font-size:13px;padding:0 20px;height:44px; }
    .cbld-footer-count { font-family:'Share Tech Mono',monospace;font-size:11px;color:#aabbcc;flex:1; }
    .cbld-footer-total-label { font-family:'Share Tech Mono',monospace;font-size:10px;color:#8a98a8;letter-spacing:2px;text-transform:uppercase;margin-bottom:2px; }
    .cbld-footer-total { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:24px;color:#00ff88;letter-spacing:1px; }
    .cbld-empty { text-align:center;padding:60px 28px;color:#7a8898;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:1px; }
    /* Admin kit product picker hover card */
    #kit-prod-hover-card { position:fixed;z-index:10000;width:220px;background:#0d1018;border:1px solid rgba(0,204,255,0.3);box-shadow:0 12px 40px rgba(0,0,0,0.9);pointer-events:none;display:none; }
    #kit-prod-hover-card img { width:100%;height:140px;object-fit:cover;display:block;border-bottom:1px solid rgba(255,255,255,0.06); }
    #kit-prod-hover-card .hc-body { padding:10px 12px; }
    #kit-prod-hover-card .hc-cat { font-family:'Share Tech Mono',monospace;font-size:11px;color:#9aaabb;letter-spacing:1px;text-transform:uppercase;margin-bottom:4px; }
    #kit-prod-hover-card .hc-name { font-family:'Rajdhani',sans-serif;font-weight:600;font-size:14px;color:#dce8f0;line-height:1.3;margin-bottom:6px; }
    #kit-prod-hover-card .hc-price { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:20px;color:#00ff88; }
    #kit-prod-hover-card .hc-store { font-family:'Share Tech Mono',monospace;font-size:10px;color:#9aaabb;margin-top:2px; }
    /* Selected items — admin table */
    /* ── Kit product picker ── */
    .kpk-selected-list { display:flex;flex-direction:column;gap:2px;margin-bottom:16px; }
    .kpk-sel-row { display:grid;grid-template-columns:28px 24px 52px 1fr auto auto;align-items:center;background:rgba(0,255,136,0.03);border:1px solid rgba(0,255,136,0.15);min-height:52px;transition:border-color 0.15s;cursor:grab; }
    .kpk-sel-row:hover { border-color:rgba(0,255,136,0.35); }
    .kpk-sel-row.drag-over { background:rgba(0,204,255,0.07);border-color:rgba(0,204,255,0.5);outline:2px solid rgba(0,204,255,0.3); }
    .kpk-sel-row.dragging { opacity:0.25; }
    .kpk-drag { display:flex;align-items:center;justify-content:center;color:#4a7a4a;font-size:17px;height:100%;user-select:none; }
    .kpk-drag:hover { color:#6aaa6a; }
    .kpk-num { font-family:'Share Tech Mono',monospace;font-size:12px;color:#5a9a5a;font-weight:700;text-align:center; }
    .kpk-thumb { width:52px;height:52px;object-fit:cover;display:block; }
    .kpk-thumb-ph { width:52px;height:52px;background:#0a0c14;display:flex;align-items:center;justify-content:center;font-size:20px;color:#2a3a2a; }
    .kpk-info { padding:0 12px;min-width:0;display:flex;flex-direction:column;gap:1px;border-left:1px solid rgba(255,255,255,0.05); }
    .kpk-info-cat { font-family:'Share Tech Mono',monospace;font-size:10px;color:#ff6b35;letter-spacing:1px;text-transform:uppercase; }
    .kpk-info-name { font-family:'Rajdhani',sans-serif;font-size:15px;font-weight:600;color:#dce8f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
    .kpk-info-price { font-family:'Rajdhani',sans-serif;font-size:14px;color:#00ff88;font-weight:700; }
    .kpk-info-note { background:none;border:none;border-top:1px solid rgba(255,107,53,0.12);color:#ff8855;font-family:'Share Tech Mono',monospace;font-size:10px;padding:4px 0;outline:none;width:100%;margin-top:3px; }
    .kpk-info-note::placeholder { color:#8a7060; }
    .kpk-side { display:flex;flex-direction:column;align-items:stretch;border-left:1px solid rgba(255,255,255,0.05);align-self:stretch; }
    .kpk-side-vtx { padding:4px 8px;border-bottom:1px solid rgba(255,255,255,0.05); }
    .kpk-side-btns { display:flex;flex:1;align-items:stretch; }
    .kpk-side-btn { flex:1;background:none;border:none;cursor:pointer;font-size:14px;padding:0 12px;display:flex;align-items:center;justify-content:center;transition:all 0.15s;min-width:42px; }
    .kpk-side-btn + .kpk-side-btn { border-left:1px solid rgba(255,255,255,0.05); }
    .kpk-side-btn.dep { color:#00aacc;font-size:11px; }
    .kpk-side-btn.dep:hover, .kpk-side-btn.dep.on { background:rgba(0,180,220,0.1);color:#00ddff; }
    .kpk-side-btn.del { color:#bb3333; }
    .kpk-side-btn.del:hover { background:rgba(180,30,30,0.12);color:#ff5555; }
    .kpk-dep-row { background:rgba(0,204,255,0.025);border:1px solid rgba(0,204,255,0.1);border-top:none;padding:6px 12px 6px 104px;margin-top:-2px;margin-bottom:2px; }
    /* Available — product card grid (reuses store styles) */
    .kpk-avail-hdr { font-family:'Share Tech Mono',monospace;font-size:11px;color:#aabbcc;letter-spacing:2px;text-transform:uppercase;padding:14px 2px 8px;border-top:1px solid rgba(255,255,255,0.07); }
    .kpk-avail-list { display:flex;flex-direction:column;gap:2px; }
    .kpk-avail-row { display:grid;grid-template-columns:52px 120px 1fr 90px 52px;align-items:center;background:rgba(255,255,255,0.018);border:1px solid rgba(255,255,255,0.06);min-height:52px;cursor:pointer;transition:all 0.15s; }
    .kpk-avail-row:hover { background:rgba(0,204,255,0.05);border-color:rgba(0,204,255,0.35); }
    .kpk-avail-row img { width:52px;height:52px;object-fit:cover;display:block;filter:brightness(0.85); }
    .kpk-avail-ph { width:52px;height:52px;background:#0a0c14;display:flex;align-items:center;justify-content:center;font-size:20px;color:#b0bfcc; }
    .kpk-avail-cat { font-family:'Share Tech Mono',monospace;font-size:10px;color:#ff6b35;letter-spacing:1px;text-transform:uppercase;padding:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid rgba(255,255,255,0.05); }
    .kpk-avail-name { font-family:'Rajdhani',sans-serif;font-weight:600;font-size:15px;color:#dce8f0;padding:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid rgba(255,255,255,0.05); }
    .kpk-avail-price { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:15px;color:#00ff88;padding:0 12px;text-align:right;border-left:1px solid rgba(255,255,255,0.05); }
    .kpk-avail-add { display:flex;align-items:center;justify-content:center;height:100%;background:rgba(0,204,255,0.07);border-left:1px solid rgba(0,204,255,0.15);color:#00ccff;font-size:22px;cursor:pointer;border:none;transition:all 0.15s;width:100%; }
    .kpk-avail-add:hover { background:rgba(0,204,255,0.2);color:#fff; }
    /* Per-item VTX tag in kit admin picker */
    .kit-vtx-tag { display:inline-flex;border:1px solid rgba(255,255,255,0.1);overflow:hidden;flex-shrink:0;margin-left:auto; }
    .kit-vtx-tag button { background:none;border:none;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:1px;padding:5px 10px;cursor:pointer;color:#b0bfcc;transition:all 0.15s; }
    .kit-vtx-tag button.active-a  { background:rgba(255,107,53,0.2);color:#ff6b35; }
    .kit-vtx-tag button.active-b  { background:rgba(170,136,255,0.2);color:#aa88ff; }
    .kit-vtx-tag button.active-d  { background:rgba(0,204,255,0.2);color:#00ccff; }
    /* admin kit editor */
    .kit-row { display:flex;align-items:center;gap:10px;padding:10px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.06);margin-bottom:5px; }
    .kit-prod-grid { display:block; }
    .kit-prod-item { display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid rgba(255,255,255,0.06);cursor:pointer;transition:all 0.15s;font-size:12px;color:#9aaabb; }
    .kit-prod-item:hover { border-color:rgba(0,204,255,0.4);color:#99aabb;background:rgba(0,204,255,0.04); }
    .kit-prod-item.selected { border-color:#00ccff;border-width:2px;background:rgba(0,204,255,0.12);color:#e0f4ff;box-shadow:0 0 0 1px rgba(0,204,255,0.2),inset 0 0 12px rgba(0,204,255,0.06); }
    .kit-prod-item input { accent-color:#00ccff;flex-shrink:0; }
    /* nav tabs */
    .pnav-wrap { display:flex;gap:0;border-top:1px solid rgba(255,255,255,0.04);padding:0 22px; }
    .bld-header .pnav-wrap,.tut-header .pnav-wrap,.spots-header .pnav-wrap { padding:0 !important;border-top:1px solid rgba(255,255,255,0.04) !important;width:100% !important; }
    body:not(.nav-ready) .pnav-btn { border-bottom:2px solid transparent !important; color:#9aaabb !important; }
    .pnav-btn { background:transparent;border:none;border-bottom:2px solid transparent;transition:none;color:#9aaabb;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:13px;letter-spacing:2px;padding:8px 20px;cursor:pointer;text-transform:uppercase;transition:color 0.15s,border-color 0.15s;white-space:nowrap;flex-shrink:0; }
    .pnav-btn:hover { color:#aabbcc; }
    .pnav-btn.pnav-active { color:#00ccff !important;border-bottom-color:#00ccff !important;border-bottom:2px solid #00ccff !important; }
    /* spots */
    #spotsPage { display:none;position:fixed;top:var(--banner-h);left:0;right:0;bottom:0;z-index:210;background:#07090f;overflow-y:auto; }
    .spots-header { background:rgba(0,0,0,0.4);border-bottom:1px solid rgba(255,255,255,0.06);padding:12px 20px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:1100;backdrop-filter:blur(10px);flex-wrap:wrap; }
    .spots-back { background:rgba(0,255,136,0.08);border:1px solid rgba(0,255,136,0.3);color:#00ff88;cursor:pointer;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:1px;padding:8px 16px;transition:all 0.2s;white-space:nowrap;flex-shrink:0; }
    .spots-back:hover { background:rgba(0,255,136,0.18);border-color:rgba(0,255,136,0.6); }
    #spotsGate { display:none;position:fixed;top:var(--banner-h);left:0;right:0;bottom:0;z-index:220;background:rgba(7,9,15,0.97);align-items:center;justify-content:center;flex-direction:column; }
    #spotsGate.open { display:flex; }
    .spots-gate-box { position:relative;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.08);padding:28px 24px;max-width:380px;width:90%;text-align:center;max-height:90vh;overflow-y:auto;box-sizing:border-box; }
    .spots-gate-icon { font-size:40px;margin-bottom:16px; }
    .spots-gate-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:22px;letter-spacing:3px;color:#fff;margin-bottom:6px; }
    .spots-gate-sub { font-family:'Share Tech Mono',monospace;font-size:10px;color:#7a8898;letter-spacing:2px;margin-bottom:24px; }
    .spots-gate-input { width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);color:#fff;font-family:'Share Tech Mono',monospace;font-size:16px;letter-spacing:4px;padding:12px 16px;text-align:center;outline:none;box-sizing:border-box;margin-bottom:12px; }
    .spots-gate-input:focus { border-color:rgba(0,255,136,0.4); }
    .spots-gate-btn { width:100%;background:rgba(0,255,136,0.1);border:1px solid rgba(0,255,136,0.3);color:#00ff88;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:14px;letter-spacing:3px;padding:12px;cursor:pointer;transition:all 0.2s; }
    .spots-gate-btn:hover { background:rgba(0,255,136,0.2); }
    .spots-gate-err { font-family:'Share Tech Mono',monospace;font-size:11px;color:#ff5078;margin-top:8px;min-height:18px; }
    .spots-gate-close { position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:3px;background:rgba(255,60,60,0.12);border:1px solid rgba(255,60,60,0.4);color:#ff6666;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s; }
    .spots-gate-close:hover { background:rgba(255,60,60,0.28);border-color:#ff4444;color:#ff4444; }
    .spots-gate-divider { border:none;border-top:1px solid rgba(255,255,255,0.06);margin:18px 0; }
    .spots-gate-link { font-family:'Share Tech Mono',monospace;font-size:11px;color:#9aaabb;letter-spacing:1px;cursor:pointer;transition:color 0.2s;text-decoration:none;background:none;border:none;padding:6px 0 0;display:block;margin:0 auto;text-align:center; }
    .spots-gate-link:hover { color:#00aaff; }
    .spots-gate-link:hover { color:#00ccff; }
    #spotsAccessForm { display:none;text-align:left;margin-top:4px; }
    #spotsAccessForm .saf-field { margin-bottom:10px; }
    #spotsAccessForm .saf-label { font-family:'Share Tech Mono',monospace;font-size:11px;color:#9aaabb;letter-spacing:1px;display:block;margin-bottom:4px; }
    #spotsAccessForm .saf-input { width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);color:#fff;font-family:'Share Tech Mono',monospace;font-size:13px;padding:9px 12px;outline:none;box-sizing:border-box; }
    #spotsAccessForm .saf-input:focus { border-color:rgba(0,204,255,0.4); }
    .saf-btn { width:100%;background:rgba(0,204,255,0.1);border:1px solid rgba(0,204,255,0.3);color:#00ccff;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:13px;letter-spacing:2px;padding:11px;cursor:pointer;transition:all 0.2s;margin-top:4px; }
    .saf-btn:hover { background:rgba(0,204,255,0.2); }
    /* access requests admin */
    .acc-req-row { display:flex;align-items:flex-start;gap:10px;background:rgba(0,204,255,0.03);border:1px solid rgba(0,204,255,0.15);padding:12px 14px;margin-bottom:8px; }
    .acc-req-info { flex:1;min-width:0; }
    .acc-req-name { font-family:'Share Tech Mono',monospace;font-size:12px;color:#00ccff;margin-bottom:3px; }
    .acc-req-meta { font-family:'Share Tech Mono',monospace;font-size:10px;color:#7a8898;line-height:1.7; }
    .spots-body { max-width:1100px;margin:0 auto;padding:28px 22px; }
    .spots-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px; }
    /* Map/Grid toggle */
    .spots-view-toggle { display:flex;gap:0;margin-bottom:18px;border:1px solid rgba(255,255,255,0.1);width:fit-content; }
    .spots-view-btn { background:none;border:none;color:#6a7890;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:2px;padding:7px 16px;cursor:pointer;transition:all 0.15s; }
    .spots-view-btn.active { background:rgba(0,255,136,0.1);color:#00ff88;border:1px solid rgba(0,255,136,0.3); }
    .spots-view-btn:hover:not(.active) { color:#c8d4e0;background:rgba(255,255,255,0.04); }
    /* Map container */
    #spotsMapWrap { margin-bottom:20px;border:1px solid rgba(0,255,136,0.15);overflow:hidden; }
    #spotsMapEl { width:100%;height:52vh;min-height:320px; }
    /* Active spot card highlight */
    .spot-card.spot-active { border-color:rgba(0,255,136,0.6) !important;box-shadow:0 0 0 2px rgba(0,255,136,0.25),0 8px 32px rgba(0,255,136,0.12) !important; }
    /* card */
    .spot-card { background:#0d1117;border:1px solid rgba(255,255,255,0.07);overflow:hidden;cursor:pointer;transition:transform 0.2s,border-color 0.2s,box-shadow 0.2s;border-radius:2px; }
    @media (hover: hover) {
      .spot-card:hover { border-color:rgba(0,255,136,0.4);transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,255,136,0.08); }
      .spot-card:hover .spot-card-hero img { transform:scale(1.04); }
    }
    .spot-card-hero { position:relative;height:190px;overflow:hidden;background:#0a0d13; }
    .spot-card-hero img { width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.3s; }
    .spot-card-hero-placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:48px;opacity:0.3; }
    .spot-card-hero-gradient { position:absolute;inset:0;background:linear-gradient(to top,rgba(13,17,23,0.85) 0%,transparent 50%); }
    .spot-card-hero-tag { position:absolute;top:10px;left:10px;background:rgba(0,255,136,0.15);border:1px solid rgba(0,255,136,0.3);color:#00ff88;font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:2px;padding:3px 8px; }
    .spot-card-body { padding:14px 16px 16px; }
    .spot-card-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:17px;color:#dce8f0;letter-spacing:1px;margin-bottom:6px; }
    .spot-card-notes { font-family:'Share Tech Mono',monospace;font-size:10px;color:#8a98a8;line-height:1.7;margin-bottom:10px; }
    .spot-card-footer { display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid rgba(255,255,255,0.05); }
    .spot-card-mapbtn { display:inline-flex;align-items:center;gap:5px;font-family:'Share Tech Mono',monospace;font-size:9px;color:#00ccff;text-decoration:none;letter-spacing:1px;padding:4px 8px;border:1px solid rgba(0,204,255,0.2);transition:all 0.2s; }
    .spot-card-mapbtn:hover { color:#00ff88;border-color:rgba(0,255,136,0.3); }
    .spot-card-readmore { font-family:'Share Tech Mono',monospace;font-size:11px;color:#00ccff;letter-spacing:1px;opacity:0.85; }
    /* detail overlay */
    .spot-detail-overlay { display:none;position:fixed;top:var(--banner-h);left:0;right:0;bottom:0;z-index:225;background:rgba(0,0,0,0.88);align-items:center;justify-content:center;padding:16px; }
    .spot-detail-overlay.open { display:flex; }
    .spot-detail-box { background:#0d1117;border:1px solid rgba(255,255,255,0.1);max-width:960px;width:100%;max-height:90vh;overflow:hidden;position:relative;border-radius:2px;display:flex;flex-direction:column; }
    .spot-detail-header { position:relative;flex-shrink:0; }
    .spot-detail-main-img { width:100%;height:220px;object-fit:cover;display:block; }
    .spot-detail-main-placeholder { width:100%;height:100px;background:#0a0d13;display:flex;align-items:center;justify-content:center;font-size:48px;opacity:0.2; }
    .spot-detail-header-gradient { position:absolute;inset:0;background:linear-gradient(to top,rgba(13,17,23,1) 0%,transparent 60%); }
    .spot-detail-close { position:absolute;top:12px;right:12px;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.15);color:#fff;font-size:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;border-radius:50%; }
    .spot-detail-close:hover { background:rgba(255,255,255,0.1); }
    .spot-detail-thumbs { display:flex;gap:6px;padding:0 20px 0;overflow-x:auto;margin-top:-24px;position:relative;z-index:2;flex-shrink:0; }
    .spot-detail-thumbs img { height:56px;width:80px;object-fit:cover;cursor:pointer;border:2px solid transparent;flex-shrink:0;opacity:0.7;transition:all 0.2s; }
    .spot-detail-thumbs img:hover,.spot-detail-thumbs img.active { opacity:1;border-color:#00ff88; }
    .spot-detail-body { padding:20px 24px 24px;overflow-y:auto; }
    .spot-detail-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:26px;letter-spacing:2px;color:#fff;margin-bottom:4px; }
    .spot-detail-notes { font-family:'Share Tech Mono',monospace;font-size:11px;color:#9aaabb;line-height:1.9;white-space:pre-wrap;margin:14px 0; }
    .spot-detail-map { width:100%;height:180px;border:none;border-radius:2px;margin-top:16px;display:block;filter:grayscale(20%) brightness(0.9); }
    .spot-detail-maplink { display:inline-flex;align-items:center;gap:6px;font-family:'Share Tech Mono',monospace;font-size:10px;color:#00ccff;text-decoration:none;letter-spacing:1px;padding:7px 14px;border:1px solid rgba(0,204,255,0.25);transition:all 0.2s; }
    .spot-detail-maplink:hover { color:#00ff88;border-color:rgba(0,255,136,0.4); }
    .spot-detail-ytlink { display:inline-flex;align-items:center;gap:6px;font-family:'Share Tech Mono',monospace;font-size:10px;color:#ff4444;text-decoration:none;letter-spacing:1px;padding:7px 14px;border:1px solid rgba(255,60,60,0.35);transition:all 0.2s; }
    .spot-detail-ytlink:hover { background:rgba(255,60,60,0.08);border-color:rgba(255,60,60,0.6); }
    .spot-detail-iglink { display:inline-flex;align-items:center;gap:6px;font-family:'Share Tech Mono',monospace;font-size:10px;color:#e1306c;text-decoration:none;letter-spacing:1px;padding:7px 14px;border:1px solid rgba(225,48,108,0.35);transition:all 0.2s; }
    .spot-detail-iglink:hover { background:rgba(225,48,108,0.08);border-color:rgba(225,48,108,0.6); }
    .spot-detail-tklink { display:inline-flex;align-items:center;gap:6px;font-family:'Share Tech Mono',monospace;font-size:10px;color:#69c9d0;text-decoration:none;letter-spacing:1px;padding:7px 14px;border:1px solid rgba(105,201,208,0.35);transition:all 0.2s; }
    .spot-detail-tklink:hover { background:rgba(105,201,208,0.08);border-color:rgba(105,201,208,0.6); }

    /* Desktop: two-column layout so everything fits without scrolling */
    @media (min-width: 768px) {
      .spot-detail-box { flex-direction:row;max-height:85vh;overflow:hidden; }
      .spot-detail-left { width:55%;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden; }
      .spot-detail-header { flex:1;min-height:0; }
      .spot-detail-main-img { width:100%;height:100%;max-height:340px;object-fit:cover; }
      .spot-detail-main-placeholder { height:100%;min-height:200px; }
      .spot-detail-map { height:100%;min-height:160px;margin-top:0;flex:1; }
      .spot-detail-right { width:45%;display:flex;flex-direction:column;overflow-y:auto;padding:24px 24px 24px 20px;border-left:1px solid rgba(255,255,255,0.07); }
      .spot-detail-thumbs { margin-top:0;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,0.06); }
      .spot-detail-body { padding:0;overflow:visible;flex:1; }
      .spot-detail-close { top:10px;right:10px; }
    }

    /* ── Mobile: spot detail fills the screen, nothing hidden below the fold ── */
    @media (max-width: 600px) {
      .spot-detail-overlay { padding:0;align-items:flex-end; }
      .spot-detail-box {
        max-width:100%;
        width:100%;
        height:calc(100dvh - var(--banner-h));
        max-height:none;
        border-radius:0;
        border-left:none;border-right:none;border-bottom:none;
        display:flex;
        flex-direction:column;
        overflow:hidden;
      }
      .spot-detail-main-img { height:160px; }
      .spot-detail-main-placeholder { height:80px;font-size:32px; }
      .spot-detail-thumbs { flex-shrink:0;margin-top:-16px;padding:0 12px; }
      .spot-detail-thumbs img { height:44px;width:62px; }
      .spot-detail-body {
        flex:1;
        overflow-y:auto;
        -webkit-overflow-scrolling:touch;
        padding:14px 16px 20px;
        display:flex;
        flex-direction:column;
        gap:0;
      }
      .spot-detail-title { font-size:20px;letter-spacing:1px;margin-bottom:2px; }
      .spot-detail-notes { font-size:11px;line-height:1.6;margin:8px 0;max-height:2.5em;overflow:hidden; }
      .spot-detail-map { height:140px;margin-top:10px; }
      .spot-detail-actions-row { display:flex;flex-direction:column;gap:7px;margin-top:10px;flex-shrink:0; }
      .spot-detail-maplink,
      .spot-detail-ytlink,
      .spot-detail-iglink,
      .spot-detail-tklink { width:100%;box-sizing:border-box;justify-content:center;padding:10px 14px;font-size:12px; }
      .spot-detail-report-row { margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,0.06);flex-shrink:0; }
      .spot-report-btn { font-size:11px; }
    }

    /* report spot — button inside detail overlay */
    .spot-report-btn { background:none;border:none;color:#556;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1px;cursor:pointer;padding:0;transition:color 0.2s; }
    .spot-report-btn:hover { color:#ffaa44; }
    .report-spot-overlay { display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.78);align-items:center;justify-content:center;padding:20px; }
    .report-spot-overlay.open { display:flex; }
    .report-spot-box { background:#0d1118;border:1px solid rgba(255,170,50,0.22);width:100%;max-width:440px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,0.6); }
    .report-spot-header { display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid rgba(255,255,255,0.07); }
    .report-spot-tag { font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:2px;color:#ffaa44;margin-bottom:4px; }
    .report-spot-name { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:18px;color:#dce8f0;letter-spacing:1px; }
    .report-spot-close { background:none;border:none;color:#7a8898;font-size:18px;cursor:pointer;padding:0;flex-shrink:0;margin-top:2px; }
    .report-spot-body { padding:16px 20px 20px; }
    .report-spot-desc { font-size:13px;color:#7a8898;margin:0 0 14px;line-height:1.6; }
    .report-spot-label { display:block;font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:1.5px;color:#6a7890;margin-bottom:6px; }
    .report-spot-textarea { width:100%;box-sizing:border-box;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);color:#c8d4e0;font-size:14px;font-family:inherit;padding:10px 12px;resize:vertical;outline:none;min-height:90px; }
    .report-spot-textarea:focus { border-color:rgba(255,170,50,0.45); }
    .report-spot-status { font-family:'Share Tech Mono',monospace;font-size:11px;margin-top:8px;min-height:18px; }
    .report-spot-status.ok  { color:#00ff88; }
    .report-spot-status.err { color:#ff5578; }
    .report-spot-actions { display:flex;gap:10px;margin-top:14px; }
    .report-spot-submit { flex:1;background:rgba(255,170,50,0.1);border:1px solid rgba(255,170,50,0.35);color:#ffaa44;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:1px;padding:10px 0;cursor:pointer;transition:background 0.2s; }
    .report-spot-submit:hover { background:rgba(255,170,50,0.18); }
    .report-spot-submit:disabled { opacity:0.5;cursor:not-allowed; }
    .report-spot-cancel { background:none;border:1px solid rgba(255,255,255,0.1);color:#556;font-family:'Share Tech Mono',monospace;font-size:11px;padding:10px 18px;cursor:pointer; }
    .spot-yt-badge { position:absolute;bottom:10px;right:10px;background:rgba(200,0,0,0.85);border:1px solid rgba(255,255,255,0.2);border-radius:4px;width:38px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.15s;z-index:2; }
    .spot-yt-badge:hover { background:rgba(255,0,0,1); }
    .spot-ig-badge { position:absolute;bottom:10px;right:10px;background:rgba(225,48,108,0.85);border:1px solid rgba(255,255,255,0.2);border-radius:4px;width:38px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.15s;z-index:2; }
    .spot-ig-badge:hover { background:rgba(225,48,108,1); }
    .spot-tk-badge { position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,0.85);border:1px solid rgba(105,201,208,0.4);border-radius:4px;width:38px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.15s;z-index:2; }
    .spot-tk-badge:hover { background:rgba(105,201,208,0.2); }
    /* spots admin */
    .spot-admin-row { display:flex;align-items:center;gap:10px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.06);padding:10px 14px;margin-bottom:6px; }
    .spot-admin-title { flex:1;font-family:'Share Tech Mono',monospace;font-size:11px;color:#ccddee; }
    /* suggest spot */
    #suggestSpotOverlay { display:none;position:fixed;top:var(--banner-h);left:0;right:0;bottom:0;z-index:300;background:rgba(0,0,0,0.88);backdrop-filter:blur(8px);align-items:flex-start;justify-content:center;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;transform:translateZ(0);backface-visibility:hidden; }
    #suggestSpotOverlay.open { display:flex; }
    .sug-box { background:#0d1117;border:1px solid rgba(0,255,136,0.2);width:100%;padding:28px 24px;position:relative;box-sizing:border-box; }
    .sug-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:20px;letter-spacing:2px;color:#fff;margin-bottom:4px; }
    .sug-sub { font-family:'Share Tech Mono',monospace;font-size:10px;color:#7a8898;letter-spacing:1px;margin-bottom:20px; }
    .sug-close { position:absolute;top:12px;right:12px;background:none;border:1px solid rgba(255,255,255,0.1);color:#9aaabb;width:28px;height:28px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center; }
    .sug-close:hover { border-color:rgba(255,107,53,0.4);color:#ff6b35; }
    /* pending suggestions admin */
    .sug-admin-row { display:flex;align-items:flex-start;gap:10px;background:rgba(0,204,255,0.03);border:1px solid rgba(0,204,255,0.15);padding:12px 14px;margin-bottom:8px; }
    /* Build suggestion */
    #suggestBuildOverlay { display:none;position:fixed;top:var(--banner-h);left:0;right:0;bottom:0;z-index:300;background:rgba(0,0,0,0.88);backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:16px; }
    #suggestBuildOverlay.open { display:flex; }
    .bsug-box { background:#0d1117;border:1px solid rgba(255,255,255,0.08);padding:24px;width:100%;max-width:420px;max-height:90vh;overflow-y:auto; }
    .bsug-admin-row { display:flex;align-items:flex-start;gap:10px;background:rgba(255,107,53,0.03);border:1px solid rgba(255,107,53,0.15);padding:12px 14px;margin-bottom:8px; }
    .bsug-admin-info { flex:1;min-width:0; }
    .bsug-admin-name { font-family:'Share Tech Mono',monospace;font-size:12px;color:#ff9966;margin-bottom:3px; }
    .bsug-admin-meta { font-family:'Share Tech Mono',monospace;font-size:10px;color:#7a8898;margin-bottom:4px; }
    .bsug-admin-parts { font-size:11px;color:#aabbcc;line-height:1.6;white-space:pre-wrap; }
    .sug-admin-info { flex:1;min-width:0; }
    .sug-admin-name { font-family:'Share Tech Mono',monospace;font-size:12px;color:#00ccff;margin-bottom:3px; }
    .sug-admin-meta { font-family:'Share Tech Mono',monospace;font-size:10px;color:#7a8898;margin-bottom:4px; }
    .sug-admin-notes { font-size:11px;color:#aabbcc;line-height:1.5; }
    /* tutorials */
    #tutorialsPage { display:none;position:fixed;top:var(--banner-h);left:0;right:0;bottom:0;z-index:210;background:#07090f;overflow-y:auto; }
    #toolsPage { display:none;position:fixed;top:var(--banner-h);left:0;right:0;bottom:0;z-index:210;background:#07090f;overflow-y:auto; }
    .tut-header { background:rgba(0,0,0,0.4);border-bottom:1px solid rgba(255,255,255,0.06);padding:16px 28px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:10;backdrop-filter:blur(10px); }
    .tut-back { background:rgba(0,255,136,0.08);border:1px solid rgba(0,255,136,0.3);color:#00ff88;cursor:pointer;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:1px;padding:8px 16px;transition:all 0.2s;white-space:nowrap;flex-shrink:0; }
    .tut-back:hover { background:rgba(0,255,136,0.18);border-color:rgba(0,255,136,0.6); }
    .tut-title-bar { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:20px;letter-spacing:2px;color:#dce8f0; }
    .tut-cats { display:flex;gap:8px;flex-wrap:wrap;padding:16px 28px 0; }
    .tut-cat-btn { background:transparent;border:1px solid rgba(255,255,255,0.07);color:#aabbcc;cursor:pointer;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1px;padding:6px 14px;transition:all 0.2s; }
    .tut-cat-btn:hover { border-color:rgba(255,107,53,0.4);color:#ff6b35; }
    .tut-cat-btn.active { border-color:#ff6b35;color:#ff6b35;background:rgba(255,107,53,0.07); }
    .tut-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:16px 28px 32px; }
    .tut-card { background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.07);cursor:pointer;transition:all 0.2s;overflow:hidden; }
    .tut-card:hover { border-color:rgba(255,107,53,0.35);background:rgba(255,107,53,0.03); }
    .tut-card-img { width:100%;height:140px;object-fit:cover;display:block;background:#0a0c14; }
    .tut-card-img.placeholder { display:flex;align-items:center;justify-content:center;font-size:32px;height:140px; }
    .tut-card-body { padding:14px 16px; }
    .tut-card-cat { font-family:'Share Tech Mono',monospace;font-size:11px;color:#ff6b35;letter-spacing:2px;text-transform:uppercase;margin-bottom:4px; }
    .tut-card-title { font-family:'Rajdhani',sans-serif;font-weight:600;font-size:16px;color:#dce8f0;line-height:1.3;margin-bottom:6px; }
    .tut-card-desc { font-size:11px;color:#9aaabb;line-height:1.6; }
    /* tutorial reader */
    .tut-reader { max-width:800px;margin:0 auto;padding:24px 28px 60px; }
    .tut-reader-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:28px;color:#dce8f0;margin-bottom:6px; }
    .tut-reader-meta { font-family:'Share Tech Mono',monospace;font-size:11px;color:#b0bfcc;letter-spacing:2px;margin-bottom:20px; }
    .tut-reader-content { font-size:14px;color:#99aabb;line-height:1.8; }
    .tut-reader-content h2 { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:20px;color:#dce8f0;margin:24px 0 10px;border-bottom:1px solid rgba(255,255,255,0.06);padding-bottom:6px; }
    .tut-reader-content h3 { font-family:'Rajdhani',sans-serif;font-weight:600;font-size:16px;color:#aabbc0;margin:18px 0 8px; }
    .tut-reader-content img { max-width:100%;border:1px solid rgba(255,255,255,0.08);margin:12px 0;display:block; }
    .tut-reader-content a { color:#00ccff;text-decoration:none; }
    .tut-reader-content a:hover { text-decoration:underline; }
    .tut-reader-content p { margin:0 0 12px; }
    .tut-reader-content ul,ol { padding-left:20px;margin:0 0 12px; }
    .tut-reader-content code { background:rgba(0,255,136,0.07);color:#00ff88;font-family:'Share Tech Mono',monospace;font-size:12px;padding:1px 5px; }
    /* tutorial media */

    /* ── Tutorial media manager ── */
    .tut-media-section { border-top:1px solid rgba(255,255,255,0.06);margin-top:16px;padding-top:16px; }
    .tut-media-section-title { font-family:'Share Tech Mono',monospace;font-size:10px;color:#aabbcc;letter-spacing:2px;text-transform:uppercase;margin-bottom:10px; }
    .tut-media-add-row { display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px; }
    .tut-media-list { display:flex;flex-direction:column;gap:6px; }
    .tut-media-item { display:flex;align-items:center;gap:10px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.07);padding:8px 10px; }
    .tut-media-thumb { width:80px;height:60px;background:#0a0c14;border:1px solid rgba(255,255,255,0.06);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#b0bfcc;font-size:24px;overflow:hidden; }
    .tut-media-thumb img { width:80px;height:60px;object-fit:cover;display:block; }
    .tut-media-thumb canvas { width:80px;height:60px;object-fit:contain;display:block; }
    .tut-media-label { flex:1;min-width:0;font-family:'Share Tech Mono',monospace;font-size:11px;color:#c0ccd8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
    .tut-media-type-tag { font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:1px;padding:2px 6px;border:1px solid;flex-shrink:0; }
    .tut-media-type-tag.img { color:#00ccff;border-color:rgba(0,204,255,0.3); }
    .tut-media-type-tag.pdf { color:#ff6b35;border-color:rgba(255,107,53,0.35); }
    /* ── Media viewer modal ── */
    #tutMediaViewer { display:none;position:fixed;inset:0;z-index:600;background:#000;flex-direction:column; }
    #tutMediaViewer.open { display:flex; }
    .tmv-topbar { display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,0.07);flex-shrink:0;background:rgba(7,9,15,0.97);backdrop-filter:blur(10px); }
    .tmv-label { flex:1;min-width:0;font-family:'Share Tech Mono',monospace;font-size:12px;color:#dce8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
    .tmv-counter { font-family:'Share Tech Mono',monospace;font-size:10px;color:#9aaabb;letter-spacing:1px;flex-shrink:0; }
    .tmv-close { background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.22);color:#dce8f0;cursor:pointer;font-size:18px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;transition:all 0.15s;flex-shrink:0; }
    .tmv-close:hover { background:rgba(255,80,80,0.18);border-color:rgba(255,80,80,0.5);color:#ff5050; }

    /* ── DESKTOP body: scrollable, arrows on sides ── */
    .tmv-body { flex:1;display:flex;align-items:flex-start;justify-content:center;position:relative;overflow-y:auto;overflow-x:hidden;min-height:0; }
    .tmv-nav { position:fixed;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.6);border:1px solid rgba(255,255,255,0.12);color:#c0ccd8;cursor:pointer;width:44px;height:64px;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all 0.15s;z-index:2; }
    .tmv-nav:hover { background:rgba(0,255,136,0.12);border-color:rgba(0,255,136,0.35);color:#00ff88; }
    .tmv-nav:disabled { opacity:0.2;cursor:default; }
    .tmv-nav.prev { left:12px; }
    .tmv-nav.next { right:12px; }
    .tmv-content { width:calc(100% - 120px);min-height:100%;display:flex;align-items:flex-start;justify-content:center;padding:20px 0; }
    .tmv-img { max-width:100%;height:auto;display:block;cursor:default;user-select:none; }
    .tmv-img.can-pan { cursor:grab; }
    .tmv-img.panning { cursor:grabbing; }
    .tmv-zoom-bar { display:none;align-items:center;gap:4px;margin-left:auto;flex-shrink:0; }
    .tmv-zoom-bar.visible { display:flex; }
    .tmv-zb { background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);color:#c0ccd8;cursor:pointer;font-family:'Share Tech Mono',monospace;font-size:11px;padding:3px 9px;transition:all 0.15s;line-height:1; }
    .tmv-zb:hover { background:rgba(0,255,136,0.1);border-color:rgba(0,255,136,0.3);color:#00ff88; }
    #tmvZoomPct { font-family:'Share Tech Mono',monospace;font-size:11px;color:#9aaabb;letter-spacing:1px;min-width:40px;text-align:center; }
    .tab-label-full { display:inline; }
    .tab-label-short { display:none; }

    /* ── MOBILE overrides: full-width, no arrows, pinch freely ── */
    @media (max-width:600px) {
      .tmv-topbar { padding:10px 12px; }
      .tmv-zoom-bar { display:none !important; }
      .tmv-nav { display:none !important; }
      .tmv-body { overflow:hidden;align-items:center; }
      .tmv-content { width:100%;padding:0;min-height:unset;height:100%;overflow:hidden;position:relative; }
      .tmv-img { width:100%;height:auto;max-width:none;touch-action:none;will-change:transform;transform-origin:0 0; }
      #tmvFitBtn { display:flex !important;align-items:center; }
    }

    .tmv-pdf-loading { color:#9aaabb;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:1px; }
    #tmvFrame { width:100%;height:100%;border:none;display:none; }
    /* When PDF is visible, body must not scroll — frame needs a real height */
    #tutMediaViewer.pdf-mode .tmv-body { overflow:hidden; }
    #tutMediaViewer.pdf-mode .tmv-content { width:calc(100% - 120px);height:100%;padding:0;min-height:unset; }

    /* tutorial editor */
    .tut-editor { border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.02);min-height:300px;padding:12px 14px;color:#c8d4e0;font-size:13px;line-height:1.7;outline:none; }
    .tut-editor:focus { border-color:rgba(0,255,136,0.3); }
    .tut-toolbar { display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px; }
    .tut-tb-btn { background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);color:#aabbcc;cursor:pointer;font-size:11px;padding:3px 8px;transition:all 0.15s;font-family:'Share Tech Mono',monospace; }
    .tut-tb-btn:hover { color:#dce8f0;border-color:rgba(255,255,255,0.2); }
    /* ── Tool: Useful Links cards ── */
    .lnk-tool-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:4px 0 20px; }
    .lnk-tool-card { background:#0d1117;border:1px solid rgba(255,255,255,0.07);overflow:hidden;cursor:pointer;transition:transform 0.2s,border-color 0.2s,box-shadow 0.2s;border-radius:2px;text-decoration:none;display:block; }
    @media(hover:hover){.lnk-tool-card:hover{border-color:rgba(0,204,255,0.4);transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,204,255,0.08);} .lnk-tool-card:hover .lnk-tool-card-hero img{transform:scale(1.04);}}
    .lnk-tool-card-hero { position:relative;height:160px;overflow:hidden;background:#0a0d13; }
    .lnk-tool-card-hero img { width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.3s; }
    .lnk-tool-card-hero-ph { width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:42px;opacity:0.25; }
    .lnk-tool-card-hero-grad { position:absolute;inset:0;background:linear-gradient(to top,rgba(13,17,23,0.85) 0%,transparent 55%); }
    .lnk-tool-card-hero-tag { position:absolute;top:10px;left:10px;background:rgba(0,204,255,0.13);border:1px solid rgba(0,204,255,0.3);color:#00ccff;font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:2px;padding:3px 8px; }
    .lnk-tool-card-arrow { position:absolute;top:10px;right:10px;color:#00ccff;font-size:15px;opacity:0.7; }
    .lnk-tool-card-body { padding:12px 14px 14px; }
    .lnk-tool-card-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:16px;color:#dce8f0;letter-spacing:1px;margin-bottom:5px; }
    .lnk-tool-card-desc { font-family:'Share Tech Mono',monospace;font-size:11px;color:#8a98a8;line-height:1.7;margin-bottom:8px; }
    .lnk-tool-card-footer { display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid rgba(255,255,255,0.05); }
    .lnk-tool-card-url { font-family:'Share Tech Mono',monospace;font-size:12px;color:#00ccff;opacity:0.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80%; }
    .lnk-cat-filter { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px; }
    .lnk-cat-pill { background:transparent;border:1px solid rgba(255,255,255,0.08);color:#7a8898;cursor:pointer;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:1px;padding:6px 14px;transition:all 0.2s; }
    .lnk-cat-pill:hover { border-color:rgba(0,204,255,0.3);color:#aabbcc; }
    .lnk-cat-pill.active { border-color:#00ccff;color:#00ccff;background:rgba(0,204,255,0.07); }
    /* Admin link rows — draggable */
    .lnk-admin-row { display:flex;align-items:center;gap:10px;padding:10px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.06);margin-bottom:5px;cursor:grab;transition:border-color 0.15s,background 0.15s; }
    .lnk-admin-row:hover { border-color:rgba(0,204,255,0.2); }
    .lnk-admin-row.dragging { opacity:0.3;cursor:grabbing; }
    .lnk-admin-row.drag-over { background:rgba(0,204,255,0.06);border-color:rgba(0,204,255,0.45);outline:2px solid rgba(0,204,255,0.25); }
    .lnk-drag-handle { display:flex;align-items:center;justify-content:center;color:#6a8090;font-size:17px;width:18px;flex-shrink:0;user-select:none;cursor:grab; }
    .lnk-drag-handle:hover { color:#6a9ab0; }
    /* Links view-toggle button */
    .lnk-view-btn { background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);color:#7a8898;cursor:pointer;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1px;padding:5px 12px;transition:all 0.2s;white-space:nowrap; }
    .lnk-view-btn:hover { border-color:rgba(0,204,255,0.3);color:#00ccff; }
    .lnk-view-btn.active { border-color:rgba(0,204,255,0.5);color:#00ccff;background:rgba(0,204,255,0.08); }
    /* Links list view */
    .lnk-list-row { display:flex;align-items:center;gap:12px;background:#0d1117;border:1px solid rgba(255,255,255,0.07);padding:0;margin-bottom:6px;text-decoration:none;transition:border-color 0.2s,background 0.2s;overflow:hidden; }
    @media(hover:hover){.lnk-list-row:hover{border-color:rgba(0,204,255,0.35);background:rgba(0,204,255,0.03);}}
    .lnk-list-thumb { width:64px;height:52px;object-fit:cover;display:block;flex-shrink:0; }
    .lnk-list-thumb-ph { width:64px;height:52px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;background:#0a0d13;color:#00ccff;opacity:0.5; }
    .lnk-list-body { flex:1;min-width:0;padding:10px 0; }
    .lnk-list-name { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:15px;color:#dce8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
    .lnk-list-meta { display:flex;align-items:center;gap:8px;margin-top:3px;flex-wrap:wrap; }
    .lnk-list-cat { font-family:'Share Tech Mono',monospace;font-size:11px;color:#00ccff;letter-spacing:1px;background:rgba(0,204,255,0.07);border:1px solid rgba(0,204,255,0.2);padding:2px 8px; }
    .lnk-list-domain { font-family:'Share Tech Mono',monospace;font-size:11px;color:#00ccff;opacity:0.7; }
    .lnk-list-arrow { font-size:16px;color:#00ccff;opacity:0.5;padding:0 14px;flex-shrink:0; }
    .lnk-list-desc { font-family:'Share Tech Mono',monospace;font-size:11px;color:#8a98a8;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
    .cat-btn.active { border-color: #00ff88; color: #00ff88; background: rgba(0,255,136,0.07); }
    .main { position: relative; z-index: 1; padding: 20px 24px 40px; }
    .grid-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; scroll-margin-top: calc(var(--banner-h) + 160px); }
    .grid-count { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #6a7890; letter-spacing: 1px; }
    .grid-count em { color: #00ff88; font-style: normal; }
    .storefront-body { display: block; }
    .grid-area { padding: 0; }
    .product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); gap: 16px; }

    .product-card { display: flex; flex-direction: column; background: rgba(255,255,255,0.025); border: 1px solid rgba(255,255,255,0.06);
      position: relative; transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s; overflow: hidden; }
    @media (hover: hover) { .product-card:hover { transform: translateY(-3px); border-color: rgba(0,255,136,0.2); box-shadow: 0 8px 28px rgba(0,255,136,0.06); } }
    .card-discount-badge { position: absolute; top: 8px; left: 8px; z-index: 2; background: #ff3366; color: #fff;
      font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 1px; padding: 2px 7px; }
    .card-image { width: 100%; height: 166px; object-fit: cover; display: block; filter: brightness(0.82); }
    .card-body { padding: 13px; display: flex; flex-direction: column; flex: 1; }
    .card-price-note { font-family:'Share Tech Mono',monospace;font-size:10px;color:#8a9aaa;margin-top:2px;line-height:1.4; }
    .card-source-badge { display:inline-block;background:rgba(0,204,255,0.1);border:1px solid rgba(0,204,255,0.3);color:#00ccff;font-family:'Share Tech Mono',monospace;font-size:8px;letter-spacing:1px;padding:2px 7px;margin-bottom:4px;text-transform:uppercase; }
    .card-category { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: #ff6b35; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 4px; }
    .card-name { font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: var(--fpv-name); color: #dce8f0; line-height: 1.3; margin-bottom: 3px;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .card-store { font-size: var(--fpv-meta); color: #7a8898; margin-bottom: 5px; }
    .card-stars { display: flex; gap: 1px; align-items: center; margin-bottom: 4px; }
    .card-stars span { color: #7a8898; font-size: var(--fpv-meta); margin-left: 3px; }
    .card-meta { font-size: var(--fpv-meta); color: #7a8898; margin-bottom: 8px; }
    .card-prices { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; }
    .card-price { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: var(--fpv-price); color: #00ff88; }
    .card-original { font-size: var(--fpv-meta); color: #7a8898; text-decoration: line-through; }
    .card-save-btn { display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px;background:transparent;border:1px solid rgba(255,255,255,0.07);color:#8a9aaa;font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:all 0.2s;margin-top:6px; }
    .card-save-btn:hover { border-color:rgba(255,80,120,0.35);color:#ff5078;background:rgba(255,80,120,0.05); }
    .card-save-btn.saved { color:#ff5078;border-color:rgba(255,80,120,0.4);background:rgba(255,80,120,0.07); }
    .card-btn { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%;
      padding: 10px; background: rgba(0,255,136,0.07); border: 1px solid rgba(0,255,136,0.18);
      color: #00ff88; font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 13px;
      letter-spacing: 1px; text-decoration: none; transition: all 0.2s; }
    .card-btn:hover { background: rgba(0,255,136,0.14); border-color: rgba(0,255,136,0.4); }
    .empty-state { grid-column: 1/-1; text-align: center; padding: 60px; color: #7a8898; }
    .empty-state h3 { font-family: 'Rajdhani', sans-serif; font-size: 20px; color: #6a7890; margin-bottom: 6px; }
    .ali-search-section { margin: 0 22px 28px; }
    .ali-search-header { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
    .ali-search-label { font-family:'Share Tech Mono',monospace; font-size:10px; color:#ff6b35; letter-spacing:2px; text-transform:uppercase; }
    .ali-search-bar { display:flex; gap:8px; }
    .ali-search-input { flex:1; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.09); color:#dce8f0;
      font-family:'Rajdhani',sans-serif; font-size:15px; padding:10px 14px; outline:none; transition:border-color 0.2s; }
    .ali-search-input:focus { border-color:rgba(255,107,53,0.5); }
    .ali-search-btn { background:rgba(255,107,53,0.12); border:1px solid rgba(255,107,53,0.35); color:#ff6b35;
      font-family:'Rajdhani',sans-serif; font-weight:700; font-size:13px; letter-spacing:1px;
      padding:10px 20px; cursor:pointer; transition:all 0.2s; white-space:nowrap; }
    .ali-search-btn:hover { background:rgba(255,107,53,0.22); border-color:rgba(255,107,53,0.6); }
    .ali-search-btn:disabled { opacity:0.4; cursor:default; }
    .ali-results-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:14px; }
    .ali-pagination { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:16px; }
    .ali-page-btn { background:rgba(255,107,53,0.08); border:1px solid rgba(255,107,53,0.25); color:#ff6b35;
      font-family:'Share Tech Mono',monospace; font-size:11px; letter-spacing:1px; padding:6px 14px;
      cursor:pointer; transition:all 0.15s; }
    .ali-page-btn:hover:not(:disabled) { background:rgba(255,107,53,0.2); border-color:rgba(255,107,53,0.5); }
    .ali-page-btn:disabled { opacity:0.25; cursor:default; }
    .ali-page-info { font-family:'Share Tech Mono',monospace; font-size:10px; color:#9aaabb; letter-spacing:1px; }
    @media(max-width:700px) { .ali-results-grid { grid-template-columns:1fr; } }
    .ali-card { background:rgba(255,107,53,0.03); border:1px solid rgba(255,107,53,0.12);
      transition:border-color 0.2s, transform 0.2s; overflow:hidden; }
    @media (hover: hover) { .ali-card:hover { border-color:rgba(255,107,53,0.35); transform:translateY(-2px); } }
    .ali-card-img { width:100%; height:160px; object-fit:cover; display:block; filter:brightness(0.85); background:#0a0c14; }
    .ali-card-body { padding:12px 13px; }
    .ali-card-badge { font-family:'Share Tech Mono',monospace; font-size:9px; color:#ff6b35; letter-spacing:2px; margin-bottom:5px; }
    .ali-card-name { font-family:'Rajdhani',sans-serif; font-weight:600; font-size:15px; color:#dce8f0; line-height:1.3; margin-bottom:5px;
      display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .ali-card-store { font-size:11px; color:#7a8090; margin-bottom:7px; }
    .ali-card-price { font-family:'Rajdhani',sans-serif; font-weight:700; font-size:22px; color:#ff6b35; margin-bottom:10px; }
    .ali-card-price span { font-size:13px; color:#7a8090; text-decoration:line-through; margin-left:6px; font-weight:400; }
    .ali-card-btn { display:flex; align-items:center; justify-content:center; gap:6px; width:100%;
      padding:9px; background:rgba(255,107,53,0.08); border:1px solid rgba(255,107,53,0.25);
      color:#ff6b35; font-family:'Rajdhani',sans-serif; font-weight:600; font-size:13px;
      letter-spacing:1px; text-decoration:none; transition:all 0.2s; }
    .ali-card-btn:hover { background:rgba(255,107,53,0.18); border-color:rgba(255,107,53,0.5); }
    .ali-search-msg { font-family:'Share Tech Mono',monospace; font-size:11px; color:#9aaabb; padding:16px 0; text-align:center; letter-spacing:1px; }
    .ali-divider { border:none; border-top:1px solid rgba(255,107,53,0.1); margin-bottom:14px; }
    footer { position: relative; z-index: 1; padding: 16px 24px; border-top: 1px solid rgba(255,255,255,0.04);
      display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px;
      font-family: 'Share Tech Mono', monospace; font-size: 10px; color: #2a3040; letter-spacing: 1px; }
    footer .note { color: #00aaff; }
    .card-share-btn { display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px;background:transparent;border:1px solid rgba(255,255,255,0.07);color:#7a8898;font-family:'Exo 2',sans-serif;font-size:12px;cursor:pointer;transition:all 0.2s;letter-spacing:0.5px; }
    .card-share-btn:hover { border-color:rgba(0,204,255,0.35);color:#00ccff; }
    .card-share-btn.copied { border-color:rgba(0,255,136,0.4);color:#00ff88; }
    .product-card.highlighted { border-color:rgba(0,255,136,0.6);box-shadow:0 0 0 2px rgba(0,255,136,0.2),0 8px 32px rgba(0,255,136,0.12);animation:highlight-pulse 2s ease-out forwards; }
    @keyframes highlight-pulse { 0%,40%{border-color:rgba(0,255,136,0.8);box-shadow:0 0 0 3px rgba(0,255,136,0.3);} 100%{border-color:rgba(255,255,255,0.06);box-shadow:none;} }
    .coupon-modal-row { display:grid;grid-template-columns:140px 110px 120px 1fr;gap:0;border-bottom:1px solid rgba(255,255,255,0.05);padding:12px 4px;align-items:center; }
    .coupon-modal-row:last-child { border-bottom:none; }
    .coupon-code { font-family:'Share Tech Mono',monospace;font-size:14px;font-weight:700;color:#ffaa00;letter-spacing:2px;background:rgba(255,170,0,0.07);border:1px solid rgba(255,170,0,0.2);padding:4px 10px;cursor:pointer;transition:background 0.15s; }
    .coupon-code:hover { background:rgba(255,170,0,0.15); }
    .coupon-copied { font-size:9px;color:#00ff88;font-family:'Share Tech Mono',monospace;display:none;margin-top:3px;letter-spacing:1px; }
    .coupon-order { font-family:'Share Tech Mono',monospace;font-size:11px;color:#aabbcc; }
    .coupon-discount { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:15px;color:#00ff88; }
    .coupon-note { font-size:11px;color:#9aaabb; }
    .ptable-row.coupon-row { grid-template-columns:1fr 110px 120px 1fr 80px; }
    /* ADMIN */
    #loginPage { display: none; position: fixed; top:var(--banner-h); left: 0; right: 0; bottom: 0; z-index: 210; background: #07090f; align-items: center; justify-content: center; flex-direction: column; }
    #loginPage.open { display: flex; }
    .login-box { width: min(420px, 90vw); border: 1px solid rgba(255,107,53,0.25); background: #0b0e16; padding: 40px 32px; display: flex; flex-direction: column; gap: 20px; }
    .login-logo { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 22px; letter-spacing: 3px; color: #fff; }
    .login-logo span { color: #ff6b35; }
    .login-tag { font-family: 'Share Tech Mono', monospace; font-size: 9px; color: #ff6b35; letter-spacing: 3px; }
    .login-field { display: flex; flex-direction: column; gap: 6px; }
    .login-field label { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #8a9aaa; letter-spacing: 2px; text-transform: uppercase; }
    .login-field input { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); color: #c8d4e0;
      font-family: 'Exo 2', sans-serif; font-size: 14px; padding: 10px 12px; outline: none; transition: border-color 0.2s; letter-spacing: 2px; }
    .login-field input:focus { border-color: rgba(255,107,53,0.5); }
    .login-error { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: #ff3366; display: none; }
    .login-error.show { display: block; }
    #adminPage { display: none; position: fixed; top:var(--banner-h); left: 0; right: 0; bottom: 0; z-index: 210; background: #07090f; overflow-y: auto; flex-direction: column; }
    #adminPage.open { display: flex; }
    .admin-header-bar { background: rgba(7,9,15,0.98); border-bottom: 1px solid rgba(255,107,53,0.2);
      padding: 12px 28px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 10; gap: 12px; flex-wrap: wrap; }
    .admin-brand { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 16px; letter-spacing: 2px; color: #fff; }
    .admin-brand span { color: #ff6b35; }
    .admin-brand-sub { font-family: 'Share Tech Mono', monospace; font-size: 13px; color: #6a7890; letter-spacing: 2px; }
    .admin-nav { display: flex; gap: 2px; flex-wrap: wrap; }
    .anav-btn { background: transparent; border: none; border-bottom: 2px solid transparent; color: #6a7890;
      font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 18px; letter-spacing: 1px; padding: 8px 18px; cursor: pointer; transition: all 0.2s; text-transform: uppercase; }
    .anav-btn:hover { color: #aabbcc; }
    .anav-btn.active { color: #ff6b35; border-bottom-color: #ff6b35; }
    .admin-actions { display: flex; gap: 8px; align-items: center; }
    .admin-logout { background: transparent; border: 1px solid rgba(255,255,255,0.1); color: #7a8898;
      font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 16px; letter-spacing: 1px; padding: 8px 18px; cursor: pointer; transition: all 0.2s; }
    .admin-logout:hover { border-color: #ff3366; color: #ff3366; }
    .admin-content { padding: 28px; flex: 1; display: flex; flex-direction: column; gap: 0; }
    .admin-tab-panel { display: none; flex-direction: column; gap: 20px; }
    .dupe-group { background:rgba(255,170,0,0.04); border:1px solid rgba(255,170,0,0.18); border-radius:4px; padding:16px; margin-bottom:14px; }
    .dupe-group-label { font-family:'Share Tech Mono',monospace; font-size:9px; letter-spacing:2px; color:#ffaa00; margin-bottom:12px; }
    .dupe-pair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .dupe-card { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); padding:12px; border-radius:3px; }
    .dupe-card img { width:60px; height:60px; object-fit:cover; float:left; margin-right:10px; background:#0a0c14; }
    .dupe-card-name { font-size:13px; color:#dce8f0; margin-bottom:4px; line-height:1.3; }
    .dupe-card-price { font-family:'Share Tech Mono',monospace; font-size:15px; color:#ff6b35; }
    .dupe-card-meta { font-size:10px; color:#9aaabb; margin-top:3px; }
    .dupe-card.cheaper { border-color:rgba(0,204,255,0.35); background:rgba(0,204,255,0.04); }
    .dupe-card.cheaper .dupe-card-price { color:#00ccff; }
    .dupe-actions { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
    .dupe-signal { display:inline-block; font-family:'Share Tech Mono',monospace; font-size:8px; letter-spacing:1px; padding:2px 6px; border-radius:2px; margin-right:4px; }
    .dupe-signal.pid { background:rgba(255,107,53,0.15); color:#ff6b35; }
    .dupe-signal.name { background:rgba(0,204,255,0.12); color:#00ccff; }
    .dupe-signal.img { background:rgba(120,255,120,0.1); color:#88ff88; }
    .admin-tab-panel.active { display: flex; }
    .asec { border: 1px solid rgba(255,255,255,0.06); background: rgba(255,255,255,0.015); padding: 20px; display: flex; flex-direction: column; gap: 14px; }
    .asec-title { font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 22px; letter-spacing: 2px; text-transform: uppercase; color: #8a98a8;
      border-bottom: 1px solid rgba(255,255,255,0.05); padding-bottom: 10px; display: flex; align-items: center; gap: 8px; }
    .step-circle { width: 20px; height: 20px; background: rgba(255,107,53,0.1); border: 1px solid rgba(255,107,53,0.3); color: #ff6b35;
      font-family: 'Share Tech Mono', monospace; font-size: 10px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: 50%; }
    .hint { font-size: 14px; color: #6a7890; line-height: 1.6; }
    .csv-example { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: #7a8898; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.04); padding: 8px 10px; line-height: 1.8; }
    .csv-example .dim { color: #7a8898; }
    .btn { background: rgba(0,255,136,0.09); border: 1px solid rgba(0,255,136,0.25); color: #00ff88;
      font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 13px; letter-spacing: 1px;
      padding: 9px 18px; cursor: pointer; transition: all 0.2s; display: inline-flex; align-items: center; gap: 6px; }
    .btn:hover { background: rgba(0,255,136,0.16); }
    .btn.sm { padding: 9px 17px; font-size: 15px; }
    .btn.xs { padding: 5px 11px; font-size: 13px; }
    .btn.outline-blue { background: transparent; border: 1px solid rgba(0,170,255,0.3); color: #00aaff; }
    .btn.outline-blue.active { background: rgba(0,170,255,0.15); border-color: #00aaff; color: #00aaff; }
    .btn.outline-blue:hover { background: rgba(0,170,255,0.08); }
    .btn.outline-red  { background: transparent; border: 1px solid rgba(255,51,102,0.3); color: #ff3366; }
    .btn.outline-red:hover  { background: rgba(255,51,102,0.08); }
    .btn.full { width: 100%; justify-content: center; }
    .btn.orange { background: rgba(255,107,53,0.1); border: 1px solid rgba(255,107,53,0.3); color: #ff6b35; }
    .btn.orange:hover { background: rgba(255,107,53,0.18); }
    .btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .ai { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); color: #c8d4e0;
      font-family: 'Exo 2', sans-serif; font-size: 14px; padding: 7px 10px; outline: none; transition: border-color 0.2s; width: 100%; }
    .ai:focus { border-color: rgba(0,255,136,0.3); }
    .ai::placeholder { color: #8a9aaa; }
    .ai-sel { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); color: #c8d4e0;
      font-family: 'Exo 2', sans-serif; font-size: 14px; padding: 7px 10px; outline: none; cursor: pointer; width: 100%; }
    .ai-sel option { background: #0b0e16; }
    textarea.ai { resize: vertical; font-family: 'Share Tech Mono', monospace; font-size: 14px; line-height: 1.7; }
    .field { display: flex; flex-direction: column; gap: 3px; }
    .field label { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #6a7890; letter-spacing: 1.5px; text-transform: uppercase; }
    .field-row { display: grid; gap: 8px; }
    .field-row.col2 { grid-template-columns: 1fr 1fr; }
    .field-row.col3 { grid-template-columns: 1fr 1fr 1fr; }
    .file-label { display: inline-flex; align-items: center; gap: 6px; background: rgba(0,170,255,0.07); border: 1px solid rgba(0,170,255,0.2);
      color: #00aaff; font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 1px; padding: 7px 14px; cursor: pointer; transition: all 0.2s; }
    .file-label:hover { background: rgba(0,170,255,0.14); }
    .file-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
    .or-text { font-size: 10px; color: #7a8898; font-family: 'Share Tech Mono', monospace; }
    .smsg { font-family: 'Share Tech Mono', monospace; font-size: 14px; padding: 9px 12px; letter-spacing: 0.5px; line-height: 1.5; display: none; }
    .smsg.show { display: block; }
    .smsg.success { background: rgba(0,255,136,0.06);  border: 1px solid rgba(0,255,136,0.18);  color: #00ff88; }
    .smsg.error   { background: rgba(255,51,102,0.06); border: 1px solid rgba(255,51,102,0.18); color: #ff3366; }
    .smsg.warn    { background: rgba(255,204,0,0.05);  border: 1px solid rgba(255,204,0,0.18);  color: #ffcc00; }
    .ptable { display: flex; flex-direction: column; gap: 3px; }
    .ptable-head { display: grid; grid-template-columns: 24px 24px 42px 1fr 90px 60px 62px 62px 58px minmax(130px,auto);
      font-family: 'Share Tech Mono', monospace; font-size: 12px; color: #8a98a8; letter-spacing: 1px; padding: 8px 10px; text-transform: uppercase; gap: 8px; }
    .ptable-row { display: grid; grid-template-columns: 24px 24px 42px 1fr 90px 60px 62px 62px 58px minmax(130px,auto); align-items: center; padding: 7px 10px;
      background: rgba(255,255,255,0.015); border: 1px solid rgba(255,255,255,0.04); gap: 8px; transition: border-color 0.15s; }
    .ptable-row:hover { border-color: rgba(255,255,255,0.09); }
    .ptable-thumb { width: 40px; height: 30px; object-fit: cover; filter: brightness(0.8); flex-shrink: 0; }
    .ptable-name  { font-size: 15px; color: #b0bfcc; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .ptable-cat   { font-size: 13px; color: #7a8898; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .ptable-price { font-family: 'Share Tech Mono', monospace; font-size: 14px; color: #00ff88; }
    .ptable-link  { font-family: 'Share Tech Mono', monospace; font-size: 12px; letter-spacing: 1px; padding: 2px 6px; text-align: center; }
    .ptable-link.aff    { background: rgba(0,255,136,0.08); color: #00ff88; border: 1px solid rgba(0,255,136,0.2); }
    .ptable-link.direct { background: transparent; color: #7a8898; border: 1px solid rgba(255,255,255,0.06); }
    .ptable-actions { display: flex; gap: 4px; }
    .cat-chips { display: flex; flex-wrap: wrap; gap: 6px; }
    .cat-chip { display: flex; align-items: center; gap: 6px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
      padding: 4px 10px; font-family: 'Rajdhani', sans-serif; font-size: 12px; color: #aabbcc; letter-spacing: 1px; }
    .cat-chip-del { background: transparent; border: none; color: #6a7890; cursor: pointer; font-size: 11px; line-height: 1; transition: color 0.2s; padding: 0; }
    .cat-chip-del:hover { color: #ff3366; }
    .img-preview-wrap { position: relative; display: inline-block; }
    .img-preview { width: 90px; height: 60px; object-fit: cover; border: 1px solid rgba(255,255,255,0.08); filter: brightness(0.85); display: block; }
    .img-change-btn { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.7); border: none; color: #00aaff;
      font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 10px; letter-spacing: 1px;
      padding: 4px; cursor: pointer; opacity: 0; transition: opacity 0.2s; text-align: center; width: 100%; }
    .img-preview-wrap:hover .img-change-btn { opacity: 1; }
    .ltable { display: flex; flex-direction: column; gap: 3px; max-height: 260px; overflow-y: auto; }
    .ltable-head { display: grid; grid-template-columns: 1fr 90px 24px; font-family: 'Share Tech Mono', monospace; font-size: 9px; color: #7a8898; letter-spacing: 1px; padding: 5px 8px; text-transform: uppercase; }
    .ltable-row { display: grid; grid-template-columns: 1fr 90px 24px; align-items: center; padding: 6px 8px; background: rgba(255,255,255,0.015); border: 1px solid rgba(255,255,255,0.03); gap: 6px; }
    .lname { font-size: 11px; color: #9aaabb; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .lstatus { font-family: 'Share Tech Mono', monospace; font-size: 9px; letter-spacing: 1px; padding: 2px 6px; text-align: center; }
    .lstatus.aff    { background: rgba(0,255,136,0.08); color: #00ff88; border: 1px solid rgba(0,255,136,0.2); }
    .lstatus.direct { background: transparent; color: #7a8898; border: 1px solid rgba(255,255,255,0.06); }
    .lclear { background: transparent; border: none; color: #7a8898; cursor: pointer; font-size: 11px; padding: 2px; transition: color 0.2s; }
    .lclear:hover { color: #ff3366; }
    .overlay { position: fixed; top:var(--banner-h); left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8); backdrop-filter: blur(4px); z-index: 300; display: none; align-items: center; justify-content: center; }
    .overlay.open { display: flex; }
    .modal-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: -2px; }
    .modal-tag { font-family: 'Share Tech Mono', monospace; font-size: 13px; color: #00aaff; letter-spacing: 3px; margin-bottom: 3px; }
    .modal-title { font-family: 'Rajdhani', sans-serif; font-weight: 700; font-size: 24px; color: #fff; letter-spacing: 1px; }
    .modal-close { background: transparent; border: 1px solid rgba(255,255,255,0.08); color: #7a8898; width: 30px; height: 30px; cursor: pointer; font-size: 13px; display: flex; align-items: center; justify-content: center; transition: all 0.2s; flex-shrink: 0; }
    .modal-close:hover { border-color: #ff3366; color: #ff3366; }
    .edit-modal { width: min(980px, 98vw); max-height: 96vh; overflow-y: auto; background: #0b0e16; border: 1px solid rgba(255,107,53,0.2); padding: 16px 20px; display: flex; flex-direction: column; gap: 10px; }
    .coupon-modal { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
    .coupon-modal-head { padding: 20px 24px 14px; flex-shrink: 0; border-bottom: 1px solid rgba(255,255,255,0.06); background: #0b0e16; }
    .coupon-modal-body { overflow-y: auto; overscroll-behavior: contain; padding: 16px 24px 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
    @media (max-width: 400px) { .coupon-modal-body { grid-template-columns: 1fr; } }
    .confirm-modal { width: min(400px, 90vw); background: #0b0e16; border: 1px solid rgba(255,51,102,0.3); padding: 28px; display: flex; flex-direction: column; gap: 16px; text-align: center; }
    .confirm-title { font-family: 'Rajdhani', sans-serif; font-size: 18px; color: #fff; }
    .confirm-sub { font-size: 12px; color: #7a8898; line-height: 1.5; }
    .confirm-name { color: #ff6b35; }
    .confirm-actions { display: flex; gap: 10px; justify-content: center; }
    .price-edit-row { background: rgba(0,170,255,0.04); border: 1px solid rgba(0,170,255,0.12); border-top: none; }
    .price-edit-inner { padding: 10px 12px; }
        ::-webkit-scrollbar { width: 6px; }
    ::-webkit-scrollbar-track { background: var(--sb-track, rgba(255,255,255,0.04)); }
    ::-webkit-scrollbar-thumb { background: var(--sb-thumb, rgba(255,255,255,0.22)); border-radius: 3px; }
    ::-webkit-scrollbar-thumb:hover { background: var(--sb-thumb-hover, rgba(255,255,255,0.38)); }
    /* Firefox */
    * { scrollbar-color: var(--sb-thumb, rgba(255,255,255,0.22)) var(--sb-track, rgba(255,255,255,0.04)); scrollbar-width: thin; }
  
    /* ── Mobile responsive — shop modal ── */
    @media (max-width: 600px) {
      #shopBuildModal.open { padding: var(--banner-h) 0 0; align-items: flex-start; }
      .sbm-box { max-width: 100%; max-height: 100vh; max-height: 100dvh; border-radius: 0; }
      .sbm-footer { padding-bottom: max(20px, env(safe-area-inset-bottom, 20px)); }
      .cbld-header { padding: 12px 14px; gap: 8px; flex-wrap: wrap; }
      .cbld-title { font-size: 16px; }
      .cbld-cats { padding: 10px 14px 0; flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none; }
      .cbld-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; padding: 10px 14px; }
      .cbld-footer { padding: 10px 14px; padding-bottom: max(10px, env(safe-area-inset-bottom, 10px)); flex-direction: column; gap: 8px; }
      .cbld-footer-top-row { width: 100%; display: flex; align-items: center; gap: 0; }
      .cbld-footer-total-block { flex: 1; }
      .cbld-footer-total { font-size: 20px; }
      .cbld-footer-count { flex: 1; text-align: right; }
      .cbld-footer-btns { width: 100%; gap: 8px; }
      .cbld-btn { flex: 1; font-size: 13px; padding: 0 8px; height: 44px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

      /* Header — stack controls */
      .sbm-head { padding: 16px 16px 12px; gap: 8px; }
      .sbm-head-top { flex-wrap: wrap; gap: 8px; }
      .sbm-icon { font-size: 22px; }
      .sbm-title { font-size: 18px; }
      .sbm-hint { font-size: 11px; padding: 8px 16px; }

      /* Controls row: currency + view + close in a line */
      .sbm-head-top > div:last-child { margin-left: auto; }

      /* List rows — compact */
      .sbm-row { grid-template-columns: 52px 1fr auto auto auto; height: auto; min-height: 56px; }
      .sbm-img-wrap, .sbm-img, .sbm-img-ph { width: 52px; height: 56px; }
      .sbm-info { padding: 8px 10px; }
      .sbm-name { font-size: 13px; }
      .sbm-cat  { font-size: 11px; }
      .sbm-note { font-size: 10px; }

      /* Price — compact, no border */
      .sbm-price { font-size: 13px; min-width: 64px; padding: 0 8px; }

      /* "Open ↗" button — icon only on mobile */
      .sbm-btn { padding: 0 14px; font-size: 13px; height: 56px; letter-spacing: 0; }

      /* Check column — narrower */
      .sbm-check { width: 26px; font-size: 12px; }

      /* VTX badge — hidden to save space */
      .sbm-vtx-label { display: none; }

      /* List padding */
      .sbm-list { padding: 10px 12px; gap: 5px; }

      /* Footer */
      .sbm-footer { padding: 12px 16px 20px; }
      .sbm-count { font-size: 11px; }

      /* Card view — 2 columns on mobile */
      #sbmList.card-view { grid-template-columns: 1fr 1fr !important; gap: 6px; }

      /* Page nav — fill width on mobile, no scroll */
      .pnav-wrap { padding:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch; }
      .pnav-btn { flex:1;padding:6px 4px;font-size:11px;letter-spacing:0.5px;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
      /* Tool tabs — 2-column grid so 4 tabs get ~50% width each, labels never crop */
      .tool-tabs-wrap { overflow:hidden; display:grid !important; grid-template-columns:1fr 1fr; border-bottom:1px solid rgba(255,255,255,0.07); margin-bottom:28px; }
      .tool-tabs-wrap .tool-tab { flex:none !important; min-width:0; font-size:11px !important; letter-spacing:0 !important; padding:11px 6px !important; white-space:nowrap; border-right:1px solid rgba(255,255,255,0.05); border-bottom:2px solid transparent; text-overflow:ellipsis; overflow:hidden; }
      .tab-label-full { display:none; }
      .tab-label-short { display:inline; }
      /* Boost very small grey text on mobile for readability */
      [style*="font-size:9px"]  { font-size:11px !important; }
      [style*="font-size:10px"] { font-size:12px !important; }
      [style*="font-size:11px"] { font-size:12px !important; }
      [style*="font-size:10px;color"] { font-size:12px !important; }
      [style*="font-size:11px;color"] { font-size:12px !important; }
      /* Auto-hide header on mobile */
      #hdrMinBtn { display:block !important; }
      /* Push main content down only when header is hidden (peek pill floats over content) */
      body.hdr-is-hidden .main { padding-top: 36px; }

      .coupon-modal-body { grid-template-columns: 1fr 1fr !important; gap: 10px !important; padding: 12px 14px 16px !important; }
      /* Vertical stack: discount → code button → meta */
      .coupon-card { flex-direction:column; align-items:stretch; gap:6px; padding:10px 10px; }
      .cp-disc-lbl { font-size:24px; order:1; text-align:center; }
      .cp-code-box { font-size:14px; padding:9px 6px; letter-spacing:1px; min-width:0; width:100%; order:2; }
      .cp-copied-lbl { order:2; }
      .cp-minord-lbl { font-size:11px; order:3; margin-top:2px; text-align:center; }
      .cp-note-lbl { font-size:11px; order:4; margin-top:2px; text-align:center; }
      .cp-exp-lbl { font-size:10px; order:5; margin-top:2px; text-align:center; }
      .feat-star-btn { order:0; align-self:flex-end; margin-bottom:2px; }

      /* ── 2-column deal cards on mobile (like AliExpress) ── */
      .product-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
      .main { padding: 14px 10px 40px; }
      .card-image { height: 120px; }
      .card-body { padding: 9px 9px 11px; }
      .card-name { font-size: 13px; -webkit-line-clamp: 2; }
      .card-price { font-size: 18px; }
      .card-original { font-size: 10px; }
      .card-btn { font-size: 11px; padding: 8px 6px; letter-spacing: 0.5px; gap: 4px; }
      .card-btn svg { width: 11px; height: 11px; }
      .card-save-btn { font-size: 11px; padding: 6px; gap: 4px; }
      .card-save-btn svg { width: 11px; height: 11px; }
      .card-share-btn { font-size: 11px; padding: 6px; gap: 4px; }
      .card-share-btn svg { width: 11px; height: 11px; }
      .card-discount-badge { font-size: 10px; padding: 2px 5px; }
      .card-category { font-size: 9px; letter-spacing: 1px; margin-bottom: 2px; }
      .card-stars span { font-size: 10px; }
      .card-meta { font-size: 10px; margin-bottom: 6px; }
      .card-prices { gap: 5px; margin-bottom: 7px; }
      .card-price-note { font-size: 9px; }

      /* ── 2-column tutorials on mobile ── */
      .tut-grid { grid-template-columns: 1fr 1fr; gap: 8px; padding: 10px 10px 24px; }
      .tut-card-img { height: 100px; }
      .tut-card-img.placeholder { height: 100px; font-size: 24px; }
      .tut-card-body { padding: 9px 10px 11px; }
      .tut-card-cat { font-size: 9px !important; letter-spacing: 1px; margin-bottom: 2px; }
      .tut-card-title { font-size: 13px !important; margin-bottom: 3px; }
      .tut-card-desc { font-size: 10px; line-height: 1.45; }

      /* ── 2-column spots on mobile ── */
      .spots-body { padding: 14px 10px; }
      .spots-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
      .spot-card-hero { height: 110px; }
      .spot-card-hero-placeholder { font-size: 28px; }
      .spot-card-hero-tag { font-size: 8px; padding: 2px 5px; letter-spacing: 1px; top: 6px; left: 6px; }
      .spot-card-body { padding: 9px 10px 11px; }
      .spot-card-title { font-size: 13px; margin-bottom: 3px; }
      .spot-card-notes { font-size: 9px; line-height: 1.5; margin-bottom: 6px; -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
      .spot-card-footer { padding-top: 7px; }
      .spot-card-mapbtn { font-size: 8px; padding: 3px 6px; gap: 3px; }
      .spot-card-readmore { font-size: 9px !important; }

      /* ── 2-column build kits on mobile ── */
      .bld-kits-wrap { padding: 14px 10px; }
      .bld-kits-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
      .bld-kit-card { padding: 16px 12px; }
      .bld-kit-icon { font-size: 26px; margin-bottom: 7px; }
      .bld-kit-name { font-size: 14px !important; margin-bottom: 3px; }
      .bld-kit-vtx { font-size: 9px !important; padding: 2px 6px; }
      .bld-kit-desc { font-size: 11px; margin-top: 6px; }
    }

    @media (max-width: 380px) {
      #sbmList.card-view { grid-template-columns: 1fr !important; }
    }

    /* ── Desktop: larger text since there's more screen space ── */
    @media (min-width: 768px) {
      :root {
        --fpv-name: 16px;
        --fpv-price: 22px;
        --fpv-meta: 13px;
        --fpv-nav: 13px;
        --fpv-cat: 13px;
        --sbm-body: 15px;
      }
      .card-category { font-size: 11px; }
      .card-btn { font-size: 14px; }
      .bld-kits-intro { font-size: 14px !important; }
      .bld-kit-vtx { font-size: 12px !important; }
      .bld-kit-name { font-size: 20px; }
      .bld-kit-desc { font-size: 14px; }
      .tut-cat-btn { font-size: 13px !important; padding:8px 18px !important; }
      .tut-card-title { font-size: 17px; }
      .tut-card-desc { font-size: 13px; }
      .tut-card-cat { font-size: 12px !important; }
      .lnk-cat-pill { font-size: 13px !important; }
      .lnk-tool-card-title { font-size: 18px; }
      .lnk-tool-card-desc { font-size: 13px !important; }
      .lnk-tool-card-url { font-size: 13px !important; }
      .lnk-list-name { font-size: 17px; }
      .lnk-list-cat { font-size: 13px !important; }
      .lnk-list-domain { font-size: 13px !important; }
      .lnk-list-desc { font-size: 13px !important; }
      .lnk-tool-card-hero-tag { font-size: 11px !important; }
      .spot-card-readmore { font-size: 13px !important; }
      .spots-gate-sub { font-size: 14px !important; }
      .spots-gate-link { font-size: 14px !important; }
      .cbld-card-name { font-size: var(--fpv-name); -webkit-line-clamp: 3; }
      .cbld-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
      .cat-select, .subcat-select { font-size: 17px !important; padding: 11px 14px !important; min-width: 200px !important; }
      .cat-btn { font-size: 14px !important; padding: 8px 18px !important; }
      #bldCustomWrap .ai-sel,
      #bldCustomWrap .ai { font-size: 15px !important; padding: 10px 12px !important; }
      .cbld-card img { height: 140px; }
      .cbld-card-ph { height: 140px; }
      .cbld-card-body { padding: 10px 12px; }
      .cbld-card-price { font-size: 15px; }
      .cbld-card-cat { font-size: 12px !important; }
      .cbld-card-price { font-size: 15px; }
      .sbm-row { min-height: 80px; }
      .sbm-img, .sbm-img-wrap { width: 80px; }
    }
    @media (min-width: 1200px) {
      :root {
        --fpv-name: 17px;
        --fpv-price: 24px;
        --fpv-meta: 14px;
      }
      .card-name { font-size: 17px; }
      .lnk-tool-card-title { font-size: 19px; }
      .lnk-list-name { font-size: 18px; }
      .bld-kit-name { font-size: 22px; }
      .tut-card-title { font-size: 18px; }
    }

    /* ── Light mode toggle button — shared base ── */
    #lightModeBtn,
    .lmbtn { background: transparent;
      border: 1px solid rgba(255,255,255,0.14);
      color: #8a9aaa;
      cursor: pointer;
      font-size: 17px;
      padding: 5px 9px;
      line-height: 1;
      transition: all 0.2s;
      flex-shrink: 0;
    }
    #lightModeBtn:hover,
    .lmbtn:hover { border-color: rgba(255,204,0,0.5); color: #ffcc00; background: rgba(255,204,0,0.07); }
    body.light-mode #lightModeBtn,
    body.light-mode .lmbtn { border-color: rgba(0,0,0,0.18); color: #1a1a1a; background: rgba(0,0,0,0.05); }
    body.light-mode #lightModeBtn:hover,
    body.light-mode .lmbtn:hover { border-color: rgba(0,90,200,0.5); color: #0055cc; background: rgba(0,90,200,0.08); }

    /* ════════════════════════════════════════════════════════════════
       LIGHT MODE  —  body.light-mode
       Philosophy: warm off-white bg, white cards, near-black text,
       vivid green/orange/blue accents for FPV energy
       ════════════════════════════════════════════════════════════════ */
    body.light-mode {
      --bg: #fdf8f3;
      --accent: #ff4747;
      --accent2: #ff4747;
    }
    :root.light-mode {
      --sb-track: rgba(0,0,0,0.06);
      --sb-thumb: #8b0000;
      --sb-thumb-hover: #6b0000;
    }
    body.light-mode,
    body.light-mode .app { background: #fdf8f3 !important; color: #111418; }
    body.light-mode .app::before {
      background: none; /* remove grid lines — cleaner AliExpress look */
    }

    /* ── Header / nav bar ── */
    body.light-mode .header { background: rgba(253,248,243,0.99) !important; border-bottom: 1px solid #e8e8e8; box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
    body.light-mode .logo-wordmark { color: #0d1117 !important; }
    body.light-mode .logo-sub { color: #4a5568 !important; }
    body.light-mode .logo-hex { color: #fdf8f3 !important; background: linear-gradient(135deg, #ff4747, #ff6b6b) !important; }
    body.light-mode .currency-toggle { border-color: rgba(0,0,0,0.15) !important; }
    body.light-mode .cur-btn { color: #2d3748 !important; }
    body.light-mode .cur-btn.active { background: rgba(255,71,71,0.1) !important; color: #ff4747 !important; }
    body.light-mode .cur-btn:hover:not(.active) { background: rgba(0,0,0,0.07) !important; color: #111418 !important; }
    body.light-mode .cur-divider { background: rgba(0,0,0,0.12) !important; }

    /* ── Toolbar ── */
    body.light-mode .search-input { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; color: #111418 !important; }
    body.light-mode .search-input::placeholder { color: #6b7280 !important; }
    body.light-mode .search-input:focus { border-color: rgba(255,71,71,0.6) !important; }
    body.light-mode .search-wrap svg { color: #6b7280 !important; }
    body.light-mode .sort-select,
    body.light-mode .cat-select,
    body.light-mode .subcat-select { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; color: #111418 !important; }
    body.light-mode .sort-select option,
    body.light-mode .cat-select option,
    body.light-mode .subcat-select option { background: #fdf8f3; color: #111418; }
    body.light-mode .cat-btn { border-color: rgba(0,0,0,0.15) !important; color: #2d3748 !important; background: transparent !important; }
    body.light-mode .cat-btn:hover { border-color: rgba(255,71,71,0.45) !important; color: #ff4747 !important; }

    /* ── Nav tabs ── */
    body.light-mode .pnav-btn { color: #374151 !important; }
    body.light-mode .pnav-btn:hover { color: #111418 !important; }
    body.light-mode .pnav-wrap { border-top-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .pnav-btn.pnav-active { color: #ff4747 !important; border-bottom-color: #ff4747 !important; border-bottom: 2px solid #ff4747 !important; }

    /* ── Product cards ── */
    body.light-mode .card { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.09) !important; }
    body.light-mode .card-body { background: #fdf8f3 !important; }
    body.light-mode .card-name { color: #0d1117 !important; }
    body.light-mode .card-category { color: #374151 !important; }
    body.light-mode .card-price { color: #ff4747 !important; }
    body.light-mode .card-original { color: #6b7280 !important; }
    body.light-mode .card-meta { color: #4a5568 !important; }
    body.light-mode .card-image { background: #f4ece3 !important; }
    body.light-mode .card-btn { background: #ff4747 !important; border-color: #ff4747 !important; color: #fdf8f3 !important; }
    body.light-mode .card-btn:hover { background: #e03030 !important; border-color: #e03030 !important; }
    body.light-mode .card-save-btn,
    body.light-mode .card-share-btn { background: rgba(0,0,0,0.05) !important; border-color: rgba(0,0,0,0.15) !important; color: #374151 !important; }
    body.light-mode .card-save-btn.saved { color: #8b0000 !important; border-color: rgba(139,0,0,0.45) !important; background: rgba(139,0,0,0.07) !important; }
    body.light-mode .card-save-btn:hover { border-color: rgba(139,0,0,0.35) !important; color: #8b0000 !important; background: rgba(139,0,0,0.05) !important; }
    body.light-mode .card-discount-badge { background: #fff0f0 !important; color: #ff4747 !important; }
    body.light-mode .main { background: #f4ece3 !important; }

    /* ── Sub-pages (builder, tutorials, spots, tools) ── */
    body.light-mode #builderPage,
    body.light-mode #tutorialsPage,
    body.light-mode #spotsPage,
    body.light-mode #toolsPage { background: #fdf8f3 !important; }
    /* Tools inner panels match the rest of the app's warm ivory */
    body.light-mode #toolsPage .tool-panel,
    body.light-mode #toolsPage > div,
    body.light-mode #toolsPage .card,
    body.light-mode #toolsPage .lnk-tool-card { background: #ffffff !important; }
    body.light-mode #toolsPage input,
    body.light-mode #toolsPage select,
    body.light-mode #toolsPage textarea { background: #fdf8f3 !important; }
    body.light-mode .bld-header,
    body.light-mode .tut-header,
    body.light-mode .spots-header { background: rgba(253,248,243,0.99) !important; border-bottom-color: #e8e8e8 !important; box-shadow: 0 1px 4px rgba(0,0,0,0.07) !important; }
    body.light-mode .bld-title-bar,
    body.light-mode .tut-title-bar { color: #0d1117 !important; }
    body.light-mode .bld-back,
    body.light-mode .tut-back,
    body.light-mode .spots-back { background: rgba(255,71,71,0.08) !important; border-color: rgba(255,71,71,0.4) !important; color: #ff4747 !important; }
    body.light-mode .bld-back:hover,
    body.light-mode .tut-back:hover,
    body.light-mode .spots-back:hover { background: rgba(255,71,71,0.16) !important; }

    /* ── Builder ── */
    body.light-mode .bld-kit-card { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.07) !important; }
    body.light-mode .bld-kit-name { color: #0d1117 !important; }
    body.light-mode .bld-kit-desc { color: #374151 !important; }
    body.light-mode .bld-kits-intro { color: #4a5568 !important; }
    body.light-mode .bld-part-row { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 1px 4px rgba(0,0,0,0.06) !important; }
    body.light-mode .bld-part-row:hover { border-color: rgba(255,71,71,0.3) !important; }
    body.light-mode .bld-part-name { color: #0d1117 !important; }
    body.light-mode .bld-part-cat { color: #374151 !important; }
    body.light-mode .bld-part-price { color: #ff4747 !important; }
    body.light-mode .bld-part-img-ph { background: #f4ece3 !important; color: #6b7280 !important; }
    body.light-mode .bld-parts-kitname { color: #0d1117 !important; }
    body.light-mode .bld-parts-header { border-bottom-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .bld-view-btn { border-color: rgba(0,0,0,0.15) !important; color: #374151 !important; }
    body.light-mode .bld-view-btn.active { border-color: rgba(255,71,71,0.5) !important; color: #ff4747 !important; background: rgba(255,71,71,0.08) !important; }
    body.light-mode .bld-empty { color: #4a5568 !important; }

    /* ── Custom Build ── */
    body.light-mode .cbld-header { background: #f4ece3 !important; border-bottom-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .cbld-title { color: #0d1117 !important; }
    body.light-mode .cbld-card { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.07) !important; }
    body.light-mode .cbld-card:hover { border-color: rgba(255,71,71,0.45) !important; background: rgba(255,71,71,0.02) !important; }
    body.light-mode .cbld-card.selected { border-color: #ff4747 !important; background: rgba(255,71,71,0.06) !important; box-shadow: 0 0 0 2px rgba(255,71,71,0.18) !important; }
    body.light-mode .cbld-card-name { color: #0d1117 !important; }
    body.light-mode .cbld-card.selected .cbld-card-name { color: #cc0000 !important; }
    body.light-mode .cbld-card-cat { color: #374151 !important; }
    body.light-mode .cbld-card-price { color: #ff4747 !important; }
    body.light-mode .cbld-card-ph { background: #f4ece3 !important; color: #6b7280 !important; }
    body.light-mode .cbld-card-check { background: #ff4747 !important; color: #fdf8f3 !important; }
    body.light-mode .cbld-footer { background: rgba(253,248,243,0.99) !important; border-top-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .cbld-footer-count { color: #374151 !important; }
    body.light-mode .cbld-footer-total { color: #ff4747 !important; }
    body.light-mode .cbld-cat-btn { background: rgba(0,0,0,0.04) !important; border-color: rgba(0,0,0,0.12) !important; color: #2d3748 !important; }
    body.light-mode .cbld-cat-btn.active { border-color: rgba(255,71,71,0.5) !important; color: #ff4747 !important; background: rgba(255,71,71,0.08) !important; }
    body.light-mode .cbld-empty { color: #4a5568 !important; }

    /* ── Shop modal ── */
    body.light-mode #shopBuildModal { background: rgba(0,0,0,0.5) !important; }
    body.light-mode .sbm-box { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.1) !important; box-shadow: 0 24px 80px rgba(0,0,0,0.2) !important; }
    body.light-mode .sbm-head { background: #fdf8f3 !important; border-bottom-color: #e8e8e8 !important; }
    body.light-mode .sbm-title { color: #0d1117 !important; }
    body.light-mode .sbm-hint { color: #374151 !important; border-bottom-color: rgba(0,0,0,0.07) !important; }
    body.light-mode .sbm-row { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.15) !important; box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important; }
    body.light-mode .sbm-row:hover { background: #fff5f5 !important; border-color: rgba(255,71,71,0.25) !important; }
    body.light-mode .sbm-name { color: #0d1117 !important; }
    body.light-mode .sbm-cat { color: #374151 !important; }
    body.light-mode .sbm-price { color: #ff4747 !important; border-left-color: rgba(0,0,0,0.08) !important; }
    body.light-mode .sbm-btn { background: rgba(255,71,71,0.09) !important; border-left-color: rgba(255,71,71,0.3) !important; color: #ff4747 !important; }
    body.light-mode .sbm-btn:hover { background: rgba(255,71,71,0.18) !important; }
    body.light-mode .sbm-img-ph { background: #f4ece3 !important; }
    body.light-mode .sbm-footer { border-top-color: rgba(0,0,0,0.09) !important; }
    body.light-mode .sbm-count { color: #374151 !important; }
    body.light-mode .sbm-total-label { color: #374151 !important; }
    body.light-mode .sbm-total-value { color: #ff4747 !important; }
    body.light-mode .sbm-cat-divider { color: #4a5568 !important; }
    body.light-mode .sbm-cat-divider::after { background: rgba(0,0,0,0.1) !important; }
    body.light-mode .sbm-divider { background: rgba(0,0,0,0.08) !important; }

    /* ── Tutorials ── */
    body.light-mode .tut-card { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.07) !important; }
    body.light-mode .tut-card:hover { border-color: rgba(255,71,71,0.35) !important; background: rgba(255,71,71,0.02) !important; }
    body.light-mode .tut-card-title { color: #0d1117 !important; }
    body.light-mode .tut-card-desc { color: #374151 !important; }
    body.light-mode .tut-card-img { background: #f4ece3 !important; }
    body.light-mode .tut-reader-title { color: #0d1117 !important; }
    body.light-mode .tut-reader-meta { color: #4a5568 !important; }
    body.light-mode .tut-reader-content { color: #1a2030 !important; }
    body.light-mode .tut-reader-content h2 { color: #0d1117 !important; border-bottom-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .tut-reader-content h3 { color: #1a2030 !important; }
    body.light-mode .tut-reader-content code { background: rgba(255,71,71,0.08) !important; color: #cc0000 !important; }
    body.light-mode .tut-cat-btn { border-color: rgba(0,0,0,0.14) !important; color: #2d3748 !important; }
    body.light-mode .tut-cat-btn.active { border-color: #ff4747 !important; color: #ff4747 !important; background: rgba(255,71,71,0.08) !important; }

    /* ── Spots ── */
    body.light-mode .spot-card { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important; }
    /* ── product-card (main deals grid) ── */
    body.light-mode .product-card { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important; }
    body.light-mode .product-card:hover { border-color: rgba(255,71,71,0.4) !important; box-shadow: 0 6px 20px rgba(255,71,71,0.1) !important; }
    /* ── lnk-tool-card (tools page) ── */
    body.light-mode .lnk-tool-card { background: #ffffff !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important; }
    body.light-mode .lnk-tool-card:hover { border-color: rgba(255,71,71,0.4) !important; box-shadow: 0 6px 20px rgba(255,71,71,0.1) !important; }
    /* ── ali-card (AliExpress search results) ── */
    body.light-mode .ali-card { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.07) !important; }
    body.light-mode .ali-card:hover { border-color: rgba(255,71,71,0.35) !important; }
    body.light-mode .spot-card-title { color: #0d1117 !important; }
    body.light-mode .spot-card-notes { color: #374151 !important; }
    body.light-mode .spot-card-footer { border-top-color: rgba(0,0,0,0.08) !important; }
    body.light-mode .spot-detail-box { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .report-spot-box { background: #fdf8f3 !important; border-color: rgba(180,120,30,0.3) !important; }
    body.light-mode .report-spot-name { color: #0d1117 !important; }
    body.light-mode .report-spot-desc { color: #4b5563 !important; }
    body.light-mode .report-spot-textarea { background: #fff !important; border-color: rgba(0,0,0,0.15) !important; color: #0d1117 !important; }
    body.light-mode .spot-detail-title { color: #0d1117 !important; }
    body.light-mode .spot-detail-notes { color: #374151 !important; }
    body.light-mode #spotsGate { background: rgba(245,245,245,0.98) !important; }
    body.light-mode .spots-gate-box { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .spots-gate-title { color: #0d1117 !important; }
    body.light-mode .spots-gate-input { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.16) !important; color: #0d1117 !important; }

    /* ── User badge ── */
    body.light-mode #userStatusBadge { background: rgba(255,255,255,0.97) !important; border-color: rgba(0,0,0,0.12) !important; box-shadow: 0 4px 16px rgba(0,0,0,0.1) !important; }
    body.light-mode #userStatusBadge .badge-name { color: #0d1117 !important; }
    body.light-mode #userStatusBadge .badge-role { color: #4a5568 !important; }

    /* ── Inline-style text overrides — dark text for light bg ── */
    body.light-mode [style*="color:#dce8f0"] { color: #0d1117 !important; }
    body.light-mode [style*="color:#c8d4e0"] { color: #1a2233 !important; }
    body.light-mode [style*="color:#ccd8e4"] { color: #1a2233 !important; }
    body.light-mode [style*="color:#aabbcc"] { color: #2d3748 !important; }
    body.light-mode [style*="color:#b0bfcc"] { color: #2d3748 !important; }
    body.light-mode [style*="color:#9aaabb"] { color: #374151 !important; }
    body.light-mode [style*="color:#99aabb"] { color: #374151 !important; }
    body.light-mode [style*="color:#99a"]    { color: #374151 !important; }
    body.light-mode [style*="color:#aab"]    { color: #2d3748 !important; }
    body.light-mode [style*="color:#889"]    { color: #374151 !important; }
    body.light-mode [style*="color:#778"]    { color: #4a5568 !important; }
    body.light-mode [style*="color:#667"]    { color: #4a5568 !important; }
    body.light-mode [style*="color:#556"]    { color: #4a5568 !important; }
    body.light-mode [style*="color:#445"]    { color: #374151 !important; }
    body.light-mode [style*="color:#334"]    { color: #2d3748 !important; }
    body.light-mode [style*="color:#7a8898"] { color: #374151 !important; }
    body.light-mode [style*="color:#8a9baa"] { color: #374151 !important; }
    body.light-mode [style*="color:#8a98a8"] { color: #4a5568 !important; }
    /* Accents → red in light mode */
    /* Accents → dark red in light mode (no bright green) */
    body.light-mode [style*="color:#00ff88"] { color: #8b0000 !important; }
    body.light-mode [style*="color:#00ccff"] { color: #cc0000 !important; }
    body.light-mode [style*="color:#ff6b35"] { color: #ff4747 !important; }
    body.light-mode [style*="color:#ffaa00"] { color: #996600 !important; }

    /* ── Suggest a Spot modal ── */
    body.light-mode #suggestSpotOverlay { background: rgba(0,0,0,0.45) !important; }
    body.light-mode .sug-box { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .sug-title { color: #0d1117 !important; }
    body.light-mode .sug-sub { color: #4a5568 !important; }
    body.light-mode .sug-close { border-color: rgba(0,0,0,0.15) !important; color: #4a5568 !important; }
    body.light-mode .sug-close:hover { border-color: rgba(255,71,71,0.4) !important; color: #ff4747 !important; }

    /* ── .ai inputs / textareas (used in suggest spot + build page) ── */
    body.light-mode .ai {
      background: #fdf8f3 !important;
      border-color: rgba(0,0,0,0.18) !important;
      color: #111418 !important;
    }
    body.light-mode .ai::placeholder { color: #6b7280 !important; }
    body.light-mode .ai:focus { border-color: rgba(255,71,71,0.5) !important; }

    /* ── Map gesture-guard overlay inside suggest spot ── */
    body.light-mode #sug-map-guard { background: rgba(240,242,245,0.7) !important; }
    body.light-mode #sug-map-hint { color: #4a5568 !important; }

    /* ── Photo upload label ── */
    body.light-mode #sug-photo-label {
      background: rgba(0,0,0,0.03) !important;
      border-color: rgba(0,0,0,0.18) !important;
      color: #4a5568 !important;
    }

    /* ── GPS / Clear buttons in suggest spot ── */
    body.light-mode #sug-gps-btn {
      background: rgba(255,71,71,0.08) !important;
      border-color: rgba(255,71,71,0.35) !important;
      color: #ff4747 !important;
    }

    /* ── bsug-box (build suggestion modal, same style) ── */
    body.light-mode .bsug-box { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.1) !important; }

    /* ── Coupon modal light mode ── */
    body.light-mode .edit-modal { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .coupon-modal-head { background: #f4f6f9 !important; border-bottom-color: rgba(0,0,0,0.08) !important; }
    body.light-mode .coupon-modal-head .modal-tag { color: #b07800 !important; }
    body.light-mode .coupon-modal-head .modal-title { color: #111418 !important; }
    body.light-mode .coupon-modal-head p,
    body.light-mode .coupon-modal-head [style*="color:#556"],
    body.light-mode .coupon-modal-head [style*="color:#7a8898"],
    body.light-mode .coupon-modal-head [style*="color:#9aaabb"] { color: #6b7280 !important; }
    body.light-mode .coupon-modal-body { background: #fdf8f3 !important; }
    body.light-mode .coupon-card { background: #fff5f5 !important; border-color: rgba(139,0,0,0.4) !important; border-width: 1.5px !important; box-shadow: 0 2px 8px rgba(139,0,0,0.1) !important; }
    body.light-mode .coupon-card:hover { border-color: rgba(139,0,0,0.65) !important; box-shadow: 0 4px 14px rgba(139,0,0,0.16) !important; }
    body.light-mode .coupon-code { background: rgba(139,0,0,0.1) !important; border-color: rgba(139,0,0,0.45) !important; color: #8b0000 !important; font-weight: 700 !important; }
    body.light-mode .coupon-code:hover { background: rgba(139,0,0,0.2) !important; border-color: rgba(139,0,0,0.65) !important; }
    body.light-mode .coupon-card [style*="color:#00ff88"],
    body.light-mode .coupon-card [style*="color:#0f0"] { color: #8b0000 !important; }
    body.light-mode .coupon-card [style*="color:#ff4444"],
    body.light-mode .coupon-card [style*="color:#ff6b35"],
    body.light-mode .coupon-card [style*="color:#ffaa00"] { color: #c05000 !important; }
    body.light-mode .coupon-card [style*="color:#9aaabb"],
    body.light-mode .coupon-card [style*="color:#8a9aaa"],
    body.light-mode .coupon-card [style*="color:#556"] { color: #4a5568 !important; }
    /* close button */
    body.light-mode .coupon-modal-head button[onclick*="close"],
    body.light-mode #couponOverlay .close-btn,
    body.light-mode #couponOverlay [onclick*="close"] { background: rgba(0,0,0,0.05) !important; border-color: rgba(0,0,0,0.15) !important; color: #333 !important; }
    body.light-mode .coupon-discount { color: #1a7a40 !important; }
    body.light-mode .coupon-note { color: #4a5568 !important; }
    body.light-mode .coupon-order { color: #374151 !important; }
    body.light-mode .coupon-copied { color: #1a7a40 !important; }
    /* coupon modal — catch remaining inline-colored text */
    body.light-mode #couponModalList { color: #111418; }
    body.light-mode #couponModalList [style*="color:#00ff88"] { color: #1a7a40 !important; }
    body.light-mode #couponModalList [style*="color:#ff4444"],
    body.light-mode #couponModalList [style*="color:#ff6b35"],
    body.light-mode #couponModalList [style*="color:#f55"] { color: #cc2200 !important; }
    body.light-mode #couponModalList [style*="color:#ffaa00"],
    body.light-mode #couponModalList [style*="color:#ffa"] { color: #b07800 !important; }
    body.light-mode #couponModalList [style*="color:#9aaabb"],
    body.light-mode #couponModalList [style*="color:#8a9aaa"],
    body.light-mode #couponModalList [style*="color:#556"],
    body.light-mode #couponModalList [style*="color:#7a8898"] { color: #4a5568 !important; }
    /* scrollbar in light mode */
    body.light-mode .coupon-modal-body::-webkit-scrollbar-track { background: #f0f2f5; }
    body.light-mode .coupon-modal-body::-webkit-scrollbar-thumb { background: #8b0000 !important; }
    /* cp-code-box (coupon chip on cards) and discount/copied labels */
    body.light-mode .cp-code-box { background: rgba(139,0,0,0.1) !important; border-color: rgba(139,0,0,0.45) !important; color: #8b0000 !important; }
    body.light-mode .cp-code-box:hover { background: rgba(139,0,0,0.2) !important; border-color: rgba(139,0,0,0.65) !important; }
    body.light-mode .cp-disc-lbl { color: #8b0000 !important; }
    body.light-mode .cp-copied-lbl { color: #8b0000 !important; }
    /* grid count accent */
    body.light-mode .grid-count em { color: #8b0000 !important; }

    /* ── Admin panel — minimum 15px text throughout ── */
    /* Classes with hardcoded small sizes */
    #adminPage .admin-brand-sub { font-size: 15px; }
    #adminPage .dupe-group-label { font-size: 15px; }
    #adminPage .dupe-card-name { font-size: 15px; }
    #adminPage .dupe-card-meta { font-size: 15px; }
    #adminPage .dupe-signal { font-size: 15px; }
    #adminPage .step-circle { font-size: 15px; width: 26px; height: 26px; }
    #adminPage .hint { font-size: 15px; }
    #adminPage .csv-example { font-size: 15px; }
    #adminPage .btn { font-size: 15px; }
    #adminPage .btn.xs { font-size: 15px; }
    #adminPage .ai { font-size: 15px !important; }
    #adminPage .ai-sel { font-size: 15px !important; }
    #adminPage textarea.ai { font-size: 15px !important; }
    #adminPage .field label { font-size: 15px; }
    #adminPage .file-label { font-size: 15px; }
    #adminPage .or-text { font-size: 15px; }
    #adminPage .smsg { font-size: 15px; }
    #adminPage .ptable-head { font-size: 15px; }
    #adminPage .ptable-cat { font-size: 15px; }
    #adminPage .ptable-price { font-size: 15px; }
    #adminPage .ptable-link { font-size: 15px; }
    #adminPage .cat-chip { font-size: 15px; }
    #adminPage .cat-chip-del { font-size: 15px; }
    #adminPage .img-change-btn { font-size: 15px; }
    #adminPage .ltable-head { font-size: 15px; }
    #adminPage .lname { font-size: 15px; }
    #adminPage .lstatus { font-size: 15px; }
    #adminPage .lclear { font-size: 15px; }
    #adminPage .spot-admin-title { font-size: 15px; }
    #adminPage .sug-admin-name { font-size: 15px; }
    #adminPage .sug-admin-meta { font-size: 15px; }
    #adminPage .sug-admin-notes { font-size: 15px; }
    #adminPage .bsug-admin-name { font-size: 15px; }
    #adminPage .bsug-admin-meta { font-size: 15px; }
    #adminPage .bsug-admin-parts { font-size: 15px; }
    #adminPage .lnk-drag-handle { font-size: 19px; }

    /* Inline-style font-size overrides — catch everything hardcoded in the HTML */
    #adminPage [style*="font-size:9px"],
    #adminPage [style*="font-size: 9px"] { font-size: 15px !important; }
    #adminPage [style*="font-size:10px"],
    #adminPage [style*="font-size: 10px"] { font-size: 15px !important; }
    #adminPage [style*="font-size:11px"],
    #adminPage [style*="font-size: 11px"] { font-size: 15px !important; }
    #adminPage [style*="font-size:12px"],
    #adminPage [style*="font-size: 12px"] { font-size: 15px !important; }
    #adminPage [style*="font-size:13px"],
    #adminPage [style*="font-size: 13px"] { font-size: 15px !important; }
    #adminPage [style*="font-size:14px"],
    #adminPage [style*="font-size: 14px"] { font-size: 15px !important; }

    /* Inline-style color overrides — near-white greys invisible on dark bg, also fix for light mode */
    #adminPage [style*="color:#334"] { color: #8a9aaa !important; }
    #adminPage [style*="color:#445"] { color: #8a9aaa !important; }
    #adminPage [style*="color:#556"] { color: #9aaabb !important; }
    #adminPage [style*="color:#667"] { color: #aabbcc !important; }
    #adminPage [style*="color:#778"] { color: #aabbcc !important; }
    #adminPage [style*="color:#889"] { color: #c0ccd8 !important; }
    #adminPage [style*="color:#99a"] { color: #c0ccd8 !important; }
    #adminPage [style*="color:#aab"] { color: #d0dce8 !important; }
    #adminPage [style*="color:#8b949e"] { color: #b0bfcc !important; }
    #adminPage [style*="color:#8a9aaa"] { color: #b0bfcc !important; }

    /* Light mode — inline color overrides for admin */
    body.light-mode #adminPage [style*="color:#334"] { color: #374151 !important; }
    body.light-mode #adminPage [style*="color:#445"] { color: #374151 !important; }
    body.light-mode #adminPage [style*="color:#556"] { color: #4a5568 !important; }
    body.light-mode #adminPage [style*="color:#667"] { color: #4a5568 !important; }
    body.light-mode #adminPage [style*="color:#778"] { color: #4a5568 !important; }
    body.light-mode #adminPage [style*="color:#889"] { color: #374151 !important; }
    body.light-mode #adminPage [style*="color:#99a"] { color: #4a5568 !important; }
    body.light-mode #adminPage [style*="color:#aab"] { color: #1a2233 !important; }
    body.light-mode #adminPage [style*="color:#8b949e"] { color: #374151 !important; }
    body.light-mode #adminPage [style*="color:#8a9aaa"] { color: #374151 !important; }
    body.light-mode #adminPage [style*="color:#dce8f0"] { color: #111418 !important; }
    body.light-mode #adminPage [style*="color:#c8d4e0"] { color: #1a2233 !important; }
    body.light-mode #adminPage [style*="color:#aabbcc"] { color: #2d3748 !important; }
    body.light-mode #adminPage [style*="color:#b0bfcc"] { color: #2d3748 !important; }
    body.light-mode #adminPage [style*="color:#9aaabb"] { color: #374151 !important; }
    body.light-mode #adminPage [style*="color:#00ff88"] { color: #1a7a40 !important; }
    body.light-mode #adminPage [style*="color:#00ccff"] { color: #0066cc !important; }
    body.light-mode #adminPage [style*="color:#ff9966"] { color: #cc4400 !important; }
    body.light-mode #adminPage [style*="color:#ffaa00"] { color: #996600 !important; }
    body.light-mode #adminPage [style*="color:#3fb950"] { color: #1a7a40 !important; }
    body.light-mode #adminPage [style*="color:#f85149"] { color: #cc0000 !important; }

    /* ── Admin panel light mode ── */
    body.light-mode #adminPage { background: #f4ece3 !important; }
    body.light-mode .admin-header-bar { background: rgba(253,248,243,0.99) !important; border-bottom-color: rgba(255,71,71,0.2) !important; box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important; }
    body.light-mode .admin-brand { color: #0d1117 !important; }
    body.light-mode .admin-brand span { color: #ff4747 !important; }
    body.light-mode .admin-brand-sub { color: #6b7280 !important; }
    body.light-mode .anav-btn { color: #6b7280 !important; }
    body.light-mode .anav-btn:hover { color: #111418 !important; }
    body.light-mode .anav-btn.active { color: #ff4747 !important; border-bottom-color: #ff4747 !important; }
    body.light-mode .admin-logout { border-color: rgba(0,0,0,0.15) !important; color: #374151 !important; }
    body.light-mode .admin-logout:hover { border-color: #ff3366 !important; color: #ff3366 !important; }
    body.light-mode .asec { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.1) !important; box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important; }
    body.light-mode .asec-title { color: #374151 !important; border-bottom-color: rgba(0,0,0,0.08) !important; }
    body.light-mode .hint { color: #4a5568 !important; }
    body.light-mode .csv-example { background: rgba(0,0,0,0.04) !important; border-color: rgba(0,0,0,0.1) !important; color: #4a5568 !important; }
    body.light-mode .field label { color: #6b7280 !important; }
    body.light-mode .ai { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; color: #111418 !important; }
    body.light-mode .ai::placeholder { color: #6b7280 !important; }
    body.light-mode .ai:focus { border-color: rgba(255,71,71,0.5) !important; }
    body.light-mode .ai-sel { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; color: #111418 !important; }
    body.light-mode .ai-sel option { background: #fdf8f3; color: #111418; }
    body.light-mode textarea.ai { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.18) !important; color: #111418 !important; }
    body.light-mode .btn { background: rgba(255,71,71,0.09) !important; border-color: rgba(255,71,71,0.3) !important; color: #ff4747 !important; }
    body.light-mode .btn:hover { background: rgba(255,71,71,0.16) !important; }
    body.light-mode .btn.outline-blue { background: transparent !important; border-color: rgba(0,100,200,0.3) !important; color: #0066cc !important; }
    body.light-mode .btn.outline-blue.active { background: rgba(0,100,200,0.1) !important; border-color: #0066cc !important; }
    body.light-mode .btn.outline-blue:hover { background: rgba(0,100,200,0.08) !important; }
    body.light-mode .btn.outline-red { background: transparent !important; border-color: rgba(255,51,102,0.3) !important; color: #cc0033 !important; }
    body.light-mode .btn.outline-red:hover { background: rgba(255,51,102,0.07) !important; }
    body.light-mode .btn.orange { background: rgba(255,71,71,0.08) !important; border-color: rgba(255,71,71,0.28) !important; color: #cc2200 !important; }
    body.light-mode .btn.orange:hover { background: rgba(255,71,71,0.15) !important; }
    body.light-mode .smsg.success { background: rgba(0,180,90,0.07) !important; border-color: rgba(0,180,90,0.25) !important; color: #1a7a40 !important; }
    body.light-mode .smsg.error   { background: rgba(255,51,102,0.06) !important; border-color: rgba(255,51,102,0.2) !important; color: #cc0033 !important; }
    body.light-mode .smsg.warn    { background: rgba(180,120,0,0.06) !important; border-color: rgba(180,120,0,0.22) !important; color: #996600 !important; }
    body.light-mode .ptable-head { color: #6b7280 !important; }
    body.light-mode .ptable-row { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.08) !important; }
    body.light-mode .ptable-row:hover { border-color: rgba(255,71,71,0.25) !important; }
    body.light-mode .ptable-name { color: #111418 !important; }
    body.light-mode .ptable-cat { color: #4a5568 !important; }
    body.light-mode .ptable-price { color: #ff4747 !important; }
    body.light-mode .ptable-link.aff { background: rgba(0,180,90,0.08) !important; color: #1a7a40 !important; border-color: rgba(0,180,90,0.25) !important; }
    body.light-mode .ptable-link.direct { color: #6b7280 !important; border-color: rgba(0,0,0,0.12) !important; }
    body.light-mode .cat-chip { background: rgba(0,0,0,0.04) !important; border-color: rgba(0,0,0,0.12) !important; color: #374151 !important; }
    body.light-mode .cat-chip-del { color: #6b7280 !important; }
    body.light-mode .file-label { background: rgba(0,100,200,0.06) !important; border-color: rgba(0,100,200,0.22) !important; color: #0066cc !important; }
    body.light-mode .file-label:hover { background: rgba(0,100,200,0.12) !important; }
    body.light-mode .or-text { color: #6b7280 !important; }
    body.light-mode .ltable-head { color: #6b7280 !important; }
    body.light-mode .ltable-row { background: rgba(0,0,0,0.02) !important; border-color: rgba(0,0,0,0.06) !important; }
    body.light-mode .lname { color: #374151 !important; }
    body.light-mode .lstatus.aff { background: rgba(0,180,90,0.08) !important; color: #1a7a40 !important; border-color: rgba(0,180,90,0.25) !important; }
    body.light-mode .lstatus.direct { color: #6b7280 !important; border-color: rgba(0,0,0,0.12) !important; }
    body.light-mode .lclear { color: #6b7280 !important; }
    body.light-mode .step-circle { background: rgba(255,71,71,0.08) !important; border-color: rgba(255,71,71,0.3) !important; color: #ff4747 !important; }
    body.light-mode .dupe-group { background: rgba(180,120,0,0.04) !important; border-color: rgba(180,120,0,0.18) !important; }
    body.light-mode .dupe-group-label { color: #996600 !important; }
    body.light-mode .dupe-card { background: #fdf8f3 !important; border-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .dupe-card-name { color: #111418 !important; }
    body.light-mode .dupe-card-price { color: #cc2200 !important; }
    body.light-mode .dupe-card-meta { color: #4a5568 !important; }
    body.light-mode .dupe-card.cheaper { border-color: rgba(0,100,200,0.3) !important; background: rgba(0,100,200,0.04) !important; }
    body.light-mode .dupe-card.cheaper .dupe-card-price { color: #0066cc !important; }
    body.light-mode .spot-admin-row,
    body.light-mode .sug-admin-row,
    body.light-mode .bsug-admin-row,
    body.light-mode .lnk-admin-row { background: rgba(0,0,0,0.02) !important; border-color: rgba(0,0,0,0.1) !important; }
    body.light-mode .spot-admin-title { color: #111418 !important; }
    body.light-mode .sug-admin-name { color: #0066cc !important; }
    body.light-mode .sug-admin-meta,
    body.light-mode .bsug-admin-meta { color: #6b7280 !important; }
    body.light-mode .sug-admin-notes,
    body.light-mode .bsug-admin-parts { color: #374151 !important; }
    body.light-mode .bsug-admin-name { color: #cc2200 !important; }
    body.light-mode .img-preview { border-color: rgba(0,0,0,0.15) !important; filter: none !important; }
    body.light-mode .img-preview-wrap .img-change-btn { background: rgba(255,255,255,0.88) !important; color: #0066cc !important; }

    /* ── Google Login Users + Access Requests: role dropdowns use inline dark styles ── */
    body.light-mode #googleUsersAdminList select,
    body.light-mode #accReqList select {
      background: #ffffff !important;
      background-color: #ffffff !important;
      border-color: rgba(0,0,0,0.18) !important;
      color: #111418 !important;
    }
    body.light-mode #googleUsersAdminList select option,
    body.light-mode #accReqList select option {
      background: #ffffff !important;
      color: #111418 !important;
    }
    /* Row containers */
    body.light-mode #googleUsersAdminList > div,
    body.light-mode #accReqList > div {
      background: #ffffff !important;
      border-color: rgba(0,0,0,0.08) !important;
    }
    /* Name / email text using hardcoded dark-theme colours */
    body.light-mode #googleUsersAdminList [style*="color:#c8d4e0"],
    body.light-mode #googleUsersAdminList [style*="color: #c8d4e0"],
    body.light-mode #accReqList [style*="color:#c8d4e0"],
    body.light-mode #accReqList [style*="color: #c8d4e0"] { color: #111418 !important; }
    body.light-mode #googleUsersAdminList [style*="color:#778"],
    body.light-mode #googleUsersAdminList [style*="color:#556"],
    body.light-mode #googleUsersAdminList [style*="color:#7a8898"],
    body.light-mode #googleUsersAdminList [style*="color:#9aaabb"],
    body.light-mode #googleUsersAdminList [style*="color:#aabbcc"],
    body.light-mode #accReqList [style*="color:#778"],
    body.light-mode #accReqList [style*="color:#556"],
    body.light-mode #accReqList [style*="color:#7a8898"],
    body.light-mode #accReqList [style*="color:#9aaabb"],
    body.light-mode #accReqList [style*="color:#aabbcc"] { color: #4a5568 !important; }

    /* ── Light-mode readability fix: spot badge + Suggest-a-Spot CTA ──
       In light mode, the green "FPV SPOT" tag over images and the
       "+ SUGGEST A SPOT" button were nearly invisible on white.
       Switch them to a deep bordeaux/red palette for strong contrast. */
    body.light-mode .spot-card-hero-tag {
      background: rgba(128, 0, 32, 0.92) !important;
      border-color: #5a000f !important;
      color: #fdf8f3 !important;
      text-shadow: 0 1px 2px rgba(0,0,0,0.25) !important;
    }
    /* Suggest-a-Spot button (matches typical .spots-back / outlined CTA) */
    body.light-mode .spots-suggest,
    body.light-mode .spot-suggest-btn,
    body.light-mode .suggest-spot-btn,
    body.light-mode .spots-add-btn,
    body.light-mode .spots-cta,
    body.light-mode .btn-suggest-spot,
    body.light-mode #suggestSpotBtn,
    body.light-mode [data-action="suggest-spot"] {
      background: rgba(128, 0, 32, 0.10) !important;
      border: 1px solid #800020 !important;
      color: #800020 !important;
    }
    body.light-mode .spots-suggest:hover,
    body.light-mode .spot-suggest-btn:hover,
    body.light-mode .suggest-spot-btn:hover,
    body.light-mode .spots-add-btn:hover,
    body.light-mode .spots-cta:hover,
    body.light-mode .btn-suggest-spot:hover,
    body.light-mode #suggestSpotBtn:hover,
    body.light-mode [data-action="suggest-spot"]:hover {
      background: rgba(128, 0, 32, 0.18) !important;
      border-color: #5a000f !important;
      color: #5a000f !important;
    }

    /* ── Light-mode: enlarge & recolor "Maps" + "VIEW →" on spot cards ──
       Previously cyan (#00ccff) at 9–11px — invisible on white.
       Bump to readable size and use the light-mode red accent. */
    body.light-mode .spot-card-mapbtn {
      font-size: 14px !important;
      padding: 7px 12px !important;
      gap: 6px !important;
      color: #ff4747 !important;
      border-color: rgba(255,71,71,0.45) !important;
      background: rgba(255,71,71,0.06) !important;
      font-weight: 600 !important;
    }
    body.light-mode .spot-card-mapbtn:hover {
      color: #c4001d !important;
      border-color: #c4001d !important;
      background: rgba(255,71,71,0.14) !important;
    }
    body.light-mode .spot-card-readmore {
      font-size: 16px !important;
      color: #c4001d !important;
      opacity: 1 !important;
      font-weight: 700 !important;
      letter-spacing: 1.5px !important;
    }
    /* Mobile keeps it readable too */
    @media (max-width: 600px) {
      body.light-mode .spot-card-mapbtn { font-size: 13px !important; padding: 6px 10px !important; }
      body.light-mode .spot-card-readmore { font-size: 15px !important; }
    }

    /* ── Light-mode: tutorial media viewer close + zoom/fit buttons ──
       Default styling uses white-on-white-translucent which disappears
       against the light topbar. Give them solid contrast. */
    body.light-mode .tmv-topbar {
      background: rgba(253,248,243,0.98) !important;
      border-bottom-color: #e8e8e8 !important;
    }
    body.light-mode .tmv-label { color: #0d1117 !important; }
    body.light-mode .tmv-counter { color: #4a5568 !important; }

    body.light-mode .tmv-close {
      background: rgba(255,71,71,0.10) !important;
      border-color: rgba(255,71,71,0.55) !important;
      color: #c4001d !important;
    }
    body.light-mode .tmv-close:hover {
      background: #c4001d !important;
      border-color: #c4001d !important;
      color: #fdf8f3 !important;
    }

    body.light-mode .tmv-zb {
      background: rgba(255,71,71,0.06) !important;
      border-color: rgba(255,71,71,0.45) !important;
      color: #c4001d !important;
      font-weight: 600 !important;
    }
    body.light-mode .tmv-zb:hover {
      background: #ff4747 !important;
      border-color: #c4001d !important;
      color: #fdf8f3 !important;
    }

    /* ── Light-mode: replace ALL remaining green accents ── */

    /* General accent color — anything using var(--accent) already switches,
       but these classes hardcode #00ff88 directly */

    /* Indicators & inputs */
    body.light-mode .save-indicator.saved        { color: #1a7a40 !important; }
    body.light-mode .search-input:focus          { border-color: rgba(255,71,71,0.6) !important; }
    body.light-mode .cat-btn:hover               { border-color: rgba(255,71,71,0.4) !important; color: #ff4747 !important; }
    body.light-mode .cat-btn.active              { border-color: #ff4747 !important; color: #ff4747 !important; background: rgba(255,71,71,0.07) !important; }
    body.light-mode .grid-count em               { color: #ff4747 !important; }

    /* Coupon labels */
    body.light-mode .cp-copied-lbl              { color: #1a7a40 !important; }
    body.light-mode .cp-disc-lbl               { color: #1a7a40 !important; }
    body.light-mode .coupon-copied             { color: #1a7a40 !important; }
    body.light-mode .coupon-discount           { color: #1a7a40 !important; }

    /* Date / calendar */
    body.light-mode .date-cal-btn:hover         { color: #ff4747 !important; }
    body.light-mode .cal-popup                  { border-color: rgba(255,71,71,0.3) !important; background: #fdf8f3 !important; }
    body.light-mode .cal-nav:hover              { color: #ff4747 !important; }
    body.light-mode .cal-day:hover              { color: #ff4747 !important; border-color: rgba(255,71,71,0.35) !important; }
    body.light-mode .cal-day.selected          { background: rgba(255,71,71,0.12) !important; color: #ff4747 !important; border-color: rgba(255,71,71,0.5) !important; }

    /* Builder back button */
    body.light-mode .bld-back                   { background: rgba(255,71,71,0.08) !important; border-color: rgba(255,71,71,0.35) !important; color: #ff4747 !important; }
    body.light-mode .bld-back:hover             { background: rgba(255,71,71,0.16) !important; border-color: rgba(255,71,71,0.6) !important; }
    body.light-mode .bld-kit-card:hover         { border-color: rgba(255,71,71,0.35) !important; background: rgba(255,71,71,0.02) !important; }
    body.light-mode .kit-icon-select:focus      { border-color: rgba(255,71,71,0.4) !important; }
    body.light-mode .bld-part-price            { color: #ff4747 !important; }

    /* Summary build modal */
    body.light-mode .sbm-head                   { border-bottom-color: rgba(0,0,0,0.1) !important; background: #fdf8f3 !important; }
    body.light-mode .sbm-row.deselected:hover   { border-color: rgba(255,71,71,0.25) !important; }
    body.light-mode .sbm-row.selectable:hover   { border-color: rgba(255,71,71,0.35) !important; background: rgba(255,71,71,0.03) !important; }
    body.light-mode .sbm-check                  { color: #ff4747 !important; }
    body.light-mode .sbm-price                  { color: #ff4747 !important; }
    body.light-mode .sbm-total-value           { color: #ff4747 !important; }

    /* Custom build cards */
    body.light-mode .cbld-card:hover            { border-color: rgba(255,71,71,0.3) !important; background: rgba(255,71,71,0.02) !important; }
    body.light-mode .cbld-card.selected         { border-color: #ff4747 !important; background: rgba(255,71,71,0.1) !important; box-shadow: 0 0 0 2px rgba(255,71,71,0.2) !important; }
    body.light-mode .cbld-card-price           { color: #ff4747 !important; }
    body.light-mode .cbld-card-check           { background: rgba(255,71,71,0.9) !important; color: #fff !important; }
    body.light-mode .cbld-footer               { background: rgba(253,248,243,0.97) !important; border-top-color: rgba(255,71,71,0.15) !important; }
    body.light-mode .cbld-footer-total         { color: #ff4747 !important; }

    /* Kit picker */
    body.light-mode .kpk-sel-row               { background: rgba(255,71,71,0.02) !important; border-color: rgba(255,71,71,0.15) !important; }
    body.light-mode .kpk-sel-row:hover         { border-color: rgba(255,71,71,0.35) !important; }
    body.light-mode .kpk-info-price            { color: #ff4747 !important; }
    body.light-mode .kpk-avail-price           { color: #ff4747 !important; }
    body.light-mode #kit-prod-hover-card .hc-price { color: #ff4747 !important; }

    /* Spots */
    body.light-mode .spots-gate-input:focus     { border-color: rgba(255,71,71,0.4) !important; }
    body.light-mode .spots-gate-btn             { background: rgba(255,71,71,0.1) !important; border-color: rgba(255,71,71,0.35) !important; color: #ff4747 !important; }
    body.light-mode .spots-gate-btn:hover       { background: rgba(255,71,71,0.2) !important; }
    body.light-mode .spot-card:hover            { border-color: rgba(255,71,71,0.35) !important; box-shadow: 0 8px 32px rgba(255,71,71,0.08) !important; }
    body.light-mode .spot-card-mapbtn:hover     { color: #ff4747 !important; border-color: rgba(255,71,71,0.35) !important; }
    body.light-mode .spot-detail-thumbs img:hover,
    body.light-mode .spot-detail-thumbs img.active { border-color: #ff4747 !important; }
    body.light-mode .spot-detail-maplink            { color: #0055cc !important; border-color: rgba(0,85,204,0.35) !important; }
    body.light-mode .spot-detail-maplink:hover      { color: #ff4747 !important; border-color: rgba(255,71,71,0.4) !important; }
    body.light-mode .spot-detail-wazelink           { color: #0077cc !important; border-color: rgba(0,119,204,0.35) !important; }
    body.light-mode .spot-detail-wazelink:hover     { color: #ff4747 !important; border-color: rgba(255,71,71,0.4) !important; }
    body.light-mode .sug-box                    { border-color: rgba(255,71,71,0.25) !important; background: #fdf8f3 !important; }

    /* Tutorial editor */
    body.light-mode .tut-editor:focus           { border-color: rgba(255,71,71,0.3) !important; }

    /* Product cards */
    body.light-mode .product-card:hover         { border-color: rgba(255,71,71,0.2) !important; box-shadow: 0 8px 28px rgba(255,71,71,0.06) !important; }
    body.light-mode .card-share-btn.copied      { border-color: rgba(255,71,71,0.4) !important; color: #ff4747 !important; }
    body.light-mode .product-card.highlighted   { border-color: rgba(255,71,71,0.6) !important; box-shadow: 0 0 0 2px rgba(255,71,71,0.2), 0 8px 32px rgba(255,71,71,0.12) !important; }

    /* Generic buttons / admin */
    body.light-mode .btn                        { background: rgba(255,71,71,0.09) !important; border-color: rgba(255,71,71,0.3) !important; color: #ff4747 !important; }
    body.light-mode .btn:hover                  { background: rgba(255,71,71,0.16) !important; }
    body.light-mode textarea.ai:focus           { border-color: rgba(255,71,71,0.3) !important; }
    body.light-mode .smsg.success               { background: rgba(0,180,80,0.06) !important; border-color: rgba(0,180,80,0.2) !important; color: #1a7a40 !important; }
    body.light-mode .ptable-price              { color: #ff4747 !important; }
    body.light-mode .ptable-link.aff           { background: rgba(255,71,71,0.08) !important; color: #ff4747 !important; border-color: rgba(255,71,71,0.25) !important; }
    body.light-mode .lstatus.aff               { background: rgba(255,71,71,0.08) !important; color: #ff4747 !important; border-color: rgba(255,71,71,0.25) !important; }


