:root {
          --primary:        #0047AB;
          --primary-dark:   #003080;
          --accent:         #4ECDC4;
          --red:            #FF4444;
          --bg:             #003785;
          --white:          #ffffff;
          --text:           #ffffff;
          --text-muted:     rgba(255,255,255,0.55);
          --border:         rgba(255,255,255,0.15);
          --teal:           #4ECDC4;
          --teal-dim:       rgba(78,205,196,0.12);
          --teal-border:    rgba(78,205,196,0.30);
          --gold:           #fbbf24;
          --surface-1:      rgba(255,255,255,0.08);
          --surface-2:      rgba(255,255,255,0.11);
          --surface-3:      rgba(255,255,255,0.16);
          --border-bright:  rgba(255,255,255,0.18);
          --shadow-md:      0 4px 20px rgba(0,0,0,0.35);
          --shadow-lg:      0 8px 40px rgba(0,0,0,0.5);
          --text-primary:   #ffffff;
          --text-secondary: rgba(255,255,255,0.85);
          --r-sm: 10px; --r: 16px; --r-lg: 22px; --r-xl: 28px;
        }
        *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
        html { scroll-behavior: smooth; }
        img  { display:block; max-width:100%; height:auto; -webkit-user-drag:none; }
        body {
          font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
          background: linear-gradient(180deg, var(--primary) 0%, var(--bg) 100%);
          min-height: 100vh; color: var(--text);
          overflow-x: hidden; -webkit-font-smoothing: antialiased;
          padding-bottom: 20px;
        }

        /* ── ÍCONES SVG ── */
        .icon {
          width: 18px; height: 18px;
          object-fit: contain; display: inline-block; vertical-align: middle;
        }
        .icon-lg { width: 22px; height: 22px; }
        .icon-xl { width: 34px; height: 34px; }

        /* Filtros de cor por contexto */
        .icon-white  { filter: brightness(0) invert(1); }
        .icon-muted  { filter: brightness(0) invert(1); opacity: .50; }
        .icon-teal   { filter: invert(71%) sepia(52%) saturate(500%) hue-rotate(130deg) brightness(100%) contrast(101%); }
        .icon-gold   { filter: invert(80%) sepia(60%) saturate(500%) hue-rotate(5deg) brightness(105%); }
        .icon-red    { filter: invert(30%) sepia(90%) saturate(700%) hue-rotate(330deg) brightness(120%); }
        .icon-dark   { filter: brightness(0); }

        .header {
          position:sticky; top:0; z-index:200; height:56px;
          background:rgba(0,55,133,0.96);
          backdrop-filter:blur(20px) saturate(180%);
          -webkit-backdrop-filter:blur(20px) saturate(180%);
          border-bottom:1px solid var(--border);
          display:flex; align-items:center; justify-content:space-between;
          padding:0 16px; gap:10px;
        }
        .header-left  { display:flex; align-items:center; gap:10px; }
        .header-right { display:flex; align-items:center; gap:8px; }
        .icon-btn {
          width:38px; height:38px; background:var(--surface-1);
          border:1px solid var(--border); border-radius:50%;
          display:flex; align-items:center; justify-content:center;
          cursor:pointer; color:var(--text-primary);
          transition:all .18s; text-decoration:none; flex-shrink:0;
        }
        .icon-btn:hover  { background:var(--surface-3); border-color:var(--border-bright); }
        .icon-btn:active { transform:scale(.91); }
        .header-store-info { display:flex; align-items:center; gap:9px; }
        .header-store-logo {
          width:32px; height:32px; border-radius:8px; overflow:hidden;
          background:var(--surface-2); display:flex; align-items:center;
          justify-content:center; border:1px solid var(--border); flex-shrink:0;
        }
        .header-store-logo img.store-photo { width:32px; height:32px; object-fit:cover; display:block; }
        .header-store-name {
          font-size:14px; font-weight:700; color:var(--text-primary);
          max-width:140px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
        }
        .header-verified { color:var(--teal); display:flex; align-items:center; }
        .header-verified .icon { filter: invert(71%) sepia(52%) saturate(500%) hue-rotate(130deg) brightness(100%) contrast(101%); }
        .cart-btn { position:relative; }
        .cart-badge {
          position:absolute; top:-2px; right:-2px;
          background:var(--red); color:#fff;
          font-size:9px; font-weight:700; min-width:16px; height:16px; padding:0 4px;
          border-radius:8px; display:flex; align-items:center; justify-content:center;
        }
        .store-hero {
          position:relative; height:220px; overflow:hidden;
          background:linear-gradient(135deg, #0D1F5C 0%, #003785 100%);
        }
        .store-hero-img {
          position:absolute; inset:0; width:100%; height:100%;
          object-fit:cover; object-position:center; display:block; opacity:0.55;
        }
        .store-hero-overlay {
          position:absolute; inset:0;
          background:linear-gradient(to bottom, transparent 30%, rgba(0,10,30,0.85) 100%);
          z-index:1;
        }
        .store-hero-pattern {
          position:absolute; inset:0; opacity:.06;
          background-image:repeating-linear-gradient(45deg, var(--white) 0, var(--white) 1px, transparent 0, transparent 50%);
          background-size:20px 20px;
        }
        .store-hero-placeholder {
          position:absolute; inset:0; z-index:0;
          display:flex; align-items:center; justify-content:center;
          opacity:.25;
        }
        .store-hero-placeholder .icon { width: 72px; height: 72px; filter: brightness(0) invert(1); }
        .store-header-card {
          margin:-48px 16px 0; position:relative; z-index:10;
          background:rgba(0,47,117,0.85);
          backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
          border:1px solid var(--border-bright); border-radius:var(--r-xl);
          padding:20px; box-shadow:var(--shadow-lg);
        }
        .store-top-row { display:flex; gap:16px; align-items:flex-start; margin-bottom:16px; }
        .store-logo-wrap { position:relative; flex-shrink:0; width:80px; height:80px; }
        .store-logo {
          width:80px; height:80px; border-radius:18px;
          border:3px solid rgba(255,255,255,0.18); overflow:hidden;
          background:var(--surface-2); display:flex; align-items:center;
          justify-content:center; box-shadow:var(--shadow-md);
        }
        .store-logo img.store-photo { width:80px; height:80px; object-fit:cover; display:block; border-radius:15px; }
        .store-logo-verified {
          position:absolute; bottom:-4px; right:-4px; width:22px; height:22px;
          background:var(--teal); border-radius:50%;
          display:flex; align-items:center; justify-content:center;
          border:2px solid var(--bg);
          box-shadow:0 2px 8px rgba(0,212,200,0.5);
        }
        .store-logo-verified .icon { filter: brightness(0); width: 12px; height: 12px; }
        .store-meta { flex:1; min-width:0; }
        .store-name {
          font-size:20px; font-weight:800; color:var(--white);
          line-height:1.25; margin-bottom:5px;
          display:flex; align-items:center; gap:8px; flex-wrap:wrap;
        }
        .verified-chip {
          background:var(--teal-dim); color:var(--teal);
          border:1px solid var(--teal-border);
          font-size:11px; font-weight:700; padding:2px 8px;
          border-radius:50px; white-space:nowrap;
          display:inline-flex; align-items:center; gap:4px;
        }
        .verified-chip .icon { filter: invert(71%) sepia(52%) saturate(500%) hue-rotate(130deg) brightness(100%) contrast(101%); width:11px; height:11px; }
        .store-category {
          font-size:12px; color:var(--text-secondary);
          margin-bottom:8px; display:flex; align-items:center; gap:5px;
        }
        .store-category .icon { filter: brightness(0) invert(1); opacity: .65; }
        .store-rating-row { display:flex; align-items:center; gap:6px; }
        .stars-display { display:flex; gap:1px; }
        .star     { font-size:13px; }
        .star.on  { color:#fbbf24; }
        .star.off { color:rgba(255,255,255,0.2); }
        .star.on  img { filter: invert(80%) sepia(60%) saturate(500%) hue-rotate(5deg) brightness(105%); }
        .star.off img { filter: brightness(0) invert(1); opacity: .20; }
        .star img { width: 13px; height: 13px; display: inline-block; vertical-align: middle; }
        .rating-val { font-size:13px; font-weight:700; color:var(--white); }
        .rating-cnt { font-size:12px; color:var(--text-muted); }
        .store-actions { display:flex; gap:9px; margin-top:16px; }
        .btn-follow {
          flex:1; height:42px;
          background:linear-gradient(135deg, #0047AB 0%, #0060D4 100%);
          color:#fff; border:none; border-radius:var(--r-sm);
          font-family:inherit; font-size:14px; font-weight:800;
          cursor:pointer; transition:all .2s;
          display:flex; align-items:center; justify-content:center; gap:6px;
          box-shadow:0 4px 14px rgba(0,71,171,0.5);
        }
        .btn-follow:hover:not(:disabled) { filter:brightness(1.12); transform:translateY(-1px); }
        .btn-follow:active { transform:scale(.97); }
        .btn-follow.following {
          background:var(--surface-2); color:var(--teal);
          border:1.5px solid var(--teal-border); box-shadow:none;
        }
        .btn-follow:disabled { opacity:.6; cursor:not-allowed; }
        .btn-follow .icon { filter: brightness(0) invert(1); }
        .btn-follow.following .icon { filter: invert(71%) sepia(52%) saturate(500%) hue-rotate(130deg) brightness(100%) contrast(101%); }
        .btn-rate {
          height:42px; padding:0 16px;
          background:rgba(255,184,48,0.12); color:#fbbf24;
          border:1.5px solid rgba(255,184,48,0.35);
          border-radius:var(--r-sm); font-family:inherit;
          font-size:13px; font-weight:700; cursor:pointer;
          display:flex; align-items:center; gap:5px; transition:all .2s; white-space:nowrap;
        }
        .btn-rate:hover { background:rgba(255,184,48,0.2); }
        .btn-rate .icon { filter: invert(80%) sepia(60%) saturate(500%) hue-rotate(5deg) brightness(105%); }
        .btn-msg {
          width:42px; height:42px; flex-shrink:0;
          background:rgba(0,71,171,0.25); border:1.5px solid rgba(0,100,220,0.45);
          border-radius:var(--r-sm); color:var(--teal);
          display:flex; align-items:center; justify-content:center;
          cursor:pointer; transition:all .2s; text-decoration:none;
        }
        .btn-msg:hover { background:rgba(0,71,171,0.45); border-color:var(--teal-border); transform:translateY(-1px); }
        .stats-strip {
          display:grid; grid-template-columns:repeat(3,1fr);
          gap:1px; background:var(--border);
          border-radius:var(--r); overflow:hidden;
          margin:12px 16px 0; border:1px solid var(--border);
        }
        .stat-item { background:var(--surface-1); padding:14px 10px; text-align:center; }
        .stat-val  { font-size:20px; font-weight:800; color:var(--teal); line-height:1; margin-bottom:3px; }
        .stat-lbl  { font-size:11px; color:var(--text-muted); font-weight:500; }
        .about-section { padding:16px 16px 0; }
        .about-card    { background:var(--surface-1); border:1px solid var(--border); border-radius:var(--r); padding:16px; }
        .section-eyebrow {
          font-size:10px; font-weight:700; color:var(--teal);
          text-transform:uppercase; letter-spacing:1.2px; margin-bottom:8px;
          display:flex; align-items:center; gap:6px;
        }
        .section-eyebrow::before { content:''; display:block; width:20px; height:2px; background:var(--teal); border-radius:2px; }
        .about-text { font-size:13.5px; line-height:1.7; color:var(--text-secondary); }
        .trust-row {
          display:flex; gap:8px; padding:12px 16px 0;
          overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch;
        }
        .trust-row::-webkit-scrollbar { display:none; }
        .trust-badge {
          display:flex; align-items:center; gap:6px;
          background:var(--surface-1); border:1px solid var(--border);
          border-radius:50px; padding:7px 14px;
          font-size:12px; font-weight:600; color:var(--text-secondary);
          white-space:nowrap; flex-shrink:0;
        }
        .trust-badge .icon { filter: brightness(0) invert(1); opacity: .70; }
        .section-wrap { padding:20px 16px 0; }
        .section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
        .section-title { font-size:16px; font-weight:800; color:var(--white); display:flex; align-items:center; gap:8px; }
        .section-title-accent { width:4px; height:18px; background:var(--teal); border-radius:2px; display:inline-block; }
        .section-title .icon { filter: brightness(0) invert(1); }
        .destaque-strip {
          display:flex; gap:10px; overflow-x:auto; scrollbar-width:none;
          scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:4px;
        }
        .destaque-strip::-webkit-scrollbar { display:none; }
        .destaque-card {
          flex-shrink:0; width:150px; scroll-snap-align:start;
          background:var(--surface-1); border:1px solid var(--border);
          border-radius:var(--r); overflow:hidden; cursor:pointer;
          text-decoration:none; color:var(--white);
          display:block; transition:transform .18s, border-color .18s;
        }
        .destaque-card:hover  { transform:translateY(-3px); border-color:var(--teal-border); }
        .destaque-card:active { transform:scale(.97); }
        .destaque-img {
          position:relative; width:100%; padding-bottom:100%;
          background:linear-gradient(135deg, #1E3A8A, #3B82F6); overflow:hidden;
        }
        .destaque-img img.prod-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
        .destaque-img .placeholder-wrap { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
        .destaque-img .placeholder-wrap .icon { filter: brightness(0) invert(1); opacity: .45; }
        .destaque-info  { padding:10px; }
        .destaque-name  {
          font-size:13px; font-weight:600; line-height:1.35;
          display:-webkit-box; -webkit-line-clamp:2; line-clamp: 2;-webkit-box-orient:vertical; overflow:hidden;
          margin-bottom:7px; min-height:35px;
        }
        .destaque-price     { font-size:15px; font-weight:800; color:var(--teal); }
        .destaque-old-price { font-size:11px; color:var(--text-muted); text-decoration:line-through; margin-left:5px; }
        .disc-badge {
          position:absolute; top:8px; left:8px; z-index:2;
          background:var(--red); color:#fff;
          font-size:11px; font-weight:800; padding:3px 8px; border-radius:6px;
        }
        .pop-badge {
          position:absolute; top:8px; left:8px; z-index:2;
          background:linear-gradient(135deg, #fbbf24, #FF7F00);
          color:#222; font-size:10px; font-weight:800; padding:3px 8px; border-radius:6px;
          display:flex; align-items:center; gap:4px;
        }
        .pop-badge .icon { filter: brightness(0); width: 11px; height: 11px; }
        .fav-btn-sm {
          position:absolute; top:8px; right:8px; z-index:3;
          width:28px; height:28px; background:rgba(255,255,255,0.92);
          border:none; border-radius:50%; cursor:pointer;
          display:flex; align-items:center; justify-content:center;
          transition:transform .18s;
        }
        .fav-btn-sm:active { transform:scale(.85); }
        .fav-btn-sm .icon { width: 14px; height: 14px; }
        .fav-btn-sm.favorited .icon { filter: invert(27%) sepia(90%) saturate(700%) hue-rotate(330deg) brightness(110%); }
        .fav-btn-sm:not(.favorited) .icon { filter: brightness(0); opacity: .55; }
        .filter-section { padding:20px 16px 0; }
        .filter-bar { display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
        .filter-bar::-webkit-scrollbar { display:none; }
        .filter-chip {
          flex-shrink:0; padding:8px 16px;
          background:var(--surface-1); border:1.5px solid var(--border);
          border-radius:50px; color:var(--text-secondary);
          font-family:inherit; font-size:13px; font-weight:600;
          cursor:pointer; transition:all .18s; white-space:nowrap;
        }
        .filter-chip:hover  { border-color:var(--border-bright); color:var(--white); }
        .filter-chip.active { background:var(--teal-dim); border-color:var(--teal); color:var(--teal); }
        .order-bar { display:flex; gap:8px; margin-top:10px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
        .order-bar::-webkit-scrollbar { display:none; }
        .order-chip {
          flex-shrink:0; padding:6px 13px;
          background:transparent; border:1.5px solid var(--border);
          border-radius:50px; color:var(--text-muted);
          font-family:inherit; font-size:12px; font-weight:600;
          cursor:pointer; transition:all .18s; white-space:nowrap;
          display:flex; align-items:center; gap:5px;
        }
        .order-chip:hover  { color:var(--text-primary); border-color:var(--border-bright); }
        .order-chip.active { border-color:#fbbf24; color:#fbbf24; background:rgba(255,184,48,0.08); }
        .order-chip .icon  { filter: brightness(0) invert(1); opacity: .55; }
        .order-chip.active .icon { filter: invert(80%) sepia(60%) saturate(500%) hue-rotate(5deg) brightness(105%); opacity: 1; }
        .tabs-nav {
          display:flex; gap:0; border-bottom:2px solid var(--border); margin:20px 16px 0;
        }
        .tab-btn {
          flex:1; padding:12px 8px; background:none; border:none;
          border-bottom:2px solid transparent; margin-bottom:-2px;
          color:var(--text-muted); font-family:inherit; font-size:14px; font-weight:700;
          cursor:pointer; transition:all .18s; white-space:nowrap; text-align:center;
        }
        .tab-btn:hover   { color:var(--text-secondary); }
        .tab-btn.active  { color:var(--teal); border-bottom-color:var(--teal); }
        .tab-pane        { display:none; padding:16px 16px 20px; }
        .tab-pane.active { display:block; }
        .products-grid {
          display:grid; grid-template-columns:repeat(2,1fr); gap:10px;
        }
        @media (min-width:480px)  { .products-grid { grid-template-columns:repeat(3,1fr); } }
        @media (min-width:768px)  { .products-grid { grid-template-columns:repeat(4,1fr); gap:12px; } }
        @media (min-width:1024px) { .products-grid { grid-template-columns:repeat(5,1fr); gap:14px; } }
        @media (min-width:1400px) { .products-grid { grid-template-columns:repeat(6,1fr); } }
        .product-card {
          background:var(--surface-1); border:1px solid var(--border);
          border-radius:var(--r); overflow:hidden; text-decoration:none; color:var(--white);
          display:block; transition:transform .18s, border-color .18s;
          position:relative; will-change:transform;
        }
        .product-card:hover  { transform:translateY(-4px); border-color:var(--border-bright); }
        .product-card:active { transform:scale(.97); }
        .product-img {
          position:relative; width:100%; padding-bottom:100%;
          background:linear-gradient(135deg, #152B6E, #1E4DB7); overflow:hidden;
        }
        .product-img img.prod-photo {
          position:absolute; inset:0; width:100%; height:100%;
          object-fit:cover; display:block; transition:transform .3s;
        }
        .product-card:hover .product-img img.prod-photo { transform:scale(1.05); }
        .product-img .placeholder-wrap { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
        .product-img .placeholder-wrap .icon { filter: brightness(0) invert(1); opacity: .40; }
        .product-body { padding:10px; }
        .product-name {
          font-size:13px; font-weight:600; line-height:1.4;
          display:-webkit-box; -webkit-line-clamp:2; line-clamp: 2; -webkit-box-orient:vertical; overflow:hidden;
          min-height:36px; margin-bottom:4px;
        }
        .product-desc {
          font-size:11px; color:var(--text-muted); line-height:1.4;
          margin:0 0 5px;
          display:-webkit-box; -webkit-line-clamp:2; line-clamp: 2; -webkit-box-orient:vertical; overflow:hidden;
        }
        .var-info {
          display:inline-flex; align-items:center; gap:5px;
          font-size:11px; color:var(--teal); font-weight:600;
          margin-bottom:4px;
        }
        .var-dot {
          width:10px; height:10px; border-radius:50%; display:inline-block;
          border:1.5px solid rgba(255,255,255,0.3); flex-shrink:0;
        }
        .product-stars { display:flex; align-items:center; gap:3px; font-size:11px; color:#fbbf24; margin-bottom:6px; }
        .product-stars .icon { filter: invert(80%) sepia(60%) saturate(500%) hue-rotate(5deg) brightness(105%); width: 11px; height: 11px; }
        .product-stars-count { color:var(--text-muted); font-size:10px; }
        .product-price-row { display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
        .product-price { font-size:15px; font-weight:800; color:var(--teal); }
        .product-old   { font-size:11px; color:var(--text-muted); text-decoration:line-through; }
        .product-add-btn {
          display:flex; align-items:center; justify-content:center; gap:5px;
          margin-top:8px; height:30px;
          background:rgba(0,71,171,0.2); border:1px solid rgba(0,100,220,0.4);
          border-radius:6px; color:var(--teal);
          font-family:inherit; font-size:12px; font-weight:700;
          cursor:pointer; transition:all .18s; width:100%;
        }
        .product-add-btn:hover  { background:rgba(0,71,171,0.35); }
        .product-add-btn:active { transform:scale(.96); }
        .product-add-btn .icon  { filter: invert(71%) sepia(52%) saturate(500%) hue-rotate(130deg) brightness(100%) contrast(101%); width:13px; height:13px; }
        .state-box   { grid-column:1/-1; text-align:center; padding:48px 20px; color:var(--text-muted); }
        .state-icon  { display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
        .state-icon .icon { width: 48px; height: 48px; filter: brightness(0) invert(1); opacity: .40; }
        .state-text  { font-size:14px; font-weight:500; }
        .state-retry {
          margin-top:14px; padding:9px 24px;
          background:var(--teal); border:none; border-radius:50px;
          color:#000; font-family:inherit; font-size:13px; font-weight:700;
          cursor:pointer; transition:opacity .18s;
        }
        .state-retry:hover { opacity:.85; }
        .skeleton-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
        @media (min-width:480px) { .skeleton-grid { grid-template-columns:repeat(3,1fr); } }
        .skeleton-card { border-radius:var(--r); overflow:hidden; background:var(--surface-1); border:1px solid var(--border); animation:pulse 1.4s ease infinite; }
        .skeleton-img  { padding-bottom:100%; background:var(--surface-2); }
        .skeleton-body { padding:10px; }
        .skeleton-line { height:10px; background:var(--surface-2); border-radius:5px; margin-bottom:8px; }
        .skeleton-line:last-child { width:60%; margin-bottom:0; }
        @keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.55} }
        .review-card {
          background:var(--surface-1); border:1px solid var(--border);
          border-radius:var(--r); padding:16px; margin-bottom:10px;
          transition:border-color .18s;
        }
        .review-card:hover { border-color:var(--border-bright); }
        .review-top { display:flex; align-items:flex-start; gap:12px; margin-bottom:10px; }
        .reviewer-avatar {
          width:40px; height:40px; border-radius:50%; flex-shrink:0;
          background:linear-gradient(135deg, #1D4ED8, var(--teal));
          display:flex; align-items:center; justify-content:center;
          font-size:16px; font-weight:700; overflow:hidden;
          border:2px solid var(--border);
        }
        .reviewer-avatar img { width:40px; height:40px; object-fit:cover; display:block; border-radius:50%; }
        .reviewer-meta { flex:1; }
        .reviewer-name { font-size:14px; font-weight:700; margin-bottom:2px; }
        .reviewer-date { font-size:11px; color:var(--text-muted); }
        .review-rating { display:flex; gap:2px; font-size:13px; margin-bottom:8px; }
        .review-rating .icon { width: 13px; height: 13px; }
        .review-text   { font-size:13.5px; line-height:1.65; color:var(--text-secondary); }
        .no-reviews-icon { display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
        .no-reviews-icon .icon { width: 48px; height: 48px; filter: invert(80%) sepia(60%) saturate(500%) hue-rotate(5deg) brightness(105%); opacity:.50; }
        .toast {
          position:fixed; bottom:24px; left:50%;
          transform:translateX(-50%) translateY(8px);
          background:rgba(0,15,40,0.97); color:var(--white);
          font-size:13.5px; font-weight:600;
          padding:12px 22px; border-radius:50px;
          box-shadow:var(--shadow-lg); z-index:999;
          opacity:0; transition:all .25s;
          white-space:nowrap; max-width:90%; pointer-events:none;
        }
        .toast.success { border-left:4px solid var(--teal); }
        .toast.error   { border-left:4px solid var(--red); }
        .toast.show    { opacity:1; transform:translateX(-50%) translateY(0); }
        .modal-overlay {
          position:fixed; inset:0; background:rgba(0,0,0,0.75);
          backdrop-filter:blur(6px); display:none;
          align-items:flex-end; justify-content:center; z-index:500;
        }
        .modal-overlay.show { display:flex; }
        .modal-sheet {
          width:100%; max-width:520px;
          background:linear-gradient(135deg, var(--primary) 0%, var(--bg) 100%);
          border:1px solid var(--border-bright); border-radius:24px 24px 0 0;
          padding:28px 24px 36px;
          animation:slideUp .28s cubic-bezier(.4,0,.2,1);
          max-height:90vh; overflow-y:auto;
        }
        @keyframes slideUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
        .modal-handle { width:36px; height:4px; background:var(--border-bright); border-radius:2px; margin:0 auto 20px; }
        .modal-title  { font-size:18px; font-weight:800; margin-bottom:20px; }
        .stars-input  { display:flex; gap:10px; justify-content:center; margin-bottom:8px; }
        .star-btn     { background:none; border:none; cursor:pointer; transition:all .18s; opacity:.25; padding:0; }
        .star-btn .icon { width: 38px; height: 38px; filter: invert(80%) sepia(60%) saturate(500%) hue-rotate(5deg) brightness(105%); }
        .star-btn:hover, .star-btn.active { opacity:1; transform:scale(1.15); }
        .rating-hint  { text-align:center; font-size:13px; color:var(--text-muted); margin-bottom:18px; min-height:18px; }
        .comment-area {
          width:100%; min-height:100px; padding:14px;
          background:var(--surface-1); border:1.5px solid var(--border);
          border-radius:var(--r-sm); color:var(--white); font-family:inherit;
          font-size:13.5px; resize:vertical; transition:border-color .18s;
        }
        .comment-area:focus        { outline:none; border-color:var(--teal); }
        .comment-area::placeholder { color:var(--text-muted); }
        .modal-actions    { display:flex; gap:10px; margin-top:16px; }
        .btn-modal-cancel {
          flex:1; height:44px; background:var(--surface-2);
          border:1px solid var(--border); border-radius:var(--r-sm);
          color:var(--text-secondary); font-family:inherit; font-size:14px; font-weight:700; cursor:pointer;
        }
        .btn-modal-submit {
          flex:2; height:44px;
          background:linear-gradient(135deg, #0047AB, #0060D4);
          border:none; border-radius:var(--r-sm);
          color:#fff; font-family:inherit; font-size:14px; font-weight:800;
          cursor:pointer; transition:all .18s;
          display:flex; align-items:center; justify-content:center; gap:6px;
        }
        .btn-modal-submit:hover:not(:disabled) { filter:brightness(1.07); }
        .btn-modal-submit:disabled { opacity:.55; cursor:not-allowed; }
        .btn-modal-submit .icon { filter: invert(80%) sepia(60%) saturate(500%) hue-rotate(5deg) brightness(105%); }
        @media (max-width:480px) {
          .store-hero { height:170px; } .store-header-card { margin:-40px 12px 0; padding:16px; }
          .store-logo { width:68px; height:68px; } .store-logo-wrap { width:68px; height:68px; }
          .store-logo img.store-photo { width:68px; height:68px; } .store-name { font-size:17px; }
          .stats-strip { margin:10px 12px 0; } .stat-val { font-size:18px; }
          .section-wrap { padding:16px 12px 0; } .filter-section { padding:16px 12px 0; }
          .tabs-nav { margin:16px 12px 0; } .tab-pane { padding:14px 12px 16px; }
          .about-section { padding:12px 12px 0; } .trust-row { padding:10px 12px 0; }
        }
        @media (min-width:768px) {
          .store-hero { height:280px; } .store-header-card { margin:-60px 24px 0; }
          .stats-strip { margin:14px 24px 0; } .section-wrap { padding:24px 24px 0; }
          .filter-section { padding:20px 24px 0; } .tabs-nav { margin:20px 24px 0; }
          .tab-pane { padding:20px 24px; } .about-section { padding:20px 24px 0; }
          .trust-row { padding:14px 24px 0; } .destaque-card { width:180px; }
        }
        @media (min-width:1024px) {
          body { max-width:1200px; margin:0 auto; }
          .store-hero { border-radius:0 0 var(--r-xl) var(--r-xl); }
          .store-header-card { margin:-70px 32px 0; }
        }
