/* Shared visual system. Loaded after legacy component styles; no data or chart changes. */
:root {
    --t-ink: #252436;
    --t-muted: #696777;
    --t-brand: #533777;
    --t-brand-dark: #3c255b;
    --t-line: #e7e4ec;
    --t-green: #176443;
    --bs-primary-rgb: 83, 55, 119;
    --bs-link-color: #533777;
    --bs-link-hover-color: #3c255b;
    --bs-body-bg: #f7f7f9;
    --bs-body-color: #252436;
}
body.tsepaki-ui { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
.tsepaki-ui :focus-visible { outline: 3px solid #9775c3; outline-offset: 3px; }
.tsepaki-ui .text-secondary { color: var(--t-muted) !important; }
.tsepaki-ui .btn { font-weight: 600; border-radius: .65rem; }
.tsepaki-ui .btn-primary { --bs-btn-bg: var(--t-brand); --bs-btn-border-color: var(--t-brand); --bs-btn-hover-bg: var(--t-brand-dark); --bs-btn-hover-border-color: var(--t-brand-dark); --bs-btn-active-bg: var(--t-brand-dark); --bs-btn-active-border-color: var(--t-brand-dark); }
.tsepaki-ui .btn-outline-primary { --bs-btn-color: var(--t-brand); --bs-btn-border-color: #d7cce5; --bs-btn-hover-bg: #f0ebf6; --bs-btn-hover-color: var(--t-brand-dark); --bs-btn-hover-border-color: #ae96cc; --bs-btn-active-bg: var(--t-brand); --bs-btn-active-border-color: var(--t-brand); }
.tsepaki-ui .btn-outline-secondary { --bs-btn-color: #514c5b; --bs-btn-border-color: #dad6e0; --bs-btn-hover-color: var(--t-brand); --bs-btn-hover-bg: #f3f0f7; --bs-btn-hover-border-color: #bdaacd; }
.tsepaki-ui .form-control, .tsepaki-ui .form-select { border-color: #dcd8e3; border-radius: .6rem; }
.tsepaki-ui .form-control:focus, .tsepaki-ui .form-select:focus { border-color: #8d6bb4; box-shadow: 0 0 0 3px #53377715; }
.site-header { background: #fff; border-bottom: 1px solid var(--t-line); padding-block: 1rem; }
.site-header .navbar-brand { color: var(--t-brand); display: inline-flex; align-items: center; gap: .5rem; letter-spacing: -1px; margin-right: 1rem; }
.site-header .navbar-brand:hover { color: var(--t-brand-dark); }
.brand-symbol { display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; background: var(--t-brand); color: #fff; border-radius: .75rem; font-size: 1.05rem; }
.brand-dot { color: #b47f08; margin-left: -.45rem; }
.header-search { max-width: 740px; }
.header-search .input-group { border: 1px solid #ded9e7; border-radius: .75rem; background: #f7f6f9; padding: .25rem; }
.header-search .form-control { min-height: 2.55rem; background: transparent; border: 0; }
.header-search-button { --bs-btn-bg: var(--t-brand); --bs-btn-color: #fff; --bs-btn-border-color: var(--t-brand); --bs-btn-hover-bg: var(--t-brand-dark); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: var(--t-brand-dark); --bs-btn-active-bg: var(--t-brand-dark); --bs-btn-active-color: #fff; border-radius: .5rem !important; }
.header-menu-button { --bs-btn-color: #51445f; --bs-btn-bg: #fff; --bs-btn-border-color: #e5dfee; --bs-btn-hover-color: var(--t-brand); --bs-btn-hover-bg: #f4f0f8; --bs-btn-hover-border-color: #cdbbdf; --bs-btn-active-color: var(--t-brand); --bs-btn-active-bg: #eee8f5; min-height: 44px; }
.header-cart-button { display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; color: var(--t-brand); border: 1px solid #e5dfee; background: #f5f1fa; padding: .45rem .65rem; white-space: nowrap; }
.header-cart-button:hover { background: #eae1f4; color: var(--t-brand-dark); }
.cart-count { display: grid; place-items: center; min-width: 1.35rem; height: 1.35rem; padding-inline: .25rem; border-radius: .45rem; background: var(--t-brand); color: #fff; font-size: .7rem; font-variant-numeric: tabular-nums; }
.site-subnav { background: #fff; border-bottom: 1px solid var(--t-line); }
.site-subnav > div { display: flex; align-items: center; gap: 1.8rem; min-height: 49px; }
.subnav-link { display: inline-flex; align-items: center; gap: .5rem; color: #655b71; font-size: .82rem; font-weight: 600; background: none; border: 0; border-bottom: 2px solid transparent; padding: .9rem 0; text-decoration: none; white-space: nowrap; }
.subnav-link:hover, .subnav-link.is-active { color: var(--t-brand); border-bottom-color: var(--t-brand); }
.subnav-note { margin-left: auto; color: #797281; font-size: .75rem; }
.subnav-note i { color: var(--t-green); margin-right: .4rem; }
.catalog-intro { padding: .65rem 0 1rem; }
.eyebrow { color: #79668e; font-size: .66rem; font-weight: 750; letter-spacing: .15em; margin-bottom: .8rem; }
.catalog-intro h1 { font-weight: 750; font-size: clamp(1.35rem, 2vw, 1.8rem); letter-spacing: -.6px; line-height: 1.3; margin-bottom: .35rem; }
.catalog-intro h1 span { color: var(--t-brand); }
.intro-description { color: var(--t-muted); font-size: .83rem; line-height: 1.6; margin-bottom: 0; }
.intro-guide { padding: 1rem 1.6rem; border: 1px solid #e1dbe9; background: #efebf5; border-radius: 1.1rem; }
.guide-caption { font-size: .62rem; letter-spacing: .13em; font-weight: 750; color: #746780; }
.guide-step { display: flex; align-items: center; gap: .85rem; padding: .65rem 0; }
.guide-step + .guide-step { border-top: 1px solid #ddd5e7; }
.guide-step:last-child { padding-bottom: .2rem; }
.guide-step > span { display: grid; place-items: center; width: 2rem; height: 2rem; flex-shrink: 0; color: var(--t-brand); background: #fff; border-radius: .65rem; font-size: .7rem; font-weight: 750; }
.guide-step strong { font-size: .83rem; color: #44334f; }
.guide-step p { color: #74687e; font-size: .75rem; margin: .25rem 0 0; line-height: 1.6; }
.guide-step > i { margin-left: auto; color: #8c789e; }
.tsepaki-ui .catalog-page { padding-top: .75rem !important; }
.catalog-page .catalog-heading { padding-top: 0; margin-bottom: .65rem !important; scroll-margin-top: 1rem; }
.catalog-title-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: .4rem .8rem; }
.catalog-page .catalog-title-row h1 { width: auto; }
.catalog-heading h1, .catalog-heading h2 { letter-spacing: -.5px; font-size: 1.35rem; }
.category-filter-bar { border: 1px solid var(--t-line); padding: .7rem; box-shadow: none; border-radius: .85rem; margin-top: 0; }
.catalog-page .category-filter-bar { margin-bottom: .5rem !important; }
.category-filter-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 1rem; }
.category-filter-fields.category-filter-fields-no-clear { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.catalog-market-picker { min-width: 0; }
.filter-label { display: block; font-size: .69rem; color: #6d6279; font-weight: 650; margin-bottom: .4rem; }
.category-picker-toggle, .catalog-market-picker .btn { min-height: 43px; font-size: .8rem; background-color: #fff; border-color: #ded9e7; font-weight: 500; }
.catalog-market-picker .btn { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.category-filter-clear { height: 43px; }
.catalog-disclaimer { flex: 1 1 22rem; color: #77717f; font-size: .72rem; line-height: 1.5; margin: 0; text-align: right; }
.catalog-disclaimer i { margin-right: .3rem; }
.tsepaki-ui .product-card { border: 1px solid var(--t-line) !important; border-radius: .9rem; box-shadow: 0 2px 3px #25243603 !important; transition: border-color .16s ease, box-shadow .16s ease; overflow: hidden; }
.tsepaki-ui .product-card:hover { border-color: #c5b4d7 !important; box-shadow: 0 6px 20px #37244b0b !important; }
.product-card .product-image-frame { height: 172px; padding: 1rem 1.75rem; border-bottom: 0; border-radius: 0; }
.product-card .product-brand { font-size: .65rem; letter-spacing: .06em; min-height: 1rem; }
.product-card h3 { font-size: .88rem; font-weight: 650; min-height: 2.65rem; margin-bottom: .35rem; }
.product-category { font-size: .7rem !important; min-height: 2.1rem; margin-bottom: .7rem !important; }
.product-price-summary { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.product-price-summary > strong { color: var(--t-green); font-size: 1.6rem !important; font-weight: 750; letter-spacing: -.65px; }
.price-prefix { font-size: .7rem; font-weight: 500; color: var(--t-muted); letter-spacing: 0; }
.market-count { font-size: .7rem; color: #736c7c; background: #f3f1f6; padding: .25rem .4rem; border-radius: .4rem; }
.product-price-summary + p { font-size: .68rem !important; margin-top: .15rem; }
.product-card .price-row { border-color: #f0edf4; padding-block: .45rem; font-size: .8rem; }
.product-card .market-link { color: #5b5366; font-size: .74rem; }
.product-card .price-info { width: 1.25rem; height: 1.25rem; font-size: .65rem; border-color: #d0cbd6; }
.product-card .price-info.is-stale { border-color: #bd8b32; }
.offers-collapsed > li:nth-child(n+4) { display: none; }
.offers-toggle { display: block; width: 100%; min-height: 36px; text-align: left; color: var(--t-brand); border: 0; background: transparent; padding: .45rem 0; font-size: .73rem; font-weight: 600; }
.offers-toggle[hidden] { display: none; }
.offers-toggle:hover { text-decoration: underline; }
.product-card-actions { display: flex; width: 100%; }
.product-card-actions .btn { min-width: 0; min-height: 44px; padding: .55rem .45rem; font-size: .75rem; display: flex; align-items: center; justify-content: center; }
.product-card-actions .btn:first-child { flex: 1.3 1 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.product-card-actions .btn:last-child { flex: 1 1 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.product-card-actions .fa-arrow-right { display: none; }
.product-title-link:hover { color: var(--t-brand); }
.page-link { color: var(--t-brand); border-color: var(--t-line); }
.active > .page-link { background: var(--t-brand); border-color: var(--t-brand); }
.detail-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; color: var(--t-muted); font-size: .8rem; margin-bottom: 1.5rem; }
.detail-breadcrumb a { color: var(--t-brand); text-decoration: none; }
.detail-breadcrumb i { font-size: .55rem; }
.detail-summary-card { border: 1px solid var(--t-line) !important; overflow: hidden; box-shadow: none !important; }
.detail-summary-card .product-detail-image-frame { padding: 2rem; }
.detail-summary-card h1 { font-weight: 700; letter-spacing: -.6px; }
.detail-price-highlight { display: flex; flex-direction: column; border-left: 3px solid var(--t-green); padding: .35rem 1rem; margin: 1.4rem 0; background: #f4faf7; }
.detail-price-highlight > span { font-size: .75rem; color: #507361; }
.detail-price-highlight strong { font-size: 2.2rem; color: var(--t-green); font-weight: 750; letter-spacing: -.8px; }
.detail-price-highlight small { font-size: .7rem; color: #627369; padding-bottom: .35rem; }
.tsepaki-ui main > .card, .tsepaki-ui main .row > section > .card { border: 1px solid var(--t-line) !important; box-shadow: none !important; }
.tsepaki-ui .table { --bs-table-border-color: #ece8f0; }
.tsepaki-ui .table thead th { background: #f7f5fa; color: #6a5e78; font-size: .77rem; padding-block: 1rem; }
.tsepaki-ui .table td, .tsepaki-ui .table tbody th { padding-block: .85rem; }
.tsepaki-ui .auth-card { border: 1px solid var(--t-line) !important; box-shadow: 0 12px 45px #37244b08 !important; }
.tsepaki-ui .auth-card h1 { overflow-wrap: anywhere; }
.site-footer { background: #efedf3; border-color: #e1dce9; }
.site-footer .small { font-size: .78rem; line-height: 1.75; }
.site-footer h2 { color: var(--t-brand-dark); }
.site-footer .footer-brand { font-size: 1.6rem; }
.ad-slot-frame { background: #f3f2f6; min-height: 70px; border-color: #e3dfeb; }
.tsepaki-ui .modal-content { border: 1px solid var(--t-line); border-radius: 1rem; box-shadow: 0 20px 60px #24173020; }
.tsepaki-ui .modal-header { border-bottom-color: var(--t-line); padding: 1.25rem; }
.tsepaki-ui .modal-footer { border-top-color: var(--t-line); background: #faf9fc; border-radius: 0 0 1rem 1rem; }
@media (max-width: 1199.98px) {
    .subnav-note { display: none; }
    .category-filter-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
}
@media (max-width: 767.98px) {
    .site-header { padding: .5rem 0 0; }
    .site-header .container-xl { gap: .4rem; }
    .site-header .navbar-brand { font-size: 1.6rem !important; }
    .header-action-menus { margin-left: auto; }
    .header-search { margin: .2rem 0 .75rem; }
    .header-menu-button { color: var(--t-brand); background: #fff; border-color: #e5dfee; }
    .header-menu-button:hover { color: var(--t-brand-dark); background: #f0ebf6; }
    .site-subnav > div { gap: 1.2rem; overflow-x: auto; }
    .subnav-link { font-size: .72rem; padding-block: .8rem; }
    .catalog-intro { padding: .25rem 0 .8rem; }
    .catalog-intro h1 { font-size: 1.3rem; }
    .intro-description { font-size: .78rem; margin-bottom: 0; }
    .intro-guide { display: none; }
    .category-filter-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: .65rem; }
    .catalog-market-picker { grid-column: 1 / -1; }
    .category-picker { grid-column: auto; }
    .category-filter-clear { grid-column: auto; width: 2.4rem; }
    .category-picker-menu { min-width: min(25rem, calc(100vw - 3.5rem)); }
    .catalog-heading h1, .catalog-heading h2 { font-size: 1.25rem; }
    .catalog-disclaimer { flex-basis: 100%; font-size: .68rem; line-height: 1.6; text-align: left; }
    .catalog-grid { --bs-gutter-y: 1rem; }
    .product-card .product-image-frame { height: 195px; }
    .product-card h3, .product-category { min-height: 0; }
    .product-card .card-body { padding: 1.1rem !important; }
    .product-card h3 { font-size: 1rem; }
    .product-card .price-row { min-height: 2.4rem; }
    .product-card .market-link { font-size: .8rem; }
    .offers-toggle { min-height: 44px; }
    .product-card-actions .btn { min-width: 0; font-size: .72rem; display: flex; align-items: center; justify-content: center; }
    .product-card .btn { min-height: 44px; }
    .detail-summary-card .product-detail-image-frame { padding: 1.5rem; }
    .tsepaki-ui .modal-fullscreen-sm-down .modal-content { border-radius: 0; }
    .tsepaki-ui .modal-fullscreen-sm-down .modal-footer { border-radius: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .tsepaki-ui *, .tsepaki-ui *::before, .tsepaki-ui *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
