/**
 * B2B Depo — Eczane mağaza arayüzü
 */

:root {
    --shop-primary: #2563eb;
    --shop-primary-dark: #1d4ed8;
    --shop-accent: #f97316;
    --shop-bg: #f8fafc;
    --shop-surface: #ffffff;
    --shop-border: #e2e8f0;
    --shop-text: #0f172a;
    --shop-muted: #64748b;
    --shop-radius: 12px;
    --shop-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    --shop-shadow-lg: 0 12px 40px rgba(15, 23, 42, 0.1);
    --font-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
    --font-display: 'Syne', system-ui, sans-serif;
    --shop-header-h: 124px;
    --shop-announce-h: 44px;
    --shop-contact-h: 0px;
    --shop-header-offset: var(--shop-header-h, 68px);
}

body.app-shop:has(.shop-announce-bar) {
    --shop-header-offset: calc(var(--shop-announce-h, 44px) + var(--shop-contact-h, 0px) + var(--shop-header-h, 68px));
}

body.app-shop:has(.shop-contact-strip) {
    --shop-contact-h: 36px;
}

body.app-shop:has(.shop-contact-strip):not(:has(.shop-announce-bar)) {
    --shop-header-offset: calc(var(--shop-contact-h, 36px) + var(--shop-header-h, 68px));
}

/* Duyuru bandı — header üstü */
.shop-announce-bar {
    --shop-announce-h: 44px;
    background: #0f172a;
    color: #f8fafc;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    position: sticky;
    top: 0;
    z-index: 1201;
}
.shop-announce-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1.25rem;
    min-height: var(--shop-announce-h);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.shop-announce-label {
    flex-shrink: 0;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fb923c;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    background: rgba(249, 115, 22, 0.15);
}
.shop-announce-viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    position: relative;
    min-height: 2.5rem;
}
.shop-announce-item {
    margin: 0;
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    font-size: 0.84rem;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.35s ease, transform 0.35s ease;
    pointer-events: none;
}
.shop-announce-item.is-active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.shop-announce-dots {
    display: flex;
    gap: 0.3rem;
    flex-shrink: 0;
}
.shop-announce-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.28);
}
.shop-announce-dot.is-active {
    background: #fb923c;
}
body.app-shop:has(.shop-announce-bar) .shop-header {
    top: calc(var(--shop-announce-h, 44px) + var(--shop-contact-h, 0px));
}
body.app-shop:has(.shop-contact-strip):not(:has(.shop-announce-bar)) .shop-header {
    top: var(--shop-contact-h, 36px);
}
@media (max-width: 1024px) {
    .shop-announce-inner { padding: 0 0.85rem; gap: 0.5rem; }
    .shop-announce-item { font-size: 0.78rem; }
    .shop-announce-label { font-size: 0.6rem; }
}

/* Duyuru ile header arası iletişim şeridi */
.shop-contact-strip {
    --shop-contact-h: 36px;
    background: #f8fafc;
    border-bottom: 1px solid var(--shop-border, #e2e8f0);
    color: #334155;
    position: sticky;
    top: 0;
    z-index: 1200;
}
body.app-shop:has(.shop-announce-bar) .shop-contact-strip {
    top: var(--shop-announce-h, 44px);
}
.shop-contact-strip-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1.25rem;
    min-height: var(--shop-contact-h);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}
.shop-contact-strip-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #0f172a;
    text-decoration: none;
    line-height: 1.2;
    white-space: nowrap;
}
a.shop-contact-strip-item:hover {
    color: var(--shop-primary, #2563eb);
}
.shop-contact-strip-item--muted {
    color: #64748b;
    font-weight: 500;
}
.shop-contact-strip-ico {
    display: inline-flex;
    color: var(--shop-primary, #2563eb);
    flex-shrink: 0;
}
@media (max-width: 1024px) {
    .shop-contact-strip-inner {
        padding: 0 0.85rem;
        gap: 0.75rem;
        justify-content: center;
    }
    .shop-contact-strip-item { font-size: 0.74rem; }
}

/* main.css token köprüsü — mağaza sayfalarında tek tema */
body.app-shop {
    --color-bg: var(--shop-bg);
    --color-surface: var(--shop-surface);
    --color-border: var(--shop-border);
    --color-text: var(--shop-text);
    --color-text-muted: var(--shop-muted);
    --color-primary: var(--shop-primary);
    --color-primary-light: #3b82f6;
    --color-primary-dark: var(--shop-primary-dark);
    --color-accent: var(--shop-accent);
    --radius: var(--shop-radius);
    --shadow: var(--shop-shadow);
    --shadow-md: var(--shop-shadow-lg);
    background: var(--shop-bg);
    color: var(--shop-text);
    font-family: var(--font-sans);
}

body.app-shop a { color: var(--shop-primary); }
body.app-shop a:hover { color: var(--shop-primary-dark); }

body.app-shop .shop-footer-top .shop-footer-links a,
body.app-shop .shop-footer-bottom .shop-footer-legal a {
    color: #ffffff;
}
body.app-shop .shop-footer-top .shop-footer-links a:hover,
body.app-shop .shop-footer-bottom .shop-footer-legal a:hover {
    color: #ffffff;
    opacity: 0.85;
}

body.app-shop .shop-footer-top .shop-footer-contact a {
    color: #ffffff;
}
body.app-shop .shop-footer-top .shop-footer-contact a:hover {
    color: #ffffff;
    opacity: 0.85;
}

/* ——— Giriş ——— */
body.login-page {
    font-family: var(--font-sans);
    background: var(--shop-surface);
    color: var(--shop-text);
    margin: 0;
    min-height: 100vh;
}

.login-split {
    display: grid;
    min-height: 100vh;
    grid-template-columns: 1fr 1fr;
}

.login-visual {
    position: relative;
    background: linear-gradient(145deg, #0f172a, #1e3a8a 50%, #3b82f6);
    color: #fff;
    padding: 3rem;
    display: flex;
    align-items: center;
}

.login-visual-pattern {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 80%, rgba(249, 115, 22, 0.35), transparent 50%);
    pointer-events: none;
}

.login-visual-inner { position: relative; z-index: 1; max-width: 400px; }
.login-visual-logo { margin-bottom: 1.75rem; }
.login-visual-logo .brand-logo { margin: 0; }
.login-visual h1 { font-family: var(--font-display); font-size: 2.25rem; font-weight: 800; line-height: 1.15; margin-bottom: 1rem; }
.login-visual p { opacity: 0.9; line-height: 1.6; margin-bottom: 1.5rem; }
.login-features-list { list-style: none; padding: 0; }
.login-features-list li { padding: 0.5rem 0 0.5rem 1.25rem; position: relative; }
.login-features-list li::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 6px; height: 6px; background: var(--shop-accent); border-radius: 50%; }
.login-form-side { display: flex; align-items: center; justify-content: center; padding: 2rem; }
.login-form-side--scroll { align-items: flex-start; padding-top: 2.5rem; overflow-y: auto; }
.login-form-wrap { width: 100%; max-width: 400px; }
.login-form-wrap--wide { max-width: 520px; }
.login-mobile-brand { display: none; margin-bottom: 1.5rem; }
.login-m-logo { font-family: var(--font-display); font-weight: 800; font-size: 1.4rem; color: var(--shop-primary); }
.login-m-city {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--shop-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.login-visual-footer {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    font-size: 0.82rem;
    opacity: 0.75;
}
.login-install {
    text-align: center;
    margin-top: 1rem;
    font-size: 0.85rem;
}
.login-install a { color: var(--shop-muted); text-decoration: underline; }
.login-register a { color: var(--shop-primary); font-weight: 600; }
.login-form-side h2 { font-size: 1.6rem; font-weight: 700; margin-bottom: 0.35rem; }
.login-sub { color: var(--shop-muted); margin-bottom: 1.5rem; }
.form-control-lg { width: 100%; padding: 0.8rem 1rem; border: 1.5px solid var(--shop-border); border-radius: 10px; font-family: inherit; }
.form-control-lg:focus { outline: none; border-color: var(--shop-primary); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15); }
.btn-login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    background: var(--shop-primary);
    color: #fff !important;
    border: none;
    padding: 0.9rem 1rem;
    font-weight: 700;
    font-size: 0.95rem;
    border-radius: 10px;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease, transform 0.15s ease;
}
.btn-login:hover { background: var(--shop-primary-dark); }
.login-register { text-align: center; margin-top: 1.25rem; font-size: 0.9rem; color: var(--shop-muted); }
.login-demo {
    margin-bottom: 1.25rem;
}
.login-demo-label {
    margin: 0 0 0.65rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--shop-muted);
}
.login-demo-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
}
.login-demo-form { margin: 0; }
.login-demo-btn {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    text-align: left;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1.5px solid var(--shop-border);
    background: #fff;
    cursor: pointer;
    font-family: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.login-demo-btn strong {
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--shop-text);
}
.login-demo-btn span {
    font-size: 0.72rem;
    color: var(--shop-muted);
}
.login-demo-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}
.login-demo-btn--admin:hover {
    border-color: #2563eb;
    background: #eff6ff;
}
.login-demo-btn--admin:hover strong { color: #1d4ed8; }
.login-demo-btn--biz:hover {
    border-color: #ea580c;
    background: #fff7ed;
}
.login-demo-btn--biz:hover strong { color: #c2410c; }
.login-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1.25rem;
    color: var(--shop-muted);
    font-size: 0.78rem;
}
.login-divider::before,
.login-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--shop-border);
}
@media (max-width: 420px) {
    .login-demo-actions { grid-template-columns: 1fr; }
}
.login-form-section { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--shop-muted); margin: 1.25rem 0 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--shop-border); }
.login-form-section:first-of-type { border: none; padding-top: 0; margin-top: 0; }
.login-pending-card { text-align: center; }

@media (max-width: 900px) {
    .login-split { grid-template-columns: 1fr; }
    .login-visual { display: none; }
    .login-mobile-brand { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.25rem; }
}

/* ——— Mağaza kabuğu ——— */
body.app-shop {
    font-family: var(--font-sans);
    background: var(--shop-bg);
    color: var(--shop-text);
    margin: 0;
    min-height: 100vh;
}

.shop-wrap { min-height: 100vh; display: flex; flex-direction: column; }

/* Header */
.shop-header {
    position: sticky;
    top: 0;
    z-index: 300;
    background: var(--shop-surface);
    border-bottom: 1px solid var(--shop-border);
    box-shadow: var(--shop-shadow);
}

.shop-header-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0.85rem clamp(1rem, 3vw, 2.5rem);
    min-height: var(--shop-header-h);
    height: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 640px) minmax(0, 1fr);
    align-items: center;
    gap: 0.65rem 0.85rem;
    width: 100%;
    box-sizing: border-box;
}

.shop-header-left {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.65rem;
    flex-shrink: 0;
    justify-self: start;
}

.shop-header-inner > .shop-search {
    width: 100%;
    max-width: 640px;
    flex: none;
    margin: 0;
    justify-self: center;
    grid-column: 2;
}

.shop-header-inner > .shop-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    flex-shrink: 0;
    margin-left: 0;
    justify-self: end;
    grid-column: 3;
}

.shop-header-inner > .shop-mobile-toggle {
    flex-shrink: 0;
}

.shop-header .brand-logo--shop {
    align-self: center;
    justify-content: center;
}

.shop-logo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--shop-text);
    font-weight: 800;
    flex-shrink: 0;
}

/* —— Logo: görsel marka —— */
.brand-logo {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.25rem;
    text-decoration: none;
    color: inherit;
    flex-shrink: 0;
    line-height: 1.2;
    width: auto !important;
    height: auto !important;
    min-width: 0;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0;
}

.brand-logo-img {
    display: block;
    width: auto;
    height: 84px;
    max-width: min(280px, 58vw);
    object-fit: contain;
    object-position: center;
    border-radius: 6px;
    background: #000;
}

.brand-logo-text {
    display: none !important;
}

.brand-logo-tag {
    display: none !important;
}

.brand-logo--shop .brand-logo-img {
    height: 104px;
    max-width: 320px;
}

.brand-logo--footer .brand-logo-img {
    height: 104px;
    max-width: 320px;
}

.brand-logo--admin .brand-logo-img {
    height: 96px;
    max-width: 290px;
}

.brand-logo--store .brand-logo-img {
    height: 80px;
    max-width: 260px;
}

.brand-logo--login .brand-logo-img,
.brand-logo--login-mobile .brand-logo-img {
    height: 140px;
    max-width: 340px;
}

.brand-logo-mark,
.brand-wordmark,
.shop-logo-icon,
.admin-logo { display: none !important; }

.shop-header .brand-logo--shop { align-self: center; }

/* —— Mega menü (Kategoriler) —— */
.shop-mega {
    position: relative;
    flex-shrink: 0;
}
.shop-mega-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    height: 50px;
    padding: 0 1.15rem;
    border: 0;
    border-radius: 12px;
    background: var(--shop-primary);
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    cursor: pointer;
    font-family: inherit;
    transition: background .15s ease, transform .15s ease;
    line-height: 1;
}
.shop-mega-btn:hover { background: color-mix(in srgb, var(--shop-primary) 88%, #000); }
.shop-mega-btn[aria-expanded="true"] {
    background: color-mix(in srgb, var(--shop-primary) 82%, #000);
}
/* Masaüstünde hamburger (3 çizgi) gösterme — sadece “Kategoriler” */
.shop-mega-btn-icon { display: none; }
.shop-mega-btn-chevron {
    display: flex;
    transition: transform .2s ease;
}
.shop-mega-btn[aria-expanded="true"] .shop-mega-btn-chevron { transform: rotate(180deg); }

.shop-mega-backdrop {
    position: fixed;
    inset: 0;
    top: var(--shop-header-offset, var(--shop-header-h, 68px));
    background: rgba(15, 23, 42, 0.28);
    z-index: 280;
}
.shop-mega-panel {
    position: fixed;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    top: calc(var(--shop-header-offset, var(--shop-header-h, 68px)) + 0.55rem);
    width: min(1080px, calc(100vw - 2rem));
    max-width: calc(100vw - 2rem);
    background: #fff;
    border: 1px solid var(--shop-border);
    border-radius: 14px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.16);
    z-index: 320;
    overflow: hidden;
    animation: shopMegaIn .18s ease;
}
@keyframes shopMegaIn {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
.shop-mega-panel-inner {
    display: grid;
    grid-template-columns: 260px 1fr;
    min-height: 420px;
    max-height: min(72vh, 560px);
    height: min(72vh, 560px);
    align-items: stretch;
}
.shop-mega-side {
    background: #f8fafc;
    border-right: 1px solid var(--shop-border);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    min-height: 0;
    max-height: 100%;
    height: 100%;
    padding: 0.5rem 0;
    touch-action: pan-y;
}
.shop-mega-side-link {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.72rem 1rem;
    border: 0;
    background: transparent;
    color: var(--shop-text);
    text-align: left;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    flex-shrink: 0;
}
.shop-mega-side-link:hover,
.shop-mega-side-link.is-active {
    background: #fff;
    color: var(--shop-primary);
}
.shop-mega-side-all {
    color: var(--shop-muted);
    font-weight: 500;
    border-bottom: 1px solid var(--shop-border);
    margin-bottom: 0.25rem;
}
.shop-mega-main {
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    min-height: 0;
    max-height: 100%;
    height: 100%;
    padding: 1rem 1.15rem 1.25rem;
    background: #fff;
    touch-action: pan-y;
}
.shop-mega-pane-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.9rem;
}
.shop-mega-pane-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}
.shop-mega-pane-sub {
    margin: 0.15rem 0 0;
    font-size: 0.8rem;
    color: var(--shop-muted);
}
.shop-mega-pane-all {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--shop-primary);
    text-decoration: none;
    white-space: nowrap;
}
.shop-mega-pane-all:hover { text-decoration: underline; }
.shop-mega-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem 1.25rem;
    margin-bottom: 1.1rem;
}
.shop-mega-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.shop-mega-list > li { margin-bottom: 0.65rem; }
.shop-mega-list-link {
    font-weight: 700;
    font-size: 0.86rem;
    color: var(--shop-text);
    text-decoration: none;
}
.shop-mega-list-link:hover { color: var(--shop-primary); }
.shop-mega-sublist {
    list-style: none;
    margin: 0.25rem 0 0;
    padding: 0;
}
.shop-mega-sublist a {
    display: block;
    padding: 0.15rem 0;
    font-size: 0.8rem;
    color: var(--shop-muted);
    text-decoration: none;
}
.shop-mega-sublist a:hover { color: var(--shop-primary); }
.shop-mega-tiles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    border-top: 1px solid var(--shop-border);
    padding-top: 1rem;
}
.shop-mega-tile {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    text-decoration: none;
    color: var(--shop-text);
    border-radius: 10px;
    transition: transform .15s ease;
}
.shop-mega-tile:hover { transform: translateY(-2px); }
.shop-mega-tile-img {
    aspect-ratio: 1;
    border-radius: 10px;
    border: 1px solid var(--shop-border);
    background: #f8fafc;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.shop-mega-tile-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.35rem;
}
.shop-mega-tile-label {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
}

@media (max-width: 960px) {
    /* 1024px mobil kuralları geçerli; burada sadece ekstra ince ayar */
    .shop-mega-btn-chevron { display: none; }
}

@media (max-width: 640px) {
    .shop-mega-btn span:nth-child(2) { /* keep label */ }
    .shop-mega-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shop-mega-columns { grid-template-columns: 1fr; }
}

.shop-nav {
    display: none;
    gap: 0.15rem;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.shop-nav::-webkit-scrollbar { display: none; }

.shop-nav-link {
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--shop-muted);
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.12s, color 0.12s;
}

.shop-nav-link:hover { color: var(--shop-text); background: var(--shop-bg); }
.shop-nav-link.is-active { background: var(--shop-primary); color: #fff; }

.shop-search {
    display: flex;
    align-items: center;
    max-width: 640px;
    flex: 1;
    min-width: 180px;
    height: 50px;
    background: var(--shop-bg);
    border: 1px solid var(--shop-border);
    border-radius: 999px;
    padding: 0 0.45rem 0 1.1rem;
    box-sizing: border-box;
}

.shop-search input {
    flex: 1;
    border: none;
    background: transparent;
    padding: 0.55rem 0;
    font-family: inherit;
    font-size: 0.92rem;
    outline: none;
    min-width: 0;
}

.shop-search button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: var(--shop-primary);
    color: #fff;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    flex-shrink: 0;
}

.shop-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

/* Kredi / bakiye rozeti */
.shop-credit-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.45rem 0.85rem;
    border-radius: 12px;
    border: 1px solid var(--shop-border);
    background: #fff;
    text-decoration: none;
    color: var(--shop-text);
    line-height: 1.15;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
    max-width: none;
}
.shop-credit-pill-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    min-width: 0;
}
.shop-credit-pill-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--shop-muted);
    line-height: 1;
}
.shop-credit-pill-value {
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: inherit;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.shop-credit-pill:hover {
    transform: translateY(-1px);
}
.shop-credit-pill.is-active {
    box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.12);
}

/* 0 → nötr / beyaz */
.shop-credit-pill.is-zero {
    background: #fff;
    border-color: #e2e8f0;
    color: #475569;
}
.shop-credit-pill.is-zero:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
}

/* + → yeşil */
.shop-credit-pill.is-positive {
    background: #ecfdf5;
    border-color: rgba(5, 150, 105, 0.35);
    color: #047857;
}
.shop-credit-pill.is-positive:hover {
    background: #059669;
    border-color: #059669;
    color: #fff;
}
.shop-credit-pill.is-positive:hover .shop-credit-pill-label {
    color: rgba(255, 255, 255, 0.85);
}

/* − → kırmızı */
.shop-credit-pill.is-negative {
    background: #fef2f2;
    border-color: rgba(220, 38, 38, 0.3);
    color: #b91c1c;
}
.shop-credit-pill.is-negative:hover {
    background: #dc2626;
    border-color: #dc2626;
    color: #fff;
}
.shop-credit-pill.is-negative:hover .shop-credit-pill-label {
    color: rgba(255, 255, 255, 0.85);
}

.shop-account-credit-value.is-positive { color: #047857; }
.shop-account-credit-value.is-negative { color: #b91c1c; }
.shop-account-credit-value.is-zero { color: #475569; }

.ledger-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.ledger-summary-card {
    padding: 0.85rem 1rem;
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 12px;
    box-shadow: var(--shop-shadow);
}
.ledger-summary-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--shop-muted);
    margin-bottom: 0.25rem;
}
.ledger-summary-value {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--shop-primary);
}
.ledger-summary-value.is-negative { color: #dc2626; }
.ledger-summary-value.is-debt { color: #b45309; }
.ledger-summary-value.is-prepaid { color: #047857; }
.ledger-balance-cell .admin-credit-amt--prepaid { color: #047857; font-weight: 700; }
.ledger-balance-cell .admin-credit-amt--debt { color: #b45309; font-weight: 700; }
.ledger-credit { color: #16a34a; font-weight: 700; }
.ledger-debit { color: #dc2626; font-weight: 700; }
.shop-credit-pill-icon {
    flex-shrink: 0;
    opacity: 0.85;
}

.shop-account-credit {
    padding: 0.65rem 0.85rem 0.5rem;
    background: linear-gradient(135deg, #f8fbff 0%, #eef6fc 100%);
    border-bottom: 1px solid var(--shop-border);
}
.shop-account-credit-label {
    display: block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--shop-muted);
    margin-bottom: 0.2rem;
}
.shop-account-credit-value {
    display: block;
    font-size: 1rem;
    font-weight: 800;
    color: var(--shop-primary);
    letter-spacing: -0.02em;
}
.shop-account-credit-value.is-negative {
    color: #dc2626;
}
.shop-account-credit-meta {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.7rem;
    color: var(--shop-muted);
    line-height: 1.35;
}
.shop-account-menu hr:first-of-type {
    margin-top: 0;
}

.shop-action {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--shop-muted);
    text-decoration: none;
    padding: 0.4rem 0.65rem;
    border-radius: 8px;
    gap: 0.35rem;
}

.shop-action:hover, .shop-action.is-active { color: var(--shop-primary); background: #eff6ff; }

.shop-action.shop-action--login,
.shop-action.shop-action--register {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
}

.shop-action.shop-action--register {
    background: var(--shop-primary);
    color: #fff;
}

.shop-action.shop-action--register:hover {
    background: var(--shop-primary-dark);
    color: #fff;
}

.shop-action.shop-action--register-closed {
    display: inline-flex;
    align-items: center;
    max-width: 12.5rem;
    padding: 0.45rem 0.7rem;
    border-radius: 8px;
    background: #f1f5f9;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.25;
    cursor: default;
    user-select: none;
    text-align: center;
}

.shop-account { position: relative; }

.shop-account-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid var(--shop-border);
    background: #f3f4f6;
    padding: 0.45rem 0.85rem;
    border-radius: 6px;
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 500;
    color: #111;
    cursor: pointer;
    max-width: 240px;
    line-height: 1.2;
}

.shop-account-btn .shop-chevron {
    display: inline-flex;
    flex-shrink: 0;
    opacity: 0.7;
}

.shop-account-btn .shop-account-name {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-account-hello {
    font-weight: 500;
    color: #334155;
}

.shop-account-btn .shop-account-name strong {
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.01em;
}

.shop-account-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 0;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
    min-width: 230px;
    width: max(230px, 100%);
    padding: 0;
    z-index: 400;
    overflow: hidden;
}

.shop-account-menu[hidden] { display: none; }

.shop-account-menu-links {
    display: flex;
    flex-direction: column;
    padding: 0.55rem 0;
}

.shop-account-menu-links a {
    display: block;
    padding: 0.55rem 1.1rem;
    font-size: 0.84rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: right;
    color: #111 !important;
    text-decoration: none;
    border-radius: 0;
}

.shop-account-menu-links a:hover {
    background: #f3f4f6;
}

.shop-account-menu-links a.is-danger {
    color: #111 !important;
}

.shop-account-rep {
    border-top: 0;
}

.shop-account-rep-head {
    background: #6b7280;
    color: #fff;
    text-align: center;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.55rem 0.75rem;
}

.shop-account-rep-body {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.2rem;
    padding: 0.75rem 1.1rem 0.9rem;
    background: #fff;
    text-align: right;
}

.shop-account-rep-name {
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    color: #111;
    text-transform: uppercase;
}

.shop-account-rep-email,
.shop-account-rep-phone {
    font-size: 0.82rem;
    font-weight: 500;
    color: #1f2937 !important;
    text-decoration: none;
}

.shop-account-rep-email:hover,
.shop-account-rep-phone:hover {
    text-decoration: underline;
}

.shop-account-menu hr { border: none; border-top: 1px solid var(--shop-border); margin: 0.35rem 0; }

.shop-cart {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--shop-primary);
    color: #fff !important;
    padding: 0.6rem 1.1rem;
    min-height: 50px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.88rem;
    position: relative;
    box-sizing: border-box;
    line-height: 1;
}

.shop-cart:hover { background: var(--shop-primary-dark); color: #fff; }
.shop-cart.is-active { box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.3); }

.shop-cart-count {
    background: var(--shop-accent);
    font-size: 0.72rem;
    min-width: 1.25rem;
    height: 1.25rem;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.shop-mobile-toggle {
    display: none !important;
}

/* Main */
.shop-main { flex: 1; }

.shop-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.25rem clamp(1rem, 3vw, 2.5rem) 2rem;
    width: 100%;
    box-sizing: border-box;
}

/* —— Footer —— */
.shop-footer {
    margin-top: auto;
    color: #cbd5e1;
    font-size: 0.875rem;
}

.shop-footer-top {
    background: linear-gradient(165deg, #0c1929 0%, #0f2744 42%, #132f52 100%);
    position: relative;
    overflow: hidden;
}

.shop-footer-top::before {
    content: '';
    position: absolute;
    top: -120px;
    right: -80px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(59, 130, 246, 0.18) 0%, transparent 70%);
    pointer-events: none;
}

.shop-footer-top::after {
    content: '';
    position: absolute;
    bottom: -60px;
    left: -40px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(251, 146, 60, 0.12) 0%, transparent 70%);
    pointer-events: none;
}

.shop-footer-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 clamp(1rem, 3vw, 2.5rem);
    position: relative;
    z-index: 1;
    width: 100%;
    box-sizing: border-box;
}

.shop-footer-grid {
    display: grid;
    grid-template-columns: 1.35fr repeat(3, 1fr);
    gap: 2rem 1.5rem;
    padding: 3rem 0 2rem;
}

.shop-footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    text-decoration: none;
    color: #fff;
    margin-bottom: 1rem;
}

.shop-footer-logo-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #0c0a09;
    border: 1.5px solid #c4a35a;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 800;
    font-size: 1.2rem;
    color: #f5ecd8;
    flex-shrink: 0;
}

.shop-footer-logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.shop-footer-logo-text strong {
    font-family: var(--font-display);
    font-size: 1.15rem;
    letter-spacing: -0.02em;
}

.shop-footer-logo-text small {
    font-size: 0.72rem;
    color: #94a3b8;
    font-weight: 500;
    margin-top: 0.15rem;
}

.shop-footer-tagline {
    margin: 0 0 1.1rem;
    max-width: 320px;
    line-height: 1.6;
    color: #94a3b8;
    font-size: 0.84rem;
}

.shop-footer-pill {
    display: inline-block;
    padding: 0.28rem 0.6rem;
    margin: 0 0.35rem 0.35rem 0;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #e2e8f0;
}

.shop-footer-heading {
    margin: 0 0 1rem;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #ffffff;
}

.shop-footer-links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.shop-footer-links li {
    margin-bottom: 0.5rem;
}

.shop-footer-links a {
    color: #ffffff;
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 500;
    transition: color 0.15s ease, padding-left 0.15s ease, opacity 0.15s ease;
}

.shop-footer-links a:hover {
    color: #ffffff;
    opacity: 0.85;
    padding-left: 4px;
}

.shop-footer-muted {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.84rem;
    font-weight: 500;
}

.shop-footer-contact {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
}

.shop-footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin-bottom: 0.65rem;
    font-size: 0.82rem;
    color: #e2e8f0;
    line-height: 1.45;
}

.shop-footer-contact a {
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
}

.shop-footer-contact a:hover {
    color: #fff;
    text-decoration: underline;
}

.shop-footer-contact-icon {
    flex-shrink: 0;
    color: #60a5fa;
    margin-top: 0.1rem;
}

.shop-footer-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1.1rem;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--shop-primary), #1a6bb5);
    color: #fff !important;
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(37, 99, 235, 0.35);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.shop-footer-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(37, 99, 235, 0.45);
}

.shop-footer-trust {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    padding: 1.35rem 0 2.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.shop-footer-trust-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
    transition: background 0.2s ease, border-color 0.2s ease;
}

.shop-footer-trust-item:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.12);
}

.shop-footer-trust-icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(59, 130, 246, 0.15);
    color: #93c5fd;
}

.shop-footer-trust-item strong {
    display: block;
    font-size: 0.82rem;
    color: #f1f5f9;
    margin-bottom: 0.1rem;
}

.shop-footer-trust-item span {
    font-size: 0.72rem;
    color: #64748b;
}

.shop-footer-bottom {
    background: #070f1a;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.shop-footer-bottom-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    padding: 1.1rem 0;
}

.shop-footer-copy {
    margin: 0;
    font-size: 0.78rem;
    color: #64748b;
}

.shop-footer-copy strong {
    color: #94a3b8;
    font-weight: 700;
}

.shop-footer-legal {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.25rem;
}

.shop-footer-legal a {
    color: #64748b;
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 600;
    transition: color 0.15s ease;
}

.shop-footer-legal a:hover {
    color: #93c5fd;
}

.shop-footer-credit {
    margin: 0;
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 500;
    text-align: right;
    line-height: 1.45;
}

.shop-footer-credit a {
    color: #94a3b8;
    text-decoration: none;
    font-weight: 700;
    transition: color 0.15s ease;
}

.shop-footer-credit a:hover {
    color: #e2e8f0;
}

@media (max-width: 1024px) {
    .shop-footer-grid {
        grid-template-columns: 1fr 1fr;
    }
    .shop-footer-brand {
        grid-column: 1 / -1;
    }
    .shop-footer-trust {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 560px) {
    .shop-footer-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 2rem 0 1.5rem;
    }
    .shop-footer-trust {
        grid-template-columns: 1fr;
        padding-bottom: 1.75rem;
    }
    .shop-footer-bottom-inner {
        flex-direction: column;
        text-align: center;
    }
    .shop-footer-legal {
        justify-content: center;
    }
    .shop-footer-credit {
        text-align: center;
    }
}

/* Sayfa başlığı */
.shop-page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.shop-page-head h1 {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 0.25rem;
    letter-spacing: -0.02em;
}

.shop-page-head p { margin: 0; color: var(--shop-muted); font-size: 0.9rem; }

.shop-sort {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.shop-sort label { font-size: 0.85rem; color: var(--shop-muted); white-space: nowrap; }

.shop-sort .form-control {
    min-width: 160px;
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
    border: 1px solid var(--shop-border);
    font-family: inherit;
    font-size: 0.88rem;
}

/* Katalog filtreleri */
.shop-filters {
    margin-bottom: 1rem;
}
.shop-filter-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
    padding: 0.85rem 1rem;
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(15, 76, 129, 0.04);
}
.shop-filter-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--shop-muted);
    flex-shrink: 0;
}
.shop-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    flex: 1;
    min-width: 0;
}
.shop-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--shop-text);
    background: var(--shop-bg);
    border: 1px solid transparent;
    white-space: nowrap;
}
.shop-filter-pill:hover {
    border-color: var(--shop-border);
    color: var(--shop-primary);
}
.shop-filter-pill.is-active {
    background: var(--shop-primary);
    color: #fff;
}
.shop-filter-pill.is-active .shop-filter-count {
    background: rgba(255,255,255,0.22);
    color: #fff;
}
.shop-filter-count {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    background: rgba(15, 76, 129, 0.08);
    color: var(--shop-muted);
}

/* Marka — sonsuz yatay kaydırma (sağdan sola) */
.shop-brand-marquee {
    margin-bottom: 1.1rem;
    padding: 0.75rem 0 0.35rem;
}
.shop-brand-marquee-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
    padding: 0 0.15rem;
}
.shop-brand-all {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--shop-primary);
    text-decoration: none;
}
.shop-brand-all.is-active { text-decoration: underline; }
.shop-brand-marquee-viewport {
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.shop-brand-marquee-track {
    display: flex;
    width: max-content;
    gap: 0.5rem;
    animation: shopBrandMarquee 45s linear infinite;
    will-change: transform;
}
.shop-brand-marquee:hover .shop-brand-marquee-track,
.shop-brand-marquee:focus-within .shop-brand-marquee-track {
    animation-play-state: paused;
}
@keyframes shopBrandMarquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.shop-brand-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    color: var(--shop-text);
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 700;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(15, 76, 129, 0.05);
    transition: background .15s, color .15s, border-color .15s;
}
.shop-brand-chip:hover {
    border-color: var(--shop-primary);
    color: var(--shop-primary);
}
.shop-brand-chip.is-active {
    background: var(--shop-primary);
    border-color: transparent;
    color: #fff;
}
.shop-brand-chip-count {
    font-size: 0.7rem;
    font-weight: 700;
    opacity: 0.7;
}
@media (prefers-reduced-motion: reduce) {
    .shop-brand-marquee-track {
        animation: none;
        flex-wrap: wrap;
        width: auto;
        max-width: 100%;
    }
    .shop-brand-marquee-viewport {
        mask-image: none;
        -webkit-mask-image: none;
        overflow-x: auto;
    }
}

.shop-filter-pill:hover {
    border-color: var(--shop-primary);
    color: var(--shop-primary);
    background: rgba(37, 99, 235, 0.08);
}
.shop-filter-pill.is-active {
    background: linear-gradient(145deg, var(--shop-primary) 0%, var(--shop-primary-dark) 100%);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 3px 12px rgba(37, 99, 235, 0.28);
}
.shop-filter-pill.is-active .shop-filter-count {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}
.shop-filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    background: rgba(15, 76, 129, 0.1);
    color: var(--shop-primary);
}
@media (max-width: 640px) {
    .shop-filter-group {
        flex-direction: column;
        align-items: flex-start;
    }
    .shop-filter-pills {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 0.25rem;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
}

.shop-grade-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 1.25rem;
}

.shop-grade-bar a {
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    font-size: 0.82rem;
    border: 1px solid var(--shop-border);
    background: var(--shop-surface);
    color: var(--shop-text);
    text-decoration: none;
}

.shop-grade-bar a.is-active,
.shop-grade-bar a:hover,
.shop-grade-bar .tab.active,
.shop-grade-bar .tab:hover {
    background: var(--shop-primary);
    border-color: var(--shop-primary);
    color: #fff;
}

.shop-grade-bar .tab {
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    font-size: 0.82rem;
    border: 1px solid var(--shop-border);
    background: var(--shop-surface);
    color: var(--shop-text);
    text-decoration: none;
}

/* Ürün grid & kartlar */
.shop-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.5rem;
}

.shop-product {
    position: relative;
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 16px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
}

.shop-product:hover {
    border-color: #cbd5e1;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.1);
    transform: translateY(-4px);
}

.shop-product.is-featured {
    border-color: #bfdbfe;
    box-shadow: 0 4px 20px rgba(37, 99, 235, 0.08);
}

.shop-product.is-out-of-stock {
    opacity: 0.92;
}

.shop-product.is-out-of-stock .shop-product-img img {
    filter: grayscale(0.35);
}

.shop-product-media {
    position: relative;
    background: linear-gradient(160deg, #f1f5f9 0%, #e8eef5 100%);
}

.shop-fav-btn {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    z-index: 3;
    width: 2.25rem;
    height: 2.25rem;
    border: none;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.94);
    color: #64748b;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.12);
    cursor: pointer;
    transition: transform 0.18s ease, color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.shop-fav-btn:hover {
    color: #e11d48;
    transform: scale(1.06);
}

.shop-fav-btn.is-active {
    color: #e11d48;
    background: #fff1f2;
}

.shop-fav-btn.is-active svg {
    fill: currentColor;
}

.shop-fav-btn.is-loading {
    opacity: 0.65;
    pointer-events: none;
}

.shop-fav-btn.is-pop {
    animation: shop-fav-pop 0.32s ease;
}

@keyframes shop-fav-pop {
    0% { transform: scale(1); }
    40% { transform: scale(1.22); }
    100% { transform: scale(1); }
}

.shop-fav-btn--pdp {
    position: static;
    width: auto;
    height: auto;
    gap: 0.4rem;
    padding: 0.55rem 0.9rem;
    border-radius: 10px;
    border: 1px solid var(--shop-border);
    box-shadow: none;
    font-size: 0.85rem;
    font-weight: 600;
    flex-shrink: 0;
}

.shop-fav-btn-text { line-height: 1; }

.shop-pdp-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.shop-pdp-title-row h1 { margin-top: 0.15rem; }

.shop-product.is-fav-removing {
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.shop-fav-link {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    background: var(--shop-surface);
    color: var(--shop-text) !important;
    padding: 0.6rem 0.95rem;
    min-height: 50px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.88rem;
    position: relative;
    box-sizing: border-box;
    border: 1px solid var(--shop-border);
    line-height: 1;
}

.shop-fav-link:hover,
.shop-fav-link.is-active {
    border-color: #fecdd3;
    color: #be123c !important;
    background: #fff1f2;
}

.shop-fav-link-icon {
    display: inline-flex;
    align-items: center;
}

.shop-fav-link-icon svg { display: block; }

.shop-fav-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: #e11d48;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
}

.shop-fav-count[hidden] { display: none !important; }


.shop-product-img {
    display: block;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

.shop-product-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.shop-product:hover .shop-product-img img {
    transform: scale(1.05);
}

.shop-product-badges {
    position: absolute;
    top: 0.65rem;
    left: 0.65rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    z-index: 2;
    max-width: calc(100% - 1.3rem);
}

.shop-badge {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
}

.shop-badge-new {
    background: var(--shop-accent);
    color: #fff;
}

.shop-badge-sale {
    background: #dc2626;
    color: #fff;
}

.shop-badge-out {
    background: #475569;
    color: #fff;
}

.shop-product-oos {
    margin: 0.15rem 0 0;
    font-size: 0.82rem;
    font-weight: 700;
    color: #b91c1c;
}

.shop-oos-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.55rem;
    padding: 0.55rem 0.85rem;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    background: #f1f5f9;
    color: #64748b;
    font-size: 0.88rem;
    font-weight: 700;
    cursor: not-allowed;
    box-sizing: border-box;
}

.shop-oos-btn--lg {
    min-height: 3rem;
    font-size: 0.95rem;
    max-width: 16rem;
}

.shop-badge-stock {
    background: #fff;
    color: #b45309;
    border: 1px solid #fde68a;
}

.shop-product-discount-pill {
    position: absolute;
    bottom: 0.65rem;
    right: 0.65rem;
    z-index: 2;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.3rem 0.55rem;
    border-radius: 8px;
    background: rgba(5, 150, 105, 0.92);
    color: #fff;
    backdrop-filter: blur(4px);
}

/* Geriye dönük etiket sınıfları */
.shop-tag {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
}

.shop-tag-new { background: var(--shop-accent); color: #fff; }
.shop-tag-out { background: #64748b; color: #fff; right: 0.5rem; left: auto; }

.shop-product-body {
    padding: 1rem 1.1rem 0.65rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.shop-product-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.shop-product-brand {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--shop-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0;
    max-width: 65%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-product-chip {
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    background: #eff6ff;
    color: var(--shop-primary);
    border: 1px solid #dbeafe;
    white-space: nowrap;
}

.shop-product-title {
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.shop-product-title a {
    color: var(--shop-text);
    text-decoration: none;
    transition: color 0.15s;
}

.shop-product-title a:hover {
    color: var(--shop-primary);
}

.shop-product-meta {
    font-size: 0.78rem;
    color: var(--shop-muted);
    margin: 0;
    line-height: 1.4;
}

.shop-product-pricing {
    margin-top: auto;
    padding-top: 0.5rem;
}

.shop-product-barcode {
    margin: 0 0 0.2rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--shop-muted);
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    line-height: 1.2;
    word-break: break-all;
}

.shop-product-barcode--pdp {
    font-size: 0.9rem;
    margin: 0.15rem 0 0.35rem;
    color: #475569;
}

.shop-product-title {
    margin-top: 0;
}

.shop-product-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
}

.shop-product-price-current {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--shop-primary);
    letter-spacing: -0.02em;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.shop-product-price-old {
    font-size: 1.22rem;
    font-weight: 700;
    color: #c2410c;
    text-decoration: none;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.shop-product-deal {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    margin: 0.35rem 0 0;
    padding: 0.4rem 0.55rem;
    background: #ecfdf5;
    border-radius: 8px;
    font-size: 0.78rem;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.shop-product-deal-label {
    color: #047857;
    font-weight: 500;
    line-height: 1.2;
}

.shop-product-deal strong {
    color: #059669;
    font-weight: 800;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    font-size: 0.95rem;
    line-height: 1.15;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shop-product-footer {
    padding: 0.85rem 1.1rem 1.1rem;
    border-top: 1px solid #f1f5f9;
    background: linear-gradient(180deg, transparent 0%, #fafbfc 100%);
}

.shop-product-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 0.45rem;
}
.shop-product-actions > .shop-qty,
.shop-product-actions > .shop-qty-select,
.shop-product-actions > .btn-add-cart--card {
    width: 100%;
    flex: none;
}
.shop-product-actions .shop-qty {
    justify-content: space-between;
    min-height: 40px;
}
.shop-product-actions .shop-qty input,
.shop-product-actions .shop-qty-select {
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
}
.shop-product-actions .shop-qty-rule {
    order: 3;
    margin: 0;
    width: 100%;
}

.shop-product-actions--disabled {
    display: block;
}

.shop-qty {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    border: 1px solid var(--shop-border);
    border-radius: 10px;
    overflow: hidden;
    background: var(--shop-surface);
}

.shop-qty-select,
.cart-qty-select {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid var(--shop-border);
    border-radius: 10px;
    background: var(--shop-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748b' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 0.65rem center;
    padding: 0.45rem 1.75rem 0.45rem 0.7rem;
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--shop-text);
    min-width: 6.5rem;
    cursor: pointer;
}

.shop-qty .shop-qty-select {
    border: 0;
    border-radius: 0;
    width: 100%;
    min-width: 5.5rem;
    background-color: var(--shop-surface);
}

.shop-qty-rule,
.cart-qty-rule {
    margin: 0.35rem 0 0;
    font-size: 0.72rem;
    font-weight: 600;
    color: #b45309;
    line-height: 1.3;
    width: 100%;
    flex-basis: 100%;
}
.shop-qty-rule-inline {
    color: #b45309;
    font-weight: 600;
}

.shop-qty-btn,
.shop-qty button {
    width: 34px;
    height: 38px;
    border: none;
    background: var(--shop-bg);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    color: var(--shop-text);
    transition: background 0.12s;
}

.shop-qty-btn:hover,
.shop-qty button:hover {
    background: #e2e8f0;
}

.shop-qty input {
    width: 2.5rem;
    border: none;
    border-left: 1px solid var(--shop-border);
    border-right: 1px solid var(--shop-border);
    text-align: center;
    font-family: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    min-width: 0;
    -moz-appearance: textfield;
}

.shop-qty input::-webkit-outer-spin-button,
.shop-qty input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.shop-product-compare {
    display: block;
    margin-top: 0.55rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--shop-muted);
    text-align: center;
    text-decoration: none;
    transition: color 0.12s;
}

.shop-product-compare:hover {
    color: var(--shop-primary);
}

.shop-product .btn-add-cart--card {
    flex: none;
    width: 100%;
    min-width: 0;
    min-height: 40px;
    border-radius: 10px;
    padding: 0.55rem 0.75rem;
    font-size: 0.82rem;
    white-space: nowrap;
    background: var(--shop-primary);
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.28);
}

.shop-product .btn-add-cart--card:hover:not(.is-adding):not(.is-added) {
    background: var(--shop-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(37, 99, 235, 0.35);
}

.shop-product .btn-add-cart--card.is-added {
    background: linear-gradient(135deg, #059669, #10b981);
}

.shop-product .btn-add-cart--card.is-disabled {
    border-radius: 10px;
    background: #cbd5e1;
    box-shadow: none;
}

/* Animasyonlu Sepete Ekle */
.btn-add-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: 100%;
    padding: 0.65rem 1.25rem;
    border: none;
    border-radius: 999px;
    background: #0f172a;
    color: #fff;
    font-family: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    overflow: hidden;
    transition: transform 0.25s cubic-bezier(0.34, 1.4, 0.64, 1), box-shadow 0.25s ease, background 0.3s ease;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.22);
}

.btn-add-cart-shine {
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.22) 50%, transparent 60%);
    transform: translateX(-120%);
    pointer-events: none;
}

.btn-add-cart:hover .btn-add-cart-shine {
    animation: cart-btn-shine 0.75s ease;
}

.btn-add-cart:hover:not(.is-adding):not(.is-added) {
    transform: translateY(-1px) scale(1.02);
    background: #1e293b;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.28);
}

.btn-add-cart:active:not(.is-adding) {
    transform: scale(0.96);
}

.btn-add-cart:focus-visible {
    outline: 2px solid var(--shop-primary);
    outline-offset: 2px;
}

.btn-add-cart.is-adding {
    transform: scale(0.94);
    animation: cart-btn-pulse 0.45s ease infinite;
}

.btn-add-cart.is-loading .btn-add-cart-text::after {
    content: '…';
    animation: cart-loading-dots 1s steps(3) infinite;
}

.btn-add-cart.is-added {
    background: linear-gradient(135deg, #059669 0%, #10b981 100%);
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.45);
    transform: scale(1.03);
    animation: cart-btn-success-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.btn-add-cart-ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.45);
    transform: scale(0);
    animation: cart-btn-ripple 0.65s ease-out forwards;
    pointer-events: none;
}

.btn-add-cart-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    width: 18px;
    height: 18px;
}

.btn-add-cart-icon-check {
    position: absolute;
    opacity: 0;
    transform: scale(0.3) rotate(-20deg);
    transition: opacity 0.2s ease, transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.btn-add-cart-icon-cart {
    transition: opacity 0.15s ease, transform 0.25s ease;
}

.btn-add-cart.is-added .btn-add-cart-icon-cart {
    opacity: 0;
    transform: scale(0.4) translateY(6px);
}

.btn-add-cart.is-added .btn-add-cart-icon-check {
    opacity: 1;
    transform: scale(1) rotate(0deg);
}

.btn-add-cart-text {
    position: relative;
    z-index: 1;
    transition: transform 0.25s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.btn-add-cart.is-added .btn-add-cart-text {
    transform: scale(1.05);
}

.btn-add-cart.is-adding .btn-add-cart-icon-cart {
    animation: cart-icon-bounce 0.5s ease infinite;
}

.btn-add-cart--lg {
    width: auto;
    min-width: 200px;
    padding: 0.85rem 1.75rem;
    font-size: 1rem;
}

.btn-add-cart--compact {
    width: auto;
    padding: 0.45rem 1rem;
    font-size: 0.8rem;
}

.btn-add-cart.is-disabled {
    display: block;
    width: 100%;
    text-align: center;
    background: #94a3b8;
    color: #fff;
    padding: 0.65rem 1rem;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: not-allowed;
}

@keyframes cart-btn-shine {
    to { transform: translateX(120%); }
}

@keyframes cart-btn-pulse {
    0%, 100% { box-shadow: 0 2px 10px rgba(37, 99, 235, 0.25); }
    50% { box-shadow: 0 4px 18px rgba(37, 99, 235, 0.45); }
}

@keyframes cart-btn-success-pop {
    0% { transform: scale(0.9); }
    55% { transform: scale(1.06); }
    100% { transform: scale(1.03); }
}

@keyframes cart-btn-ripple {
    to {
        transform: scale(1);
        opacity: 0;
    }
}

@keyframes cart-icon-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

@keyframes cart-loading-dots {
    0% { content: ''; }
    33% { content: '.'; }
    66% { content: '..'; }
}

.shop-cart-bump {
    animation: cart-bump 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes cart-bump {
    0% { transform: scale(1); }
    40% { transform: scale(1.12); }
    100% { transform: scale(1); }
}

.fly-to-cart-clone {
    will-change: transform, opacity;
}

.shop-product-actions .btn-add-cart:not(.btn-add-cart--card) {
    flex: 1;
    min-width: 0;
}

.shop-empty {
    text-align: center;
    padding: 4rem 2rem;
    background: var(--shop-surface);
    border-radius: var(--shop-radius);
    border: 1px dashed var(--shop-border);
}

.shop-empty-icon {
    display: flex;
    justify-content: center;
    margin-bottom: 0.75rem;
    color: var(--shop-muted);
    opacity: 0.45;
}
.shop-empty-icon svg { display: block; }
.shop-cart-icon { display: inline-flex; align-items: center; }
.shop-cart-icon svg { display: block; }
.shop-chevron { display: inline-flex; align-items: center; margin-left: 0.15rem; }
.shop-chevron svg { display: block; }
.shop-search button svg { display: block; }
.shop-mobile-toggle svg { display: block; }
.shop-empty h2 { margin: 0 0 0.5rem; }
.shop-empty p { color: var(--shop-muted); margin-bottom: 1.25rem; }

/* Ürün detay (PDP) */
.shop-pdp {
    display: grid;
    grid-template-columns: minmax(340px, 1fr) minmax(0, 1.25fr);
    gap: 1.15rem;
    align-items: stretch;
    max-width: none;
    width: 100%;
}

.shop-pdp-gallery {
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: var(--shop-radius);
    overflow: hidden;
    max-width: none;
    min-height: 0;
    height: 100%;
    aspect-ratio: auto;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.75rem;
    box-sizing: border-box;
}

.shop-pdp-gallery-main {
    flex: 1;
    min-height: 280px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8fafc;
    border-radius: 10px;
    overflow: hidden;
}

.shop-pdp-gallery-main img,
.shop-pdp-gallery img[data-pdp-main] {
    width: 100%;
    height: 100%;
    max-height: 420px;
    object-fit: contain;
    background: #f8fafc;
    padding: 1rem;
    box-sizing: border-box;
}

.shop-pdp-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.shop-pdp-thumb {
    width: 64px;
    height: 64px;
    padding: 0;
    border: 2px solid var(--shop-border);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    cursor: pointer;
    flex-shrink: 0;
}

.shop-pdp-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    padding: 0;
}

.shop-pdp-thumb.is-active,
.shop-pdp-thumb:hover {
    border-color: var(--shop-primary);
}

.shop-pdp-gallery img {
    width: 100%;
    height: 100%;
    max-height: 100%;
    object-fit: contain;
    background: #f8fafc;
    padding: 1rem;
    box-sizing: border-box;
}

.shop-pdp-info {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 4px;
    padding: 1.25rem 1.5rem 1.5rem;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.shop-pdp-name {
    margin: 0;
    font-size: clamp(1.15rem, 2.1vw, 1.55rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: #111;
    flex: 1;
    min-width: 0;
}

.shop-pdp-rating {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1.25rem;
    margin: 0.65rem 0 0;
    padding-bottom: 0.95rem;
    border-bottom: 1px solid #e5e5e5;
    font-size: 0.88rem;
}

.shop-pdp-rating-empty {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #4a4a4a;
}

.shop-pdp-rating-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: #7cb518;
    font-weight: 600;
    text-decoration: none;
}

.shop-pdp-rating-cta:hover {
    color: #689a12;
    text-decoration: underline;
}

.shop-pdp-pricing {
    margin: 0.95rem 0 0;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e5e5e5;
}

.shop-pdp-price-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    margin: 0 0 0.7rem;
}

.shop-pdp-price-label {
    font-size: 0.92rem;
    font-weight: 700;
    color: #3a3a3a;
}

.shop-pdp-price-value {
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    font-weight: 800;
    color: #e65c00;
    letter-spacing: -0.01em;
    line-height: 1.15;
}

.shop-pdp-kdv {
    margin: 0.15rem 0 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #333;
}

.shop-pdp-buy {
    display: flex;
    gap: 0.65rem;
    align-items: stretch;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.shop-pdp-qty-group {
    display: flex;
    align-items: stretch;
    gap: 0;
}

.shop-pdp-buy .shop-qty--pdp {
    max-width: none;
    min-width: 0;
    border-radius: 2px;
    border-color: #cfcfcf;
    background: #fff;
}

.shop-pdp-buy .shop-qty--pdp .shop-qty-btn,
.shop-pdp-buy .shop-qty--pdp button {
    width: 40px;
    height: 44px;
    background: #fff;
    font-size: 1.15rem;
    font-weight: 500;
    color: #333;
}

.shop-pdp-buy .shop-qty--pdp input {
    width: 2.75rem;
    height: 44px;
    border-color: #cfcfcf;
    font-size: 1rem;
    font-weight: 600;
}

.shop-pdp-qty-unit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.25rem;
    padding: 0 0.85rem;
    margin-left: 0.35rem;
    border: 1px solid #cfcfcf;
    border-radius: 2px;
    background: #fff;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

.shop-pdp-buy .btn-add-cart--pdp {
    flex: 1;
    min-width: 160px;
    max-width: 280px;
    border-radius: 3px;
    background: #7cb518;
    box-shadow: none;
    font-size: 1rem;
    font-weight: 700;
    padding: 0.7rem 1.4rem;
}

.shop-pdp-buy .btn-add-cart--pdp:hover:not(.is-adding):not(.is-added) {
    background: #6ea314;
    transform: none;
    box-shadow: none;
}

.shop-pdp-buy .btn-add-cart--pdp.is-added {
    background: #5a8f10;
    box-shadow: none;
}

.shop-pdp-purchase-badge {
    display: inline-block;
    margin: 0.85rem 0 0;
    padding: 0.45rem 0.85rem;
    border-radius: 4px;
    background: #5a5a5a;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.35;
}

.shop-pdp-specs {
    margin: 1.15rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.shop-pdp-spec {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    gap: 0.35rem 0.5rem;
    margin: 0;
    font-size: 0.92rem;
    color: #222;
    line-height: 1.4;
}

.shop-pdp-spec dt {
    margin: 0;
    font-weight: 600;
    color: #222;
}

.shop-pdp-spec dt::after {
    content: ' :';
}

.shop-pdp-spec dd {
    margin: 0;
    font-weight: 500;
}

.shop-pdp-spec dd a {
    color: #1a73e8;
    text-decoration: none;
    font-weight: 600;
}

.shop-pdp-spec dd a:hover {
    text-decoration: underline;
}

.shop-pdp-spec dd.is-in-stock {
    color: #222;
}

.shop-pdp-spec dd.is-oos {
    color: #b91c1c;
    font-weight: 700;
}

.shop-pdp-miad {
    margin: 0.85rem 0 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: #222;
    line-height: 1.4;
}

.shop-pdp-desc {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid #eee;
    font-size: 0.9rem;
    line-height: 1.7;
    color: #64748b;
}

.shop-breadcrumb {
    font-size: 0.85rem;
    color: var(--shop-muted);
    margin-bottom: 1rem;
}

.shop-breadcrumb a { color: var(--shop-primary); text-decoration: none; }

/* İç sayfalar (sepet, sipariş, profil, destek…) */
body.app-shop .card {
    border-radius: var(--shop-radius);
    border: 1px solid var(--shop-border);
    box-shadow: var(--shop-shadow);
    background: var(--shop-surface);
    margin-bottom: 1.25rem;
}

body.app-shop .card-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--shop-border);
    background: #fafbfc;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

body.app-shop .card-header h2,
body.app-shop .card-header h3 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--shop-text);
}

body.app-shop .card-body { padding: 1.15rem 1.25rem; }

body.app-shop .card-footer {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--shop-border);
    background: #fafbfc;
}

body.app-shop .form-control {
    border: 1px solid var(--shop-border);
    border-radius: 8px;
    background: var(--shop-surface);
}

body.app-shop .form-control:focus {
    border-color: var(--shop-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

body.app-shop .btn {
    border-radius: 8px;
    font-family: inherit;
}

body.app-shop .btn-primary {
    background: var(--shop-primary);
    color: #fff;
}

body.app-shop .btn-primary:hover {
    background: var(--shop-primary-dark);
    color: #fff;
}

body.app-shop .btn-ghost:hover {
    background: var(--shop-bg);
    color: var(--shop-text);
}

body.app-shop .btn-outline {
    border-color: var(--shop-primary);
    color: var(--shop-primary);
}

body.app-shop .alert {
    border-radius: var(--shop-radius);
    border: 1px solid var(--shop-border);
}

body.app-shop .data-table th {
    background: #f8fafc;
    color: var(--shop-muted);
    border-color: var(--shop-border);
}

body.app-shop .data-table td { border-color: #f1f5f9; }

body.app-shop .badge-primary { background: #dbeafe; color: var(--shop-primary); }

body.app-shop .breadcrumb a { color: var(--shop-muted); }
body.app-shop .breadcrumb [aria-current="page"] { color: var(--shop-text); }

body.app-shop .compare-table thead th {
    background: var(--shop-primary);
    color: #fff;
}

body.app-shop .progress-bar-fill {
    background: linear-gradient(90deg, var(--shop-primary), #3b82f6);
}

body.app-shop .bar-chart-bar {
    background: linear-gradient(180deg, #3b82f6, var(--shop-primary));
}

body.app-shop .info-panel {
    background: linear-gradient(135deg, #eff6ff 0%, var(--shop-bg) 100%);
    border-color: #bfdbfe;
}

body.app-shop .info-panel-item strong { color: var(--shop-primary); }

body.app-shop .ticket-msg.staff .ticket-msg-bubble {
    background: #eff6ff;
    border-color: #bfdbfe;
}

body.app-shop .faq-item.open .faq-question { color: var(--shop-primary); }

body.app-shop .status-step.active .status-step-dot {
    background: var(--shop-primary);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.2);
}

body.app-shop .grid-2 {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 1.25rem;
    align-items: start;
}

body.app-shop .detail-grid,
body.app-shop .dl-row { font-size: 0.9rem; }

body.app-shop .text-muted { color: var(--shop-muted); }

body.app-shop .filters-bar {
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: var(--shop-radius);
    box-shadow: var(--shop-shadow);
}

body.app-shop .cart-summary-row.total { color: var(--shop-primary); }

/* Eski product-grid → mağaza görünümü (geriye dönük) */
body.app-shop .product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}

body.app-shop .product-card {
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: var(--shop-radius);
    box-shadow: var(--shop-shadow);
}

body.app-shop .product-card:hover {
    box-shadow: var(--shop-shadow-lg);
    transform: translateY(-2px);
}

body.app-shop .product-price { color: var(--shop-primary); }

body.app-shop .bundle-card {
    border: 1px solid var(--shop-border);
    border-radius: var(--shop-radius);
    box-shadow: var(--shop-shadow);
    background: var(--shop-surface);
}

body.app-shop .bundle-card-header {
    background: #f8fafc;
    border-bottom: 1px solid var(--shop-border);
}

body.app-shop .bundle-savings { color: #059669; }

/* Mağaza hero bannerları (katalog üstü) */
.shop-hero-banners {
    margin: 0 0 1.5rem;
    width: 100%;
}

.shop-hero-slider {
    position: relative;
    width: 100%;
    padding: 0 52px;
    box-sizing: border-box;
}

.shop-hero-viewport {
    position: relative;
    width: 100%;
    aspect-ratio: 2.65 / 1;
    min-height: 240px;
    max-height: 430px;
    border-radius: 16px;
    overflow: hidden;
    background: #0f172a;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 16px 40px rgba(15, 76, 129, 0.18);
}

.shop-hero-track {
    position: absolute;
    inset: 0;
}

.shop-hero-slide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.45s ease, visibility 0.45s;
    pointer-events: none;
    z-index: 0;
}

.shop-hero-slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 1;
}

/* Görsel yok — tema gradient */
.shop-hero-slide.no-image.shop-hero-slide--primary {
    background: linear-gradient(125deg, #0c3d6e 0%, #1d5f9e 45%, #3b82f6 100%);
}
.shop-hero-slide.no-image.shop-hero-slide--violet {
    background: linear-gradient(125deg, #4c1d95 0%, #6d28d9 50%, #a78bfa 100%);
}
.shop-hero-slide.no-image.shop-hero-slide--amber {
    background: linear-gradient(125deg, #9a3412 0%, #ea580c 45%, #fdba74 100%);
}

.shop-hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.shop-hero-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.shop-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.shop-hero-slide.no-image .shop-hero-overlay {
    background: linear-gradient(90deg, rgba(15, 23, 42, 0.35) 0%, transparent 70%);
}

.shop-hero-slide.has-image .shop-hero-overlay {
    background: linear-gradient(
        90deg,
        rgba(15, 23, 42, 0.92) 0%,
        rgba(15, 23, 42, 0.72) 42%,
        rgba(15, 23, 42, 0.25) 68%,
        rgba(15, 23, 42, 0.05) 100%
    );
}

.shop-hero-inner {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: clamp(1rem, 3vw, 2rem) clamp(1rem, 4vw, 2.25rem);
    box-sizing: border-box;
}

.shop-hero-copy {
    flex: 1;
    min-width: 0;
    max-width: 62%;
}

.shop-hero-eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255, 255, 255, 0.88);
    line-height: 1.3;
}

.shop-hero-title {
    margin: 0;
    font-size: clamp(1.1rem, 2.8vw, 1.65rem);
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1.22;
    text-wrap: balance;
}

.shop-hero-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0.65rem 1.25rem;
    border-radius: 10px;
    background: #fff;
    color: #0f4c81;
    font-size: 0.875rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.shop-hero-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22);
    color: #0c3d6e;
    background: #f8fafc;
}

.shop-hero-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    color: var(--shop-primary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.2);
    transition: background 0.15s ease, transform 0.15s ease;
}

.shop-hero-nav:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.06);
}

.shop-hero-nav--prev { left: 4px; }
.shop-hero-nav--next { right: 4px; }

.shop-hero-dots {
    position: absolute;
    bottom: 0.65rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.55rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.35);
    backdrop-filter: blur(6px);
}

.shop-hero-dot {
    width: 7px;
    height: 7px;
    border-radius: 999px;
    border: none;
    padding: 0;
    background: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    transition: width 0.2s ease, background 0.2s ease;
}

.shop-hero-dot.is-active {
    width: 20px;
    background: #fff;
}

@media (max-width: 720px) {
    .shop-hero-slider {
        padding: 0;
    }

    .shop-hero-viewport {
        aspect-ratio: 4 / 3;
        min-height: 230px;
        max-height: 320px;
        border-radius: 12px;
    }
    .shop-hero-inner {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-end;
        padding: 1rem 1rem 2.35rem;
    }
    .shop-hero-copy {
        max-width: 100%;
    }
    .shop-hero-title {
        font-size: 1.05rem;
    }
    .shop-hero-cta {
        padding: 0.5rem 1rem;
        font-size: 0.8rem;
    }
    .shop-hero-slide.has-image .shop-hero-overlay {
        background: linear-gradient(
            180deg,
            rgba(15, 23, 42, 0.15) 0%,
            rgba(15, 23, 42, 0.75) 55%,
            rgba(15, 23, 42, 0.92) 100%
        );
    }
    .shop-hero-nav { display: none; }
}

body.app-shop .quick-actions {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

body.app-shop .quick-action {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem;
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: var(--shop-radius);
    text-decoration: none;
    color: var(--shop-text);
    font-size: 0.85rem;
    font-weight: 600;
    transition: border-color 0.12s, box-shadow 0.12s;
}

body.app-shop .quick-action:hover {
    border-color: var(--shop-primary);
    box-shadow: var(--shop-shadow);
    color: var(--shop-primary);
}

body.app-shop .shop-compare-link {
    font-size: 0.78rem;
    white-space: nowrap;
}

body.app-shop .shop-product-actions .shop-compare-link,
body.app-shop .shop-product-compare {
    align-self: flex-start;
}

body.app-shop .align-center { align-items: center; }
body.app-shop .justify-between { justify-content: space-between; }
body.app-shop .w-100 { width: 100%; }

body.app-shop .empty-state {
    background: var(--shop-surface);
    border: 1px dashed var(--shop-border);
    border-radius: var(--shop-radius);
    padding: 3rem;
    text-align: center;
}
/* Sayfalama */
.pagination {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    margin-top: 2.25rem;
    padding-top: 1.65rem;
    border-top: 1px solid var(--shop-border);
}

.pagination-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.65rem 1rem;
}

.pagination-badge {
    display: inline-flex;
    align-items: baseline;
    gap: 0.2rem;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #eff6ff 0%, #f0f9ff 100%);
    border: 1px solid rgba(15, 76, 129, 0.12);
    font-size: 0.8125rem;
    line-height: 1.2;
}

.pagination-badge-label {
    color: var(--shop-muted);
    font-weight: 600;
    margin-right: 0.15rem;
}

.pagination-badge-num {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--shop-primary);
    letter-spacing: -0.02em;
}

.pagination-badge-sep {
    color: var(--shop-muted);
    font-weight: 500;
    opacity: 0.7;
}

.pagination-badge-total {
    font-weight: 700;
    color: var(--shop-text);
}

.pagination-record-count {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--shop-muted);
    letter-spacing: 0.02em;
}

.pagination-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    width: 100%;
    max-width: 520px;
    padding: 0.5rem;
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(15, 76, 129, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.pagination-nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 2.75rem;
    padding: 0 1.1rem;
    border-radius: 12px;
    border: 1px solid rgba(15, 76, 129, 0.18);
    background: linear-gradient(180deg, #ffffff 0%, #f0f7ff 100%);
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--shop-primary);
    text-decoration: none;
    cursor: pointer;
    flex-shrink: 0;
    transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
    box-shadow: 0 2px 8px rgba(15, 76, 129, 0.08);
}

a.pagination-nav:hover {
    transform: translateY(-2px);
    border-color: var(--shop-primary);
    background: linear-gradient(145deg, var(--shop-primary) 0%, #1a6bb5 100%);
    color: #fff;
    box-shadow: 0 8px 22px rgba(15, 76, 129, 0.28);
}

/* body.app-shop a:hover mavi yazıyı zorlar → hover'da kutunun üzerini siler */
body.app-shop a.pagination-nav:hover,
body.app-shop a.pagination-nav:hover .pagination-nav-text,
body.app-shop a.pagination-nav:focus-visible {
    color: #fff !important;
}

body.app-shop a.pagination-nav:hover svg,
body.app-shop a.pagination-nav:hover .pagination-nav-icon {
    color: #fff !important;
    stroke: currentColor;
}

a.pagination-nav:hover .pagination-nav-icon {
    transform: translateX(-2px);
}

a.pagination-nav--next:hover .pagination-nav-icon {
    transform: translateX(2px);
}

a.pagination-nav:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(15, 76, 129, 0.15);
}

.pagination-nav.is-disabled {
    opacity: 0.42;
    cursor: not-allowed;
    pointer-events: none;
    background: var(--shop-bg);
    border-color: var(--shop-border);
    color: var(--shop-muted);
    box-shadow: none;
}

.pagination-nav-icon {
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.pagination-pages {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    list-style: none;
    margin: 0;
    padding: 0.25rem 0.5rem;
    flex: 1;
    min-width: 0;
}

.pagination-page-link,
.pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35rem;
    height: 2.35rem;
    padding: 0 0.5rem;
    border-radius: 10px;
    border: 1px solid transparent;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    color: var(--shop-text);
    background: transparent;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease;
}

a.pagination-page-link:hover {
    background: rgba(15, 76, 129, 0.09);
    border-color: rgba(15, 76, 129, 0.14);
    color: var(--shop-primary);
    transform: translateY(-1px);
}

.pagination-page.is-active .pagination-page-link {
    background: linear-gradient(145deg, var(--shop-primary) 0%, #1a6bb5 100%);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 4px 14px rgba(15, 76, 129, 0.35);
    cursor: default;
    min-width: 2.5rem;
    height: 2.5rem;
    font-weight: 800;
}

.pagination-page--gap .pagination-ellipsis {
    min-width: 1.75rem;
    color: var(--shop-muted);
    font-weight: 700;
    letter-spacing: 0.08em;
    user-select: none;
}

.pagination-progress {
    width: 100%;
    max-width: 280px;
    height: 4px;
    border-radius: 999px;
    background: var(--shop-border);
    overflow: hidden;
}

.pagination-progress-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--shop-primary), #60a5fa);
    transition: width 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Eski markup uyumluluğu */
.pagination-summary { margin: 0; font-size: 0.8125rem; color: var(--shop-muted); }
.pagination-summary strong { color: var(--shop-primary); font-weight: 700; }
.pagination-list { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0; padding: 0; }
.pagination-link,
.pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35rem;
    height: 2.35rem;
    padding: 0 0.5rem;
    border-radius: 10px;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--shop-text);
}
a.pagination-link:hover { background: rgba(15, 76, 129, 0.08); color: var(--shop-primary); }
.pagination-item.is-active .pagination-link {
    background: linear-gradient(145deg, var(--shop-primary) 0%, #1a6bb5 100%);
    color: #fff;
    box-shadow: 0 4px 14px rgba(15, 76, 129, 0.35);
}

@media (max-width: 520px) {
    .pagination-controls {
        max-width: 100%;
        gap: 0.45rem;
        padding: 0.45rem;
    }

    .pagination-nav-text {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .pagination-nav {
        min-width: 2.75rem;
        padding: 0;
    }

    .pagination-pages {
        padding: 0.15rem 0.25rem;
        gap: 0.2rem;
    }

    .pagination-page-link,
    .pagination-page.is-active .pagination-page-link {
        min-width: 2.1rem;
        height: 2.1rem;
        font-size: 0.8125rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    a.pagination-nav:hover,
    a.pagination-page-link:hover {
        transform: none;
    }
    .pagination-progress-fill {
        transition: none;
    }
}

body.app-shop .toast-container {
    position: fixed;
    top: calc(var(--shop-header-offset, var(--shop-header-h, 68px)) + 0.5rem);
    right: 1rem;
    z-index: 1060;
    max-width: 360px;
}

/* Masaüstü: sade header — siparişler hesabın içinde */
@media (min-width: 1025px) {
    .shop-action.shop-action--orders {
        display: none !important;
    }
    .shop-mega-btn-icon {
        display: none !important;
    }
    .shop-mobile-toggle {
        display: none !important;
    }
    .shop-account-btn {
        min-height: 44px;
        padding: 0.45rem 0.85rem;
        max-width: min(72vw, 240px);
    }
    .shop-header-inner {
        gap: 0.85rem;
    }
    .shop-mega-panel {
        position: fixed;
        left: 0;
        right: 0;
        margin-left: auto;
        margin-right: auto;
        top: calc(var(--shop-header-offset, var(--shop-header-h, 68px)) + 0.55rem);
        width: min(1080px, calc(100vw - 2rem));
        max-width: calc(100vw - 2rem);
        border-radius: 14px;
    }
    .shop-mega-backdrop {
        top: var(--shop-header-offset, var(--shop-header-h, 68px));
    }
}

/* Mobil — uygulama benzeri responsive */
@media (max-width: 1024px) {
    :root {
        --shop-header-h: 110px;
    }
    .shop-header-inner {
        /* mobil düzen store-mobile-fix.css’te */
    }
    .shop-logo-text { font-size: 1rem; }
    .shop-action { display: none; }
    .shop-action.shop-action--login,
    .shop-action.shop-action--register {
        display: inline-flex;
    }
    .shop-action.shop-action--orders { display: none !important; }
    .shop-credit-pill { display: inline-flex !important; }
    .shop-account-btn { max-width: none; }
    .shop-cart-label { display: none; }
    .shop-fav-link-label { display: none; }
    .shop-mobile-toggle { display: none; } /* mega + search yeterli */
    .shop-mega-btn {
        height: 38px;
        padding: 0 0.7rem;
        font-size: 0.82rem;
    }
    .shop-search {
        max-width: none;
        min-width: 0;
    }
    .shop-pdp { grid-template-columns: 1fr; }
    .shop-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
    }
    .shop-container {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
    .shop-page-head {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }
    .shop-sort {
        width: 100%;
    }
    .shop-sort .form-control {
        flex: 1;
        min-width: 0;
    }
    .shop-mega-main {
        height: auto;
        max-height: none;
        flex: 1;
        min-height: 0;
        overflow-y: auto;
    }
    .shop-mega-columns { grid-template-columns: 1fr 1fr; }
    .shop-mega-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .shop-brand-marquee-track {
        animation-duration: 55s;
    }
    .shop-footer-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
    .order-detail-hero-stats {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 640px) {
    .shop-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem;
    }
    .shop-product-title { font-size: 0.82rem; }
    .shop-product-price { font-size: 0.95rem; }
    .shop-mega-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shop-mega-columns { grid-template-columns: 1fr; }
    .shop-hero { min-height: 160px; }
    .shop-actions { gap: 0.25rem; }
    .login-split { grid-template-columns: 1fr; }
    .login-visual { display: none; }
    .cart-page-layout,
    .checkout-layout { grid-template-columns: 1fr; }
    .admin-grid-2 { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .checkout-layout,
    .cart-page-layout { grid-template-columns: 1fr; }
    .checkout-side .cart-summary,
    .cart-order-box { position: static; top: auto; }
    body.app-shop .grid-2 { grid-template-columns: 1fr; }
    .cart-page-aside { order: -1; }
    .cart-form-row { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; }
    .shop-product-body { padding: 0.75rem 0.85rem 0.5rem; }
    .shop-product-footer { padding: 0.65rem 0.85rem 0.85rem; }
    .shop-product-title { font-size: 0.82rem; -webkit-line-clamp: 3; }
    .shop-product-price-current { font-size: 1.05rem; }
    .shop-product .btn-add-cart--card { width: 100%; }
    .shop-product-discount-pill { font-size: 0.62rem; }
    .shop-cart-label { display: none; }
    .shop-fav-link-label { display: none; }
    .shop-container { padding: 1rem clamp(1rem, 4vw, 1.5rem) 1.5rem; }
    body.app-shop .product-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Sepet sayfası */
.cart-page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.cart-page-head h1 {
    margin: 0 0 0.25rem;
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--shop-text);
}

.cart-page-head p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--shop-muted);
}

.cart-page-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.cart-empty {
    text-align: center;
    padding: 3.5rem 2rem;
    background: var(--shop-surface);
    border: 1px dashed var(--shop-border);
    border-radius: var(--shop-radius);
}

.cart-empty-icon {
    color: #cbd5e1;
    margin-bottom: 1rem;
}

.cart-empty h2 {
    margin: 0 0 0.5rem;
    font-size: 1.25rem;
}

.cart-empty p {
    margin: 0 0 1.25rem;
    color: var(--shop-muted);
}

.cart-page-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
    gap: 1.5rem;
    align-items: start;
}

.cart-page-main {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

.cart-panel {
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 14px;
    box-shadow: var(--shop-shadow);
    overflow: hidden;
}

.cart-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--shop-border);
    background: linear-gradient(180deg, #fafbfc 0%, var(--shop-surface) 100%);
}

.cart-panel-head h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--shop-text);
}

.cart-panel-badge {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--shop-muted);
    background: var(--shop-bg);
    border: 1px solid var(--shop-border);
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
}

.cart-panel-body {
    padding: 1.15rem 1.25rem 1.25rem;
}

.cart-panel-foot {
    padding: 0.85rem 1.25rem;
    border-top: 1px solid var(--shop-border);
    background: #fafbfc;
}

.cart-lines {
    list-style: none;
    margin: 0;
    padding: 0;
}

.cart-line {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 1rem;
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid #f1f5f9;
}

.cart-line:last-child { border-bottom: none; }

.cart-line-media {
    display: block;
    border-radius: 10px;
    overflow: hidden;
    background: var(--shop-bg);
    border: 1px solid var(--shop-border);
    aspect-ratio: 1;
}

.cart-line-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cart-line-body { min-width: 0; }

.cart-line-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.cart-line-name {
    display: block;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--shop-text);
    text-decoration: none;
    line-height: 1.35;
}

.cart-line-name:hover { color: var(--shop-primary); }

.cart-line-sku {
    display: block;
    font-size: 0.78rem;
    color: var(--shop-muted);
    margin-top: 0.15rem;
}

.cart-line-remove {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.cart-line-remove:hover {
    color: #dc2626;
    background: #fef2f2;
    border-color: #fecaca;
}

.cart-line-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.cart-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--shop-border);
    border-radius: 10px;
    background: var(--shop-surface);
    overflow: hidden;
}

.cart-qty-btn {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--shop-bg);
    color: var(--shop-text);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.12s;
}

.cart-qty-btn:hover { background: #e2e8f0; }

.cart-qty-input {
    width: 48px;
    height: 36px;
    border: none;
    border-left: 1px solid var(--shop-border);
    border-right: 1px solid var(--shop-border);
    text-align: center;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: inherit;
    -moz-appearance: textfield;
}

.cart-qty-input::-webkit-outer-spin-button,
.cart-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.cart-line-prices {
    text-align: right;
}

.cart-line-unit {
    display: block;
    font-size: 0.78rem;
    color: var(--shop-muted);
}

.cart-line-total {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--shop-primary);
}

.cart-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.cart-save-address {
    background: var(--shop-bg);
    border: 1px dashed var(--shop-border);
    border-radius: 10px;
    padding: 0.85rem;
    margin-top: 0.5rem;
}

.cart-save-address-fields { margin-top: 0.75rem; }

.cart-hint {
    font-size: 0.82rem;
    color: var(--shop-muted);
    margin: 0.5rem 0 0;
}

.cart-page-aside {
    position: relative;
    min-width: 0;
}

.cart-order-box {
    position: sticky;
    top: calc(var(--shop-header-h) + 1rem);
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 14px;
    box-shadow: 0 4px 24px rgba(15, 23, 42, 0.08);
    padding: 1.25rem;
}

.cart-order-box-title {
    margin: 0 0 1rem;
    font-size: 1.05rem;
    font-weight: 700;
}

.cart-order-rows {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--shop-border);
}

.cart-order-row {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.88rem;
    color: var(--shop-muted);
}

.cart-order-row span:last-child {
    font-weight: 600;
    color: var(--shop-text);
    white-space: nowrap;
}

.cart-order-row--discount span:last-child { color: #059669; }

.cart-order-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    padding: 1rem 0;
}

.cart-order-total span {
    font-size: 0.9rem;
    color: var(--shop-muted);
}

.cart-order-total strong {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--shop-primary);
    letter-spacing: -0.02em;
}

.cart-coupon {
    margin-bottom: 1rem;
}

.cart-coupon-row {
    display: flex;
    gap: 0.5rem;
}

.cart-coupon-row .form-control { flex: 1; min-width: 0; }

.cart-coupon-remove { margin-top: 0.35rem; }

.cart-order-submit {
    width: 100%;
    margin-bottom: 0.5rem;
}

.cart-order-save {
    width: 100%;
}

.cart-mobile-bar {
    display: none;
}

body.app-shop.cart-has-mobile-bar .shop-main {
    padding-bottom: 5rem;
}

/* Geriye dönük checkout sınıfları */
.checkout-layout {
    display: grid;
    grid-template-columns: 1fr minmax(320px, 400px);
    gap: 1.25rem;
    align-items: start;
}

.checkout-save-address,
.cart-save-address {
    background: var(--shop-bg);
    border: 1px dashed var(--shop-border);
    border-radius: 10px;
    padding: 0.85rem;
    margin-bottom: 1rem;
}

.checkout-save-address-fields { margin-top: 0.75rem; }

.checkout-hint {
    font-size: 0.82rem;
    color: var(--shop-muted);
    margin: 0.75rem 0;
}

.checkout-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.checkout-actions .btn-accent { width: 100%; }

body.app-shop .btn-accent {
    background: var(--shop-accent);
    color: #fff;
}

body.app-shop .btn-accent:hover {
    background: #ea580c;
    color: #fff;
}

body.app-shop .btn-accent:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

body.app-shop .btn-block { width: 100%; }

body.app-shop .gap-1 { gap: 0.5rem; }
body.app-shop .gap-2 { gap: 1rem; }
body.app-shop .mt-1 { margin-top: 0.5rem; }
body.app-shop .mt-2 { margin-top: 1rem; }
body.app-shop .mb-2 { margin-bottom: 1rem; }
body.app-shop .mb-3 { margin-bottom: 1.25rem; }
body.app-shop .text-muted { color: var(--shop-muted); }
body.app-shop .d-flex { display: flex; }
body.app-shop .flex-wrap { flex-wrap: wrap; }
body.app-shop .w-100 { width: 100%; }

body.app-shop .alert-warning {
    background: #fffbeb;
    border-color: #fde68a;
    color: #92400e;
}

body.app-shop .alert-info {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1e40af;
}

body.app-shop .alert-danger {
    background: #fef2f2;
    border-color: #fecaca;
    color: #b91c1c;
}

body.app-shop .alert-success {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

body.app-shop .cart-table .qty-input {
    width: 72px;
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--shop-border);
    border-radius: 8px;
    text-align: center;
    font-family: inherit;
}

body.app-shop .cart-remove-btn {
    color: #dc2626;
    border-color: #fecaca;
}

body.app-shop .cart-remove-btn:hover {
    background: #fef2f2;
    color: #b91c1c;
}

body.app-shop .checkout-cart .table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 700px) {
    body.app-shop .cart-table thead { display: none; }
    body.app-shop .cart-table tr {
        display: block;
        border-bottom: 1px solid var(--shop-border);
        padding: 0.75rem 0;
    }
    body.app-shop .cart-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 0.5rem;
        border: none;
        padding: 0.35rem 0;
    }
    body.app-shop .cart-table td::before {
        content: attr(data-label);
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--shop-muted);
        text-transform: uppercase;
    }
    body.app-shop .cart-table .cart-product-cell {
        display: block;
        padding-bottom: 0.5rem;
    }
    body.app-shop .cart-table .cart-product-cell::before { display: none; }
    body.app-shop .cart-table .cart-remove-cell::before { display: none; }
    body.app-shop .shop-page-head { align-items: flex-start; }
}

@media (max-width: 768px) {
    .cart-mobile-bar {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 900;
        padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
        background: var(--shop-surface);
        border-top: 1px solid var(--shop-border);
        box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.1);
    }

    .cart-mobile-bar-inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        max-width: 1200px;
        margin: 0 auto;
    }

    .cart-mobile-bar-label {
        display: block;
        font-size: 0.72rem;
        color: var(--shop-muted);
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    .cart-mobile-bar-total strong {
        font-size: 1.15rem;
        color: var(--shop-primary);
    }

    .cart-mobile-bar-cta {
        flex-shrink: 0;
        min-width: 120px;
        padding: 0.65rem 1.25rem;
    }

    .cart-order-submit { display: none; }
    body.cart-page-active .shop-main { padding-bottom: 5.5rem; }
    .cart-page-head-actions .btn:last-child { display: none; }
}

/* —— Sipariş detay (işletme) —— */
@keyframes od-fade-up {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes od-pulse-ring {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.35);
    }
    50% {
        box-shadow: 0 0 0 10px rgba(37, 99, 235, 0);
    }
}

@keyframes od-line-grow {
    from {
        transform: scaleX(0);
    }
    to {
        transform: scaleX(1);
    }
}

@keyframes od-shimmer {
    0% {
        background-position: 200% center;
    }
    100% {
        background-position: -200% center;
    }
}

.order-detail-page {
    max-width: 1100px;
    margin: 0 auto;
}

.od-reveal,
.order-line-item,
.order-history-item {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.od-reveal.is-visible,
.order-line-item.is-visible,
.order-history-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.od-delay-1 { transition-delay: 0.08s; }
.od-delay-2 { transition-delay: 0.14s; }
.od-delay-3 { transition-delay: 0.2s; }
.od-delay-4 { transition-delay: 0.26s; }
.od-delay-5 { transition-delay: 0.32s; }

.order-line-item {
    transition-delay: calc(0.04s * var(--line-i, 0));
}

.order-history-item {
    transition-delay: calc(0.06s * var(--hist-i, 0));
}

.order-detail-hero {
    position: relative;
    overflow: hidden;
    padding: 1.5rem 1.65rem 1.65rem;
    margin-bottom: 1.35rem;
    border-radius: 16px;
    border: 1px solid rgba(15, 76, 129, 0.12);
    background: linear-gradient(135deg, #ffffff 0%, #f0f7ff 48%, #e8f4fd 100%);
    box-shadow: 0 12px 40px rgba(15, 76, 129, 0.08);
}

.order-detail-hero::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -15%;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.12) 0%, transparent 70%);
    pointer-events: none;
}

.order-detail-hero-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.order-detail-back {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--shop-primary);
    text-decoration: none;
    transition: gap 0.2s ease, color 0.2s ease;
}

.order-detail-back:hover {
    gap: 0.55rem;
    color: var(--shop-primary-dark);
}

.order-detail-hero-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.order-detail-hero-main {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1.5rem;
    align-items: end;
}

.order-detail-eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--shop-muted);
}

.order-detail-number {
    margin: 0 0 0.5rem;
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--shop-primary);
    line-height: 1.15;
}

.order-detail-date {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    color: var(--shop-muted);
}

.order-detail-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.order-detail-hero-stats {
    display: flex;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.order-stat-card {
    min-width: 100px;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(15, 76, 129, 0.1);
    backdrop-filter: blur(6px);
    text-align: center;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.order-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(15, 76, 129, 0.1);
}

.order-stat-card--total {
    background: linear-gradient(145deg, var(--shop-primary) 0%, #1a6bb5 100%);
    border-color: transparent;
    color: #fff;
}

.order-stat-card--total .order-stat-label {
    color: rgba(255, 255, 255, 0.85);
}

.order-stat-card--total .order-stat-value {
    color: #fff;
}

.order-stat-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--shop-muted);
    margin-bottom: 0.2rem;
}

.order-stat-value {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--shop-text);
}

.order-detail-tracker-wrap {
    margin-bottom: 1.5rem;
}

.order-detail-delivered-note {
    margin: 0.75rem 0 0;
    text-align: center;
    font-size: 0.875rem;
    color: var(--shop-success, #16a34a);
    font-weight: 600;
}

/* Durum çubuğu */
.order-tracker {
    position: relative;
    padding: 1.35rem 1rem 1rem;
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 14px;
    box-shadow: var(--shop-shadow);
}

.order-tracker--cancelled {
    border-color: #fecaca;
    background: linear-gradient(135deg, #fff5f5 0%, #fff 100%);
}

.order-tracker-cancel {
    display: flex;
    align-items: center;
    gap: 1rem;
    justify-content: center;
    padding: 0.5rem;
}

.order-tracker-cancel-icon {
    width: 48px;
    height: 48px;
    color: #dc2626;
    flex-shrink: 0;
}

.order-tracker-cancel-icon svg {
    width: 100%;
    height: 100%;
}

.order-tracker-cancel p {
    margin: 0.2rem 0 0;
    font-size: 0.875rem;
    color: var(--shop-muted);
}

.order-tracker-rail {
    position: absolute;
    left: 8%;
    right: 8%;
    top: 2.35rem;
    height: 4px;
    background: var(--shop-border);
    border-radius: 999px;
    overflow: hidden;
    z-index: 0;
}

.order-tracker-rail-fill {
    display: block;
    height: 100%;
    width: var(--order-progress, 0%);
    background: linear-gradient(90deg, var(--shop-primary), #60a5fa);
    border-radius: inherit;
    transform-origin: left center;
    animation: od-line-grow 1s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;
}

.order-tracker-steps {
    display: flex;
    justify-content: space-between;
    position: relative;
    z-index: 1;
    gap: 0.25rem;
}

.order-tracker-step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 0;
}

.order-tracker-dot {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--shop-bg);
    border: 2px solid var(--shop-border);
    color: var(--shop-muted);
    margin-bottom: 0.5rem;
    transition: background 0.35s ease, border-color 0.35s ease, color 0.35s ease, transform 0.35s ease;
}

.order-tracker-dot svg {
    width: 20px;
    height: 20px;
}

.order-tracker-step.is-done .order-tracker-dot {
    background: #dcfce7;
    border-color: #22c55e;
    color: #15803d;
}

.order-tracker-step.is-current .order-tracker-dot {
    background: var(--shop-primary);
    border-color: var(--shop-primary);
    color: #fff;
    transform: scale(1.08);
    animation: od-pulse-ring 2s ease-in-out infinite;
}

.order-tracker-label {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--shop-muted);
    line-height: 1.25;
    max-width: 72px;
}

.order-tracker-step.is-done .order-tracker-label,
.order-tracker-step.is-current .order-tracker-label {
    color: var(--shop-text);
}

.order-tracker-step.is-current .order-tracker-label {
    color: var(--shop-primary);
    font-weight: 700;
}

/* Grid */
.order-detail-grid {
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 1.25rem;
    align-items: start;
}

.order-detail-aside {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.order-detail-panel {
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 14px;
    box-shadow: var(--shop-shadow);
    overflow: hidden;
}

.order-detail-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--shop-border);
    background: linear-gradient(180deg, #fafbfc 0%, var(--shop-surface) 100%);
}

.order-detail-panel-head h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
}

.order-detail-panel-meta {
    font-size: 0.8rem;
    color: var(--shop-muted);
    font-weight: 600;
}

/* Ürün satırları */
.order-line-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.order-line-item {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 0.85rem 1rem;
    align-items: center;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--shop-border);
    transition: background 0.2s ease;
}

.order-line-item:last-child {
    border-bottom: none;
}

.order-line-item:hover {
    background: rgba(15, 76, 129, 0.03);
}

.order-line-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #eff6ff;
    color: var(--shop-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.order-line-icon svg {
    width: 20px;
    height: 20px;
}

.order-line-thumb {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    border: 1px solid var(--shop-border);
    background: #f8fafc;
    overflow: hidden;
    flex-shrink: 0;
    display: block;
    text-decoration: none;
}
.order-line-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.25rem;
    display: block;
}
.order-line-thumb:hover {
    border-color: var(--shop-primary);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.order-line-name {
    display: block;
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--shop-text);
    text-decoration: none;
}
a.order-line-name:hover {
    color: var(--shop-primary);
    text-decoration: underline;
}

.order-line-sku {
    display: block;
    font-size: 0.75rem;
    color: var(--shop-muted);
    margin-top: 0.15rem;
}

.order-line-qty {
    text-align: center;
    min-width: 48px;
}

.order-line-qty-num {
    display: block;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--shop-primary);
    line-height: 1;
}

.order-line-qty-label {
    font-size: 0.65rem;
    color: var(--shop-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.order-line-price {
    text-align: right;
    min-width: 100px;
}

.order-line-unit {
    display: block;
    font-size: 0.72rem;
    color: var(--shop-muted);
    margin-bottom: 0.15rem;
}

.order-line-price strong {
    font-size: 1rem;
    color: var(--shop-text);
}

.order-summary {
    padding: 1rem 1.15rem 1.15rem;
    background: var(--shop-bg);
    border-top: 1px solid var(--shop-border);
}

.order-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.35rem 0;
    font-size: 0.9rem;
    color: var(--shop-muted);
}

.order-summary-row--discount span:last-child {
    color: #16a34a;
    font-weight: 600;
}

.order-summary-row--total {
    margin-top: 0.5rem;
    padding-top: 0.65rem;
    border-top: 2px solid var(--shop-border);
    font-size: 1rem;
    color: var(--shop-text);
}

.order-summary-row--total strong {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--shop-primary);
}

.order-summary-note {
    margin: 0.65rem 0 0;
    font-size: 0.78rem;
    color: var(--shop-muted);
    text-align: center;
}

/* Bilgi listesi */
.order-info-list {
    margin: 0;
    padding: 0.85rem 1.15rem 1.15rem;
}

.order-info-row {
    padding: 0.65rem 0;
    border-bottom: 1px solid var(--shop-border);
}

.order-info-row:last-child {
    border-bottom: none;
}

.order-info-row dt {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--shop-muted);
    margin-bottom: 0.25rem;
}

.order-info-row dd {
    margin: 0;
    font-size: 0.9rem;
    color: var(--shop-text);
    line-height: 1.5;
}

.order-info-row dd a {
    color: var(--shop-primary);
    text-decoration: none;
    font-weight: 600;
}

.order-info-row--note dd {
    padding: 0.5rem 0.65rem;
    background: #fffbeb;
    border-radius: 8px;
    border: 1px solid #fde68a;
}

.order-detail-empty {
    padding: 1rem 1.15rem;
    margin: 0;
    color: var(--shop-muted);
    font-size: 0.9rem;
}

/* Geçmiş timeline */
.order-history {
    list-style: none;
    margin: 0;
    padding: 1rem 1.15rem 1.15rem 1.5rem;
    position: relative;
}

.order-history::before {
    content: '';
    position: absolute;
    left: 1.65rem;
    top: 1.25rem;
    bottom: 1.25rem;
    width: 2px;
    background: linear-gradient(180deg, var(--shop-primary), var(--shop-border));
    border-radius: 2px;
}

.order-history-item {
    position: relative;
    padding-left: 2.5rem;
    padding-bottom: 1.15rem;
}

.order-history-item:last-child {
    padding-bottom: 0;
}

.order-history-dot {
    position: absolute;
    left: 0;
    top: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--shop-surface);
    border: 2px solid var(--shop-border);
    color: var(--shop-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    transition: border-color 0.3s ease, background 0.3s ease, color 0.3s ease;
}

.order-history-dot svg {
    width: 16px;
    height: 16px;
}

.order-history-item.is-latest .order-history-dot {
    background: var(--shop-primary);
    border-color: var(--shop-primary);
    color: #fff;
    animation: od-pulse-ring 2.5s ease-in-out infinite;
}

.order-history-body strong {
    display: block;
    font-size: 0.9rem;
    margin-bottom: 0.15rem;
}

.order-history-body p {
    margin: 0 0 0.25rem;
    font-size: 0.82rem;
    color: var(--shop-muted);
}

.order-history-body time {
    font-size: 0.75rem;
    color: var(--shop-muted);
}

@media (max-width: 900px) {
    .order-detail-hero-main {
        grid-template-columns: 1fr;
    }

    .order-detail-hero-stats {
        width: 100%;
    }

    .order-stat-card {
        flex: 1;
        min-width: 0;
    }

    .order-detail-grid {
        grid-template-columns: 1fr;
    }

    .order-tracker-label {
        font-size: 0.6rem;
        max-width: 56px;
    }

    .order-tracker-dot {
        width: 36px;
        height: 36px;
    }

    .order-line-item {
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto;
    }

    .order-line-qty,
    .order-line-price {
        grid-column: 2;
        text-align: left;
        display: flex;
        align-items: baseline;
        gap: 0.5rem;
    }
}

@media (max-width: 520px) {
    .order-tracker-steps {
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.75rem;
    }

    .order-tracker-rail {
        display: none;
    }

    .order-tracker-step {
        flex: 0 0 calc(33.33% - 0.5rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .od-reveal,
    .order-line-item,
    .order-history-item {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .order-tracker-rail-fill,
    .order-tracker-step.is-current .order-tracker-dot,
    .order-history-item.is-latest .order-history-dot {
        animation: none;
    }
}

/* —— Fiyat etiketleri —— */
.shop-product-price-label {
    display: block;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--shop-muted);
    margin-bottom: 0.1rem;
}
.shop-product-price-list {
    margin: 0 0 0.25rem;
    line-height: 1.2;
}
.shop-product-price-list .shop-product-price-label {
    color: #c2410c;
}
.shop-product-price-list .shop-product-price-old {
    font-size: 1.28rem;
    color: #c2410c;
}
.shop-product-price {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}
.shop-pdp-pricing .shop-product-deal-note {
    margin-top: 0.35rem;
}
.shop-product-deal-note {
    color: #047857;
    font-size: 0.75rem;
    font-weight: 500;
}

/* —— Mobil kart listeleri (kaydırma yok) —— */
.mobile-card-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.mobile-card {
    background: #fff;
    border: 1px solid var(--shop-border, #e2e8f0);
    border-radius: 14px;
    padding: 0.9rem 1rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.mobile-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
    margin-bottom: 0.65rem;
}
.mobile-card-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--shop-text, #0f172a);
    line-height: 1.35;
    text-decoration: none;
}
.mobile-card-desc {
    margin: 0 0 0.65rem;
    font-size: 0.88rem;
    color: var(--shop-text, #334155);
    line-height: 1.45;
}
.mobile-card-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 0.75rem;
    margin: 0;
}
.mobile-card-meta--inline {
    grid-template-columns: repeat(3, 1fr);
}
.mobile-card-meta dt {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--shop-muted, #64748b);
    font-weight: 600;
    margin: 0 0 0.1rem;
}
.mobile-card-meta dd {
    margin: 0;
    font-size: 0.88rem;
    color: var(--shop-text, #0f172a);
}
.mobile-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px solid #f1f5f9;
}
.mobile-card-actions .btn,
.mobile-card-actions .admin-btn {
    flex: 1 1 auto;
    text-align: center;
    justify-content: center;
}
.mobile-card--product .mobile-card-product {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    margin-bottom: 0.65rem;
}
.mobile-card-product-body {
    min-width: 0;
    flex: 1;
}
.ledger-debit { color: #b91c1c; font-weight: 700; }
.ledger-credit { color: #047857; font-weight: 700; }

/* Genel: yatay kaydırma engeli + tablo→kart */
html, body.app-shop {
    overflow-x: hidden;
    max-width: 100vw;
}
body.app-shop .shop-wrap,
body.app-shop .shop-main {
    max-width: 100%;
    overflow-x: hidden;
}

body.app-shop .shop-container {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(1rem, 3vw, 2.5rem);
    padding-right: clamp(1rem, 3vw, 2.5rem);
    width: 100%;
    box-sizing: border-box;
    overflow-x: hidden;
}

@media (max-width: 900px) {
    body.app-shop .table-wrap,
    body.app-shop .admin-table-wrap {
        overflow-x: visible !important;
    }
    body.app-shop .data-table thead,
    body.app-shop .admin-table thead {
        display: none;
    }
    body.app-shop .data-table,
    body.app-shop .data-table tbody,
    body.app-shop .data-table tr,
    body.app-shop .data-table td,
    body.app-shop .admin-table,
    body.app-shop .admin-table tbody,
    body.app-shop .admin-table tr,
    body.app-shop .admin-table td {
        display: block;
        width: 100%;
    }
    body.app-shop .data-table tr,
    body.app-shop .admin-table tr {
        margin-bottom: 0.75rem;
        padding: 0.85rem 1rem;
        border: 1px solid var(--shop-border);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    }
    body.app-shop .data-table td,
    body.app-shop .admin-table td {
        padding: 0.35rem 0;
        border: 0;
        display: flex;
        justify-content: space-between;
        gap: 0.75rem;
        align-items: baseline;
    }
    body.app-shop .data-table td:before,
    body.app-shop .admin-table td:before {
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: var(--shop-muted);
        flex-shrink: 0;
    }
    body.app-shop .tabs,
    body.app-shop .shop-grade-bar {
        display: flex;
        flex-wrap: wrap;
        gap: 0.35rem;
        overflow-x: visible !important;
    }
    body.app-shop .tabs .tab,
    body.app-shop .shop-grade-bar .tab {
        flex: 0 0 auto;
        border-radius: 999px;
        border: 1px solid var(--shop-border);
        padding: 0.4rem 0.75rem;
        white-space: nowrap;
    }
    .order-line-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem !important;
        padding: 0.9rem !important;
        border: 1px solid var(--shop-border);
        border-radius: 14px;
        background: #fff;
        margin-bottom: 0.65rem;
    }
    .order-line-thumb {
        width: 72px;
        height: 72px;
    }
    .order-line-qty,
    .order-line-price {
        display: flex !important;
        justify-content: space-between;
        width: 100%;
        text-align: left !important;
        grid-column: auto !important;
    }
    .order-detail-hero-actions {
        flex-wrap: wrap;
        width: 100%;
    }
    .order-detail-hero-actions .btn {
        flex: 1 1 auto;
        justify-content: center;
    }
    .cart-line {
        display: grid;
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 0.75rem;
        align-items: start;
    }
    .cart-line-bottom {
        flex-wrap: wrap;
        gap: 0.65rem;
    }
    .cart-line-prices {
        width: 100%;
        display: flex;
        justify-content: space-between;
    }
    .ledger-summary {
        grid-template-columns: 1fr !important;
    }
    .shop-pdp-buy {
        flex-wrap: wrap;
    }
    .shop-pdp-buy .btn-add-cart--lg,
    .shop-pdp-buy .btn-add-cart--pdp {
        width: 100%;
        max-width: none;
    }
    .shop-pdp-spec {
        grid-template-columns: 6.5rem minmax(0, 1fr);
    }
    .compare-table-wrap,
    .karsilastir-wrap {
        overflow-x: visible !important;
    }
}

@media (max-width: 640px) {
    .mobile-card-meta {
        grid-template-columns: 1fr;
    }
    .mobile-card-meta--inline {
        grid-template-columns: 1fr;
    }
    .shop-product-pricing {
        gap: 0.2rem;
    }
    .order-detail-hero {
        padding: 1rem;
    }
    .order-detail-number {
        font-size: 1.35rem;
        word-break: break-all;
    }
    .order-tracker-steps {
        gap: 0.5rem;
    }
    .login-form-wrap {
        padding: 1.25rem 1rem;
    }
}

/* —— Katalog: sol filtre + tam genişlik ürün alanı —— */
body.shop-catalog-page .shop-container {
    max-width: 1600px;
    width: 100%;
    margin: 0 auto;
    padding: 1.25rem clamp(1rem, 3vw, 2.5rem) 2rem;
    box-sizing: border-box;
}

.catalog-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
    width: 100%;
}

.catalog-filters {
    align-self: start;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
    background: var(--shop-surface);
    border: 1px solid var(--shop-border);
    border-radius: 14px;
    padding: 1rem;
    box-shadow: var(--shop-shadow);
    box-sizing: border-box;
}

.catalog-filters-form {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding-bottom: 0;
}

.catalog-filters-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--shop-border);
}

.catalog-filters-head h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--shop-text);
}

.catalog-filters-head-actions {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.catalog-filters-close {
    display: none;
}

.catalog-filters-scroll {
    display: flex;
    flex-direction: column;
}

.catalog-filters-foot {
    margin-top: 0.5rem;
}

.catalog-filters-clear {
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    color: #b91c1c;
}

.catalog-filters-clear:hover {
    text-decoration: underline;
}

.catalog-filter-block {
    margin-bottom: 1.1rem;
}
.catalog-filter-block:last-of-type {
    margin-bottom: 0.75rem;
}

.catalog-filter-title {
    display: block;
    margin: 0 0 0.45rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--shop-muted);
}

.catalog-filter-list {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.catalog-filter-list--scroll {
    max-height: none;
    overflow: visible;
    padding-right: 0;
}

.catalog-filter-list--wrap {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.catalog-filter-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.4rem 0.55rem;
    border-radius: 8px;
    text-decoration: none;
    color: var(--shop-text);
    font-size: 0.875rem;
    line-height: 1.3;
}

.catalog-filter-link em {
    font-style: normal;
    font-size: 0.75rem;
    color: var(--shop-muted);
    background: #f1f5f9;
    border-radius: 999px;
    padding: 0.1rem 0.45rem;
    flex-shrink: 0;
}

.catalog-filter-link:hover {
    background: #f1f5f9;
    color: var(--shop-primary-dark);
}

.catalog-filter-link.is-active {
    background: rgba(37, 99, 235, 0.1);
    color: var(--shop-primary-dark);
    font-weight: 600;
}

.catalog-filter-link.is-active em {
    background: rgba(37, 99, 235, 0.15);
    color: var(--shop-primary-dark);
}

.catalog-filter-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--shop-border);
    background: #fff;
    color: var(--shop-text);
    font-size: 0.78rem;
    text-decoration: none;
    line-height: 1.2;
}

.catalog-filter-chip:hover {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.catalog-filter-chip.is-active {
    border-color: var(--shop-primary);
    background: var(--shop-primary);
    color: #fff;
    font-weight: 600;
}

.catalog-price-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.35rem;
    align-items: center;
}

.catalog-price-row span {
    color: var(--shop-muted);
    font-size: 0.85rem;
}

.catalog-price-row .form-control {
    min-width: 0;
    padding: 0.45rem 0.5rem;
    font-size: 0.85rem;
}

.catalog-filter-submit {
    width: 100%;
    margin-top: 0.25rem;
}

.catalog-main {
    min-width: 0;
}

.catalog-main-top {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.catalog-filter-toggle {
    display: none !important;
    align-self: flex-start;
}

.catalog-filters-backdrop {
    display: none;
}

body.shop-catalog-page .shop-page-head {
    margin: 0;
    padding: 0;
}

.shop-grid--catalog {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    gap: 1rem;
    align-items: stretch;
}

/* Hep aynı boy: desktop satırda 4 ürün */
.shop-grid--catalog > .shop-product {
    flex: 0 0 calc((100% - 3 * 1rem) / 4);
    width: calc((100% - 3 * 1rem) / 4);
    max-width: calc((100% - 3 * 1rem) / 4);
    min-width: 0;
    box-sizing: border-box;
}

.shop-grid--catalog .shop-product-img {
    aspect-ratio: 4 / 5;
}

@media (min-width: 1200px) {
    .shop-grid--catalog > .shop-product {
        flex-basis: calc((100% - 3 * 1rem) / 4);
        width: calc((100% - 3 * 1rem) / 4);
        max-width: calc((100% - 3 * 1rem) / 4);
    }
}

@media (min-width: 1500px) {
    .shop-grid--catalog {
        gap: 1.15rem;
    }
    .shop-grid--catalog > .shop-product {
        flex-basis: calc((100% - 3 * 1.15rem) / 4);
        width: calc((100% - 3 * 1.15rem) / 4);
        max-width: calc((100% - 3 * 1.15rem) / 4);
    }
}

@media (min-width: 1600px) {
    body.shop-catalog-page .shop-container {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }
    .catalog-layout {
        grid-template-columns: 280px minmax(0, 1fr);
        gap: 1.5rem;
    }
}

@media (max-width: 1024px) {
    .catalog-layout {
        display: block;
    }

    .catalog-filter-toggle {
        display: inline-flex !important;
        align-items: center;
        gap: 0.35rem;
    }

    .catalog-filters {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        z-index: 1200;
        width: min(320px, 88vw);
        max-height: 100vh;
        max-height: 100dvh;
        height: 100vh;
        height: 100dvh;
        display: flex;
        flex-direction: column;
        border-radius: 0;
        border: none;
        border-right: 1px solid var(--shop-border);
        transform: translateX(-105%);
        transition: transform 0.22s ease;
        box-shadow: 8px 0 32px rgba(15, 23, 42, 0.18);
        overflow: hidden;
        overscroll-behavior: contain;
        padding-top: calc(1rem + env(safe-area-inset-top));
        padding-bottom: 0;
    }

    .catalog-filters-head {
        flex-shrink: 0;
    }

    .catalog-filters-form {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        padding-bottom: 0;
    }

    .catalog-filters-scroll {
        flex: 1 1 auto;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        touch-action: pan-y;
    }

    .catalog-filters-foot {
        flex-shrink: 0;
        padding: 0.75rem 0 calc(1rem + env(safe-area-inset-bottom));
        border-top: 1px solid var(--shop-border);
        background: var(--shop-surface, #fff);
    }

    body.catalog-filters-open .catalog-filters {
        transform: translateX(0);
    }

    .catalog-filters-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1190;
        background: rgba(15, 23, 42, 0.45);
        border: 0;
        padding: 0;
        margin: 0;
        cursor: pointer;
    }

    .catalog-filters-backdrop[hidden] {
        display: none !important;
    }

    body.catalog-filters-open {
        overflow: hidden;
    }

    body.shop-catalog-page .shop-container {
        padding: 1rem clamp(1rem, 4vw, 1.5rem) 1.5rem;
    }

    .shop-grid--catalog {
        gap: 0.75rem;
    }

    .shop-grid--catalog > .shop-product {
        flex: 0 0 calc((100% - 0.75rem) / 2);
        width: calc((100% - 0.75rem) / 2);
        max-width: calc((100% - 0.75rem) / 2);
        min-width: 0;
    }
}

@media (max-width: 480px) {
    .shop-grid--catalog {
        gap: 0.55rem;
    }

    .shop-grid--catalog > .shop-product {
        flex: 0 0 calc((100% - 0.55rem) / 2);
        width: calc((100% - 0.55rem) / 2);
        max-width: calc((100% - 0.55rem) / 2);
    }
}

/* —— Siparişlerim: durum filtreleri —— */
.shop-order-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0 0 1.35rem;
    padding: 0;
    border: 0;
    align-items: center;
}

.shop-order-filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.15rem;
    padding: 0.45rem 0.95rem;
    border-radius: 999px;
    border: 1px solid var(--shop-border);
    background: var(--shop-surface);
    color: var(--shop-muted);
    font-size: 0.84rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: none;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.shop-order-filter:hover {
    color: var(--shop-text);
    border-color: #cbd5e1;
    background: #f8fafc;
}

.shop-order-filter.is-active {
    background: var(--shop-primary);
    border-color: var(--shop-primary);
    color: #fff;
}

.shop-order-filter.is-active:hover {
    background: var(--shop-primary-dark);
    border-color: var(--shop-primary-dark);
    color: #fff;
}

/* —— Siparişlerim: masaüstü bar / mobil kart —— */
.shop-orders-desktop { display: block; }
.shop-orders-mobile { display: none; }

.shop-orders-desktop > .card {
    box-shadow: none;
    overflow: hidden;
}

.shop-orders-desktop > .card > .card-body {
    padding: 0;
}

.shop-orders-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.shop-orders-table thead th {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.7rem 1rem;
    white-space: nowrap;
}

.shop-orders-table tbody tr.shop-order-bar td {
    padding: 0.85rem 1rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--shop-border);
    background: #fff;
}

.shop-orders-table tbody tr.shop-order-bar:hover td {
    background: #f8fafc;
}

.shop-orders-table tbody tr.shop-order-bar:last-child td {
    border-bottom: 0;
}

.shop-orders-actions {
    white-space: nowrap;
    text-align: right;
}

.shop-orders-actions .btn {
    margin-left: 0.25rem;
}

.shop-orders-page .shop-muted,
.shop-orders-table .shop-muted {
    color: var(--shop-muted);
    font-size: 0.9rem;
}

@media (max-width: 900px) {
    .shop-orders-desktop { display: none !important; }
    .shop-orders-mobile { display: flex; flex-direction: column; gap: 0.75rem; }

    .shop-pdp {
        grid-template-columns: 1fr;
        gap: 0.85rem;
        max-width: none;
        align-items: stretch;
    }
    .shop-pdp-gallery {
        max-width: none;
        width: 100%;
        min-height: 260px;
        height: auto;
        aspect-ratio: 1;
        margin: 0;
    }
    .shop-pdp-gallery img {
        padding: 0.65rem;
    }
    .shop-pdp-info {
        height: auto;
    }
}

/* —— Düğme / ikon / rozet hizalama düzeltmeleri —— */
.icon-svg {
    display: block;
    flex-shrink: 0;
    vertical-align: middle;
}

body.app-shop .btn,
body.app-shop .btn-sm,
body.app-shop .btn-lg {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    line-height: 1;
    white-space: nowrap;
    vertical-align: middle;
}

body.app-shop .btn svg,
body.app-shop .btn .icon-svg,
.shop-cart svg,
.shop-cart .icon-svg,
.shop-mega-btn svg,
.shop-mega-btn .icon-svg,
.shop-search button svg,
.shop-search button .icon-svg,
.shop-action svg,
.shop-mobile-toggle svg,
.btn-add-cart svg,
.pagination-nav svg,
.pagination-nav-icon {
    display: block;
    flex-shrink: 0;
}

.shop-mega-btn,
.shop-cart,
.shop-action,
.shop-credit-pill,
.catalog-filter-chip,
.shop-grade-bar .tab,
.shop-grade-bar a,
.shop-filter-pills a,
.shop-search button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    vertical-align: middle;
}

.shop-account-btn {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    line-height: 1.2;
    vertical-align: middle;
}

.shop-mobile-toggle {
    display: none !important;
}

.shop-credit-pill {
    justify-content: flex-start;
    align-items: center;
    line-height: 1.15;
}

.catalog-filter-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    line-height: 1.25;
}

.shop-grade-bar .tab,
.shop-grade-bar a {
    gap: 0.25rem;
    min-height: 2rem;
    padding: 0.4rem 0.85rem;
    box-sizing: border-box;
}

.shop-account-btn {
    gap: 0.35rem;
    min-height: 36px;
    max-width: 260px;
}

.shop-cart {
    gap: 0.4rem;
    min-height: 40px;
    box-sizing: border-box;
}

.shop-cart-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.shop-cart-count {
    line-height: 1;
    padding: 0 0.2rem;
    box-sizing: border-box;
}

.shop-qty-btn,
.shop-qty button,
.cart-qty-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    line-height: 1;
    font-weight: 700;
    font-size: 1.05rem;
    vertical-align: middle;
}

.shop-qty input,
.cart-qty-input {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    height: 38px;
    box-sizing: border-box;
}

.cart-qty-input {
    height: 36px;
}

.btn-add-cart {
    line-height: 1;
}

.btn-add-cart-text {
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

.btn-add-cart-icon svg {
    display: block;
}

body.app-shop .badge,
.shop-badge,
.shop-product-discount-pill,
.shop-product-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    vertical-align: middle;
    box-sizing: border-box;
}

.shop-product-chip {
    padding: 0.2rem 0.45rem;
}

.pagination-nav,
.pagination-page-link,
.pagination-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    line-height: 1;
}

.pagination-nav-icon {
    display: block;
}

.mobile-card-actions .btn,
.shop-orders-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.shop-mega-btn-icon,
.shop-mega-btn-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

/* ——— Mağaza giriş ekranı ——— */
.store-login-page .shop-main {
    background:
        radial-gradient(circle at 12% 18%, rgba(23, 111, 125, 0.08), transparent 30%),
        radial-gradient(circle at 88% 82%, rgba(15, 23, 42, 0.05), transparent 28%),
        #f6f7f5;
}

.store-login-page .shop-container {
    max-width: none;
    padding-left: clamp(20px, 8vw, 140px);
    padding-right: clamp(20px, 8vw, 140px);
}

.store-login-shell {
    min-height: 620px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px 0;
}

.store-login-card {
    position: relative;
    width: min(100%, 650px);
    background: #fff;
    border: 1px solid #d9dcd8;
    border-radius: 0;
    box-shadow: 12px 14px 0 rgba(23, 111, 125, 0.08), 0 24px 60px rgba(15, 23, 42, 0.09);
}

.store-login-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: -1px;
    width: 96px;
    height: 4px;
    background: #176f7d;
}

.store-login-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.store-login-tabs a {
    padding: 23px 16px 18px;
    border-bottom: 1px solid #d4d8d4;
    color: #1f2933 !important;
    font-size: clamp(18px, 2vw, 23px);
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.store-login-tabs a.is-active {
    border-bottom: 3px solid #176f7d;
    color: #176f7d !important;
}

.store-login-tab-closed {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 12px;
    border-bottom: 1px solid #d4d8d4;
    color: #64748b;
    font-size: clamp(13px, 1.6vw, 15px);
    font-weight: 600;
    text-align: center;
    line-height: 1.3;
    background: #f8fafc;
    cursor: default;
    user-select: none;
}

.store-login-body {
    padding: 38px 46px 36px;
}

.store-login-intro {
    margin-bottom: 28px;
}

.store-login-eyebrow {
    display: block;
    margin-bottom: 8px;
    color: #176f7d;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.store-login-intro h1 {
    margin: 0 0 8px;
    color: #161b20;
    font-size: clamp(25px, 3vw, 33px);
    line-height: 1.15;
}

.store-login-intro p {
    max-width: 500px;
    margin: 0;
    color: #687078;
    font-size: 14px;
    line-height: 1.65;
}

.store-login-form {
    display: grid;
    gap: 20px;
}

.store-login-field {
    position: relative;
    display: block;
    min-height: 78px;
    padding: 12px 17px 8px;
    border: 1px solid #aeb4ae;
    border-radius: 0;
    background: #fff;
}

.store-login-field > span {
    display: block;
    margin-bottom: 6px;
    color: #687078;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.store-login-field input {
    width: 100%;
    border: 0;
    border-radius: 0;
    outline: 0;
    background: transparent;
    color: #202020;
    font: inherit;
    font-size: 17px;
    font-weight: 500;
}

.store-login-field textarea {
    width: 100%;
    min-height: 58px;
    resize: vertical;
    border: 0;
    border-radius: 0;
    outline: 0;
    background: transparent;
    color: #202020;
    font: inherit;
    font-size: 16px;
    line-height: 1.45;
}

.store-login-field:focus-within {
    border-color: #176f7d;
    box-shadow: 0 0 0 1px #176f7d;
}

.store-login-password {
    padding-right: 58px;
}

.store-login-password button {
    position: absolute;
    top: 0;
    right: 0;
    width: 58px;
    height: 100%;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #454541;
    cursor: pointer;
}

.store-login-submit {
    width: 100%;
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 0;
    border-radius: 0;
    background: #176f7d;
    color: #fff;
    font: inherit;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.store-login-submit:hover {
    background: #105d69;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(23, 111, 125, 0.2);
}

.store-login-submit svg {
    transition: transform .18s ease;
}

.store-login-submit:hover svg {
    transform: translateX(3px);
}

.store-login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.store-login-options a {
    color: #30302d !important;
    font-size: 16px;
    font-weight: 600;
    text-decoration: underline;
}

.store-login-remember {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #30302d;
    font-size: 16px;
    font-weight: 600;
}

.store-login-remember input {
    width: 20px;
    height: 20px;
    margin: 0;
    border-radius: 0;
    accent-color: #176f7d;
}

.store-login-safe {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid #e5e7e4;
    color: #737a80;
}

.store-login-safe > span {
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    flex: 0 0 25px;
    border: 1px solid #9fc2b7;
    color: #176f7d;
    font-size: 12px;
    font-weight: 800;
}

.store-login-safe p {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
}

.store-login-safe a {
    color: #176f7d !important;
    font-weight: 700;
}

.store-register-card {
    width: min(100%, 820px);
}

.store-register-closed {
    margin-top: 0.5rem;
    padding: 1.5rem 1.25rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    text-align: center;
}

.store-register-closed p {
    margin: 0 0 0.5rem;
    color: #334155;
    line-height: 1.5;
}

.store-register-closed strong {
    display: block;
    font-size: 1.15rem;
    color: #0f172a;
    margin-bottom: 0.35rem;
}

.store-register-form {
    gap: 18px;
}

.store-register-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.store-register-address {
    min-height: 100px;
}

.store-register-form .form-error {
    margin-top: 6px;
    font-size: 12px;
}

.shop-product-guest-note {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--shop-border);
}

.shop-product-guest-note a,
.shop-pdp-guest-note a {
    color: var(--shop-primary) !important;
    font-weight: 700;
    text-decoration: underline;
}

.shop-pdp-guest-note {
    display: grid;
    gap: 8px;
    margin: 20px 0;
    padding: 18px;
    border: 1px solid var(--shop-border);
    border-radius: 0;
    background: #f8fafc;
}

@media (max-width: 640px) {
    .store-login-page .shop-container {
        padding-left: 14px;
        padding-right: 14px;
    }

    .store-login-shell {
        min-height: 500px;
        padding: 30px 0;
    }

    .store-login-body {
        padding: 28px 20px 26px;
    }

    .store-login-tabs a {
        padding: 19px 10px 15px;
        font-size: 20px;
    }

    .store-login-field {
        min-height: 72px;
    }

    .store-login-submit {
        min-height: 56px;
        font-size: 18px;
    }

    .store-login-options {
        align-items: flex-start;
        flex-direction: column;
    }

    .store-register-grid {
        grid-template-columns: 1fr;
    }
}
