:root{--bg-page:#F6F2EA;--bg-header:#FFFFFF;--bg-card:#FFFFFF;--bg-subtle:#F1EAD9;--bg-hover:#EAE0C8;--bg-input:#FBF8F3;--border-color:#E3DBC8;--border-light:#D6C9A8;--text-main:#251F14;--text-body:#4A4130;--text-muted:#6B6355;--accent-green:#10B981;--accent-green-hover:#059669;--accent-blue:#3B82F6;--accent-gold:#F59E0B;--accent-red:#EF4444;--accent-purple:#8B5CF6;--accent-cyan:#06B6D4;--cookie-accent:#9B8AFB;--cookie-accent-hover:#8072E0;--cookie-accent-soft:rgba(155,138,251,0.14);--cookie-gradient-from:#F3F1FF;--cookie-gradient-to:#E8E3FF;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--transition:all 0.2s ease-in-out;--font-main:'Plus Jakarta Sans',system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}[data-theme="dark"]{--bg-page:#0D131C;--bg-header:#131D2A;--bg-card:#15202E;--bg-subtle:#1A283A;--bg-hover:#22344B;--bg-input:#0E1622;--border-color:#203146;--border-light:#2B415C;--text-main:#FFFFFF;--text-body:#C2D1E0;--text-muted:#7E93A8;--cookie-accent:#B7A9FF;--cookie-accent-hover:#C9BEFF;--cookie-accent-soft:rgba(183,169,255,0.16);--cookie-gradient-from:#1E1B3A;--cookie-gradient-to:#241F47}
/* Phase 123 (v44.116): Front-End Light Mode — Porting the Admin Panel's Warm/Cream
   Color Palette to the Front End + Admin-Selectable Alternate Color Schemes. The
   default light mode (:root, above) now uses the exact same warm/cream tones as the
   admin panel's [data-theme="light"] block (brp_aspragtor/css/admin.css) ("warm").
   The four blocks below define the alternatives that can be selected from the "Site
   Color Theme" picker in the admin panel (site_settings.color_palette, applied via
   js/app.src.js -> applyDynamicSeoMetadata() as <html data-site-palette>); dark mode
   (data-theme="dark") is never touched — all of this applies only under
   [data-theme="light"]. */
[data-theme="light"][data-site-palette="classic"]{--bg-page:#F8FAFC;--bg-header:#FFFFFF;--bg-card:#FFFFFF;--bg-subtle:#F1F5F9;--bg-hover:#E2E8F0;--bg-input:#FFFFFF;--border-color:#E2E8F0;--border-light:#CBD5E1;--text-main:#0F172A;--text-body:#334155;--text-muted:#64748B}
[data-theme="light"][data-site-palette="green-tea"]{--bg-page:#F3F6F1;--bg-header:#FFFFFF;--bg-card:#FFFFFF;--bg-subtle:#EAF0E6;--bg-hover:#DDE8D6;--bg-input:#F9FBF7;--border-color:#DCE7D4;--border-light:#C6D8BB;--text-main:#1E2A1A;--text-body:#3C4A35;--text-muted:#6B7A61}
[data-theme="light"][data-site-palette="sky"]{--bg-page:#F1F6FA;--bg-header:#FFFFFF;--bg-card:#FFFFFF;--bg-subtle:#E7F1F8;--bg-hover:#D8E9F4;--bg-input:#F8FBFD;--border-color:#D6E5EF;--border-light:#B9D3E4;--text-main:#16232E;--text-body:#33475A;--text-muted:#62798C}
[data-theme="light"][data-site-palette="lavender"]{--bg-page:#F6F3FA;--bg-header:#FFFFFF;--bg-card:#FFFFFF;--bg-subtle:#EFE9F7;--bg-hover:#E3DAF1;--bg-input:#FBF9FD;--border-color:#E1D6EF;--border-light:#CBB9E3;--text-main:#241C31;--text-body:#443A54;--text-muted:#6E6280}
*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--bg-page);color:var(--text-body);line-height:1.5;font-size:13px;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none;transition:var(--transition)}.container-fluid{max-width:1366px;margin:0 auto;padding:0 16px}.portal-header{background-color:var(--bg-header);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100;box-shadow:0 1px 3px rgba(0,0,0,0.05)}.header-flex-row{display:flex;align-items:center;justify-content:space-between;height:52px;gap:16px}.logo-area{display:flex;align-items:center;gap:8px;font-weight:800;font-size:19px;color:var(--text-main);letter-spacing:-0.5px;flex-shrink:0}.logo-icon{width:32px;height:32px;background:linear-gradient(135deg,#8A0E1A 0%,#5E0912 100%);color:#FFFFFF;border:1px solid rgba(255,255,255,0.15);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;box-shadow:0 2px 8px rgba(122,12,22,0.35)}.logo-text span{color:#9E1220}[data-theme="dark"] .logo-text span{color:#E11D48}.search-bar-wrap{flex:1;max-width:480px;position:relative}.search-input{width:100%;height:34px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:0 32px 0 12px;color:var(--text-main);font-size:12.5px;outline:none;transition:var(--transition)}.search-input:focus{border-color:var(--accent-green);box-shadow:0 0 0 2px rgba(16,185,129,0.2)}.search-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn-auth{font-size:12px;font-weight:600;padding:6px 12px;border-radius:var(--radius-xs);background:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-body);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:var(--transition)}.btn-auth:hover{background:var(--bg-hover);color:var(--text-main)}.btn-auth-primary{background:var(--accent-green);color:#FFFFFF;font-weight:700;border-color:var(--accent-green)}.btn-auth-primary:hover{background:var(--accent-green-hover);color:#FFFFFF}.theme-toggle-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);width:32px;height:32px;border-radius:var(--radius-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.theme-toggle-btn:hover{color:var(--text-main);background:var(--bg-hover)}.lang-switcher-wrap{position:relative}.lang-toggle-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);height:32px;padding:0 9px;border-radius:var(--radius-xs);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition);font-family:inherit}.lang-toggle-btn:hover{color:var(--text-main);background:var(--bg-hover)}.lang-toggle-btn i{font-size:12.5px}.lang-current-code{font-size:11px;font-weight:800;letter-spacing:0.3px}.lang-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:0 12px 32px rgba(0,0,0,0.25);min-width:196px;max-height:320px;overflow-y:auto;padding:6px;display:none;z-index:500}[data-theme="dark"] .lang-dropdown-menu{box-shadow:0 14px 32px rgba(0,0,0,0.55)}.lang-dropdown-menu.open{display:block}.lang-option-item{width:100%;background:none;border:none;text-align:left;padding:8px 10px;border-radius:var(--radius-xs);color:var(--text-body);font-size:12.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:9px;transition:var(--transition);font-family:inherit}.lang-option-item:hover{background:var(--bg-hover);color:var(--text-main)}.lang-option-item.active{background:rgba(16,185,129,0.12);color:var(--accent-green);font-weight:800}.lang-flag{font-size:14px;line-height:1}@media (max-width:768px){.lang-toggle-btn{padding:0 7px}}.goog-te-banner-frame.skiptranslate,.goog-te-banner-frame{display:none !important;visibility:hidden !important}body{top:0 !important;position:static !important}.goog-te-gadget{height:0 !important;overflow:hidden !important;line-height:0 !important}#google_translate_element{position:absolute !important;left:-9999px !important;top:-9999px !important;height:0 !important;overflow:hidden !important}.goog-tooltip,.goog-tooltip:hover{display:none !important}.goog-tooltip:hover:before{display:none !important}.goog-text-highlight{background:none !important;box-shadow:none !important;border:none !important}.live-market-ticker-bar{background:#0B131D;border-bottom:1px solid var(--border-color);height:28px;overflow:hidden;position:relative;white-space:nowrap}.ticker-track-anim{display:inline-flex;gap:24px;animation:tickerSlide 40s linear infinite;align-items:center;height:100%}.ticker-track-anim:hover{animation-play-state:paused}@keyframes tickerSlide{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}.ticker-coin-item{font-size:11px;display:inline-flex;align-items:center;gap:6px;color:#94A3B8}.ticker-coin-item .coin-lbl{font-weight:700;color:#CBD5E1}.ticker-coin-item .coin-val{font-weight:700;color:#FFFFFF}.rate-badge{padding:1px 4px;border-radius:2px;font-weight:700;font-size:9.5px}.rate-up{background:rgba(16,185,129,0.2);color:#10B981}.rate-down{background:rgba(239,68,68,0.2);color:#EF4444}.main-content-grid{display:grid;grid-template-columns:200px minmax(0,1fr) 240px;gap:16px;margin-top:14px;margin-bottom:40px;align-items:start}.left-col-countries{display:flex;flex-direction:column;gap:10px}.left-col-countries .panel-card{background:linear-gradient(180deg,#E6FBF0 0%,#EDFDF5 50%,#E0F8EC 100%);border:1px solid #9AE6B4;border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 3px 12px rgba(16,185,129,0.08)}[data-theme="dark"] .left-col-countries .panel-card{background:linear-gradient(180deg,#0C2124 0%,#102B30 50%,#0E2529 100%);border:1px solid #1C454B;box-shadow:0 4px 15px rgba(0,0,0,0.3)}.left-col-countries [data-theme="dark"] .left-col-countries [data-theme="dark"] .panel-tools{font-size:11px;color:#047857}[data-theme="dark"] .panel-tools{color:#A7F3D0}.panel-tools i{cursor:pointer}.panel-tools i:hover{color:#065F46}.country-feed-list{list-style:none;padding:8px 6px;display:flex;flex-direction:column;gap:5px}.country-feed-item{border-radius:var(--radius-xs);background:rgba(255,255,255,0.8);border:1px solid rgba(16,185,129,0.25);transition:all 0.2s cubic-bezier(0.4,0,0.2,1);overflow:hidden;cursor:pointer}[data-theme="dark"] .country-feed-item{background:rgba(18,48,54,0.7);border:1px solid rgba(52,211,153,0.2)}.country-feed-item a{display:flex;justify-content:center;align-items:center;text-align:center;padding:8.5px 10px;color:#064E3B;font-size:12.5px;font-weight:700;text-decoration:none;letter-spacing:0.2px;width:100%}[data-theme="dark"] .country-feed-item a{color:#D1FAE5}.country-flag-lbl{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center}.country-feed-item:hover{background:#FFFFFF;border-color:var(--accent-green);transform:translateY(-1px);box-shadow:0 4px 10px rgba(16,185,129,0.2)}[data-theme="dark"] .country-feed-item:hover{background:#19464E}.country-feed-item:hover a{color:#047857}[data-theme="dark"] .country-feed-item:hover a{color:#FFFFFF}.country-feed-item.active{background:var(--accent-green);border-color:var(--accent-green);box-shadow:0 3px 10px rgba(16,185,129,0.35)}.country-feed-item.active a{color:#FFFFFF;font-weight:800}.btn-see-all-countries{display:flex;align-items:center;justify-content:center;text-align:center;background:rgba(16,185,129,0.12);color:#047857;font-size:11.5px;font-weight:800;padding:9px 12px;margin:2px 6px 8px 6px;border-radius:var(--radius-xs);border:1px dashed #10B981;cursor:pointer;transition:all 0.2s ease}[data-theme="dark"] .btn-see-all-countries{color:#34D399}.btn-see-all-countries:hover{background:var(--accent-green);color:#FFFFFF;border-color:var(--accent-green);box-shadow:0 2px 8px rgba(16,185,129,0.3)}.social-icons-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px;background:linear-gradient(180deg,#E6FBF0 0%,#EDFDF5 100%);border:1px solid #9AE6B4;border-radius:var(--radius-sm);box-shadow:0 2px 8px rgba(16,185,129,0.06)}[data-theme="dark"] .social-icons-row{background:linear-gradient(180deg,#0C2124 0%,#102B30 100%);border:1px solid #1C454B;box-shadow:0 3px 10px rgba(0,0,0,0.25)}.social-icon-btn{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#FFFFFF;font-size:13px;transition:all 0.22s cubic-bezier(0.4,0,0.2,1);box-shadow:0 2px 5px rgba(0,0,0,0.15)}.social-icon-btn:hover{transform:translateY(-2px) scale(1.1);box-shadow:0 4px 10px rgba(0,0,0,0.28)}.social-fb{background:#1877F2}.social-tw{background:#0F1419;border:1px solid rgba(255,255,255,0.2)}.social-ig{background:linear-gradient(45deg,#F09433,#E6683C,#DC2743,#CC2366,#BC1888)}.social-yt{background:#FF0000}.social-tg{background:#229ED9}.center-col-feed{display:flex;flex-direction:column;gap:14px;min-width:0}.category-tabs-bar{background:linear-gradient(90deg,#EBF8FF 0%,#E0F2FE 50%,#EDF7FF 100%);border:1px solid #BAE6FD;border-radius:var(--radius-sm);display:flex;align-items:stretch;width:100%;min-height:39.75px;overflow:hidden;box-shadow:0 2px 8px rgba(59,130,246,0.08)}[data-theme="dark"] .category-tabs-bar{background:linear-gradient(90deg,#0E2238 0%,#122B47 50%,#0F273E 100%);border:1px solid #1E466F;box-shadow:0 4px 12px rgba(0,0,0,0.3)}.category-tab-btn{flex:1 1 auto;padding:7px 7px;background:transparent;border:none;color:#0369A1;font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap;border-right:1px solid #BAE6FD;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:var(--transition);min-width:fit-content}[data-theme="dark"] .category-tab-btn{color:#BAE6FD;border-right:1px solid #1E466F}.category-tab-btn:last-child{border-right:none}.category-tab-btn:hover{background:#BAE6FD;color:#0C4A6E}[data-theme="dark"] .category-tab-btn:hover{background:#1B456E;color:#FFFFFF}.category-tab-btn.active{background:#0284C7;color:#FFFFFF;font-weight:800;box-shadow:0 2px 8px rgba(2,132,199,0.35)}.feed-table-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.04);display:flex;flex-direction:column;height:auto}.feed-table-scroll-wrap{flex:1 1 auto;min-height:0;overflow-y:visible}.feed-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;table-layout:fixed}.feed-table th{background:var(--bg-subtle);padding:4px 10px;color:var(--text-muted);font-weight:700;font-size:10.5px;text-transform:uppercase;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1}.feed-table td{padding:3.5px 12px;border-bottom:1px solid var(--border-color);color:var(--text-body)}.feed-table td.feed-title-cell{overflow:hidden}.feed-table td.feed-title-cell strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.feed-channel-badge{font-size:10.5px;line-height:1.3;display:inline-block}.feed-table tr:hover td{background:var(--bg-subtle);cursor:pointer}.feed-table tr:last-child td{border-bottom:none}.country-dossier-wrapper{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}.country-dossier-header{background:linear-gradient(135deg,#F5F3FF 0%,#EDE9FE 50%,#E0E7FF 100%);border:1px solid #C7D2FE;border-radius:var(--radius-sm);padding:10px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;box-shadow:0 3px 10px rgba(99,102,241,0.08);transition:var(--transition);position:relative}[data-theme="dark"] .country-dossier-header{background:linear-gradient(135deg,#1A1836 0%,#201C42 50%,#171E3A 100%);border:1px solid #3730A3;box-shadow:0 4px 15px rgba(0,0,0,0.35)}.country-dossier-heading{font-size:23px;font-weight:800;color:#3730A3;letter-spacing:-0.4px;text-align:center;margin:0;display:inline-flex;align-items:center;justify-content:center;gap:8px}[data-theme="dark"] .country-dossier-heading{color:#E0E7FF}.country-dossier-meta{font-size:11.5px;font-weight:600;color:#4F46E5;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}[data-theme="dark"] .country-dossier-meta{color:#A5B4FC}.meta-dot{opacity:0.5}.country-subnav-bar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:2px 0;scrollbar-width:none;-ms-overflow-style:none}.country-subnav-bar::-webkit-scrollbar{display:none}.country-subnav-pill{background:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-body);font-size:12px;font-weight:700;padding:7px 16px;border-radius:20px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;transition:all 0.2s ease;flex-shrink:0}.country-subnav-pill:hover{background:var(--bg-hover);color:var(--text-main);border-color:var(--accent-green);transform:translateY(-1px)}.country-subnav-pill.active{background:var(--accent-green);color:#FFFFFF;font-weight:800;border-color:var(--accent-green);box-shadow:0 3px 10px rgba(16,185,129,0.35)}.country-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-content:start}.news-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:all 0.25s cubic-bezier(0.4,0,0.2,1);position:relative;box-shadow:0 1px 3px rgba(0,0,0,0.04)}.news-card:hover{transform:translateY(-3px);border-color:var(--accent-green);box-shadow:0 8px 20px rgba(0,0,0,0.15)}[data-theme="dark"] .news-card:hover{box-shadow:0 8px 20px rgba(0,0,0,0.4)}.news-card-img-wrap{width:100%;height:125px;overflow:hidden;position:relative;background:#080D14}.news-card-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.35s ease}.news-card:hover .news-card-img-wrap img{transform:scale(1.06)}.card-category-badge{position:absolute;top:8px;left:8px;background:rgba(15,23,42,0.85);backdrop-filter:blur(4px);color:var(--accent-green);font-size:10px;font-weight:800;padding:2px 7px;border-radius:3px;border:1px solid rgba(16,185,129,0.3);text-transform:uppercase}.news-card-body{padding:12px;display:flex;flex-direction:column;flex:1;gap:6px}.card-meta-row{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:var(--text-muted)}.news-card-title{font-size:13px;font-weight:700;color:var(--text-main);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px}.news-card-desc{font-size:11.5px;color:var(--text-body);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.news-card-footer{padding:10px 12px;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;font-size:11px;background:var(--bg-subtle)}.card-author-lbl{color:var(--text-muted);display:inline-flex;align-items:center;gap:4px}.card-read-btn{color:var(--accent-green);font-weight:700;display:inline-flex;align-items:center;gap:4px;transition:var(--transition)}.news-card:hover .card-read-btn{color:var(--accent-green-hover);transform:translateX(2px)}.pagination-wrap{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-color)}.page-btn{padding:6px 12px;border-radius:var(--radius-xs);background:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-body);font-size:12px;font-weight:700;cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;justify-content:center}.page-btn:hover{background:var(--bg-hover);color:var(--text-main);border-color:var(--accent-green)}.page-btn.active{background:var(--accent-green);color:#FFFFFF;border-color:var(--accent-green);box-shadow:0 2px 8px rgba(16,185,129,0.3)}.page-btn:disabled{opacity:0.4;cursor:not-allowed}.article-reader-view{display:flex;flex-direction:column;gap:16px;animation:fadeIn 0.25s ease-in-out}@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.reader-back-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--border-color)}.btn-back-to-cards{background:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-body);font-size:12px;font-weight:700;padding:7px 14px;border-radius:var(--radius-xs);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition)}.btn-back-to-cards:hover{background:var(--accent-green);color:#FFFFFF;border-color:var(--accent-green)}.reader-cat-badge{font-size:11.5px;font-weight:700;color:var(--accent-green);background:rgba(16,185,129,0.1);padding:4px 10px;border-radius:20px;border:1px solid rgba(16,185,129,0.25)}.btn-atlas-return-mobile{font-size:12px;font-weight:800;color:#FFFFFF;background:linear-gradient(135deg,#10B981 0%,#059669 100%);padding:7px 16px;border-radius:20px;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;box-shadow:0 3px 10px rgba(16,185,129,0.35);transition:all 0.2s cubic-bezier(0.4,0,0.2,1);letter-spacing:0.1px}.btn-atlas-return-mobile:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(16,185,129,0.45);background:linear-gradient(135deg,#059669 0%,#047857 100%)}.btn-atlas-return-mobile:active{transform:translateY(0);box-shadow:0 2px 6px rgba(16,185,129,0.3)}.btn-atlas-return-mobile i{font-size:11px}@media (min-width:769px){.btn-atlas-return-mobile{display:none !important}}@media (max-width:768px){.breadcrumb-nav{display:none !important}}.btn-dossier-back-mobile{display:none;background:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-body);font-size:11.5px;font-weight:700;padding:6px 12px;border-radius:var(--radius-xs);cursor:pointer;align-items:center;gap:6px;transition:var(--transition)}.btn-dossier-back-mobile:hover{background:var(--accent-green);color:#FFFFFF;border-color:var(--accent-green)}@media (max-width:768px){.country-dossier-header{margin-top:38px;scroll-margin-top:50px}.btn-dossier-back-mobile{display:inline-flex;position:absolute;top:-38px;left:0}}@media (max-width:768px){.article-reader-view[data-atlas-dossier="1"] #readerCategoryBadge,.article-reader-view[data-atlas-dossier="1"] .btn-back-to-cards{display:none !important}.article-reader-view[data-atlas-dossier="1"] #btnBackToAtlasMobile{display:inline-flex !important}}.reader-article-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:28px 30px;display:flex;flex-direction:column;min-height:560px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}.reader-article-body{font-size:14px;line-height:1.85;color:var(--text-body);flex:1;padding-bottom:24px}.reader-article-body p{margin-bottom:18px}.reader-article-body p:last-child{margin-bottom:0}.reader-article-body p{margin-bottom:16px}.reader-article-body p:last-child{margin-bottom:0}.reader-article-title{font-size:30px;font-weight:800;color:var(--text-main);line-height:1.35;margin-top:0;margin-bottom:20px;text-align:center}.reader-meta-bar{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:12px}.reader-author-box{display:flex;align-items:center;gap:6px;font-size:11px}.reader-author-box strong{font-size:11.5px;font-weight:700}.author-avatar-md{width:24px;height:24px;border-radius:50%;background:var(--accent-blue);color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:10.5px;flex-shrink:0}.reader-stats-box{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--text-muted)}.reader-banner-img-wrap{width:100%;aspect-ratio:16/9;border-radius:var(--radius-xs);overflow:hidden;border:1px solid var(--border-color);background:var(--bg-subtle)}.reader-banner-img-wrap img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.reader-image-caption{font-size:11.5px;font-style:italic;color:var(--text-muted);line-height:1.5;text-align:center;padding:8px 4px 0;margin-bottom:16px}.reader-article-body{font-size:14px;line-height:1.85;color:var(--text-body);flex:1;padding-bottom:24px}.reader-article-body p{margin-bottom:18px}.reader-article-body p:last-child{margin-bottom:0}.reader-article-body p{margin-bottom:14px}.reader-footer-action-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;border-top:1px solid var(--border-color);margin-top:auto;flex-wrap:wrap}.reader-tags-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;min-width:0}.seo-tag-chip{background:rgba(16,185,129,0.08);border:1px solid rgba(16,185,129,0.25);color:var(--accent-green);font-size:9.5px;font-weight:700;padding:3px 8px;border-radius:10px;display:inline-flex;align-items:center;gap:3px;transition:all 0.2s ease;cursor:pointer;white-space:nowrap;line-height:1;flex-shrink:0}.seo-tag-chip:hover{background:var(--accent-green);color:#FFFFFF;border-color:var(--accent-green);transform:translateY(-1px)}.reader-share-right{display:flex;align-items:center;gap:12px;flex-shrink:0;margin-left:auto}.share-icons-wrap{display:flex;align-items:center;gap:6px}.share-lbl{font-size:11.5px;font-weight:700;color:var(--text-muted);margin-right:2px}.share-icon-btn{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#FFFFFF;font-size:11.5px;transition:var(--transition)}.share-icon-btn:hover{transform:scale(1.12)}.share-fb{background:#1877F2}.share-tw{background:#0F1419}.share-wp{background:#25D366}.share-tg{background:#229ED9}.btn-copy-link{background:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-body);font-size:11px;font-weight:700;padding:6px 12px;border-radius:var(--radius-xs);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition);white-space:nowrap}.btn-copy-link:hover{background:var(--bg-hover);color:var(--accent-green);border-color:var(--accent-green)}.comments-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:20px;display:flex;flex-direction:column;gap:16px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}.comments-head-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--border-color)}.comments-title{font-size:15px;font-weight:800;color:var(--text-main);display:flex;align-items:center;gap:6px}.comments-privacy-note{font-size:11px;color:var(--text-muted)}.comment-form-simple{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:12px}.comment-fields-3grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.comment-field-group{display:flex;flex-direction:column;gap:5px}.comment-label{font-size:11.5px;font-weight:700;color:var(--text-body);display:flex;align-items:center;gap:4px}.comment-label .req{color:var(--accent-red)}.comment-label .opt{color:var(--text-muted);font-size:10.5px;font-weight:normal}.comment-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:7px 10px;font-size:12px;color:var(--text-main);outline:none;font-family:inherit}.comment-input:focus,.comment-textarea-simple:focus,.captcha-input:focus,.auth-input:focus{border-color:var(--accent-green)}.comment-textarea-simple{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:9px 10px;font-size:12.5px;color:var(--text-main);font-family:inherit;resize:vertical;outline:none;min-height:65px}.captcha-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:4px}.captcha-box-wrap{display:flex;align-items:center;gap:6px}.captcha-badge{background:linear-gradient(135deg,#1E293B 0%,#0F172A 100%);color:#38BDF8;font-family:'Courier New',Courier,monospace;font-size:16px;font-weight:800;letter-spacing:4px;padding:6px 12px;border-radius:var(--radius-xs);border:1px solid #334155;user-select:none;text-decoration:line-through}[data-theme="light"] .captcha-badge{background:linear-gradient(135deg,#E2E8F0 0%,#CBD5E1 100%);color:#0F172A;border:1px solid #94A3B8}.btn-refresh-captcha{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);width:32px;height:32px;border-radius:var(--radius-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.btn-refresh-captcha:hover{color:var(--text-main);background:var(--bg-hover);transform:rotate(90deg)}.captcha-input-wrap{flex:1;min-width:140px}.captcha-input{width:100%;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:7px 10px;font-size:12px;color:var(--text-main);outline:none;font-family:inherit;text-transform:uppercase}.btn-send-comment{background:var(--accent-green);border:none;color:#FFFFFF;font-weight:800;font-size:12px;padding:8px 18px;border-radius:var(--radius-xs);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition);margin-left:auto}.btn-send-comment:hover{background:var(--accent-green-hover);transform:translateY(-1px)}.comments-list{display:flex;flex-direction:column;gap:12px}.comment-card-simple{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.comment-card-header{display:flex;align-items:center;justify-content:space-between}.comment-user-box{display:flex;align-items:center;gap:8px}.comment-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-green);color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11.5px}.comment-user-name{font-weight:800;color:var(--text-main);font-size:12.5px}.comment-user-handle{font-size:11px;color:var(--text-muted);font-weight:600;margin-left:4px}.comment-time-lbl{font-size:11px;color:var(--text-muted)}.comment-body-text{font-size:12.5px;line-height:1.55;color:var(--text-body)}.comment-vote-row{display:flex;align-items:center;gap:8px;padding-top:4px;border-top:1px solid rgba(255,255,255,0.05)}.btn-comment-vote{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:3px 8px;font-size:11.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:var(--transition)}.btn-comment-vote.plus{color:#10B981}.btn-comment-vote.plus:hover{background:rgba(16,185,129,0.15);border-color:#10B981}.btn-comment-vote.minus{color:#EF4444}.btn-comment-vote.minus:hover{background:rgba(239,68,68,0.15);border-color:#EF4444}.vote-num{font-weight:800;font-size:11px}.auth-modal-card{max-width:440px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.auth-field-group{display:flex;flex-direction:column;gap:4px}.auth-label{font-size:11.5px;font-weight:700;color:var(--text-body);display:flex;align-items:center;gap:5px}.auth-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:8px 12px;font-size:12.5px;color:var(--text-main);outline:none;font-family:inherit}.auth-options-row{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:var(--text-muted)}.auth-checkbox-lbl{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.auth-link{color:var(--accent-green);font-weight:600}.auth-link:hover{text-decoration:underline}.btn-auth-submit{background:var(--accent-green);border:none;color:#FFFFFF;font-weight:800;font-size:13px;padding:10px 16px;border-radius:var(--radius-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:var(--transition);margin-top:4px}.btn-auth-submit:hover{background:var(--accent-green-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,0.3)}.auth-switch-row{text-align:center;padding-top:10px;border-top:1px solid var(--border-color);font-size:12px;color:var(--text-muted)}.auth-switch-link{color:var(--accent-green);font-weight:800;margin-left:4px}.auth-switch-link:hover{text-decoration:underline}.right-col-trends{display:flex;flex-direction:column;gap:12px}.panel-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.04)}.btn-shuffle-trends{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);padding:3px 7px;border-radius:3px;font-size:10.5px;font-weight:700;cursor:pointer;transition:var(--transition)}.btn-shuffle-trends:hover{background:var(--bg-hover);color:var(--accent-gold);border-color:var(--accent-gold)}.trend-card-item:last-child{border-bottom:none}.trend-card-item:hover{background:var(--bg-subtle)}.trend-tag-pill{display:inline-block;font-size:10px;font-weight:700;color:var(--accent-green)}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(4px);z-index:999;display:none;align-items:center;justify-content:center;padding:16px}.modal-backdrop.open{display:flex}.modal-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);width:100%;max-width:640px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,0.5);animation:modalScale 0.2s ease-out}@keyframes modalScale{from{transform:scale(0.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-head{padding:12px 16px;background:var(--bg-subtle);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-head-title{font-size:13.5px;font-weight:800;color:var(--text-main);display:flex;align-items:center;gap:8px}.modal-close-btn{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer}.modal-close-btn:hover{color:var(--text-main)}.modal-body{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.region-group-block{display:flex;flex-direction:column;gap:6px}.region-block-title{font-size:11px;font-weight:800;color:var(--accent-green);text-transform:uppercase;letter-spacing:0.5px}.region-country-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.country-modal-chip{background:var(--bg-input);border:1px solid var(--border-color);padding:6px 8px;border-radius:var(--radius-xs);font-size:11.5px;color:var(--text-body);display:flex;align-items:center;gap:6px;cursor:pointer;transition:var(--transition)}.country-modal-chip:hover{background:var(--bg-hover);color:#FFFFFF;border-color:var(--accent-green)}.site-footer{background:var(--bg-header);border-top:1px solid var(--border-color);padding:40px 0 24px 0;font-size:12.5px;color:var(--text-muted);margin-top:48px;line-height:1.6}.footer-grid-layout{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;padding-bottom:28px;border-bottom:1px solid var(--border-color)}.footer-col-brand{display:flex;flex-direction:column;gap:12px}.footer-logo-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none}.footer-logo-icon{width:28px;height:28px;background:linear-gradient(135deg,#8A0E1A 0%,#5E0912 100%);color:#FFFFFF;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px}.footer-logo-text{font-family:'Space Grotesk',sans-serif;font-size:16px;font-weight:700;color:var(--text-main);letter-spacing:-0.4px}.footer-logo-text span{color:#9E1220}[data-theme="dark"] .footer-logo-text span{color:#E11D48}.footer-brand-desc{font-size:12px;color:var(--text-muted);line-height:1.6;max-width:360px;margin:0}.footer-social-row{display:flex;align-items:center;gap:10px;margin-top:4px}.footer-social-btn{width:32px;height:32px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);text-decoration:none;font-size:13px;transition:all 0.2s ease}.footer-social-btn:hover{background:var(--accent-green);color:#ffffff;border-color:var(--accent-green);transform:translateY(-2px)}.footer-col-title{font-size:13px;font-weight:700;color:var(--text-main);margin:0 0 14px 0;display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:0.5px}.footer-links-2col{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 14px}.footer-links-2col a,.footer-legal-grid a{color:var(--text-muted);text-decoration:none;font-size:12px;transition:color 0.15s ease,transform 0.15s ease;display:inline-flex;align-items:center;gap:6px}.footer-links-2col a:hover,.footer-legal-grid a:hover{color:var(--accent-green);transform:translateX(2px)}.footer-legal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 14px}.footer-bottom-bar{display:flex;align-items:center;justify-content:space-between;padding-top:20px;flex-wrap:wrap;gap:14px}.footer-stats-pill{display:inline-flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border-color);padding:6px 14px;border-radius:20px;font-size:11.5px;color:var(--text-muted)}.footer-stats-pill strong{color:var(--text-main);font-weight:700}.pill-divider{color:var(--border-color);font-size:10px}.footer-copyright-text{font-size:11.5px;color:var(--text-muted)}.footer-copyright-text strong{color:var(--text-main)}.legal-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(4px);z-index:2147483647;display:none;align-items:center;justify-content:center;padding:20px}.legal-modal-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:680px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 40px rgba(0,0,0,0.5);animation:modalFadeIn 0.2s ease}.legal-modal-head{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.legal-modal-title{font-size:15px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:8px}.legal-modal-body{padding:24px;overflow-y:auto;font-size:13px;line-height:1.7;color:var(--text-main)}.legal-modal-body h4{font-size:13.5px;color:var(--accent-green);margin:16px 0 6px 0;font-weight:700}.legal-modal-body h4:first-child{margin-top:0}.legal-modal-body p,.legal-modal-body ul{color:var(--text-muted);margin-bottom:12px}.legal-modal-body ul{padding-left:20px}@media (max-width:992px){.footer-grid-layout{grid-template-columns:1fr 1fr;gap:30px}.footer-col-brand{grid-column:1 / -1}}@media (max-width:600px){.footer-grid-layout{grid-template-columns:1fr;gap:24px}.footer-links-2col,.footer-legal-grid{grid-template-columns:1fr}.footer-bottom-bar{flex-direction:column;align-items:center;text-align:center}.footer-stats-pill{width:100%;overflow-x:auto;white-space:nowrap;justify-content:space-between}.footer-col-brand,.footer-col-nav,.footer-col-legal{text-align:center}.footer-logo-link,.footer-social-row{justify-content:center}.footer-col-title{justify-content:center}.footer-links-2col a,.footer-legal-grid a{justify-content:center}}@media (max-width:1150px){.country-cards-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:1024px){.main-content-grid{grid-template-columns:180px minmax(0,1fr)}.right-col-trends{display:none}}@media (max-width:768px){.main-content-grid{grid-template-columns:1fr}.left-col-countries{display:none}.country-cards-grid{grid-template-columns:1fr}.region-country-grid{grid-template-columns:repeat(2,1fr)}.category-tabs-bar{overflow-x:auto}.category-tab-btn{flex:0 0 auto;padding:8px 12px}.comment-fields-3grid{grid-template-columns:1fr}.auth-grid-2{grid-template-columns:1fr}.reader-footer-action-bar{flex-direction:column;align-items:flex-start;margin-top:auto}}.table-pagination-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-subtle);border-top:1px solid var(--border-color);font-size:11.5px;flex-wrap:wrap;gap:8px}.table-pagination-btns{display:flex;align-items:center;gap:4px}.table-page-btn{padding:4px 9px;border-radius:var(--radius-xs);background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-body);font-size:11px;font-weight:700;cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;justify-content:center}.table-page-btn:hover{background:var(--bg-hover);color:var(--text-main);border-color:var(--accent-green)}.table-page-btn.active{background:var(--accent-green);color:#FFFFFF;border-color:var(--accent-green);box-shadow:0 2px 6px rgba(16,185,129,0.3)}.table-page-btn:disabled{opacity:0.4;cursor:not-allowed}.table-page-info{color:var(--text-muted);font-size:11px;font-weight:600}.category-archive-modal-card{max-width:860px;width:95%;max-height:88vh}.category-archive-modal-card .feed-table th{padding:8px 10px}.category-archive-modal-card .feed-table td{padding:8px 12px;border-bottom:1px solid var(--border-color);color:var(--text-body)}.related-articles-list{display:flex;flex-direction:column}.related-article-item{padding:10px 12px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:var(--transition)}.related-article-item:last-child{border-bottom:none}.related-article-item:hover{background:var(--bg-subtle)}.related-img-wrap{width:100%;height:95px;border-radius:var(--radius-xs);overflow:hidden;position:relative;background:#080D14}.related-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.3s ease}.related-article-item:hover .related-img-wrap img{transform:scale(1.05)}.related-badge{position:absolute;top:6px;left:6px;background:rgba(15,23,42,0.85);backdrop-filter:blur(4px);color:var(--accent-green);font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:3px;border:1px solid rgba(16,185,129,0.3)}.related-content{display:flex;flex-direction:column;gap:4px}.related-title{font-size:11.5px;font-weight:700;color:var(--text-main);line-height:1.35;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.related-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--text-muted)}.latest-news-list{display:flex;flex-direction:column}.latest-news-item{padding:10px 12px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:var(--transition)}.latest-news-item:last-child{border-bottom:none}.latest-news-item:hover{background:var(--bg-subtle)}.latest-news-thumb-wrap{width:100%;height:90px;border-radius:var(--radius-xs);overflow:hidden;position:relative;background:#080D14}.latest-news-thumb-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.3s ease}.latest-news-item:hover .latest-news-thumb-wrap img{transform:scale(1.05)}.latest-news-badge{position:absolute;top:6px;left:6px;background:rgba(15,23,42,0.85);backdrop-filter:blur(4px);color:var(--accent-green);font-size:9.5px;font-weight:800;padding:1.5px 6px;border-radius:3px;border:1px solid rgba(16,185,129,0.3)}.latest-news-title{font-size:11.5px;font-weight:700;color:var(--text-main);line-height:1.35;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.latest-news-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--text-muted)}.latest-pagination-row{display:flex;align-items:center;justify-content:center;gap:4px;padding:8px 10px;background:var(--bg-subtle);border-top:1px solid var(--border-color)}.trend-card-item{padding:11px 12px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:var(--transition);display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}.trend-card-item:last-child{border-bottom:none}.trend-card-item:hover{background:var(--bg-subtle)}.trend-meta-head{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:9.5px;font-weight:800;color:var(--accent-gold);text-transform:uppercase;margin-bottom:2px}.trend-country-badge{color:var(--accent-green);font-size:9.5px;font-weight:800}.trend-card-title{font-size:11.5px;font-weight:700;color:var(--text-main);line-height:1.35;text-align:center;width:100%}.trend-card-desc{font-size:10.5px;color:var(--text-body);line-height:1.45;text-align:center;width:100%;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;padding:4px 6px;color:var(--text-muted);font-size:11.5px;font-weight:800;user-select:none}.panel-header-row{display:flex;align-items:center;justify-content:center;padding:11px 8px;border-bottom:1px solid var(--border-color);background:var(--bg-subtle);width:100%}.panel-title{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:10.5px;font-weight:800;color:var(--text-main);letter-spacing:0px;text-transform:uppercase;white-space:nowrap;width:100%;text-align:center}.panel-title i{font-size:13.5px}body,.panel-card,.feed-table-card,.reader-article-card,.modal-card,.btn-auth,.category-tabs-bar{transition:color 0s,background 0s,border-color 0s !important}html.theme-instant,html.theme-instant *,html.theme-instant *::before,html.theme-instant *::after{transition:none !important}body{transition:none}.table-more-row{text-align:center;padding:7px 16px;background:var(--bg-subtle);border-top:1px solid var(--border-color);margin-top:auto}.table-more-row a{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:800;letter-spacing:0.4px;color:var(--accent-green);text-transform:uppercase;text-decoration:none;transition:var(--transition)}.table-more-row a:hover{color:var(--accent-green-hover);transform:translateX(2px)}.table-more-row a i{font-size:11px}.breadcrumb-nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:16px;padding:8px 14px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-xs)}.breadcrumb-nav a{color:var(--text-body);text-decoration:none;transition:color 0.15s}.breadcrumb-nav a:hover{color:var(--accent-green)}.breadcrumb-sep{color:var(--text-muted);font-size:10px;opacity:0.6}.breadcrumb-current{color:var(--accent-green);font-weight:700}.modal-backdrop{position:fixed !important;top:0 !important;left:0 !important;right:0 !important;bottom:0 !important;background:rgba(0,0,0,0.78) !important;backdrop-filter:blur(5px) !important;-webkit-backdrop-filter:blur(5px) !important;display:none !important;align-items:center !important;justify-content:center !important;z-index:999999 !important;padding:16px !important}.modal-backdrop.open{display:flex !important}.modal-dialog-large,.modal-card-large{width:95% !important;max-width:960px !important;max-height:88vh !important;background:var(--bg-card) !important;border:1px solid var(--border-color) !important;border-radius:12px !important;box-shadow:0 20px 60px rgba(0,0,0,0.45) !important;display:flex !important;flex-direction:column !important;overflow:hidden !important;animation:modalScale 0.2s ease-out !important;margin:auto !important}.modal-dialog-sm,.modal-card-sm{width:90% !important;max-width:420px !important;background:var(--bg-card) !important;border:1px solid var(--border-color) !important;border-radius:12px !important;box-shadow:0 20px 60px rgba(0,0,0,0.45) !important;display:flex !important;flex-direction:column !important;overflow:hidden !important;animation:modalScale 0.2s ease-out !important;margin:auto !important}.modal-header-bar,.modal-head{display:flex !important;justify-content:space-between !important;align-items:center !important;padding:16px 24px !important;background:var(--bg-card) !important;border-bottom:1px solid var(--border-color) !important;flex-shrink:0 !important}.modal-header-title,.modal-head-title{font-size:15px !important;font-weight:800 !important;color:var(--text-main) !important;display:flex !important;align-items:center !important;gap:8px !important}.modal-close-btn{background:var(--bg-input) !important;border:1px solid var(--border-color) !important;border-radius:50% !important;width:32px !important;height:32px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;color:var(--text-muted) !important;cursor:pointer !important;font-size:14px !important;transition:all 0.2s ease !important}.modal-close-btn:hover{color:var(--accent-red) !important;border-color:var(--accent-red) !important;transform:rotate(90deg) !important}.modal-body-scroll{padding:20px 24px !important;overflow-y:auto !important;flex:1 !important;display:flex !important;flex-direction:column !important;gap:16px !important;background:var(--bg-card) !important}.modal-footer-bar{padding:14px 24px !important;background:var(--bg-card) !important;border-top:1px solid var(--border-color) !important;display:flex !important;justify-content:space-between !important;align-items:center !important;flex-wrap:wrap !important;gap:10px !important;flex-shrink:0 !important}.modal-region-group{background:var(--bg-input) !important;border:1px solid var(--border-color) !important;border-radius:8px !important;padding:14px 16px !important}.modal-region-title{font-size:12px !important;font-weight:800 !important;color:var(--accent-green) !important;margin-bottom:10px !important;text-transform:uppercase !important;letter-spacing:0.5px !important;display:flex !important;align-items:center !important;gap:6px !important}.modal-country-chips-row{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(135px,1fr)) !important;gap:8px !important}.country-modal-chip{display:flex !important;align-items:center !important;gap:8px !important;padding:8px 12px !important;background:var(--bg-card) !important;border:1px solid var(--border-color) !important;border-radius:6px !important;color:var(--text-main) !important;font-size:12px !important;font-weight:600 !important;text-decoration:none !important;cursor:pointer !important;transition:all var(--trans-fast) !important}.country-modal-chip:hover{border-color:var(--accent-green) !important;background:var(--accent-green-bg) !important;color:var(--accent-green) !important;transform:translateY(-1px) !important}a.news-card{text-decoration:none !important;color:inherit !important;display:flex !important;flex-direction:column !important}.search-bar-wrap{position:relative}.portal-search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#0B131D;border:1px solid var(--border-color);border-radius:var(--radius-sm,6px);box-shadow:0 12px 32px rgba(0,0,0,0.6);z-index:9999;display:none;max-height:400px;overflow-y:auto}[data-theme="light"] .portal-search-dropdown{background:#ffffff;border-color:#CBD5E1;box-shadow:0 12px 32px rgba(0,0,0,0.15)}.portal-search-dropdown.open{display:block}.search-drop-group{padding:8px 12px 4px;font-size:11px;font-weight:800;color:var(--accent-green);text-transform:uppercase;letter-spacing:0.5px;border-bottom:1px solid rgba(255,255,255,0.05)}.search-drop-item{display:flex;align-items:center;gap:10px;padding:10px 14px;color:var(--text-main);text-decoration:none;font-size:12.5px;cursor:pointer;transition:background 0.15s ease;border-bottom:1px solid rgba(255,255,255,0.03)}.search-drop-item:hover{background:rgba(16,185,129,0.1);color:var(--accent-green)}.search-drop-item .drop-badge{font-size:10.5px;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,0.08);font-weight:700}.comments-header-flex{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}.comments-sort-group{display:flex;align-items:center;gap:6px;font-size:12px}.btn-comment-sort{background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-muted);padding:5px 10px;border-radius:4px;font-size:11.5px;font-weight:600;cursor:pointer;transition:all 0.15s ease}.btn-comment-sort.active,.btn-comment-sort:hover{background:rgba(16,185,129,0.15);color:var(--accent-green);border-color:var(--accent-green)}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text-muted);font-weight:700;font-size:13px;user-select:none}.ad-slot-box{background:linear-gradient(135deg,#0F172A 0%,#1E293B 100%);border:1px dashed var(--border-color);border-radius:var(--radius-sm,6px);padding:16px 14px;text-align:center;position:relative;transition:all 0.2s ease;overflow:hidden}[data-theme="light"] .ad-slot-box{background:linear-gradient(135deg,#F8FAFC 0%,#F1F5F9 100%);border-color:#CBD5E1}.ad-slot-box:hover{border-color:var(--accent-green);box-shadow:0 4px 14px rgba(16,185,129,0.1)}.ad-slot-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.ad-slot-badge{font-size:9px;font-weight:800;color:var(--accent-green);background:rgba(16,185,129,0.12);border:1px solid rgba(16,185,129,0.25);padding:2px 6px;border-radius:3px;letter-spacing:0.5px;margin-bottom:6px;display:inline-block}.ad-slot-title{font-size:12.5px;font-weight:800;color:var(--text-main);margin-bottom:3px}.ad-slot-sub{font-size:11px;color:var(--text-muted);font-weight:500}.ad-slot-img{width:100%;height:auto;border-radius:4px;object-fit:cover;aspect-ratio:var(--ad-slot-ratio,auto)}.ad-banner-horizontal,.ad-reader-box{background:linear-gradient(135deg,#0B131D 0%,#111C2B 100%);border:1px dashed var(--border-color);border-radius:var(--radius-sm,6px);margin:14px 0;padding:12px 18px;transition:all 0.2s ease}[data-theme="light"] .ad-banner-horizontal,[data-theme="light"] .ad-reader-box{background:linear-gradient(135deg,#F8FAFC 0%,#F1F5F9 100%);border-color:#CBD5E1}.ad-banner-horizontal:hover,.ad-reader-box:hover{border-color:var(--accent-green);box-shadow:0 4px 14px rgba(16,185,129,0.1)}.ad-banner-link,.ad-reader-link{text-decoration:none;color:inherit;display:flex;align-items:center;gap:14px}.ad-banner-content,.ad-reader-content{flex:1;display:flex;flex-direction:column;gap:2px}.ad-banner-content strong,.ad-reader-content strong{font-size:13px;color:var(--text-main);font-weight:700}.ad-banner-content span,.ad-reader-content span{font-size:11.5px;color:var(--text-muted)}.ad-banner-icon{font-size:13px;color:var(--accent-green);opacity:0.8}.modal-body-pad{padding:22px 24px !important;background:var(--bg-card) !important;display:flex !important;flex-direction:column !important}.form-group-modal{display:flex !important;flex-direction:column !important;gap:6px !important;margin-bottom:14px !important}.form-label-modal{font-size:12px !important;font-weight:700 !important;color:var(--text-main) !important;display:flex !important;align-items:center !important;gap:4px !important}.form-label-modal .opt{font-size:11px !important;font-weight:500 !important;color:var(--text-muted) !important}.form-input-modal{width:100% !important;padding:10px 14px !important;background:var(--bg-input) !important;border:1px solid var(--border-color) !important;border-radius:6px !important;color:var(--text-main) !important;font-size:13px !important;font-family:inherit !important;transition:border-color 0.2s ease,box-shadow 0.2s ease !important;box-sizing:border-box !important}.form-input-modal:focus{outline:none !important;border-color:var(--accent-green,#10B981) !important;box-shadow:0 0 0 3px rgba(16,185,129,0.15) !important}.captcha-row-modal{display:flex !important;align-items:center !important;gap:10px !important;margin-bottom:14px !important}.captcha-box-wrap{display:flex !important;align-items:center !important;gap:6px !important}.captcha-badge{background:#0B131D !important;border:1px solid #1E293B !important;color:#10B981 !important;font-weight:800 !important;font-size:14px !important;letter-spacing:3px !important;padding:8px 14px !important;border-radius:6px !important;user-select:none !important;font-family:monospace !important}.btn-refresh-captcha{background:var(--bg-input) !important;border:1px solid var(--border-color) !important;color:var(--text-muted) !important;width:34px !important;height:34px !important;border-radius:6px !important;display:flex !important;align-items:center !important;justify-content:center !important;cursor:pointer !important;transition:all 0.2s ease !important}.btn-refresh-captcha:hover{color:var(--accent-green) !important;border-color:var(--accent-green) !important;transform:rotate(180deg) !important}.captcha-input-modal{flex:1 !important;padding:9px 12px !important;background:var(--bg-input) !important;border:1px solid var(--border-color) !important;border-radius:6px !important;color:var(--text-main) !important;font-size:13px !important;font-family:monospace !important;letter-spacing:1.5px !important;text-transform:uppercase !important;box-sizing:border-box !important}.captcha-input-modal:focus{outline:none !important;border-color:var(--accent-green) !important;box-shadow:0 0 0 3px rgba(16,185,129,0.15) !important}.terms-check-row{display:flex !important;align-items:center !important;gap:8px !important;margin-bottom:14px !important;font-size:12px !important;color:var(--text-muted) !important}.terms-check-row input[type="checkbox"]{accent-color:var(--accent-green) !important;width:15px !important;height:15px !important;cursor:pointer !important}.terms-check-row a{color:var(--accent-green) !important;text-decoration:underline !important}.mobile-search-close-btn{display:none;background:none;border:none;color:var(--text-muted);font-size:15px;cursor:pointer;padding:0 2px;flex-shrink:0}@media (max-width:768px){.btn-auth-label{display:none}.btn-auth{padding:7px 9px}.header-actions{order:2;gap:6px}#headerUserActions{gap:6px !important}.search-bar-wrap{order:3;flex:0 0 auto;max-width:none;width:32px;height:32px;position:relative}.search-input{display:none}.search-bar-wrap:not(.mobile-search-active) .search-btn{position:absolute;top:0;right:0;left:auto;transform:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);border:1px solid var(--border-color);color:var(--text-muted)}.search-bar-wrap.mobile-search-active{position:fixed;top:0;left:0;right:0;width:auto;height:52px;background:var(--bg-header);display:flex;align-items:center;gap:8px;padding:0 16px;z-index:150;box-shadow:0 1px 3px rgba(0,0,0,0.08)}.search-bar-wrap.mobile-search-active .search-input{display:block;flex:1;max-width:none}.search-bar-wrap.mobile-search-active .search-btn{position:static;transform:none;flex-shrink:0}.search-bar-wrap.mobile-search-active .mobile-search-close-btn{display:inline-flex;align-items:center;justify-content:center}.search-bar-wrap.mobile-search-active .portal-search-dropdown{top:52px}}.btn-submit-modal{width:100% !important;padding:11px 16px !important;background:var(--accent-green,#10B981) !important;color:#ffffff !important;border:none !important;border-radius:6px !important;font-size:13.5px !important;font-weight:700 !important;cursor:pointer !important;transition:all 0.2s ease !important;display:flex !important;align-items:center !important;justify-content:center !important;gap:8px !important;box-shadow:0 4px 14px rgba(16,185,129,0.25) !important;box-sizing:border-box !important}.btn-submit-modal:hover{background:#059669 !important;transform:translateY(-1px) !important;box-shadow:0 6px 18px rgba(16,185,129,0.35) !important}.modal-switch-text{text-align:center !important;font-size:12px !important;color:var(--text-muted) !important;margin-top:12px !important}.modal-switch-text a{color:var(--accent-green) !important;font-weight:700 !important;text-decoration:none !important}.modal-switch-text a:hover{text-decoration:underline !important}

/* ==========================================================================
   ASIA SCROLLS - VERIFIED MOBILE COMPATIBILITY PATCH (Using Real DOM Selectors)
   ========================================================================== */

/* 1. Page-Level Horizontal Overflow Protection */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
  width: 100% !important;
  position: relative;
}

img, video {
  max-width: 100%;
  height: auto;
}

/* 2. Header & Search Bar Using Real DOM Classes (<640px) */
@media (max-width: 640px) {
  .header-flex-row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: auto !important;
    min-height: 52px !important;
    padding: 8px 12px !important;
    gap: 6px !important;
  }

  .logo-area {
    order: 1 !important;
    flex-shrink: 0 !important;
    font-size: 17px !important;
  }

  .header-actions {
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin-left: auto !important;
    flex-shrink: 0 !important;
  }

  #headerUserActions {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
  }

  .btn-auth {
    padding: 5px 9px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
  }

  .theme-toggle-btn {
    width: 30px !important;
    height: 30px !important;
    font-size: 12px !important;
  }

  /* Collapsed (closed) search: icon only, to the RIGHT of the sign-up button,
     fixed size + position:relative to prevent overlap */
  .search-bar-wrap {
    order: 3 !important;
    flex: 0 0 auto !important;
    width: 32px !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    position: relative !important;
  }

  /* When search is opened (mobile-search-active), it should take up full screen/full width */
  .search-bar-wrap.mobile-search-active {
    order: 3 !important;
    width: auto !important;
    flex: 1 1 100% !important;
    margin: 0 !important;
  }

  .search-input {
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* 3. Horizontal Scrolling Inside the Main News Feed Table Card */
.feed-table-card {
  width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

/* 3b. Phase 36 (v44.7) — Performance Report Item 5: CLS Reduction (Skeleton/min-height)
   Root cause: renderMainFeedTable() (js/app.src.js) re-writes #feedTableBody on the
   client side once more after the page loads (even though it now arrives pre-filled
   via SSR); since no space was reserved beforehand for the .feed-table-card that
   holds the table, the card could suddenly grow or shrink at moments where the row
   count/height changes (e.g. transitioning from an empty-category message to the
   full list, or a filter change), contributing to Cumulative Layout Shift (CLS
   0.265). Fix: a min-height baseline close to the combined height of the header +
   up to 10 rows + the "See All" footer row was reserved for the card; this value
   NEVER clips content (min-height, not height) — it simply stops the card from
   shrinking below this value, preventing the jump. The 768px media query below
   PREVIOUSLY overrode min-height with "auto" (!important) — meaning this kind of
   fix could never take effect in the mobile view where the actual CLS measurement
   is taken; because mobile row padding (padding: 8px 10px) is larger than desktop's,
   a separate, larger min-height value was given for mobile.
   Note: these values were calculated from CSS metrics; once live, they should be
   measured with PageSpeed Insights/Lighthouse and fine-tuned if needed.

   PHASE 149 (v44.158) NOTE — User Finding (Recurring Alignment Issue):
   This 330px value is only a CLS baseline for the initial paint and was
   DELIBERATELY left in place. However, the actual pixel-perfect alignment with the
   "Asia Countries Atlas" box in the left column is no longer determined by this
   fixed number — it's now determined by
   js/app.src.js:syncFeedTableCardHeightToSidebar(). That function measures the real
   height of the left-hand box every time the page data is rendered and writes the
   correct min-height inline onto .feed-table-card (overriding this rule via
   setProperty(...,'important')). So don't try to "fix" this 330px by hand in the
   future — the root cause of the original problem was that this fixed number never
   matched the left column's actual height 1:1 (see the related comment in
   js/app.src.js). */
.feed-table-card {
  min-height: 330px !important;
}

@media (max-width: 768px) {
  .feed-table-card {
    height: auto !important;
    min-height: 420px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .feed-table {
    min-width: 580px !important;
    width: 100% !important;
  }

  .feed-table th, .feed-table td {
    padding: 8px 10px !important;
  }
}

/* 4. Table Scroll Support for the Archive and Category Modal */
.table-wrap-responsive {
  width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  margin-bottom: 10px !important;
}

.table-wrap-responsive table {
  min-width: 580px !important;
  width: 100% !important;
}

/* 5. Category Tabs Touch Horizontal Scroll & Aesthetic Scrollbar */
.category-tabs-bar {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  white-space: nowrap !important;
}

.category-tabs-bar::-webkit-scrollbar {
  display: none !important;
}

/* 6. Live Market & Crypto Ticker Overflow Protection */
.live-market-ticker-bar {
  overflow: hidden !important;
  width: 100% !important;
  max-width: 100vw !important;
}

.ticker-track-anim {
  display: flex !important;
  white-space: nowrap !important;
}

/* 7. Mobile Grid and Sidebar Layout Safety */
@media (max-width: 992px) {
  .main-content-grid {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
  }

  .left-col-countries, .right-col-trends {
    width: 100% !important;
    max-width: 100% !important;
  }

  .center-col-feed {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* W3C & Google Compliant Accessible SEO Heading Class */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
#categoryArchiveModal .modal-dialog-large{max-width:1040px !important;max-height:92vh !important}

/* Phase 45 (v44.16) — Font Awesome 6.4.0 font-display: swap override.
   Since we can't modify the cdnjs CSS directly, we add our own @font-face
   definitions with the same font-family/weight/style/src and apply only the
   font-display difference. The glyph contents/icon set remain unchanged. */
@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/webfonts/fa-solid-900.woff2) format("woff2"),
       url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/webfonts/fa-solid-900.ttf) format("truetype");
}
@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/webfonts/fa-regular-400.woff2) format("woff2"),
       url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/webfonts/fa-regular-400.ttf) format("truetype");
}
@font-face {
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/webfonts/fa-brands-400.woff2) format("woff2"),
       url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/webfonts/fa-brands-400.ttf) format("truetype");
}

/* Phase 46 (v44.17) — CLS fix: the main showcase (#countryCardsGrid), the trending
   table (#feedTableBody) and pagination (#countryCardsPagination) were completely
   empty until JS delivered the data, so after the page loaded they would grow and
   push the <footer class="site-footer"> below them downward (PSI: "Layout shift
   culprits" panel, CLS 0.169 — entirely attributed to this footer). The min-height
   rules below reserve roughly the final size before JS fills in the content,
   preventing the shift.
   The card-shuffling logic (Math.random()) is left untouched — it's kept as-is
   because it's a deliberate product decision.
   Note: #latestNewsContainer / #latestNewsPagination (the right-hand "Latest
   Shared" panel) was left out of scope because .right-col-trends is already
   display:none under max-width:1024px (including mobile) — so it contributes
   nothing to the mobile CLS measurement. */
/* [FIX] A side effect Phase 46 overlooked: #countryCardsGrid is a CSS Grid
   container and align-content was never set (defaulting to 'normal'). In Grid,
   this distributes the empty space coming from min-height across the auto-sized
   rows and stretches them (per spec: align-content:normal behaves like stretch in
   a grid). When a low-result category/page arrived with a single row instead of
   the full 12-card showcase (e.g. 3 cards), that single row would stretch up to
   1180px and the cards would appear as empty white space inside. The min-height
   values are kept as-is for CLS protection; the align-content:start line added to
   .country-cards-grid pins the rows to the top and prevents the stretching — the
   extra space now stays BELOW the grid block instead of INSIDE the cards. */
#feedTableBody{min-height:250px;display:table-row-group}
#countryCardsPagination{min-height:34px}
#countryCardsGrid{min-height:1180px}
@media (max-width:1150px){#countryCardsGrid{min-height:1780px}}
@media (max-width:768px){#countryCardsGrid{min-height:3560px}}

/* ==========================================================================
   ASIA SCROLLS - COOKIE CONSENT MANAGEMENT (Phase 69 / v44.44 — extended in
   Phase 84 / v44.60)
   The banner shown to every visitor + the category rows and toggle/switch
   component in the preferences modal. Tied to the existing variables, light/dark
   theme compatible. The pastel color palette + three new features (forced
   policy_version re-consent, DNT note, persistent corner button) that were
   designed in a previous round in Phase 84 (in a separate session in this
   environment) but never integrated into this version were completed and
   re-integrated here, based on v44.59; the banner/modal now stands apart from
   the rest of the site's --accent-green with its own soft pastel lilac tone.
   ========================================================================== */
.cookie-consent-banner{position:fixed;left:0;right:0;z-index:99998;display:flex;justify-content:center;padding:14px 16px;opacity:0;transform:translateY(16px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}
.cookie-consent-banner.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.cookie-consent-bottom{bottom:0}
.cookie-consent-top{top:0}
.cookie-consent-inner{width:100%;max-width:1100px;background:var(--bg-card);border:1px solid var(--border-color);border-top:3px solid var(--cookie-accent);border-radius:12px;box-shadow:0 12px 34px rgba(0,0,0,0.35);padding:16px 18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cookie-consent-icon{width:38px;height:38px;flex-shrink:0;border-radius:10px;background:var(--cookie-accent-soft);color:var(--cookie-accent);display:flex;align-items:center;justify-content:center;font-size:16px}
.cookie-consent-copy{flex:1 1 320px;min-width:0}
.cookie-consent-copy strong{display:block;font-size:13.5px;color:var(--text-main);margin-bottom:3px}
.cookie-consent-copy p{margin:0;font-size:12px;line-height:1.55;color:var(--text-muted)}
.cookie-consent-update-note{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:11px;font-weight:700;color:var(--cookie-accent)}
.cookie-consent-dnt-note{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:11px;color:var(--text-muted)}
.cookie-consent-dnt-note i{color:var(--cookie-accent)}
.cookie-consent-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}
.btn-cookie-manage,.btn-cookie-reject,.btn-cookie-accept{border-radius:var(--radius-xs);font-size:12px;font-weight:700;padding:9px 14px;cursor:pointer;transition:var(--transition);white-space:nowrap;border:1px solid var(--border-color)}
.btn-cookie-manage{background:var(--bg-subtle);color:var(--text-body)}
.btn-cookie-manage:hover{background:var(--bg-hover);color:var(--text-main)}
.btn-cookie-reject{background:transparent;color:var(--text-body)}
.btn-cookie-reject:hover{background:var(--bg-subtle);color:var(--text-main)}
.btn-cookie-accept{background:var(--cookie-accent);color:#FFFFFF;border-color:var(--cookie-accent)}
.btn-cookie-accept:hover{background:var(--cookie-accent-hover);border-color:var(--cookie-accent-hover)}
.cookie-prefs-card{max-width:520px}
.cookie-prefs-card .legal-modal-head{background:linear-gradient(135deg,var(--cookie-gradient-from) 0%,var(--cookie-gradient-to) 100%);border-bottom-color:var(--cookie-accent-soft)}
.cookie-prefs-card .legal-modal-title i{color:var(--cookie-accent)}
.cookie-pref-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 10px;border-bottom:1px solid var(--border-color);border-radius:8px;transition:background .15s ease}
.cookie-pref-row:hover{background:var(--cookie-accent-soft)}
.cookie-pref-row:last-of-type{border-bottom:none}
.cookie-pref-info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.cookie-pref-info strong{font-size:12.5px;color:var(--text-main);font-weight:700}
.cookie-pref-info span{font-size:11.5px;color:var(--text-muted);line-height:1.5}
.cookie-consent-last-decision{font-size:10.5px;color:var(--text-muted);text-align:right;padding:0 4px;margin-top:-4px}
.cookie-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}
.cookie-switch input{opacity:0;width:0;height:0}
.cookie-switch-slider{position:absolute;cursor:pointer;inset:0;background:var(--bg-hover);border-radius:22px;transition:var(--transition)}
.cookie-switch-slider::before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;background:#FFFFFF;border-radius:50%;transition:var(--transition)}
.cookie-switch input:checked + .cookie-switch-slider{background:var(--cookie-accent)}
.cookie-switch input:checked + .cookie-switch-slider::before{transform:translateX(18px)}
.cookie-switch input:disabled + .cookie-switch-slider{opacity:.6;cursor:not-allowed}
.cookie-prefs-footer{padding:14px 20px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.js-cookie-prefs-link{cursor:pointer}
.js-cookie-prefs-link:hover{color:var(--cookie-accent)}
.cookie-float-btn{position:fixed;left:18px;bottom:18px;width:46px;height:46px;border-radius:50%;background:var(--cookie-accent);color:#FFFFFF;border:none;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;z-index:9997;box-shadow:0 6px 18px rgba(0,0,0,0.28);transition:var(--transition);opacity:0;transform:translateY(10px) scale(.9);pointer-events:none}
.cookie-float-btn.visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.cookie-float-btn:hover{background:var(--cookie-accent-hover);transform:translateY(-2px) scale(1.05)}
@media (max-width:600px){.cookie-consent-inner{flex-direction:column;align-items:stretch;text-align:left}.cookie-consent-actions{justify-content:stretch}.cookie-consent-actions button{flex:1}.cookie-float-btn{left:12px;bottom:12px;width:42px;height:42px;font-size:16px}}

/* ==========================================================================
   ASIA SCROLLS - CATEGORY TABS (TOP-CENTER MENU) MOBILE REDESIGN
   The previous mobile patch only enabled horizontal scrolling (overflow-x:auto);
   the tabs still appeared as a single unbroken strip with vertical dividers, just
   like on desktop, with no visual hint that they were scrollable and small touch
   targets. This block only kicks in on screens below 640px; it never touches the
   desktop/tablet view. The tabs now turn into individual, rounded "pill" buttons
   with spacing between them; a fixed fading shadow on the right edge visually
   signals that there are more tabs; scroll-snap makes the scroll settle cleanly
   from one tab to the next. */
@media (max-width: 640px) {
  .category-tabs-bar {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    gap: 8px !important;
    padding: 2px 28px 8px 2px !important;
    position: relative !important;
    scroll-snap-type: x proximity !important;
  }

  .category-tab-btn {
    flex: 0 0 auto !important;
    border-right: none !important;
    background: var(--bg-subtle) !important;
    color: var(--text-body) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 20px !important;
    padding: 10px 16px !important;
    font-size: 12.5px !important;
    box-shadow: none !important;
    scroll-snap-align: start !important;
  }

  .category-tab-btn:hover {
    background: var(--bg-hover) !important;
    color: var(--text-main) !important;
  }

  .category-tab-btn.active {
    background: #0284C7 !important;
    color: #FFFFFF !important;
    border-color: #0284C7 !important;
    font-weight: 800 !important;
    box-shadow: 0 3px 10px rgba(2, 132, 199, 0.35) !important;
  }

  /* Right-edge shadow signaling that there are more tabs. It automatically matches
     the page background color (--bg-page) for the light/dark theme, so it feels
     like a natural "fade-out" rather than a hard, card-like cutoff. */
  .category-tabs-bar::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 8px;
    width: 34px;
    background: linear-gradient(90deg, transparent, var(--bg-page) 80%);
    pointer-events: none;
  }
}

/* ==========================================================================
   ASIA SCROLLS — MOBILE CATEGORY MENU "MORE" DROPDOWN PANEL
   The previous patch (the block above) enabled horizontal scrolling for the tabs,
   but all 8 tabs still stayed in a single strip, and the rightmost ones didn't fit
   on screen. Below 640px, this block gathers the last 4 tabs (Culture & Art,
   Diplomacy, Defense Industry, Technology) — moved in the HTML into
   "categoryTabsMorePanel" — into a dropdown menu; the first 4 tabs + the "More"
   button now fit on a single line without needing to scroll. The panel uses
   position:fixed (so it isn't affected/clipped by the top menu's
   overflow-x:auto), and its position is calculated by a small script in
   index.html based on the button's actual on-screen location. On desktop
   (>640px) both the button is hidden and the panel becomes display:contents; so
   even though the tabs sit inside the panel in the HTML, the desktop view never
   changes — the original flat strip is preserved exactly as before. */
@media (min-width: 641px) {
  .category-tab-more-btn {
    display: none !important;
  }

  .category-tabs-more-panel {
    display: contents !important;
  }
}

@media (max-width: 640px) {
  /* Since there's no more overflow, the "more tabs available" shadow on the
     right is no longer needed; if left in place, it would sit on top of the
     "More" button like a misleading hint. */
  .category-tabs-bar::after {
    display: none !important;
  }

  .category-tab-more-btn.open {
    background: var(--bg-hover) !important;
    color: var(--text-main) !important;
  }

  .category-tab-more-btn.active {
    background: #0284C7 !important;
    color: #FFFFFF !important;
    border-color: #0284C7 !important;
    font-weight: 800 !important;
    box-shadow: 0 3px 10px rgba(2, 132, 199, 0.35) !important;
  }

  .category-tabs-more-panel {
    display: none;
    position: fixed;
    z-index: 9999;
    flex-direction: column;
    gap: 6px;
    min-width: 210px;
    max-width: calc(100vw - 16px);
    padding: 8px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.32);
  }

  .category-tabs-more-panel.open {
    display: flex;
  }

  .category-tabs-more-panel .category-tab-btn {
    width: 100%;
    justify-content: flex-start !important;
    border-radius: 10px !important;
    padding: 10px 12px !important;
    scroll-snap-align: none !important;
  }
}

/* ==========================================================================
   PHASE 95 (v44.72) — MOBILE CATEGORY MENU: SWITCHING TO A DROPDOWN (SELECT)
   User Request: on screens below 640px, the top category strip + the "More"
   panel are replaced by a native <select> dropdown that fits the screen exactly
   and shows one category at a time. The desktop/tablet view (>640px) was not
   touched in any way — .category-tabs-bar, the "More" button, and its panel keep
   working there exactly as before; this block only hides the bar and shows the
   select below 640px.
   FEED TABLE: at the same screen width, only the title/views/comments columns
   remain visible, while the channel and user columns are hidden — so the table
   fits the screen without horizontal scrolling.
   ========================================================================== */
.category-tabs-mobile-select {
  display: none;
}

@media (max-width: 640px) {
  .category-tabs-bar {
    display: none !important;
  }

  /* PHASE 97 (v44.74) — User Request: the category name should be centered, and
     the box should get a more visually pleasing look with the same blue accent
     palette as the site's desktop category strip (.category-tabs-bar) instead of
     being flat/gray. Left/right padding is now kept equal (40px/40px) so that
     text-align:center actually appears visually centered (the arrow icon stays
     within the 40px allowance on the right). */
  .category-tabs-mobile-select {
    display: block;
    width: 100%;
    margin-top: 14px;
    padding: 13px 40px;
    text-align: center;
    text-align-last: center;
    background-color: #E0F2FE;
    background-image: linear-gradient(90deg, #EBF8FF 0%, #E0F2FE 50%, #EDF7FF 100%), url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230369A1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-position: 0 0, right 14px center;
    background-size: 100% 100%, 18px;
    color: #0369A1;
    border: 1.5px solid #7DD3FC;
    border-radius: var(--radius-md);
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.15);
    font-family: var(--font-main);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    transition: var(--transition);
  }

  [data-theme="dark"] .category-tabs-mobile-select {
    background-color: #122B47;
    background-image: linear-gradient(90deg, #0E2238 0%, #122B47 50%, #0F273E 100%), url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23BAE6FD' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    color: #BAE6FD;
    border-color: #1E466F;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
  }

  .category-tabs-mobile-select:hover {
    border-color: #38BDF8;
    box-shadow: 0 3px 12px rgba(59, 130, 246, 0.25);
  }

  .category-tabs-mobile-select:focus {
    outline: 2px solid var(--accent-green);
    outline-offset: 1px;
  }

  .category-tabs-mobile-select option {
    background-color: var(--bg-card);
    color: var(--text-main);
    text-align: center;
  }

  #feedTableCard .feed-table th:nth-child(4),
  #feedTableCard .feed-table td:nth-child(4),
  #feedTableCard .feed-table th:nth-child(5),
  #feedTableCard .feed-table td:nth-child(5) {
    display: none;
  }

  /* PHASE 97 (v44.74) — User Report: Phase 95 (v44.72) had hidden the
     channel/user columns with display:none, but the table itself was still
     bound to the ".feed-table { min-width: 580px !important; }" rule left over
     from Phase 36 (v44.7) (above, in the 768px block) — since 580px doesn't fit
     any phone screen, .feed-table-card's overflow-x:auto would kick in and the
     card still required side-to-side scrolling (even with only 3 columns
     visible). The root cause was closed here: at ≤640px the fixed-width
     requirement on the table was removed entirely and table-layout:fixed was
     used to make it sit at 100% of the card's width; since scrolling on the
     card is no longer needed at all, overflow-x was disabled. The title column
     was shortened (56%), and the comment and views columns were given a fixed,
     narrow but readable share — all three now fit on one line without
     scrolling. */
  #feedTableCard.feed-table-card,
  .feed-table-card {
    overflow-x: hidden !important;
  }

  #feedTableCard .feed-table {
    min-width: 0 !important;
    width: 100% !important;
    table-layout: fixed !important;
  }

  #feedTableCard .feed-table th:nth-child(1),
  #feedTableCard .feed-table td:nth-child(1) {
    width: 56% !important;
  }

  #feedTableCard .feed-table th:nth-child(2),
  #feedTableCard .feed-table td:nth-child(2) {
    width: 19% !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
    text-align: center !important;
  }

  #feedTableCard .feed-table th:nth-child(3),
  #feedTableCard .feed-table td:nth-child(3) {
    width: 25% !important;
    padding-left: 4px !important;
    padding-right: 8px !important;
    text-align: center !important;
  }

  #feedTableCard .feed-table th:nth-child(2),
  #feedTableCard .feed-table th:nth-child(3) {
    font-size: 9.5px !important;
    white-space: normal !important;
    line-height: 1.2 !important;
  }
}

/* ==========================================================================
   PHASE 99 (v44.77) — MOBILE "QUICK PANELS" ACCORDION: STYLE COMPLETION
   User Request: instead of showing news cards directly expanded on mobile
   (≤768px), the request was for an accordion that stacks the "Latest Shared /
   Popular Discoveries / Asia Countries Atlas" sections as attractive,
   differently-colored buttons between the top category menu and the content,
   opening the relevant news cards (and page numbers if needed) below whichever
   button is clicked.
   This block completes the HALF-FINISHED work left by a previous developer in
   index.html + app_src.js (the HTML skeleton + JS render/pagination functions
   were ready, but no CSS had been written, so it sat invisible/unstyled on
   mobile). METHOD: the same JS-free "checkbox + label + general sibling
   selector" technique as the footer accordion (Phase 98); additionally, since
   each panel already has one-panel-open-at-a-time logic in JS
   (onMobileQuickPanelToggle), only the visual open/close (max-height) is
   managed here via CSS.
   COLORS: not random — chosen to align with proven color psychology and the
   existing brand palette — red/maroon (Latest Shared: urgency, the "breaking
   news" reflex + the same family as the brand red in the logo), amber/gold
   (Popular Discoveries: curiosity & discovery impulse, already symbolized on
   the site by --accent-gold), emerald green (Countries Atlas: trust &
   exploration, the same family already used for the country list via
   --accent-green). The tones aren't flat/bright — they use the same dark
   gradient "classy" treatment as the logo icon.
   On desktop/tablet (>768px) this block does not activate — the left/right
   sidebars (.left-col-countries / .right-col-trends) already show the same 3
   widgets, so the mobile accordion only appears once those are hidden.
   ========================================================================== */
.mobile-quick-panels {
  display: none;
}

@media (max-width: 768px) {
  .mobile-quick-panels {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 14px;
    /* On mobile, this 3-color accordion block is placed BELOW the main showcase
       news cards (#countryCardsGrid) that follow it in the flow. Since
       .center-col-feed is a flex container, all other sibling elements keep
       their existing DOM order via the default order:0; only this block is
       pushed to the very end with a higher order value. */
    order: 20;
  }

  .qp-acc-item {
    border-radius: 14px;
  }

  .qp-acc-toggle {
    display: none;
  }

  .qp-acc-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-radius: 14px;
    cursor: pointer;
    user-select: none;
    color: #FFFFFF;
    font-family: var(--font-main);
    font-size: 13.5px;
    font-weight: 800;
    letter-spacing: 0.2px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    transition: transform 0.15s ease, border-radius 0.25s ease, box-shadow 0.15s ease;
  }

  .qp-acc-btn:active {
    transform: scale(0.98);
  }

  .qp-acc-btn-icon {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
  }

  .qp-acc-btn-label {
    flex: 1;
  }

  .qp-acc-chevron {
    font-size: 12px;
    opacity: 0.85;
    transition: transform 0.25s ease;
  }

  .qp-acc-content-outer {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.32s ease, opacity 0.25s ease, margin-top 0.32s ease;
  }

  .qp-acc-content-inner {
    padding: 14px 2px 2px;
  }

  .qp-acc-toggle:checked ~ .qp-acc-content-outer {
    max-height: 2600px;
    opacity: 1;
    margin-top: 8px;
  }

  .qp-acc-toggle:checked ~ .qp-acc-btn {
    border-radius: 14px 14px 0 0;
  }

  .qp-acc-toggle:checked ~ .qp-acc-btn .qp-acc-chevron {
    transform: rotate(180deg);
  }

  /* A different, classy color per panel, chosen to boost readability/engagement */
  .qp-acc-latest .qp-acc-btn {
    background: linear-gradient(135deg, #C2273F 0%, #8A0E1A 55%, #5E0912 100%);
  }

  .qp-acc-trends .qp-acc-btn {
    background: linear-gradient(135deg, #DB8B12 0%, #B45309 55%, #8A3E0A 100%);
  }

  .qp-acc-countries .qp-acc-btn {
    background: linear-gradient(135deg, #0EA372 0%, #047857 55%, #054F3D 100%);
  }

  /* "Latest Shared" — 2-column mobile news card grid */
  .mobile-latest-cards-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .mobile-latest-card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }

  .mobile-latest-card:active {
    transform: scale(0.97);
  }

  .mobile-latest-card-img-wrap {
    width: 100%;
    aspect-ratio: 16 / 10;
    position: relative;
    overflow: hidden;
    background: #080D14;
  }

  .mobile-latest-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .mobile-latest-card-badge {
    position: absolute;
    top: 6px;
    left: 6px;
    max-width: calc(100% - 12px);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    background: rgba(15, 23, 42, 0.85);
    backdrop-filter: blur(4px);
    color: #FFFFFF;
    font-size: 9px;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 3px;
  }

  .mobile-latest-card-body {
    padding: 8px 9px;
    display: flex;
    flex-direction: column;
    gap: 5px;
  }

  .mobile-latest-card-title {
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--text-main);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .mobile-latest-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 9.5px;
    color: var(--text-muted);
  }

  /* "Asia Countries Atlas" accordion — 2-column list that fits the accordion */
  .qp-acc-countries-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    padding: 0 0 8px 0;
  }

  .qp-acc-countries .btn-see-all-countries {
    margin: 2px 0 0 0;
  }

  /* "Popular Discoveries" accordion — margins adapted to fit the accordion */
  .qp-acc-trends .trend-card-item {
    padding: 11px 4px;
  }
}

/* ==========================================================================
   PHASE 98 (v44.75) — MOBILE FOOTER: ACCORDION (NO JS, PURE CSS)
   User Request: on mobile, the "Explore & Categories" (9 lines) and
   "Corporate & Legal" (9 lines) footer blocks take up too much space once they
   collapse into a single column; they should be shrunk with a
   dropdown/accordion approach, with the text centered.
   METHOD: a hidden <input type="checkbox"> + <label> (title) + content, linked
   via the "general sibling" (~) CSS selector — no JavaScript needed at all, so
   it also works on pages like 404.html that don't load js/app.min.js.
   On desktop/tablet (>600px) this block never activates — .footer-col-title
   still looks flat as before, content is always open; only at ≤600px does the
   content fold/unfold via max-height based on the checkbox's state.
   ========================================================================== */
.footer-accordion-toggle {
  display: none;
}

.footer-accordion-chevron {
  display: none;
}

@media (max-width: 600px) {
  .footer-col-nav,
  .footer-col-legal {
    border-top: 1px solid var(--border-color);
    padding-top: 14px;
  }

  .footer-col-title.footer-accordion-label {
    cursor: pointer;
    user-select: none;
    margin: 0 0 4px 0;
  }

  .footer-accordion-chevron {
    display: inline-flex;
    margin-left: 4px;
    font-size: 11px;
    color: var(--text-muted);
    transition: transform 0.2s ease;
  }

  .footer-accordion-content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.28s ease, opacity 0.2s ease, margin-top 0.28s ease;
  }

  .footer-accordion-toggle:checked ~ .footer-accordion-content {
    max-height: 600px;
    opacity: 1;
    margin-top: 12px;
  }

  .footer-accordion-toggle:checked ~ .footer-col-title .footer-accordion-chevron {
    transform: rotate(180deg);
    color: var(--accent-green);
  }
}
/* ============================================================================
   PHASE 139 (v44.134): NEWSLETTER SIGN-UP SECTION
   Added at runtime by js/app.src.js -> injectNewsletterFooterSection(),
   directly above the footer. It never deviates from the site's existing design
   language (--bg-card/--border-color/--accent-green/--radius-*); it doesn't
   invent a separate color palette, and shares the same container-fluid width
   as the footer.
   ============================================================================ */
.newsletter-footer-section{padding:8px 0 32px 0}
.newsletter-card{background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-subtle) 100%);border:1px solid var(--border-color);border-top:3px solid var(--accent-green);border-radius:var(--radius-lg);padding:26px 32px;display:flex;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 4px 16px rgba(0,0,0,0.06)}
.newsletter-text{flex:1;min-width:240px}
.newsletter-title{font-size:16.5px;font-weight:800;color:var(--text-main);display:flex;align-items:center;gap:9px;margin:0 0 6px 0}
.newsletter-title i{color:var(--accent-green);font-size:16px}
.newsletter-desc{font-size:12.5px;color:var(--text-muted);line-height:1.6;margin:0;max-width:480px}
.newsletter-subscriber-count{margin-top:9px;font-size:11px;color:var(--accent-green);font-weight:700;display:inline-flex;align-items:center;gap:6px}
.newsletter-form-wrap{flex-shrink:0;width:380px;max-width:100%;display:flex;flex-direction:column;gap:6px}
.newsletter-form{display:flex;gap:8px}
.newsletter-hp-field{position:absolute!important;left:-9999px!important;top:-9999px!important;height:0!important;width:0!important;opacity:0!important}
.newsletter-input{flex:1;min-width:0;height:40px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:0 14px;font-size:12.5px;color:var(--text-main);outline:none;font-family:inherit;transition:var(--transition)}
.newsletter-input:focus{border-color:var(--accent-green);box-shadow:0 0 0 3px rgba(16,185,129,0.15)}
.btn-newsletter-submit{height:40px;padding:0 18px;background:var(--accent-green);border:none;color:#FFFFFF;font-weight:800;font-size:12.5px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;transition:var(--transition)}
.btn-newsletter-submit:hover{background:var(--accent-green-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,0.3)}
.btn-newsletter-submit:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}
.newsletter-privacy-note{font-size:10.5px;color:var(--text-muted);margin:0}
.newsletter-msg{font-size:11.5px;font-weight:700;margin:0;display:none;padding:6px 10px;border-radius:var(--radius-xs)}
.newsletter-msg.show{display:block}
.newsletter-msg.is-success{color:var(--accent-green);background:rgba(16,185,129,0.1)}
.newsletter-msg.is-error{color:var(--accent-red);background:rgba(239,68,68,0.1)}
@media (max-width:768px){
  .newsletter-card{flex-direction:column;align-items:stretch;text-align:center;padding:22px 18px;gap:16px}
  .newsletter-text{text-align:center}
  .newsletter-desc{max-width:100%}
  .newsletter-subscriber-count{justify-content:center}
  .newsletter-form-wrap{width:100%}
  .newsletter-form{flex-direction:column}
  .btn-newsletter-submit{width:100%;justify-content:center}
}
.gtranslate_wrapper{display:none !important}#asiaGtranslateHost{position:absolute !important;left:-9999px !important;top:-9999px !important;height:0 !important;overflow:hidden !important}


/* v26.0.0 — Language Suggestion Banner (initLanguageSuggestionBanner, js/app.src.js) */
.asia-lang-banner {
  position: sticky; top: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 8px 14px; background: #111827; color: #fff;
  border-bottom: 1px solid rgba(255,255,255,0.15); font-size: 13px; line-height: 1.4;
}
.asia-lang-banner-actions { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; }
.asia-lang-banner-btn { background: #2563eb; color: #fff; text-decoration: none; padding: 3px 10px; border-radius: 4px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.asia-lang-banner-btn:hover { background: #1d4ed8; }
.asia-lang-banner-close { background: transparent; border: 0; color: #fff; font-size: 20px; line-height: 1; cursor: pointer; padding: 0 4px; opacity: .75; }
.asia-lang-banner-close:hover { opacity: 1; }
@media (max-width: 640px) { .asia-lang-banner { flex-wrap: wrap; padding: 8px 10px; font-size: 12px; } }
