:root{--color-primary:#0a47a9;--color-primary-dark:#06347f;--color-primary-light:#eaf2ff;--color-promotion:#ffbe00;--color-promotion-dark:#e5a800;--color-promotion-light:#fff5cc;--color-danger:#e2232a;--color-danger-dark:#b91c24;--color-danger-light:#fdebec;--color-background:#f7f9fc;--color-surface:#ffffff;--color-text:#172033;--color-text-secondary:#5d6678;--color-border:#dde3ec;--color-disabled:#a8b0be;--color-footer:#071e41;--color-primary-border:#cbdcf7;--color-danger-border:#f5b8bc;--color-neutral-soft:#eef1f5;--color-placeholder:#7b8494;--color-border-strong:#9ba8ba;--color-footer-link:#dce8ff;--color-footer-muted:#b5c8e6;--color-warning-text:#604700;--radius-small:8px;--radius-medium:12px;--radius-large:18px;--shadow-card:0 4px 16px rgb(7 30 65/8%);--shadow-floating:0 8px 28px rgb(7 30 65/14%)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--color-text);background:var(--color-background);font-family:Arial,Helvetica Neue,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed}:where(a,button,input,select,textarea):focus-visible{outline:3px solid rgb(10 71 169/34%);outline-offset:2px}::selection{color:var(--color-text);background:var(--color-promotion)}h1,h2,h3{color:var(--color-primary-dark)}.container{width:min(1160px,calc(100% - 32px));margin:auto}.topbar{background:var(--color-primary-dark);color:var(--color-surface);font-size:.82rem;text-align:center;padding:7px}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:20;box-shadow:0 2px 8px rgb(7 30 65/4%)}.nav{height:70px;gap:28px}.nav,.nav-links{display:flex;align-items:center}.nav-links{gap:24px;margin-left:auto;font-weight:700;font-size:.92rem;color:var(--color-text)}.nav-links a:not(.admin-link){border-radius:var(--radius-small);padding:8px 3px}.nav-links a:not(.admin-link):hover{color:var(--color-primary)}.nav-links a[aria-current=page]{color:var(--color-primary);box-shadow:inset 0 -3px 0 var(--color-promotion)}.admin-link{color:var(--color-surface);background:var(--color-primary);padding:9px 14px;border-radius:var(--radius-medium)}.admin-link:hover{background:var(--color-primary-dark)}.hero{background:var(--color-primary-light);padding:58px 0 46px;overflow:hidden;border-bottom:1px solid var(--color-primary-border)}.eyebrow{display:inline-flex;align-items:center;gap:7px;text-transform:uppercase;letter-spacing:.11em;color:var(--color-primary);font-size:.73rem;font-weight:900}.hero h1{font-size:clamp(2.15rem,6vw,4.2rem);line-height:1.02;letter-spacing:-.05em;max-width:770px;margin:14px 0 18px}.hero p{font-size:1.08rem;color:var(--color-text-secondary);max-width:640px}.search{display:flex;align-items:center;gap:4px;max-width:720px;background:var(--color-surface);padding:7px;border:1px solid var(--color-border);border-radius:var(--radius-medium);box-shadow:var(--shadow-floating);margin-top:28px;color:var(--color-primary)}.search:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px rgb(10 71 169/15%),var(--shadow-floating)}.search input{border:0;outline:0;flex:1 1;min-width:0;padding:10px 13px;background:transparent;color:var(--color-text)}.input::placeholder,.search input::placeholder{color:var(--color-placeholder);opacity:1}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-medium);padding:10px 18px;font-weight:800;background:var(--color-primary);color:var(--color-surface);transition:background .16s ease,border-color .16s ease,transform .16s ease}.btn:hover{background:var(--color-primary-dark)}.btn:active{transform:translateY(1px)}.btn.promotion{background:var(--color-promotion);color:var(--color-text)}.btn.promotion:hover{background:var(--color-promotion-dark)}.btn.secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.btn.secondary:hover{background:var(--color-primary-light)}.btn.danger{background:var(--color-danger);color:var(--color-surface)}.btn.danger:hover{background:var(--color-danger-dark)}.btn:disabled{background:var(--color-border);border-color:var(--color-border);color:var(--color-placeholder);transform:none}.section{padding:52px 0}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px}.section h2,.section-head h2{font-size:clamp(1.55rem,4vw,2.2rem);letter-spacing:-.03em;margin:0}.section-head p{color:var(--color-text-secondary);margin:4px 0 0}.link{color:var(--color-primary);font-weight:800;border-radius:4px}.link:hover{color:var(--color-primary-dark);text-decoration:underline;text-underline-offset:3px}.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-large);overflow:hidden;box-shadow:var(--shadow-card);transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-floating)}.card-body{padding:17px}.product-art{height:145px;display:grid;place-items:center;background:var(--color-primary-light);font-size:3rem}.badge-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.badge{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--color-primary-border);border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:900;background:var(--color-primary-light);color:var(--color-primary-dark);text-transform:uppercase;letter-spacing:.02em}.badge.hot{background:var(--color-promotion);border-color:var(--color-promotion-dark);color:var(--color-text)}.badge.low{background:var(--color-promotion-light);border-color:var(--color-promotion);color:var(--color-primary-dark)}.badge[data-status=ENDED],.badge[data-status=EXPIRED],.badge[data-status=OUT_OF_STOCK]{background:var(--color-danger-light);border-color:var(--color-danger-border);color:var(--color-danger-dark)}.badge[data-status=DIFFERENT_PRICE],.badge[data-status=REQUIRES_CLUB],.badge[data-status=SCHEDULED]{background:var(--color-promotion-light);border-color:var(--color-promotion);color:var(--color-text)}.badge[data-status=DRAFT],.badge[data-status=HIDDEN]{background:var(--color-neutral-soft);border-color:var(--color-border);color:var(--color-text-secondary)}.card h3{font-size:1rem;line-height:1.25;margin:0 0 4px}.meta,.store{color:var(--color-text-secondary);font-size:.84rem}.store{display:flex;align-items:center;gap:7px;font-weight:700;margin:13px 0}.price-row{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.price{color:var(--color-primary-dark);font-size:1.75rem;font-weight:950;letter-spacing:-.04em}.old{text-decoration:line-through;color:var(--color-placeholder);font-size:.78rem}.unit-price{font-size:.72rem}.deadline,.unit-price{color:var(--color-text-secondary)}.deadline{border-top:1px solid var(--color-border);margin-top:13px;padding-top:11px;font-size:.76rem;display:flex;justify-content:space-between}.categories{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:12px;gap:12px}.category{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:15px 10px;text-align:center;font-weight:800;font-size:.82rem;box-shadow:var(--shadow-card)}.category span{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 8px;border-radius:50%;background:var(--color-primary-light);font-size:1.6rem}.category:hover{color:var(--color-primary-dark);border-color:var(--color-primary);box-shadow:inset 0 -4px 0 var(--color-promotion)}.notice{display:flex;gap:16px;background:var(--color-primary-dark);border-radius:var(--radius-large);padding:25px;align-items:center;box-shadow:var(--shadow-card)}.notice,.notice strong{color:var(--color-surface)}.notice p{color:var(--color-footer-link);margin:3px 0}.filters{display:grid;grid-template-columns:2fr repeat(3,1fr);grid-gap:12px;gap:12px;background:var(--color-surface);border:1px solid var(--color-border);padding:16px;border-radius:var(--radius-medium);margin:22px 0;box-shadow:var(--shadow-card)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.75rem;font-weight:800;color:var(--color-text-secondary)}.input{width:100%;min-height:44px;border:1px solid #c8d0dc;background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-medium);padding:10px 12px;outline:none}.input:hover{border-color:var(--color-border-strong)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgb(10 71 169/15%)}.input:disabled{background:var(--color-neutral-soft);border-color:var(--color-border);color:var(--color-placeholder)}input[type=checkbox],input[type=radio]{accent-color:var(--color-primary);width:17px;height:17px;vertical-align:middle}.details{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:24px;gap:24px}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-large);padding:24px;box-shadow:var(--shadow-card)}.comparison-row{display:grid;grid-template-columns:1fr auto;grid-gap:18px;gap:18px;border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:16px;margin:12px 0}.comparison-row:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.community-buttons{display:grid;grid-template-columns:1fr 1fr;grid-gap:9px;gap:9px}.community-buttons button{min-height:48px;display:flex;align-items:center;gap:8px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-medium);padding:10px;text-align:left;font-size:.82rem}.community-buttons button:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.confirmation-choice.found,.confirmation-choice.other-branch{color:var(--color-primary-dark);background:var(--color-primary-light)}.confirmation-choice.club,.confirmation-choice.different{background:var(--color-promotion-light)}.confirmation-choice.sold-out{color:var(--color-danger-dark);background:var(--color-danger-light)}.confirmation-choice.ended{color:var(--color-text-secondary);background:var(--color-neutral-soft)}.confirmation-choice.selected{border-width:2px;border-color:currentColor;box-shadow:0 0 0 2px rgb(10 71 169/12%)}.empty{text-align:center;color:var(--color-text-secondary);background:var(--color-surface);border:1px dashed #aeb9c9;padding:55px 20px;border-radius:var(--radius-large)}.empty h2,.empty h3{color:var(--color-primary-dark)}.footer{background:var(--color-footer);color:var(--color-surface);padding:40px 0;margin-top:45px;border-top:4px solid var(--color-promotion)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-gap:30px;gap:30px}.footer a{color:var(--color-footer-link)}.footer a:hover{color:var(--color-promotion)}.footer small{color:var(--color-footer-muted)}.footer strong{color:var(--color-surface)}.login-shell{min-height:100vh;display:grid;place-items:center;background:var(--color-primary-light);padding:20px}.login-card{width:min(430px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-large);padding:30px;box-shadow:var(--shadow-floating)}.stack{display:grid;grid-gap:14px;gap:14px}.error{background:var(--color-danger-light);border:1px solid var(--color-danger-border);color:var(--color-danger-dark);border-radius:var(--radius-medium)}.error,.success{display:flex;align-items:center;gap:7px;padding:10px;font-size:.85rem}.success{background:var(--color-primary-light);border:1px solid var(--color-primary-border);color:var(--color-primary-dark);border-radius:var(--radius-medium)}.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--color-footer);color:var(--color-surface);padding:25px 18px;border-right:1px solid #123564}.sidebar nav{display:grid;grid-gap:6px;gap:6px;margin-top:32px}.sidebar a,.sidebar button{color:var(--color-footer-link);background:transparent;border:0;text-align:left;padding:11px;border-radius:var(--radius-small)}.sidebar a:hover,.sidebar button:hover{color:var(--color-surface);background:rgb(234 242 255/12%)}.admin-main{padding:30px;min-width:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin:22px 0}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:var(--radius-medium);padding:18px;box-shadow:var(--shadow-card)}.stat strong{display:block;color:var(--color-primary-dark);font-size:2rem}.table-wrap{overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-medium);box-shadow:var(--shadow-card)}table{border-collapse:collapse;width:100%;min-width:720px}td,th{text-align:left;border-bottom:1px solid var(--color-border);padding:13px;font-size:.83rem}th{font-size:.72rem;text-transform:uppercase;color:var(--color-primary-dark);background:var(--color-primary-light)}tbody tr:nth-child(2n){background:#fafbfe}tbody tr:hover{background:#f1f5fb}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.form-grid .wide{grid-column:1/-1}.import-grid{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:18px;gap:18px;align-items:start}.import-fields h2,.import-grid h2{margin-top:0}.import-fields{margin-top:20px}.import-actions{display:flex;flex-wrap:wrap;gap:9px}.file-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--color-primary-border);background:var(--color-primary-light);border-radius:var(--radius-medium);color:var(--color-primary-dark)}.file-chip span{display:grid}.file-chip small{color:var(--color-text-secondary)}.error-list{display:grid;grid-gap:10px;gap:10px}.error-list table{min-width:480px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.demo-strip{background:var(--color-promotion-light);border-bottom:1px solid var(--color-promotion);color:var(--color-warning-text);font-size:.78rem;text-align:center;padding:7px}.loading-shell{min-height:100vh;padding:28px 0;background:var(--color-background)}.loading-logo{width:180px;height:auto;margin:0 auto 40px}.route-loading{min-height:100svh;color:var(--color-text);background:radial-gradient(circle at 50% 38%,rgba(25,134,79,.12),transparent 230px),var(--color-background)}.route-loading-card{padding:28px 24px;border:1px solid rgba(25,134,79,.12);border-radius:24px;background:rgba(255,255,255,.92);box-shadow:0 18px 50px rgba(23,63,43,.1)}.route-loading-icon{display:grid;width:88px;height:88px;place-items:center;border-radius:24px;background:#fff;box-shadow:0 10px 28px rgba(25,134,79,.16);animation:route-loading-float 1.5s ease-in-out infinite}.route-loading-title{font-size:1.08rem;line-height:1.2}.route-loading-message{color:var(--color-muted);font-size:.9rem;line-height:1.45}.route-loading-bar{position:relative;width:150px;height:4px;overflow:hidden;border-radius:999px;background:rgba(25,134,79,.14)}.route-loading-bar>span{position:absolute;inset:0 auto 0 0;width:45%;border-radius:inherit;background:var(--color-primary);animation:route-loading-progress 1.15s ease-in-out infinite}@keyframes route-loading-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes route-loading-progress{0%{transform:translateX(-110%)}to{transform:translateX(330%)}}.skeleton{position:relative;overflow:hidden;background:var(--color-border);border-radius:var(--radius-medium)}.skeleton:after{position:absolute;inset:0;content:"";transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgb(255 255 255/72%),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton-title{width:min(480px,80%);height:48px;margin-bottom:16px}.skeleton-text{width:min(620px,95%);height:20px;margin-bottom:34px}.skeleton-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px}.skeleton-card{height:330px}.error-state{width:min(540px,calc(100% - 32px));margin:70px auto;text-align:center;border-top:4px solid var(--color-danger)}.error-state>svg{color:var(--color-danger)}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}.mobile-nav{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.categories{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:1fr 1fr}.admin-shell,.details{grid-template-columns:1fr}.sidebar{padding:14px}.sidebar nav{display:flex;overflow:auto;margin-top:14px}.skeleton-grid,.stats{grid-template-columns:1fr 1fr}}@media (max-width:600px){body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.container{width:min(100% - 22px,1160px)}.nav{height:61px}.nav-links a:not(.admin-link){display:none}.hero{padding:38px 0 34px}.search .btn span{display:none}.section{padding:36px 0}.grid{grid-template-columns:1fr}.categories{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:1fr}.product-art{height:130px}.notice{align-items:flex-start}.community-buttons,.comparison-row,.footer-grid{grid-template-columns:1fr}.admin-main{padding:20px 12px}.stats{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.import-grid,.skeleton-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{overflow-x:hidden}.market-card h2{font-size:1.35rem;overflow-wrap:anywhere}svg{vertical-align:middle}.app-brand{display:inline-flex;align-items:center;flex:0 0 auto}.app-logo{display:block;width:auto;object-fit:contain}.header-app-logo{height:58px}.footer-app-logo{height:82px;max-width:100%}.sidebar-app-logo{width:100%;height:auto;max-height:76px}.login-app-logo{width:min(280px,100%);height:auto;margin-bottom:18px}.location-strip{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:8px 16px;border-bottom:1px solid var(--color-border);background:var(--color-primary-light);color:var(--color-primary-dark);font-size:.8rem}.location-strip span{display:inline-flex;align-items:center;gap:6px}.location-strip small{width:100%;text-align:center;color:var(--color-text-secondary)}.location-strip.ready{padding-block:6px}.location-button{min-height:36px;border:0;border-radius:999px;padding:6px 11px;background:var(--color-primary);color:white;font-size:.76rem;font-weight:800}.location-button:hover{background:var(--color-primary-dark)}.location-button:disabled{opacity:.7;cursor:wait}.market-distance{color:var(--color-primary);font-size:.82em;white-space:nowrap}.filters.with-date{grid-template-columns:2fr repeat(4,1fr)}@media (max-width:900px){.filters.with-date{grid-template-columns:1fr 1fr}}@media (max-width:600px){.header-app-logo{height:46px}.filters.with-date{grid-template-columns:1fr}.nav{gap:8px}.nav .logo{font-size:.95rem;flex-shrink:1;min-width:0}.nav .logo-mark{width:36px;height:36px;flex:0 0 36px}.nav-links{margin-left:auto;flex:0 0 auto}.nav .admin-link,.nav .nav-links{display:none}.hero h1{overflow-wrap:anywhere}.search{width:100%}.search input{width:0;min-width:0}.search .btn{flex:0 0 auto;padding-inline:14px}.section-head{align-items:flex-start}.section-head .link{white-space:nowrap}.mobile-nav{position:fixed;z-index:50;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);padding:6px 12px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:rgb(255 255 255/96%);box-shadow:0 -6px 20px rgb(7 30 65/10%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-nav a{min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:var(--radius-small);color:var(--color-placeholder);font-size:.68rem;font-weight:800}.mobile-nav a[aria-current=page]{color:var(--color-primary);background:var(--color-primary-light);box-shadow:inset 0 -3px 0 var(--color-promotion)}}.market-logo{display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid var(--color-border);border-radius:var(--radius-medium);overflow:hidden;background:var(--color-surface)}.admin-preview,.market-logo img{padding:4px;width:100%;height:100%;object-fit:contain}.market-logo-fallback{display:inline-grid;place-items:center;background:var(--color-primary-light);color:var(--color-primary)}.market-card{display:flex;flex-direction:column;gap:16px;padding:22px}.admin-entity,.market-card-head,.market-hero{display:flex;align-items:center;gap:14px}.market-card .btn{margin-top:auto}.market-hero{align-items:flex-start;margin-bottom:24px}.branch-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:15px;gap:15px}.branch-card{border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:18px;background:var(--color-surface);box-shadow:var(--shadow-card)}.branch-card h3{margin-top:0}.admin-preview{width:96px;height:72px;margin-top:9px;border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface)}.admin-preview.product{width:120px;height:120px}.admin-entity img{flex:0 0 48px;width:48px;height:48px;padding:4px;object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface)}.text-button{border:0;background:none;padding:0}.product-art .product-image{width:auto;height:auto;max-width:min(180px,85%);max-height:120px;padding:6px;object-fit:contain}.product-art-large .product-image{max-width:min(360px,85%);max-height:240px}.product-art-large{height:320px!important}.history-panel{margin-top:24px}.history-chart{margin-top:16px}.chart-scroll{width:100%;overflow-x:auto}.chart-scroll svg{display:block;min-width:620px;width:100%;height:auto}.chart-grid{stroke:var(--color-border);stroke-width:1}.chart-line{fill:none;stroke:var(--color-primary-dark);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart-point{stroke:var(--color-surface);stroke-width:3}.chart-label{font-size:11px;fill:var(--color-text-secondary)}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0 18px;font-size:.8rem}.chart-legend span,.history-list span{display:flex;align-items:center;gap:6px}.chart-legend i,.history-list i{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 auto}.history-list{display:grid;grid-gap:7px;gap:7px}.history-list>div{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;background:var(--color-primary-light);border-radius:var(--radius-small);font-size:.82rem}@media (max-width:700px){.branch-grid{grid-template-columns:1fr}.market-hero{flex-direction:column}.product-art-large{height:230px!important}.history-list>div{align-items:flex-start;flex-direction:column;gap:4px}}