/* ============================================================
   САМОБРАНКА · дизайн-система
   Ядро на токенах. Тема по умолчанию — «Бездна» (глубокий морской).
   Остальные темы: themes/midnight|daylight|lagoon|sunset.css
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Unbounded:wght@400;500;600;700;800&family=Golos+Text:wght@400;500;600;700&display=swap');

/* ---------- ТОКЕНЫ (Бездна) ---------- */
:root, [data-theme="abyss"] {
  --font-display:'Unbounded',system-ui,sans-serif;
  --font-body:'Golos Text',system-ui,sans-serif;
  --bg-primary:#081623; --bg-secondary:#0D2133; --bg-tertiary:#12293D; --bg-elevated:#143049;
  --text-primary:#EAF3FA; --text-secondary:#9DB4C6; --text-muted:#5F7A8E;
  --accent:#FF6B57; --accent-hover:#FF543D; --accent-rgb:255,107,87; --accent-soft:rgba(255,107,87,.12);
  --secondary:#2DD4BF; --secondary-rgb:45,212,191; --secondary-soft:rgba(45,212,191,.12);
  --border:rgba(148,190,220,.14); --border-strong:rgba(148,190,220,.30);
  --success:#34D399; --warning:#FBBF24; --danger:#F87171; --info:#60A5FA;
  --glow-1:rgba(45,212,191,.13); --glow-2:rgba(255,107,87,.09); --glow-3:rgba(14,116,144,.20);
  --grain-opacity:.05;
  --header-bg:rgba(8,22,35,.86); --header-border:rgba(148,190,220,.12);
  --shadow-sm:0 1px 3px rgba(2,10,18,.45); --shadow-md:0 8px 22px rgba(2,10,18,.50); --shadow-lg:0 20px 48px rgba(2,10,18,.60);
  --radius-sm:10px; --radius-md:16px; --radius-lg:24px;
  --header-height:70px; --header-height-mobile:65px;
  --transition:all .22s cubic-bezier(.4,0,.2,1);
}

/* ---------- БАЗА ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);
  line-height:1.55;font-size:15px;min-height:100vh;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  transition:background .35s ease,color .35s ease;
}
body::before{ /* глубинные блики */
  content:'';position:fixed;inset:-10%;z-index:-2;pointer-events:none;
  background:
    radial-gradient(58rem 40rem at 10% -8%,var(--glow-1),transparent 62%),
    radial-gradient(52rem 36rem at 108% 12%,var(--glow-3),transparent 62%),
    radial-gradient(46rem 40rem at 82% 112%,var(--glow-2),transparent 62%);
  animation:ambientDrift 26s ease-in-out infinite alternate;
}
body::after{ /* зерно */
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--grain-opacity);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
@keyframes ambientDrift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(0,-2.5%,0) scale(1.05)}}
::selection{background:var(--accent);color:#fff}
img{max-width:100%;display:block}
button{font-family:inherit}
body.modal-open{overflow:hidden}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg-primary)}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:2px solid var(--bg-primary)}
::-webkit-scrollbar-thumb:hover{background:var(--accent)}

/* ---------- ТИПОГРАФИКА ---------- */
h1,h2,h3,.modal-title,.category-name,.dish-price,.cart-total-amount,.order-total,.block-title{font-family:var(--font-display);letter-spacing:-.01em}
h1{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:700;text-align:center;margin-bottom:2rem}
h1::after{content:'';display:block;width:56px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--secondary));margin:14px auto 0}
.block-title{font-size:clamp(1.2rem,3vw,1.6rem);font-weight:700;margin-bottom:1.4rem;position:relative;padding-left:18px}
.block-title::before{content:'';position:absolute;left:0;top:.2em;bottom:.2em;width:5px;border-radius:3px;background:linear-gradient(180deg,var(--accent),var(--secondary))}

/* ---------- РАЗМЕТКА / БЛОКИ ---------- */
.container{max-width:1100px;margin:0 auto;padding:0 16px}
#page-blocks{max-width:1100px;margin:0 auto;padding:0 16px}
main{padding-top:calc(var(--header-height) + 40px);padding-bottom:40px;min-height:calc(100vh - 140px)}
.content-block{margin:0 0 3rem;animation:blockIn .5s ease both}
@keyframes blockIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.block-empty{grid-column:1/-1;text-align:center;color:var(--text-muted);padding:2rem;font-style:italic}

/* ---------- ШАПКА ---------- */
.header{
  position:fixed;top:0;left:0;right:0;z-index:4000;
  background:var(--header-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--header-border);
  padding:14px 24px;display:flex;align-items:center;justify-content:center;
  transition:all .7s cubic-bezier(.4,0,.2,1);
}
.header-content-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;transition:all .7s cubic-bezier(.4,0,.2,1)}
.logo-icon{height:auto;width:50vw;max-width:280px;min-width:140px;object-fit:contain;margin:0 auto;cursor:pointer;transition:all .7s cubic-bezier(.4,0,.2,1)}
.logo-icon:hover{transform:scale(1.03)}
.header-slogan{font-size:1rem;color:var(--text-secondary);margin-top:12vh;text-align:center;letter-spacing:.06em;min-height:1.5em;display:flex;align-items:center;justify-content:center;transition:opacity .4s ease}
.header-slogan .slogan-text::after{content:'|';color:var(--accent);animation:caretBlink 1s steps(1) infinite;margin-left:2px}
.header-slogan.done .slogan-text::after{content:''}
@keyframes caretBlink{50%{opacity:0}}
.scroll-hint{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-secondary);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;user-select:none;z-index:10;transition:color .3s;animation:scrollHintBounce 2.2s ease-in-out infinite}
.scroll-hint:hover{color:var(--accent)}
.scroll-hint svg{width:20px;height:20px}
.header.scrolled .scroll-hint{display:none}
@keyframes scrollHintBounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-8px)}}
@media (max-width:768px) and (orientation:portrait){
  .header{height:100vh;height:100dvh;padding:0 16px;border-bottom:none}
  .header .header-content-wrapper{transform:translateY(-22%)}
  .header .logo-icon{width:65vw;max-width:320px;min-width:180px}
  .header-slogan{margin-top:20vw}
}
@media (min-width:769px),(orientation:landscape){
  .header.fullscreen{height:100vh;height:100dvh}
  .header.fullscreen .header-content-wrapper{transform:translateY(-32%)}
  .header.fullscreen .logo-icon{width:auto;height:13vh;max-width:35vw}
}
.header.scrolled{height:65px;padding:8px 16px;justify-content:flex-start}
.header.scrolled .header-content-wrapper{flex-direction:row;transform:none;width:100%}
.header.scrolled .logo-icon{height:47px;width:auto;max-width:170px;min-width:auto;margin:0 auto 0 3mm}
.header.scrolled .header-slogan{display:none}
.header.scrolled .logo-icon:hover{transform:scale(1.06)}
main{padding-top:100vh;padding-top:100dvh;transition:padding-top .7s cubic-bezier(.4,0,.2,1)}
body.header-collapsed main{padding-top:calc(65px + 40px)}

/* ---------- ПЛАВАЮЩИЕ КНОПКИ ---------- */
.floating-buttons-row{position:fixed;top:calc(var(--header-height) + 3mm);left:50%;transform:translateX(-50%);z-index:4001;display:flex;align-items:center;justify-content:center;gap:2mm;background:transparent;transition:all .8s ease}
@media (min-width:769px),(orientation:landscape){
  .floating-buttons-row{top:calc(var(--header-height)/2);left:auto;right:3mm;transform:translateY(-50%);opacity:0;pointer-events:none;transition:opacity .6s ease,transform .6s ease,gap .4s ease,padding .4s ease}
  .floating-buttons-row.scrolled{opacity:1;pointer-events:auto;gap:1mm;padding:3px 6px}
}
.floating-btn{width:44px;height:44px;border-radius:50%;background:var(--bg-secondary);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;flex-shrink:0;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.floating-btn:hover{transform:scale(1.1);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft),var(--shadow-md)}
.floating-btn:active{transform:scale(.95)}
.floating-btn svg{width:22px;height:22px;color:var(--text-primary)}
.floating-buttons-row.scrolled .floating-btn{width:38px;height:38px}
.floating-buttons-row.scrolled .floating-btn svg{width:18px;height:18px}
.floating-home-btn,.floating-cart,.floating-orders-btn,.floating-profile-btn,.floating-theme-btn{position:static!important;right:auto!important;left:auto!important;top:auto!important;bottom:auto!important}
.floating-checkout-btn{position:fixed;right:20px;bottom:20px;width:60px;height:60px;border-radius:50%;background:var(--accent);color:#fff;border:none;z-index:2050;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease;box-shadow:0 6px 18px rgba(var(--accent-rgb),.45)}
.floating-checkout-btn:hover{transform:scale(1.07);box-shadow:0 8px 24px rgba(var(--accent-rgb),.55)}
.floating-checkout-btn svg{width:27px;height:27px;color:#fff}
.floating-checkout-btn .badge{border:2px solid var(--bg-primary)}
.floating-checkout-btn.hidden{display:none!important}
.badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;text-align:center;border-radius:8px;background:var(--accent);color:#fff;pointer-events:none;z-index:2;border:2px solid var(--bg-secondary)}
.badge.hidden{display:none!important}
.badge.long{min-width:22px}
.floating-orders-btn .order-status-badge{top:-4px!important;bottom:auto!important;right:auto!important;left:4px!important;box-shadow:none}
.floating-orders-btn .order-status-badge.status-new{background:var(--danger)}
.floating-orders-btn .order-status-badge.status-in_progress{background:var(--warning)}
.floating-orders-btn .order-status-badge.status-done,.floating-orders-btn .order-status-badge.status-completed{background:var(--success)}
.floating-profile-btn .sound-badge{position:absolute;top:-6px;right:-6px;width:22px;height:22px;background:var(--success);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(52,211,153,.4);animation:soundPulse 2s ease-in-out infinite}
.floating-profile-btn .sound-badge svg{width:12px;height:12px;color:#fff}
@keyframes soundPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}

/* ---------- ОБЪЯВЛЕНИЯ ---------- */
.announcements-container{display:flex;flex-direction:column;gap:12px;margin-bottom:1rem}
.announcement-banner{display:flex;align-items:center;gap:16px;padding:14px 44px 14px 14px;border-radius:var(--radius-md);position:relative;overflow:hidden;background:var(--bg-secondary);border:1px solid var(--border);border-left:4px solid var(--secondary);box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease}
.announcement-banner:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.announcement-banner.warning{border-left-color:var(--warning)}
.announcement-banner.promo{border-left-color:var(--accent)}
.announcement-banner.info{border-left-color:var(--info)}
.announcement-banner.neutral{border-left-color:var(--secondary)}
.announcement-content{flex:1;display:flex;align-items:flex-start;gap:12px;min-width:0}
.announcement-icon{flex-shrink:0;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--secondary);background:var(--secondary-soft)}
.announcement-banner.warning .announcement-icon{color:var(--warning);background:rgba(251,191,36,.12)}
.announcement-banner.promo .announcement-icon{color:var(--accent);background:var(--accent-soft)}
.announcement-banner.info .announcement-icon{color:var(--info);background:rgba(96,165,250,.12)}
.announcement-icon svg{width:20px;height:20px}
.announcement-image-large{flex-shrink:0;width:110px;height:110px;border-radius:12px;overflow:hidden;position:relative;background:var(--bg-tertiary)}
.announcement-image-large img{width:100%;height:100%;object-fit:cover}
.announcement-image-large::after{content:'';position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);animation:shimmer 3.2s infinite}
@keyframes shimmer{0%{left:-100%}100%{left:200%}}
.announcement-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.announcement-text strong{font-family:var(--font-display);font-size:.95rem;font-weight:600;line-height:1.35}
.announcement-text span{font-size:.9rem;color:var(--text-secondary);line-height:1.5;word-break:break-word}
.announcement-close{position:absolute;top:10px;right:10px;width:28px;height:28px;border:none;background:var(--bg-tertiary);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .25s ease;padding:0}
.announcement-close svg{width:14px;height:14px}
.announcement-close:hover{background:var(--accent);color:#fff;transform:rotate(90deg)}
.announcement-banner.hidden{display:none}

/* ---------- КАТЕГОРИИ И БЛЮДА ---------- */
.categories{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.category-card{overflow:hidden;cursor:pointer;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.category-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--accent)}
.category-image{height:140px;overflow:hidden;background:var(--bg-tertiary)}
.category-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.category-card:hover .category-image img{transform:scale(1.06)}
.category-name{padding:14px;font-weight:600;font-size:.95rem;text-align:center}
.image-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:3rem;background:var(--bg-tertiary)}
.child-categories-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:2rem;grid-column:1/-1}
@media (min-width:600px){.child-categories-grid{grid-template-columns:repeat(3,1fr);gap:15px}}
@media (min-width:900px){.child-categories-grid{grid-template-columns:repeat(4,1fr);gap:18px}}
.child-category-card{display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.child-category-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent)}
.child-category-card .category-image{width:100%;height:120px}
.child-category-card .category-icon{width:100%;height:120px;display:flex;align-items:center;justify-content:center;font-size:3.2rem;background:var(--bg-tertiary)}
.child-category-card .category-name{padding:12px;font-size:.92rem}
.dishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.dish-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.dish-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent)}
.dish-image{height:160px;background:var(--bg-tertiary);overflow:hidden;cursor:pointer}
.dish-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.dish-card:hover .dish-image img{transform:scale(1.05)}
.dish-info{padding:14px;display:flex;flex-direction:column;gap:.5rem}
.dish-name{font-weight:600;font-size:1rem;line-height:1.35}
.dish-price{color:var(--accent);font-weight:700;font-size:1.05rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.dish-note{font-size:.8rem;color:var(--text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dish-sum{font-weight:700;color:var(--secondary);font-size:.95rem;font-variant-numeric:tabular-nums}
.dish-actions{display:flex;gap:10px;align-items:center;justify-content:space-between}
.dish-add-label{font-weight:500;color:var(--text-secondary);font-size:.9rem;transition:color .2s}
.dish-add-label.in-cart{color:var(--success)}
.cook-time-badge{display:inline-block;background:var(--accent-soft);color:var(--accent);padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600}

/* ---------- ДЕТАЛИ БЛЮДА / ОПЦИИ ---------- */
.detail-image{width:100%;height:220px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:16px}
.detail-fallback{background:var(--bg-tertiary);height:220px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:5rem;width:100%}
.ingredients-list{list-style:none;margin:12px 0}
.ingredients-list li{padding:9px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-secondary)}
.ingredients-list li:last-child{border-bottom:none}
.ingredients-list li span:first-child{color:var(--text-primary)}
.dish-options{margin:1rem 0;padding:1rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md)}
.dish-options h4{margin:0 0 .5rem;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}
.option-item{display:flex;align-items:center;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid var(--border);transition:opacity .2s}
.option-item:last-child{border-bottom:none}
.option-info{flex:1}
.option-name{font-weight:600;margin-bottom:.15rem}
.option-price{font-size:.85rem;color:var(--text-secondary)}
.option-quantity{display:flex;align-items:center;gap:.5rem}
.option-qty-btn{width:36px;height:36px;font-size:1.15rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center}
.option-qty-btn:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.option-qty-value{min-width:40px;text-align:center;font-weight:600;font-size:1.05rem;font-variant-numeric:tabular-nums}
.delivery-section,.ready-time-section{margin-top:1rem;padding:1rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md)}
.delivery-toggle,.ready-time-toggle{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}
.delivery-fields{display:none}
.delivery-fields.active{display:block}
.delivery-fields select,.delivery-fields input{margin-bottom:.5rem}
.delivery-price{font-weight:700;color:var(--accent);margin-top:.5rem}
.ready-time-fields{display:none;gap:1rem;flex-wrap:wrap}
.ready-time-fields.active{display:flex}
.ready-time-fields input{flex:1;min-width:150px}
.payment-method-option{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}
.payment-method-option:hover{border-color:var(--accent)}
.payment-method-option.selected{border-color:var(--accent);background:var(--accent-soft)}
.payment-method-option input[type="radio"]{width:auto!important;accent-color:var(--accent);margin:0}

/* ---------- КНОПКИ / ФОРМЫ / ТОГЛЫ ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 18px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;border:1px solid transparent;cursor:pointer;transition:var(--transition);background:var(--bg-tertiary);color:var(--text-primary)}
.btn:hover{background:var(--border-strong)}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 4px 14px rgba(var(--accent-rgb),.35)}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 18px rgba(var(--accent-rgb),.45)}
.btn-details{flex:1}
.btn-sm{padding:6px 12px;font-size:.8rem}
.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn-danger:hover{background:#DC2626}
input,select,textarea{width:100%;padding:10px 13px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-size:.95rem;font-family:var(--font-body);transition:var(--transition)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form-group{margin-bottom:12px}
.form-group label{display:block;margin-bottom:5px;font-size:.85rem;font-weight:600;color:var(--text-secondary)}
.table-input-empty{border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(248,113,113,.15)!important}
.toggle{position:relative;width:46px;height:26px;background:var(--border-strong);border-radius:13px;cursor:pointer;transition:var(--transition);flex-shrink:0}
.toggle.active{background:var(--success)}
.toggle-slider{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .25s cubic-bezier(.4,0,.2,1)}
.toggle.active .toggle-slider{transform:translateX(20px)}
.quantity-controls{display:none;align-items:center;gap:6px}
.quantity-controls.visible{display:inline-flex}
.qty-btn{width:40px;height:40px;font-size:1.25rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center}
.qty-btn:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.qty-btn:active{transform:scale(.93)}
.qty-input{width:60px;height:40px;font-size:1.15rem;text-align:center}

/* ---------- КОРЗИНА ---------- */
.cart-item{display:flex;gap:12px;padding:12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:10px;align-items:center}
.cart-item-image{width:60px;height:60px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-secondary);flex-shrink:0}
.cart-item-image img{width:100%;height:100%;object-fit:cover}
.cart-item-info{flex:1;display:flex;flex-direction:column;min-width:0}
.cart-item-name{font-weight:600;font-size:.95rem}
.cart-item-price{color:var(--accent);font-weight:600;font-size:.85rem}
.cart-item-sum{font-size:.85rem;color:var(--text-secondary);margin:4px 0}
.cart-item-quantity{display:flex;align-items:center;gap:6px;margin-top:6px;white-space:nowrap}
.cart-item-quantity .qty-btn{width:28px;height:28px;font-size:1rem}
.cart-item-quantity span{min-width:40px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}
.cart-item-options{margin-top:.5rem;padding:.55rem .7rem;background:var(--accent-soft);border-radius:8px;font-size:.85rem}
.cart-item-options .option-line{display:flex;justify-content:space-between;padding:2px 0;color:var(--text-secondary)}
.cart-item-options .option-line .option-price{color:var(--accent);font-weight:600}
.cart-item-total{font-weight:700;color:var(--accent);margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border)}
.remove-btn{width:28px;height:28px;border:none;background:var(--bg-secondary);color:var(--danger);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);flex-shrink:0}
.remove-btn:hover{background:var(--danger);color:#fff;transform:rotate(90deg)}
.cart-total-section{background:var(--bg-secondary);padding:0 1.5rem 1.5rem;border-top:1px solid var(--border);text-align:right;margin:16px -20px -20px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.cart-total-amount{font-size:1.3rem;font-weight:700;color:var(--accent)}
.empty-cart,.empty-orders-msg{text-align:center;padding:40px 20px;color:var(--text-secondary);font-style:italic}

/* ---------- ЗАКАЗЫ / СТАТУСЫ ---------- */
.order-list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px;cursor:pointer;transition:var(--transition)}
.order-list-item:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.order-info strong{font-size:1rem;font-weight:600}
.order-info span{font-size:.85rem;color:var(--text-secondary)}
.order-total{font-weight:700;color:var(--accent);font-size:1rem}
.order-delete-btn{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:50%;transition:var(--transition)}
.order-delete-btn:hover{color:var(--danger);background:rgba(248,113,113,.12)}
.status-slider{display:flex;align-items:center;margin:1rem 0;position:relative;padding:0 10px}
.status-step{flex:1;text-align:center;position:relative;padding:8px 4px}
.status-step .step-dot{width:28px;height:28px;border-radius:50%;background:var(--border-strong);margin:0 auto 6px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700;transition:all .3s;position:relative;z-index:2;border:3px solid var(--bg-secondary)}
.status-step.completed .step-dot{background:var(--success)}
.status-step.current .step-dot{background:var(--accent);transform:scale(1.18);box-shadow:0 0 0 4px var(--accent-soft)}
.status-step.canceled .step-dot{background:var(--text-muted)}
.status-step .step-label{font-size:.72rem;color:var(--text-secondary);font-weight:600;white-space:nowrap}
.status-step.current .step-label{color:var(--accent)}
.status-step.completed .step-label{color:var(--success)}
.status-slider::before{content:'';position:absolute;top:22px;left:30px;right:30px;height:3px;background:var(--border);z-index:1}
.status-slider.admin .status-step{cursor:pointer}
.status-slider.admin .status-step:hover .step-dot{transform:scale(1.12)}
.status-slider.admin .status-step.disabled{cursor:not-allowed;opacity:.4}
.payment-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:600;margin-left:8px}
.payment-badge.paid{background:rgba(52,211,153,.15);color:var(--success)}
.payment-badge.unpaid{background:rgba(251,191,36,.15);color:var(--warning)}
.btn-cancel-order{background:var(--danger);color:#fff}
.info-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:12px;font-size:.75rem;font-weight:700;line-height:1.4;white-space:nowrap}
.info-badge.status-new{background:rgba(248,113,113,.15);color:var(--danger)}
.info-badge.status-agreed{background:rgba(96,165,250,.15);color:var(--info)}
.info-badge.status-in_progress{background:rgba(251,191,36,.15);color:var(--warning)}
.info-badge.status-done{background:rgba(52,211,153,.15);color:var(--success)}
.info-badge.status-completed,.info-badge.status-canceled,.info-badge.status-archived{background:var(--bg-tertiary);color:var(--text-muted)}
.info-badge.paid{background:rgba(52,211,153,.15);color:var(--success)}
.info-badge.unpaid{background:rgba(251,191,36,.15);color:var(--warning)}
.info-badge.chat{background:rgba(96,165,250,.18);color:var(--info);min-width:20px;justify-content:center;margin-left:8px;animation:pulseBadge 2s infinite}
@keyframes pulseBadge{0%,100%{box-shadow:0 0 0 0 rgba(96,165,250,.4)}50%{box-shadow:0 0 0 6px rgba(96,165,250,0)}}
#orderDetailModal .modal-header{padding:1rem 1.5rem}
#orderDetailModal .modal-title{margin:0;font-size:1.15rem;color:var(--accent)}
#orderDetailModal .detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}
#orderDetailModal .detail-row:last-child{border-bottom:none}
#orderDetailModal .detail-row span{color:var(--text-secondary);font-size:.95rem}
#orderDetailModal .detail-row strong{color:var(--text-primary)}
.order-item{padding:.8rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.order-item:last-child{border-bottom:none}
.order-item-info{flex:1}
.order-item-name{font-weight:600;margin-bottom:.25rem}
.order-item-details{font-size:.85rem;color:var(--text-secondary)}
.order-item-options{margin-top:.5rem;padding-left:1rem;border-left:2px solid var(--border)}
.order-item-option{font-size:.85rem;color:var(--text-secondary);padding:.15rem 0;word-break:break-word}
.order-item-price{font-weight:700;color:var(--accent);white-space:nowrap}
.order-item-edit-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;font-size:1rem;transition:color .2s}
.order-item-edit-btn:hover{color:var(--accent)}

/* ---------- ЧАТ ---------- */
.chat-panel{position:fixed;right:20px;bottom:20px;width:350px;height:500px;background:var(--bg-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:none;flex-direction:column;z-index:3003;overflow:hidden}
.chat-panel.active{display:flex;animation:modalIn .25s cubic-bezier(.16,1,.3,1)}
.chat-panel-header{padding:13px 16px;background:var(--accent);color:#fff;font-weight:700;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-display);font-size:.9rem}
.chat-panel-close{background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer;padding:0;line-height:1;transition:transform .25s}
.chat-panel-close:hover{transform:rotate(90deg)}
.chat-messages-container{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--bg-primary);position:relative}
.chat-message-bubble{max-width:80%;padding:9px 13px;border-radius:14px;font-size:.9rem;word-wrap:break-word;line-height:1.45}
.chat-message-bubble.client{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}
.chat-message-bubble.admin,.chat-message-bubble.assistant{align-self:flex-start;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-bottom-left-radius:4px}
.chat-message-bubble.assistant{color:var(--info);font-style:italic}
.chat-message-time{font-size:.68rem;opacity:.7;margin-top:3px}
.chat-input-container{padding:12px;border-top:1px solid var(--border);display:flex;gap:8px;background:var(--bg-secondary)}
.chat-input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:18px;font-size:.9rem;outline:none;resize:none;overflow-y:auto;line-height:1.4;min-height:40px;max-height:120px}
.chat-input:focus{border-color:var(--accent)}
.chat-send-btn{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--transition)}
.chat-send-btn:hover{background:var(--accent-hover);transform:scale(1.06)}
.chat-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.chat-send-btn svg{width:19px!important;height:19px!important;pointer-events:none}
.order-chat-btn{position:fixed;right:20px;bottom:90px;width:60px;height:60px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;display:none;align-items:center;justify-content:center;z-index:3002;box-shadow:0 6px 18px rgba(var(--accent-rgb),.45);transition:all .25s}
.order-chat-btn:hover{transform:scale(1.07)}
.order-chat-btn svg{width:27px!important;height:27px!important;pointer-events:none}
.order-chat-btn.active{display:flex}
.order-chat-btn .badge{background:var(--danger);border:2px solid var(--bg-primary);animation:pulseBadge 2s infinite}
.order-chat-btn.hidden{display:none!important}
.chat-jump-bottom{position:absolute;right:14px;bottom:66px;width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(8px);transition:all .25s ease;z-index:10}
.chat-jump-bottom.visible{opacity:1;visibility:visible;transform:translateY(0)}
.chat-jump-bottom svg{width:18px;height:18px}
@media (max-width:767px){
  .chat-panel{width:100%;height:auto;right:0;bottom:0;top:calc(var(--header-height-mobile) + 10px);border-radius:16px 16px 0 0;max-height:calc(100vh - var(--header-height-mobile) - 20px)}
  .order-chat-btn{bottom:20px;right:20px}
}

/* ---------- МОДАЛКИ ---------- */
.modal{display:none;position:fixed;inset:0;z-index:2000;background:rgba(2,10,18,.55);backdrop-filter:blur(5px);padding:90px 20px 20px;overflow-y:auto;align-items:flex-start;justify-content:center}
.modal.active{display:flex}
.modal-content{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:min(85vh,calc(100vh - 120px));overflow-y:auto;box-shadow:var(--shadow-lg);position:relative;animation:modalIn .3s cubic-bezier(.16,1,.3,1);margin:auto}
.modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg-elevated);z-index:10;border-radius:var(--radius-lg) var(--radius-lg) 0 0;position:sticky;top:0}
.modal-title{font-size:1.1rem;font-weight:600}
.modal-body{padding:20px}
.modal-content .close-btn{position:absolute;top:16px;right:16px;z-index:11}
.back-btn,.close-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);font-size:1.15rem;flex-shrink:0}
.back-btn svg,.close-btn svg{width:20px;height:20px;stroke-width:2.5}
.back-btn:hover,.close-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
@keyframes modalIn{from{opacity:0;transform:scale(.96) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}
#paymentModal{z-index:3004!important}
#orderDetailModal{z-index:3001!important}
#detailModal{z-index:2100!important}
@media (min-width:768px){#categoryModal .modal-content{max-width:90vw;width:800px}}
@media (min-width:1024px){#categoryModal .modal-content{width:1000px}}
@media (min-width:1280px){#categoryModal .modal-content{width:1200px}}
#categoryModal .dishes-grid,#categoryModal .child-categories-grid{width:100%;box-sizing:border-box;overflow:hidden}

/* ---------- ПРЕИМУЩЕСТВА / УСЛУГИ ---------- */
.info-features-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
.info-feature-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 16px;border-radius:var(--radius-md);transition:transform .25s ease,background .25s ease}
.info-feature-item:hover{transform:translateY(-5px);background:var(--bg-tertiary)}
.info-feature-icon{width:44px;height:44px;margin-bottom:16px;color:var(--accent);background:var(--accent-soft);border-radius:14px;display:flex;align-items:center;justify-content:center;padding:10px;flex-shrink:0}
.info-feature-icon svg{width:100%;height:100%;stroke:currentColor}
.info-feature-item strong{font-size:1rem;font-weight:700;line-height:1.3;display:block;margin-bottom:8px}
.info-feature-item p{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin:0}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.service-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px;text-align:center;transition:var(--transition);box-shadow:var(--shadow-sm)}
.service-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:var(--shadow-md)}
.service-icon{width:52px;height:52px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);border-radius:16px;padding:12px;color:var(--accent)}
.service-icon svg{width:100%;height:100%}
.service-title{font-weight:700;font-size:1.05rem;margin:0 0 6px}
.service-text{font-size:.88rem;color:var(--text-secondary);margin:0;line-height:1.5}
.info-text-image{display:grid;gap:24px;align-items:center;grid-template-columns:1fr 1fr}
.info-text-image--right .info-text-body{order:2}
.info-text-image--top{grid-template-columns:1fr;text-align:center}
.info-block-img{width:100%;height:280px;object-fit:cover;border-radius:var(--radius-md);background:var(--bg-tertiary)}
.info-text-body p{color:var(--text-secondary);line-height:1.7;font-size:1rem;margin:0}
.external-html-block{margin:0;padding:0;background:transparent;border:none;box-shadow:none}
.external-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100px;color:var(--text-muted);font-size:.9rem;gap:.6rem}
.external-loader-spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:600px){.info-features-list{grid-template-columns:1fr;gap:16px}.services-grid{grid-template-columns:1fr}.info-text-image{grid-template-columns:1fr}}

/* ---------- ФУТЕР ---------- */
.site-footer{background:var(--bg-secondary);border-top:1px solid var(--border);padding:28px 0 16px;margin-top:40px}
.footer-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;padding:0 20px;max-width:1100px;margin:0 auto}
.footer-contacts h3{margin-bottom:12px}
.footer-bottom{text-align:center;padding-top:16px;margin-top:16px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.8rem}
.footer-address,.footer-hours{display:flex;align-items:center;gap:9px;margin:9px 0;color:var(--text-secondary)}
.footer-icon{width:18px;height:18px;flex-shrink:0;color:var(--accent)}
.footer-contact-item{margin:8px 0;color:var(--text-secondary)}
.footer-contact-item a,.footer-contacts a{color:var(--accent);text-decoration:none;font-weight:600;transition:color .2s}
.footer-contact-item a:hover,.footer-contacts a:hover{color:var(--accent-hover)}
.osm-link{display:inline-block;margin-top:8px;text-decoration:none;color:var(--secondary)!important;font-weight:600;transition:color .2s}
.osm-link:hover{color:var(--accent)!important}

/* ---------- ПРОФИЛЬ / АНИМАЦИИ ---------- */
.profile-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-top:1px solid var(--border);margin-top:8px}
.profile-toggle-row label{font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:9px}
.profile-toggle-row label svg{width:18px;height:18px;color:var(--secondary)}
.profile-toggles{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
@keyframes togglePulse{0%,100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.5);transform:scale(1)}50%{box-shadow:0 0 0 8px rgba(var(--accent-rgb),0);transform:scale(1.05)}}
@keyframes plusPulse{0%,100%{box-shadow:0 0 0 0 rgba(52,211,153,.6);transform:scale(1)}50%{box-shadow:0 0 0 6px rgba(52,211,153,0);transform:scale(1.1)}}
.toggle.pulse-attention{animation:togglePulse 1.5s ease-in-out infinite}
.qty-btn.pulse-plus{animation:plusPulse 1.5s ease-in-out infinite;background:var(--success)!important;color:#fff!important;border-color:var(--success)!important}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes toastOut{from{opacity:1;transform:translateX(-50%) translateY(0)}to{opacity:0;transform:translateX(-50%) translateY(20px)}}

/* ---------- АДАПТИВ ---------- */
@media (max-width:768px){
  main{padding-bottom:24px}
  .categories{grid-template-columns:repeat(2,1fr);gap:12px}
  .dishes-grid{grid-template-columns:1fr;gap:12px}
  .category-image,.dish-image{height:120px}
  .modal{padding:80px 16px 16px}
  .modal-content{max-height:90vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin:0 auto;padding-bottom:20px}
  .announcement-banner{padding:10px 40px 10px 10px;gap:12px}
  .announcement-image-large{width:90px;height:90px}
  .announcement-text strong{font-size:.9rem}
  .announcement-text span{font-size:.85rem}
  .info-block-img{height:200px}
}
@media (max-width:480px) and (orientation:portrait){
  .logo-icon{width:50vw;max-width:180px;min-width:100px}
  .header.scrolled .logo-icon{width:calc(50vw*.65);max-width:calc(180px*.65);min-width:calc(100px*.65)}
  .floating-btn{width:38px;height:38px}
  .floating-btn svg{width:18px;height:18px}
  .floating-buttons-row.scrolled .floating-btn{width:32px;height:32px}
}

/* ---------- ДОСТУПНОСТЬ / СЛУЖЕБНОЕ ---------- */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hidden{display:none!important}
.unavailable{opacity:.5;filter:grayscale(.8);pointer-events:none;position:relative}
.unavailable::after{content:'Недоступно';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(var(--accent-rgb),.85);color:#fff;font-weight:600;font-size:.9rem;border-radius:inherit}
:target,#pricing{scroll-margin-top:90px}

/* ---------- ДОПОЛНЕНИЕ: классы нового index.php ---------- */
.svg-icon{display:inline-flex;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0}
.svg-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cook-time-badge .svg-icon{margin-right:2px}

/* Слово-логотип в шапке */
.header-wordmark{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,5vw,2rem);letter-spacing:.02em;color:var(--text-primary);margin-top:14px;text-align:center;transition:all .7s cubic-bezier(.4,0,.2,1)}
.header.scrolled .header-wordmark{font-size:1rem;margin:0 0 0 10px}
.header.fullscreen .header-wordmark{margin-top:2vh}

/* Детали блюда */
.detail-media{position:relative}
.detail-subtitle{font-family:var(--font-display);font-size:1rem;font-weight:600;margin:1.4rem 0 .4rem}
.detail-price-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:.6rem 0}
.detail-cooktime{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--text-secondary)}
.detail-note{margin-top:1rem;font-size:.9rem;color:var(--text-secondary);line-height:1.5}
.detail-order-box{margin-top:1rem;padding:1rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md)}
.detail-toggle-block{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.detail-toggle-label{font-weight:600}
.modal-footer-actions{display:flex;justify-content:flex-end;margin-top:1.6rem;padding-top:1rem;border-top:1px solid var(--border)}
.modal-wide{max-width:700px}
.modal-narrow{max-width:450px}

/* Формы в корзине */
.input-section{margin-top:1rem}
.field-label{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;margin-bottom:6px;color:var(--text-primary)}
.field-label .svg-icon{color:var(--accent)}
.field-error{display:none;color:var(--danger);font-size:.85rem;margin-top:5px}
.booking-section{margin-top:1rem}
.booking-times{display:flex;gap:1rem;flex-wrap:wrap}
.booking-field{flex:1;min-width:150px}
.booking-hint{font-size:.8rem;color:var(--text-muted);margin-top:6px}
.table-select-btn{width:100%;justify-content:space-between;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary)}
.select-caret{color:var(--text-muted)}
.payment-methods{display:flex;flex-direction:column;gap:10px}
.cart-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:1.05rem;font-weight:600}
.btn-checkout{width:100%;padding:1rem 2rem;font-size:1.05rem}
.btn-success{background:var(--success);color:#fff;border-color:var(--success)}
.btn-success:hover{filter:brightness(.92)}

/* Выбор столика */
.free-tables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.free-table-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px;cursor:pointer;text-align:center;transition:var(--transition);display:flex;flex-direction:column;gap:6px;align-items:center}
.free-table-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.free-table-card img{width:100%;height:80px;object-fit:cover;border-radius:var(--radius-sm)}
.free-table-ph{width:100%;height:80px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-muted)}
.free-table-ph svg{width:32px;height:32px}
.free-table-price{font-size:.8rem;color:var(--secondary);font-weight:600}

/* Реквизиты оплаты */
.payment-detail-item{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1rem}
.payment-label{font-size:.9rem;color:var(--text-secondary)}
.copyable-value{display:flex;align-items:center;gap:.5rem;background:var(--bg-primary);padding:.6rem 1rem;border-radius:var(--radius-sm);font-family:monospace;font-size:1.05rem;letter-spacing:.5px;cursor:pointer;transition:var(--transition);border:1px solid var(--border);position:relative;color:var(--text-primary)}
.copyable-value:hover{border-color:var(--accent);background:var(--accent-soft)}
.copy-icon{width:18px;height:18px;opacity:.6;display:inline-flex}
.copy-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:2}
.copyable-value:hover .copy-icon{opacity:1}
.copy-tooltip{position:absolute;top:-32px;left:50%;transform:translateX(-50%);background:var(--success);color:#fff;padding:4px 10px;border-radius:6px;font-size:.8rem;font-family:var(--font-body);opacity:0;transition:opacity .3s,top .3s;pointer-events:none;white-space:nowrap}
.copy-tooltip.show{opacity:1;top:-36px}
.qr-link-container{display:inline-block;background:#fff;padding:10px;border-radius:var(--radius-sm);border:1px solid var(--border);transition:var(--transition);text-decoration:none}
.qr-link-container:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.qr-link-container img{width:200px;height:200px;object-fit:contain;display:block}
.payment-total{font-weight:700;font-size:1.25rem;margin:1rem 0 .5rem;text-align:center}
.payment-total span{color:var(--accent)}
.payment-note{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin-top:.5rem;white-space:pre-line;text-align:center}

/* Итоговые модалки (успех/предупреждение) */
.result-body{text-align:center;padding:2rem 1.5rem}
.result-icon{width:64px;height:64px;margin:0 auto 1rem;border-radius:50%;display:flex;align-items:center;justify-content:center}
.result-icon svg{width:36px;height:36px;stroke-width:2}
.result-success{background:var(--secondary-soft);color:var(--success)}
.result-warning{background:var(--accent-soft);color:var(--accent)}
.result-message{white-space:pre-line;line-height:1.6;color:var(--text-primary);font-size:.95rem;margin-bottom:1.5rem;text-align:left;background:var(--bg-tertiary);padding:1rem;border-radius:var(--radius-md)}
.result-body .btn{width:100%}

/* Детали заказа */
.order-total-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:.75rem;margin-top:.75rem;font-size:1.05rem;font-weight:600}
.detail-total-formula{font-size:.85rem;color:var(--text-secondary);font-weight:400;margin-bottom:4px;text-align:right}
.detail-total-value{font-size:1.25rem;font-weight:700;color:var(--accent);text-align:right}
.order-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border);flex-wrap:wrap}
.order-header-meta{font-size:.85rem;color:var(--text-secondary);font-weight:400;margin-left:6px}
.order-item-pm{background:var(--accent-soft)}
.order-item-note{background:var(--accent-soft)}
.order-badges{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.order-meta{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--text-secondary)}
.order-row-actions{display:flex;gap:8px;align-items:center}

/* Тосты уведомлений */
.notification-toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);color:#fff;padding:12px 24px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:3000;font-weight:600;animation:toastIn .3s ease;max-width:90vw;text-align:center}
.toast-info{background:var(--info)}
.toast-success{background:var(--success)}
.toast-warning{background:var(--warning);color:#1A1A1A}
.toast-error{background:var(--danger)}
.notification-toast.toast-out{animation:toastOut .3s ease forwards}

/* Футер */
.footer-brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.1rem}
.footer-logo{height:32px;width:auto}
.footer-map #osm-map{width:100%;height:200px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-tertiary)}
.footer-map iframe{width:100%;height:100%;border:0}
.footer-bottom p{margin-top:10px}
.footer-bottom strong{color:var(--accent);font-family:var(--font-display);font-weight:600}