/* ── Shared CSS: variables, header, footer, theme toggle, policy styles ── */

:root {
  --bg: #f7f8fa; --surface: #ffffff; --surface-subtle: #fafafa;
  --ink: #111827; --ink-soft: #374151; --muted: #6b7280; --muted-strong: #4b5563;
  --border: #d7dce4; --border-strong: #c7ced8; --accent: #0f766e;
  --accent-soft: #eef7f6; --success: #166534; --success-bg: #f0fdf4;
  --success-border: #bbf7d0; --shadow: 0 1px 2px rgba(17,24,39,.04);
  --progress-track: #edf0f3; --error-bg: #fef2f2; --error-border: #fecaca;
  --button-hover: #f9fafb; --button-hover-border: #b8c0cc;
  --section-links-bg:#e7e0d6; --section-links-border:#c9bfb0;
  --section-links-subcard-bg:#f1eee9; --section-links-subcard-border:#d7cec0; --section-links-detail-bg:#f8f6f3;
  --section-disclaimer-bg:#f4dfc3; --section-disclaimer-border:#d6ad7b;
  --section-disclaimer-subcard-bg:#faecd9; --section-disclaimer-subcard-border:#e3c59f; --section-disclaimer-detail-bg:#fff6ea;
}
body[data-theme="dark"] {
  --bg: #0f1115; --surface: #171a21; --surface-subtle: #1f232c;
  --ink: #f3f4f6; --ink-soft: #d1d5db; --muted: #9ca3af; --muted-strong: #c4cad4;
  --border: #2b303b; --border-strong: #3d4452; --accent: #2dd4bf;
  --accent-soft: rgba(45,212,191,.12); --success: #86efac;
  --success-bg: rgba(134,239,172,.1); --success-border: rgba(134,239,172,.3);
  --progress-track: #2b303b; --error-bg: rgba(153,27,27,.12); --error-border: rgba(153,27,27,.3);
  --button-hover: #1f232c; --button-hover-border: #3d4452;
  --section-links-bg:#2d2922; --section-links-border:#5b5142;
  --section-links-subcard-bg:#39342b; --section-links-subcard-border:#6b604e; --section-links-detail-bg:#454034;
  --section-disclaimer-bg:#3f300f; --section-disclaimer-border:rgba(251,191,36,.36);
  --section-disclaimer-subcard-bg:#554017; --section-disclaimer-subcard-border:rgba(251,191,36,.44); --section-disclaimer-detail-bg:#684f1d;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45;transition:background .2s,color .2s}

/* ── Header (blog-head) ── */
.blog-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}
.blog-head-left{display:flex;align-items:center;gap:12px}
.blog-head-left h1{margin:0;font-size:1rem;font-weight:720;color:var(--ink)}
.blog-head-left a{color:var(--accent);font-size:.82rem;font-weight:680;text-decoration:none;white-space:nowrap}
.blog-head-left a:hover{text-decoration:underline}
.blog-head-right{display:flex;align-items:center;gap:10px;flex-shrink:0}

/* ── Theme toggle ── */
.header-actions{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--border);border-radius:999px;background:var(--surface-subtle)}
.theme-option{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.theme-option input{position:absolute;width:1px;height:1px;opacity:0}
.theme-option span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:26px;padding:4px 8px;border-radius:999px;color:var(--muted-strong);font-size:.78rem;font-weight:680;line-height:1}
.theme-option input:checked+span{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(17,24,39,.08)}
.theme-option input:focus-visible+span{outline:2px solid rgba(15,118,110,.28);outline-offset:2px}

/* ── Blog shell layout ── */
.blog-shell{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}
.blog-layout{display:flex;flex:1;min-height:0;overflow:hidden}

/* ── Footer ── */
.blog-footer{flex-shrink:0;background:var(--section-links-bg);border-top:1px solid var(--section-links-border)}
.blog-footer .panel-links{padding:12px;border-radius:0;border:0;border-top:1px solid var(--border);box-shadow:none;margin:0}
.blog-footer .section-kicker{color:var(--muted);font-size:.68rem;font-weight:680;letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}
.blog-footer .policy-links{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;padding:4px 0;scrollbar-width:none;gap:6px}
.blog-footer .policy-links::-webkit-scrollbar{display:none}
.blog-footer .policy-link{width:auto;padding:0;border:0;background:transparent;color:var(--accent);font-size:.78rem;font-weight:680;text-decoration:none;cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;min-height:28px}
.blog-footer .policy-link:hover{text-decoration:underline}
.blog-footer .policy-content{max-height:220px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);overflow:auto}
.blog-footer .policy-content h3{margin:0 0 6px;color:var(--ink);font-size:.9rem}
.blog-footer .policy-content p{margin:0 0 7px;color:var(--ink-soft);font-size:.78rem;line-height:1.42}

/* ── Utility ── */
.section-kicker{color:var(--muted);font-size:.68rem;font-weight:680;letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}
.hidden{display:none}

/* ── Disclaimer banner (matches optimizer page) ── */
.panel-disclaimer{padding:10px 12px;border:1px solid var(--section-disclaimer-border);background:var(--section-disclaimer-bg);border-radius:8px;display:flex;align-items:flex-start;gap:8px;font-size:.78rem;line-height:1.4;color:var(--muted-strong);margin-bottom:12px}
.panel-disclaimer p{margin:5px 0 0;color:var(--muted-strong);font-size:.76rem;line-height:1.4}

/* ── Blog sidebar ── */
.blog-sidebar{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;width:260px;flex-shrink:0;padding:14px;border-right:1px solid var(--border);background:var(--surface-subtle)}
.blog-sidebar label{display:block;color:var(--muted);font-size:.72rem;font-weight:680;letter-spacing:.06em;margin-bottom:4px}
.blog-search{width:100%;margin-bottom:12px;padding:9px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-size:.88rem}
.blog-search:focus{outline:2px solid rgba(15,118,110,.28);outline-offset:2px}
.blog-filter-group{margin-bottom:10px}
.blog-filter-country{display:flex;align-items:center;gap:6px;padding:5px 6px;cursor:pointer;border-radius:6px;font-size:.84rem;transition:background .1s}
.blog-filter-country:hover{background:var(--button-hover)}
.blog-filter-country input{width:15px;height:15px;margin:0;accent-color:var(--accent)}
.blog-filter-country span{flex:1}
.blog-filter-country .count{color:var(--muted);font-size:.76rem}
.blog-stats{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem}

/* ── Blog content area ── */
.blog-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px 16px 60px;min-width:0}
.blog-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.blog-tile{display:grid;gap:4px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);cursor:pointer;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.blog-tile:hover{border-color:var(--accent);box-shadow:0 3px 12px rgba(15,118,110,.12)}
.blog-tile strong{color:var(--ink);font-size:.9rem;line-height:1.3}
.blog-tile .issuer{color:var(--muted);font-size:.78rem}
.blog-tile .meta{color:var(--ink-soft);font-size:.72rem;text-transform:capitalize}
.blog-tile .tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.blog-tile .tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:.65rem;font-weight:640}
.loading{padding:40px;text-align:center;color:var(--muted)}
.blog-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:.9rem}
.country-tag{display:inline-block;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:640;border:1px solid var(--border);color:var(--muted-strong)}

/* ── Card detail page layout ── */
.card-page-body{display:flex;flex-direction:column}
.card-shell{flex:1;display:flex;flex-direction:column;max-width:100%;padding:20px 16px;min-height:0}
.card-back-link{color:var(--accent);font-size:.85rem;font-weight:680;text-decoration:none;white-space:nowrap}
.card-back-link:hover{text-decoration:underline}
.card-detail{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;box-shadow:var(--shadow)}
.card-detail h1{font-size:1.5rem;font-weight:720;margin-bottom:6px}
.card-subtitle{color:var(--muted);font-size:.9rem;margin-bottom:12px}
.product-link{display:inline-block;margin-bottom:12px;color:var(--accent);font-weight:680;text-decoration:none}
.product-link:hover{text-decoration:underline}
.fee-section{background:var(--success-bg);border:1px solid var(--success-border);border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:.88rem;color:var(--success)}
.card-body{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:.9rem;color:var(--ink-soft)}
.card-body p{margin-bottom:10px}
.card-body h2,.card-body h3{margin:16px 0 8px;color:var(--ink)}
.card-body ul,.card-body ol{padding-left:20px;margin:6px 0}
.card-body li{margin-bottom:4px}
.card-body a{color:var(--accent)}.card-body table{width:100%;border-collapse:collapse;margin:8px 0;font-size:.84rem}
.card-body th,.card-body td{padding:6px 8px;border:1px solid var(--border);text-align:left}
.card-body th{background:var(--surface-subtle);font-weight:680}
.card-body code{padding:2px 5px;border-radius:4px;background:var(--surface-subtle);font-size:.82em}
.rule-list,.exclusion-list{display:grid;gap:8px;padding-left:0;list-style:none}
.rule-list li,.exclusion-list li{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle);font-size:.88rem}
.rule-list li strong{color:var(--accent)}
.tags{color:var(--muted);font-size:.78rem}
.referral-link{display:inline-block;margin-top:8px;padding:8px 16px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-soft);color:var(--accent);font-weight:680;text-decoration:none;font-size:.88rem}
.referral-link:hover{background:var(--accent);color:var(--bg)}
.lounge-section{padding:10px 12px;border:1px solid var(--border);border-radius:6px;margin-bottom:6px;background:var(--surface-subtle)}
.lounge-section:last-child{margin-bottom:0}
.lounge-section strong{font-size:.85rem}
.detail-body{padding:14px 16px!important}
.detail-body p{margin:0 0 10px}

/* ── Card detail detail view ── */
.blog-detail{max-width:100%}
.blog-detail h1{margin:0 0 4px;font-size:1.4rem;font-weight:720;text-align:center}
.blog-detail .detail-subtitle{color:var(--muted);font-size:.88rem;margin-bottom:14px}
.blog-detail .back{display:inline-block;margin-bottom:12px;color:var(--accent);font-size:.85rem;font-weight:680;text-decoration:none;cursor:pointer}
.blog-detail .back:hover{text-decoration:underline}
.detail-section{margin-bottom:16px;padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.detail-section h2{margin:0 0 10px;font-size:.92rem;font-weight:720}
.detail-fee{background:var(--success-bg);border-color:var(--success-border);color:var(--success);font-size:.88rem}
.detail-fee strong{font-weight:680}
.detail-rule{padding:10px 12px;border:1px solid var(--border);border-radius:6px;margin-bottom:6px;background:var(--surface-subtle)}
.detail-rule:last-child{margin-bottom:0}
.detail-rule .rate{color:var(--accent);font-weight:680;font-size:.9rem}
.detail-rule .desc{color:var(--ink-soft);font-size:.84rem}
.detail-rule .rtags{color:var(--muted);font-size:.73rem;margin-top:4px}
.detail-exclusion{padding:8px 10px;border-left:3px solid var(--warning);margin-bottom:5px;font-size:.84rem;color:var(--ink-soft);background:var(--surface-subtle);border-radius:0 6px 6px 0}
.detail-exclusion:last-child{margin-bottom:0}
.detail-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.detail-links a{color:var(--accent);font-weight:680;font-size:.84rem;text-decoration:none}
.detail-links a:hover{text-decoration:underline}

/* ── Mobile ── */
@media(max-width:680px){
  .blog-layout{flex-direction:column}
  .blog-sidebar{width:100%;border-right:0;border-bottom:1px solid var(--border);overflow-y:visible;flex-shrink:0;padding:10px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
  .blog-sidebar>label{display:none}
  .blog-search{width:100%;margin-bottom:6px}
  .blog-grid{grid-template-columns:1fr}
  .blog-head{flex-wrap:wrap}
  .card-detail{padding:16px}
}
@media(max-width:640px){
  .card-detail{padding:16px}
}