:root {
    --accent-hue: 334;
    --accent-color: hsl(var(--accent-hue) 87% 45%);
    --accent-bright: hsl(var(--accent-hue) 92% 58%);
    --accent-soft: hsl(var(--accent-hue) 90% 70% / .18);
    --accent-glow: hsl(var(--accent-hue) 95% 55% / .34);
    --accent-secondary: #00d4aa;
    --gold: #f5b942;
    --danger: #ff5267;
    --success: #2ee6a6;
    --info: #66a6ff;
    --radius-xl: 28px;
    --radius-lg: 20px;
    --radius: 15px;
    --radius-sm: 11px;
    --radius-xs: 8px;
    --blur: 24px;
    --transition: .28s cubic-bezier(.2,.8,.2,1);
    --spring: .5s cubic-bezier(.2,1.5,.4,1);
    --font-stack: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body[data-accent="berry"] { --accent-hue: 334; --accent-secondary: #00d4aa; }
body[data-accent="cyan"] { --accent-hue: 190; --accent-secondary: #9cff57; }
body[data-accent="violet"] { --accent-hue: 267; --accent-secondary: #ffbd4a; }
body[data-accent="lime"] { --accent-hue: 89; --accent-secondary: #ff4b91; }

body[data-theme="amoled"] {
    --bg-color: #000;
    --bg-secondary: #050509;
    --bg-elevated: #09090f;
    --card-bg: rgb(10 10 17 / .74);
    --card-solid: #0b0b12;
    --bg-card-hover: rgb(20 20 30 / .92);
    --bg-sidebar: rgb(4 4 8 / .82);
    --bg-input: rgb(13 13 22 / .82);
    --text-primary: #f8fafc;
    --text-secondary: #a5aec2;
    --text-muted: #667087;
    --border-color: rgb(255 255 255 / .08);
    --border-light: rgb(255 255 255 / .16);
    --glass: linear-gradient(140deg, rgb(255 255 255 / .08), rgb(255 255 255 / .015));
    --glass-strong: linear-gradient(140deg, rgb(255 255 255 / .115), rgb(255 255 255 / .025));
    --shadow: 0 18px 55px rgb(0 0 0 / .42);
    --shadow-lg: 0 30px 100px rgb(0 0 0 / .72);
    --chart-grid: rgb(255 255 255 / .065);
}

body[data-theme="light"] {
    --bg-color: #eef3fb;
    --bg-secondary: #f7f9fd;
    --bg-elevated: #fff;
    --card-bg: rgb(255 255 255 / .68);
    --card-solid: #fff;
    --bg-card-hover: rgb(255 255 255 / .94);
    --bg-sidebar: rgb(246 249 255 / .72);
    --bg-input: rgb(255 255 255 / .72);
    --text-primary: #111827;
    --text-secondary: #475569;
    --text-muted: #7c879b;
    --border-color: rgb(28 39 64 / .1);
    --border-light: rgb(28 39 64 / .2);
    --glass: linear-gradient(140deg, rgb(255 255 255 / .82), rgb(255 255 255 / .45));
    --glass-strong: linear-gradient(140deg, rgb(255 255 255 / .96), rgb(255 255 255 / .62));
    --shadow: 0 18px 50px rgb(55 77 120 / .12);
    --shadow-lg: 0 30px 90px rgb(55 77 120 / .2);
    --chart-grid: rgb(28 39 64 / .08);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    min-height: 100vh;
    background: var(--bg-color);
    color: var(--text-primary);
    font-family: var(--font-stack);
    overflow-x: hidden;
    transition: background .55s ease, color .35s ease;
}
button, input, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 2px; }
::selection { background: var(--accent-color); color: white; }

.ambient-layer { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.ambient-orb { position: absolute; border-radius: 999px; filter: blur(65px); opacity: .16; mix-blend-mode: screen; }
.orb-one { width: 42vw; height: 42vw; left: 4vw; top: -18vw; background: var(--accent-color); animation: orbDriftOne 18s ease-in-out infinite alternate; }
.orb-two { width: 30vw; height: 30vw; right: -7vw; top: 28vh; background: var(--accent-secondary); animation: orbDriftTwo 23s ease-in-out infinite alternate; }
.orb-three { width: 22vw; height: 22vw; left: 43vw; bottom: -11vw; background: #744bff; animation: orbDriftThree 29s ease-in-out infinite alternate; }
.ambient-grid { position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(var(--border-color) 1px, transparent 1px), linear-gradient(90deg,var(--border-color) 1px,transparent 1px); background-size: 54px 54px; mask-image: radial-gradient(circle at 50% 20%, #000, transparent 76%); }
.cursor-glow { position: fixed; width: 280px; height: 280px; border-radius: 50%; transform: translate(-50%,-50%); background: radial-gradient(circle, var(--accent-glow), transparent 68%); opacity: .13; transition: opacity .25s; }
body[data-theme="light"] .ambient-orb { mix-blend-mode: multiply; opacity: .08; }

.glass-panel {
    background: var(--glass);
    border: 1px solid var(--border-color);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .05), var(--shadow);
    backdrop-filter: blur(var(--blur)) saturate(145%);
    -webkit-backdrop-filter: blur(var(--blur)) saturate(145%);
}

.app-container { position: relative; z-index: 1; display: flex; min-height: 100vh; }
.accent { color: var(--accent-bright); text-shadow: 0 0 22px var(--accent-glow); }
.eyebrow { font-size: .62rem; font-weight: 900; letter-spacing: .18em; color: var(--text-muted); text-transform: uppercase; }
kbd { border: 1px solid var(--border-color); background: var(--bg-input); border-radius: 6px; padding: 2px 5px; color: var(--text-muted); font-size: .62rem; box-shadow: inset 0 -1px 0 var(--border-light); }

/* Loader */
.spinner-container { position: fixed; inset: 0; z-index: 99999; background: var(--bg-color); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; transition: opacity .65s, visibility .65s; }
.spinner-container.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.loader-mark { position: relative; width: 106px; height: 106px; display: grid; place-items: center; }
.loader-core { width: 48px; height: 48px; border-radius: 17px; display: grid; place-items: center; background: linear-gradient(135deg,var(--accent-color),var(--accent-bright)); color: white; box-shadow: 0 0 45px var(--accent-glow); animation: loaderCore 1.45s ease-in-out infinite; }
.loader-ring { position: absolute; border-radius: 50%; border: 1px solid transparent; }
.ring-a { inset: 8px; border-top-color: var(--accent-bright); animation: loaderOrbitA 1.1s linear infinite; }
.ring-b { inset: 0; border-right-color: var(--accent-secondary); animation: loaderOrbitB 1.8s linear infinite reverse; }
.ring-c { inset: 19px; border-bottom-color: var(--gold); animation: loaderOrbitC 1.35s ease-in-out infinite; }
.loading-text { color: var(--text-primary); font-weight: 800; font-size: .82rem; letter-spacing: .03em; }
.loading-track { width: min(260px,70vw); height: 4px; border-radius: 999px; background: var(--border-color); overflow: hidden; }
.loading-track span { display: block; width: 0; height: 100%; background: linear-gradient(90deg,var(--accent-color),var(--accent-secondary)); transition: width .4s ease; box-shadow: 0 0 14px var(--accent-glow); }
.loading-percent { color: var(--text-muted); font-size: .68rem; font-weight: 800; }

/* Sidebar */
.sidebar { width: 304px; min-width: 304px; height: 100vh; position: sticky; top: 0; display: flex; flex-direction: column; z-index: 100; border-radius: 0 24px 24px 0; border-left: 0; overflow: hidden; }
.sidebar::after { content:""; position:absolute; inset:0; pointer-events:none; background: linear-gradient(115deg,transparent 20%,rgb(255 255 255 / .045) 44%,transparent 67%); transform: translateX(-120%); animation: sidebarSweep 13s ease-in-out infinite; }
.sidebar-brand { position: relative; z-index: 1; padding: 20px 18px 15px; display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid var(--border-color); }
.brand-lockup { display:flex; align-items:center; gap:11px; }
.brand-symbol { width: 40px; height: 40px; border-radius: 13px; display:grid; place-items:center; color:white; background: linear-gradient(145deg,var(--accent-bright),var(--accent-color)); box-shadow: 0 10px 30px var(--accent-glow); transform: rotate(-7deg); transition: var(--spring); }
.brand-lockup:hover .brand-symbol { transform: rotate(8deg) scale(1.08); }
.brand-logo { font-size: 1.12rem; line-height:1; font-weight: 950; letter-spacing: .12em; }
.brand-sub { font-size: .56rem; color: var(--text-muted); letter-spacing: .14em; text-transform: uppercase; margin-top: 5px; }
.live-pill { display:flex; align-items:center; gap:5px; font-size:.52rem; letter-spacing:.08em; color:var(--success); border:1px solid rgb(46 230 166 / .22); background:rgb(46 230 166 / .07); border-radius:999px; padding:5px 7px; }
.live-pill span { width:6px; height:6px; background:var(--success); border-radius:50%; animation: livePing 1.8s ease-out infinite; }
.sidebar-location { display:flex; gap:5px; padding:10px; overflow:auto; border-bottom:1px solid var(--border-color); scrollbar-width:none; }
.sidebar-location::-webkit-scrollbar { display:none; }
.location-btn { flex:1; min-width:max-content; padding:9px 10px; border-radius:10px; border:1px solid transparent; background:transparent; color:var(--text-muted); font-size:.67rem; font-weight:800; cursor:pointer; transition:var(--transition); }
.location-btn i { margin-right:4px; }
.location-btn:hover { color:var(--text-primary); transform:translateY(-2px); background:var(--bg-input); }
.location-btn.active { color:white; background:linear-gradient(135deg,var(--accent-color),var(--accent-bright)); box-shadow:0 8px 24px var(--accent-glow); animation: locationRipple .45s ease; }
.sidebar-search { position:relative; padding:12px 14px 8px; }
.sidebar-search > i { position:absolute; left:27px; top:24px; color:var(--text-muted); font-size:.74rem; }
.sidebar-search input { width:100%; padding:10px 35px 10px 34px; background:var(--bg-input); border:1px solid var(--border-color); border-radius:12px; color:var(--text-primary); font-size:.72rem; outline:none; transition:var(--transition); }
.sidebar-search input:focus { border-color:var(--accent-bright); box-shadow:0 0 0 4px var(--accent-soft); transform:scale(1.015); }
.sidebar-search kbd { position:absolute; right:24px; top:20px; }
.sidebar-controls { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; padding:6px 14px 12px; border-bottom:1px solid var(--border-color); }
.ctrl-btn { position:relative; min-height:36px; border-radius:11px; background:var(--bg-input); border:1px solid var(--border-color); color:var(--text-muted); cursor:pointer; overflow:hidden; transition:var(--spring); }
.ctrl-btn:hover { color:var(--text-primary); border-color:var(--border-light); }
.ctrl-btn.active { color:white; background:linear-gradient(135deg,var(--accent-color),var(--accent-bright)); border-color:transparent; box-shadow:0 7px 22px var(--accent-glow); }
.action-tactile:hover { transform:translateY(2px) scale(.97); box-shadow:inset 0 3px 8px rgb(0 0 0 / .22); }
.action-heart:hover i { animation: heartBeat .65s ease; color:var(--danger); }
.action-cycle:hover i { animation: cycleSort .7s cubic-bezier(.2,1.4,.3,1); }
.action-orbit:hover::after { content:""; position:absolute; inset:3px; border:1px dashed var(--accent-secondary); border-radius:9px; animation: orbitBorder 2s linear infinite; }
.sidebar-section-label { display:flex; align-items:center; justify-content:space-between; padding:13px 15px 7px; font-size:.58rem; letter-spacing:.13em; color:var(--text-muted); font-weight:900; text-transform:uppercase; }
.text-btn { border:0; background:transparent; color:var(--accent-bright); cursor:pointer; font-size:.6rem; font-weight:800; }
.text-btn:hover { text-decoration:underline; }
.category-list { flex:1; min-height:120px; overflow-y:auto; list-style:none; padding:0 8px 8px; scrollbar-width:thin; scrollbar-color:var(--border-light) transparent; }
.cuisine-item { position:relative; padding:9px 10px; border-radius:10px; cursor:pointer; display:flex; align-items:center; justify-content:space-between; font-size:.72rem; color:var(--text-secondary); transition:var(--transition); overflow:hidden; }
.cuisine-item::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--accent-soft),transparent); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.cuisine-item:hover::before, .cuisine-item.active::before { transform:scaleX(1); }
.cuisine-item > * { position:relative; z-index:1; }
.cuisine-item:hover { color:var(--text-primary); padding-left:14px; }
.cuisine-item.active { color:var(--accent-bright); font-weight:800; }
.cuisine-count { min-width:27px; text-align:center; font-size:.58rem; color:var(--text-muted); background:var(--bg-input); padding:3px 6px; border-radius:999px; border:1px solid var(--border-color); }
.sidebar-recent { border-top:1px solid var(--border-color); }
.recent-list { display:flex; flex-direction:column; gap:4px; padding:0 9px 9px; max-height:132px; overflow:auto; }
.recent-item { display:flex; align-items:center; gap:8px; padding:7px 8px; border-radius:9px; border:0; background:transparent; text-align:left; color:var(--text-secondary); cursor:pointer; transition:var(--transition); }
.recent-item img { width:28px; height:28px; object-fit:cover; border-radius:8px; background:var(--bg-input); }
.recent-item span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.65rem; }
.recent-item:hover { background:var(--bg-input); color:var(--text-primary); transform:translateX(3px); }
.recent-empty { padding:8px 10px 12px; color:var(--text-muted); font-size:.62rem; }
.sidebar-stats { padding:11px 14px 14px; border-top:1px solid var(--border-color); display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.sidebar-stat { padding:8px; border:1px solid var(--border-color); background:var(--bg-input); border-radius:10px; }
.sidebar-stat b { display:block; font-size:.8rem; }
.sidebar-stat span { color:var(--text-muted); font-size:.54rem; text-transform:uppercase; letter-spacing:.08em; }

/* Main header */
.main-content { flex:1; min-width:0; display:flex; flex-direction:column; padding:10px 10px 0; }
.dashboard-header { position:sticky; top:10px; z-index:60; min-height:76px; border-radius:20px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px; }
.dashboard-header::before { content:""; position:absolute; inset:-1px; border-radius:20px; padding:1px; background:linear-gradient(100deg,transparent,var(--accent-soft),transparent); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; background-size:200% 100%; animation: headerBorder 7s linear infinite; }
.header-left { display:flex; align-items:center; gap:12px; flex:1; min-width:0; }
.header-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.icon-btn { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; border:1px solid var(--border-color); background:var(--bg-input); color:var(--text-secondary); cursor:pointer; transition:var(--spring); }
.icon-btn:hover { color:var(--text-primary); border-color:var(--border-light); }
.sidebar-toggle-btn { display:none; }
.view-heading { min-width:150px; }
.view-heading h2 { font-size:1rem; margin-top:3px; letter-spacing:-.02em; }
.status-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--success); box-shadow:0 0 12px var(--success); margin-right:5px; }
.search-wrapper { position:relative; flex:1; max-width:500px; min-width:190px; }
.search-icon { position:absolute; z-index:2; left:14px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:.78rem; }
.search-input { width:100%; padding:11px 93px 11px 37px; background:var(--bg-input); border:1px solid var(--border-color); border-radius:14px; color:var(--text-primary); font-size:.76rem; outline:none; transition:var(--transition); }
.search-input:focus { border-color:var(--accent-bright); box-shadow:0 0 0 4px var(--accent-soft),0 12px 34px rgb(0 0 0 / .12); }
.clear-search { position:absolute; right:64px; top:50%; transform:translateY(-50%) scale(0); width:24px; height:24px; display:grid; place-items:center; border:0; background:transparent; color:var(--text-muted); cursor:pointer; opacity:0; transition:var(--spring); }
.clear-search.visible { transform:translateY(-50%) scale(1); opacity:1; }
.command-key { position:absolute; right:7px; top:50%; transform:translateY(-50%); border:0; background:transparent; cursor:pointer; }
.suggestions-box { position:absolute; top:calc(100% + 10px); left:0; width:min(500px,calc(100vw - 40px)); border-radius:16px; z-index:9999; display:none; max-height:390px; overflow:auto; padding:7px; transform-origin:top; animation:suggestionDrop .28s cubic-bezier(.2,1.2,.3,1); }
.suggestion-item { padding:10px 11px; cursor:pointer; border-radius:10px; display:flex; justify-content:space-between; align-items:center; gap:12px; transition:var(--transition); }
.suggestion-item:hover { background:var(--bg-card-hover); transform:translateX(4px); }
.suggestion-main { display:flex; align-items:center; gap:9px; min-width:0; }
.suggestion-thumb { width:34px; height:34px; border-radius:9px; object-fit:cover; background:var(--bg-input); }
.suggestion-main span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.suggestion-main small { display:block; color:var(--text-muted); font-size:.62rem; margin-top:2px; }
.suggestion-type { flex-shrink:0; font-size:.52rem; font-weight:900; padding:4px 7px; border-radius:999px; text-transform:uppercase; }
.suggestion-type.restaurant { background:var(--accent-soft); color:var(--accent-bright); }
.suggestion-type.dish { background:rgb(0 212 170 / .13); color:var(--accent-secondary); }
.filter-select { padding:9px 30px 9px 10px; background:var(--bg-input); border:1px solid var(--border-color); border-radius:12px; color:var(--text-primary); font-size:.68rem; outline:none; cursor:pointer; }
.view-toggle { display:flex; padding:3px; gap:3px; background:var(--bg-input); border-radius:13px; border:1px solid var(--border-color); }
.view-btn { position:relative; padding:7px 9px; border-radius:9px; background:transparent; border:0; color:var(--text-muted); cursor:pointer; display:flex; align-items:center; gap:5px; font-size:.64rem; font-weight:800; overflow:hidden; transition:var(--transition); }
.view-btn::before { content:""; position:absolute; inset:0; border-radius:9px; background:linear-gradient(135deg,var(--accent-color),var(--accent-bright)); transform:translateY(110%); transition:transform .38s cubic-bezier(.2,1.2,.4,1); }
.view-btn i,.view-btn span { position:relative; z-index:1; }
.view-btn:hover { color:var(--text-primary); }
.view-btn.active { color:white; }
.view-btn.active::before { transform:translateY(0); }
.header-actions { display:flex; gap:5px; }
.action-eclipse:hover { transform:rotate(18deg); box-shadow:0 0 25px var(--accent-glow); }
.action-compress:hover i { animation:compressGrid .6s ease; }
.action-focus:hover { transform:scale(1.08); box-shadow:inset 0 0 0 1px var(--accent-bright),0 0 20px var(--accent-glow); }
.grid-size-wrap { height:38px; display:flex; align-items:center; gap:6px; padding:0 9px; border:1px solid var(--border-color); background:var(--bg-input); border-radius:12px; color:var(--text-muted); }
.grid-size-wrap i { font-size:.65rem; }
.grid-size-wrap input[type=range] { appearance:none; width:60px; height:3px; background:var(--border-light); border-radius:999px; outline:0; }
.grid-size-wrap input[type=range]::-webkit-slider-thumb { appearance:none; width:13px; height:13px; border-radius:50%; background:var(--accent-bright); box-shadow:0 0 12px var(--accent-glow); cursor:pointer; transition:var(--spring); }
.grid-size-wrap input[type=range]::-webkit-slider-thumb:hover { transform:scale(1.35); }
.grid-size-val { font-size:.65rem; font-weight:900; color:var(--text-primary); min-width:12px; text-align:center; }

/* Quick filters */
.intelligence-bar { margin-top:10px; border-radius:17px; padding:9px 10px; display:flex; align-items:center; justify-content:space-between; gap:9px; }
.intel-scroll { display:flex; align-items:center; gap:7px; overflow:auto; scrollbar-width:none; }
.intel-scroll::-webkit-scrollbar { display:none; }
.intel-btn { flex:0 0 auto; position:relative; background:var(--bg-input); border:1px solid var(--border-color); color:var(--text-muted); padding:7px 10px; border-radius:999px; cursor:pointer; font-size:.64rem; font-weight:800; display:flex; align-items:center; gap:5px; overflow:hidden; transition:var(--spring); }
.intel-btn::after { content:""; position:absolute; inset:0; background:linear-gradient(100deg,transparent,rgb(255 255 255 / .15),transparent); transform:translateX(-130%); }
.intel-btn:hover { color:var(--text-primary); border-color:var(--border-light); }
.intel-btn:hover::after { transform:translateX(130%); transition:transform .6s ease; }
.intel-btn.active { color:white; border-color:transparent; background:linear-gradient(135deg,var(--accent-color),var(--accent-bright)); box-shadow:0 8px 22px var(--accent-glow); }
.intel-fire.active i { animation:fireDance .72s ease infinite alternate; }
.intel-bolt.active { animation:boltJolt .52s ease; }
.intel-star.active i { animation:starSpin .85s cubic-bezier(.2,1.4,.4,1); }
.intel-menu.active { animation:menuUnfold .52s ease; }
.intel-tag.active i { animation:tagSwing .85s ease; transform-origin:top center; }
.intel-clock.active i { animation:clockTick .75s steps(4,end); }
.intel-wallet.active { animation:walletBounce .68s cubic-bezier(.2,1.5,.4,1); }
.intel-preorder.active i { animation:calendarFlip .75s ease; }
.surprise-btn { position:relative; flex:0 0 auto; border:1px solid var(--border-light); background:linear-gradient(135deg,var(--accent-soft),rgb(0 212 170 / .1)); color:var(--text-primary); border-radius:12px; padding:8px 12px; cursor:pointer; font-size:.65rem; font-weight:900; overflow:hidden; transition:var(--spring); }
.surprise-btn i { margin-right:5px; }
.surprise-btn::before { content:""; position:absolute; width:40px; height:140%; top:-20%; left:-50px; transform:rotate(22deg); background:linear-gradient(90deg,transparent,rgb(255 255 255 / .5),transparent); }
.surprise-btn:hover { transform:rotate(-1deg) scale(1.04); box-shadow:0 12px 32px var(--accent-glow); }
.surprise-btn:hover::before { left:140%; transition:left .7s ease; }
.surprise-btn.surprising { animation:surpriseBurst .75s cubic-bezier(.2,1.4,.4,1); }

/* Stats and results */
.stats-bar { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:10px 0; }
.stat-item { position:relative; min-height:80px; display:flex; align-items:center; gap:11px; padding:12px 14px; border:1px solid var(--border-color); border-radius:16px; background:var(--glass); backdrop-filter:blur(18px); text-align:left; cursor:pointer; overflow:hidden; transition:var(--spring); }
.stat-item::before { content:""; position:absolute; inset:auto -20% -80% 30%; height:120px; border-radius:50%; filter:blur(20px); opacity:.15; transition:var(--transition); }
.stat-item:hover { transform:translateY(-4px); border-color:var(--border-light); box-shadow:var(--shadow); }
.stat-item:hover::before { transform:translateY(-18px) scale(1.25); opacity:.27; }
.stat-total::before { background:var(--accent-bright); }
.stat-dishes::before { background:var(--accent-secondary); }
.stat-offers::before { background:var(--danger); }
.stat-rating::before { background:var(--gold); }
.stat-icon { position:relative; z-index:2; width:40px; height:40px; border-radius:13px; display:grid; place-items:center; background:var(--bg-input); border:1px solid var(--border-color); }
.stat-total .stat-icon { color:var(--accent-bright); }
.stat-dishes .stat-icon { color:var(--accent-secondary); }
.stat-offers .stat-icon { color:var(--danger); }
.stat-rating .stat-icon { color:var(--gold); }
.stat-copy { position:relative; z-index:2; display:flex; flex-direction:column; }
.stat-label { color:var(--text-muted); font-size:.56rem; letter-spacing:.11em; font-weight:900; text-transform:uppercase; }
.stat-value { font-size:1.35rem; font-weight:950; letter-spacing:-.05em; }
.stat-value.counting { animation:numberLift .44s ease; }
.stat-spark { position:absolute; right:10px; bottom:8px; width:42px; height:18px; opacity:.35; }
.stat-spark::before,.stat-spark::after { content:""; position:absolute; inset:0; border-bottom:2px solid currentColor; clip-path:polygon(0 80%,18% 55%,34% 70%,53% 28%,70% 48%,84% 10%,100% 35%,100% 100%,0 100%); }
.spark-a { color:var(--accent-bright); animation:sparkSlide 3s ease-in-out infinite alternate; }
.spark-b { color:var(--accent-secondary); animation:sparkStretch 4s ease-in-out infinite alternate; }
.spark-c { color:var(--danger); animation:sparkSkew 3.6s ease-in-out infinite alternate; }
.spark-d { color:var(--gold); animation:sparkWave 4.4s ease-in-out infinite alternate; }
.results-toolbar { min-height:47px; border-radius:15px; padding:8px 10px 8px 14px; display:flex; align-items:center; gap:10px; }
.results-toolbar > div:first-child { display:flex; flex-direction:column; min-width:max-content; }
.results-count { font-size:.74rem; font-weight:900; }
.results-context { font-size:.58rem; color:var(--text-muted); }
.active-filter-chips { flex:1; display:flex; align-items:center; gap:6px; overflow:auto; scrollbar-width:none; }
.filter-chip { flex:0 0 auto; display:flex; align-items:center; gap:5px; padding:5px 8px; border-radius:999px; font-size:.58rem; font-weight:800; color:var(--accent-bright); background:var(--accent-soft); border:1px solid hsl(var(--accent-hue) 90% 60% / .2); animation:chipArrive .35s cubic-bezier(.2,1.4,.4,1); }
.filter-chip button { border:0; background:transparent; color:inherit; cursor:pointer; }
.reset-btn { flex:0 0 auto; padding:7px 10px; border-radius:10px; border:1px solid var(--border-color); background:var(--bg-input); color:var(--text-muted); cursor:pointer; font-size:.62rem; font-weight:800; transition:var(--transition); }
.reset-btn:hover { color:var(--text-primary); transform:rotate(-2deg); border-color:var(--accent-bright); }

/* Cards */
.p-view-sh { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; padding:14px 0 90px; }
.rest-card,.dish-card { position:relative; min-width:0; background:var(--card-bg); border:1px solid var(--border-color); border-radius:18px; overflow:hidden; cursor:pointer; box-shadow:inset 0 1px 0 rgb(255 255 255 / .04); backdrop-filter:blur(18px); transform-style:preserve-3d; transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s; }
.rest-card::before,.dish-card::before { content:""; position:absolute; z-index:4; inset:0; pointer-events:none; background:linear-gradient(115deg,transparent 30%,rgb(255 255 255 / .18) 46%,transparent 62%); transform:translateX(-130%); transition:transform .75s ease; }
.rest-card:hover::before,.dish-card:hover::before { transform:translateX(130%); }
.rest-card:hover,.dish-card:hover { border-color:var(--border-light); box-shadow:0 24px 60px rgb(0 0 0 / .3),0 0 0 1px var(--accent-soft); }
.card-selected { border-color:var(--accent-bright)!important; box-shadow:0 0 0 2px var(--accent-soft),0 18px 50px var(--accent-glow)!important; }
.card-motion-1 { animation:cardRise .55s both; animation-delay:var(--delay); }
.card-motion-2 { animation:cardSlideLeft .58s both; animation-delay:var(--delay); }
.card-motion-3 { animation:cardSlideRight .6s both; animation-delay:var(--delay); }
.card-motion-4 { animation:cardTwist .62s both; animation-delay:var(--delay); }
.card-motion-5 { animation:cardBloom .65s both; animation-delay:var(--delay); }
.card-motion-6 { animation:cardFocusIn .68s both; animation-delay:var(--delay); }
.rest-card-img-wrap,.dish-card-img-wrap { position:relative; overflow:hidden; background:var(--bg-input); }
.rest-card-img { width:100%; height:160px; display:block; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .4s; }
.rest-card:hover .rest-card-img { transform:scale(1.075); filter:saturate(1.12) contrast(1.04); }
.rest-card-overlay { position:absolute; inset:0; background:linear-gradient(180deg,transparent 20%,rgb(0 0 0 / .1) 45%,rgb(0 0 0 / .86) 100%); }
.card-glow-line { position:absolute; left:10%; right:10%; bottom:0; height:2px; background:linear-gradient(90deg,transparent,var(--accent-bright),transparent); transform:scaleX(.25); opacity:.35; transition:var(--transition); box-shadow:0 0 14px var(--accent-glow); }
.rest-card:hover .card-glow-line,.dish-card:hover .card-glow-line { transform:scaleX(1); opacity:1; }
.rest-card-badges { position:absolute; z-index:3; top:9px; left:9px; right:9px; display:flex; justify-content:space-between; align-items:flex-start; gap:6px; pointer-events:none; }
.card-badge-row { display:flex; gap:4px; flex-wrap:wrap; justify-content:flex-end; }
.badge { padding:4px 7px; border-radius:999px; font-size:.52rem; font-weight:900; text-transform:uppercase; backdrop-filter:blur(8px); border:1px solid rgb(255 255 255 / .14); }
.badge-cuisine { background:hsl(var(--accent-hue) 85% 42% / .78); color:white; }
.badge-rating { background:rgb(0 0 0 / .62); color:var(--gold); }
.badge-delivery { background:rgb(0 0 0 / .62); color:var(--accent-secondary); }
.badge-discount { background:rgb(239 68 68 / .82); color:white; }
.badge-new { background:rgb(245 185 66 / .92); color:#1a1200; }
.badge-popular { background:rgb(255 82 103 / .84); color:white; }
.badge-score { background:rgb(255 255 255 / .14); color:white; }
.card-actions { position:absolute; z-index:5; top:10px; right:10px; display:flex; flex-direction:column; gap:6px; }
.card-action-btn { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; border:1px solid rgb(255 255 255 / .16); background:rgb(0 0 0 / .54); color:#b9bfd0; backdrop-filter:blur(8px); cursor:pointer; transition:var(--spring); }
.card-action-btn:hover { transform:scale(1.14); color:white; }
.card-action-btn.favorite.active { color:#ff6c82; background:rgb(255 82 103 / .18); animation:favoritePop .42s cubic-bezier(.2,1.5,.4,1); }
.card-action-btn.compare.active { color:var(--accent-secondary); background:rgb(0 212 170 / .17); animation:compareRing .55s ease; }
.rest-card-body { padding:13px; }
.rest-card-topline { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.rest-card-name { min-width:0; font-size:.88rem; line-height:1.25; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.value-score { flex:0 0 auto; font-size:.54rem; font-weight:900; color:var(--accent-secondary); border:1px solid rgb(0 212 170 / .19); background:rgb(0 212 170 / .07); border-radius:999px; padding:4px 6px; }
.rest-card-cuisines { font-size:.62rem; color:var(--text-secondary); margin:5px 0 10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card-insight { display:flex; align-items:center; gap:6px; margin-bottom:10px; padding:7px 8px; border-radius:9px; background:var(--bg-input); color:var(--text-secondary); font-size:.58rem; }
.card-insight i { color:var(--accent-bright); }
.rest-card-footer { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; padding-top:10px; border-top:1px solid var(--border-color); }
.rest-card-stat { display:flex; flex-direction:column; align-items:center; gap:2px; font-size:.57rem; color:var(--text-muted); }
.rest-card-stat i { font-size:.62rem; }
.rest-card-stat b { color:var(--text-secondary); font-size:.61rem; }
.rest-card-stat.rating i { color:var(--gold); }
.rest-card-stat.distance i { color:var(--info); }
.rest-card-stat.delivery i { color:var(--accent-secondary); }
.rest-card-stat.price i { color:var(--accent-bright); }
.dish-card-img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform .75s ease,filter .35s; }
.dish-card:hover .dish-card-img { transform:scale(1.08) rotate(.5deg); filter:saturate(1.15); }
.dish-placeholder { aspect-ratio:4/3; display:grid; place-items:center; color:var(--text-muted); background:radial-gradient(circle at 30% 20%,var(--accent-soft),transparent 45%),var(--bg-input); }
.dish-placeholder i { font-size:2rem; opacity:.5; }
.dish-discount-flag { position:absolute; left:9px; top:9px; z-index:3; padding:5px 7px; border-radius:9px; background:linear-gradient(135deg,var(--danger),#ff8b4b); color:white; font-size:.58rem; font-weight:950; box-shadow:0 8px 20px rgb(255 82 103 / .25); animation:discountFloat 2.8s ease-in-out infinite alternate; }
.dish-card-body { padding:12px; }
.dish-card-name { font-size:.8rem; font-weight:900; line-height:1.25; margin-bottom:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dish-card-restaurant { font-size:.61rem; color:var(--accent-bright); margin-bottom:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dish-card-footer { display:flex; justify-content:space-between; align-items:flex-end; gap:8px; }
.dish-card-price { font-size:1.05rem; font-weight:950; color:var(--accent-secondary); }
.dish-card-price .currency { font-size:.7rem; }
.dish-card-old-price { display:block; font-size:.58rem; color:var(--text-muted); text-decoration:line-through; }
.dish-card-category { max-width:46%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.52rem; color:var(--text-muted); background:var(--bg-input); border:1px solid var(--border-color); padding:4px 7px; border-radius:999px; }
.empty-state { grid-column:1/-1; min-height:360px; display:flex; align-items:center; justify-content:center; }
.empty-state-card { width:min(470px,90%); padding:30px; text-align:center; border-radius:22px; background:var(--glass); border:1px solid var(--border-color); backdrop-filter:blur(20px); animation:emptyFloat .8s cubic-bezier(.2,1.2,.3,1); }
.empty-state-icon { width:64px; height:64px; margin:0 auto 14px; display:grid; place-items:center; border-radius:20px; background:var(--accent-soft); color:var(--accent-bright); font-size:1.4rem; transform:rotate(-6deg); }
.empty-state h3 { margin-bottom:7px; }
.empty-state p { color:var(--text-muted); font-size:.72rem; line-height:1.6; }
.empty-state button { margin-top:16px; border:0; border-radius:11px; padding:9px 14px; color:white; background:linear-gradient(135deg,var(--accent-color),var(--accent-bright)); cursor:pointer; font-weight:800; }

/* Compact density */
body[data-density="compact"] .p-view-sh { gap:8px; }
body[data-density="compact"] .rest-card-img { height:115px; }
body[data-density="compact"] .rest-card-body,body[data-density="compact"] .dish-card-body { padding:9px; }
body[data-density="compact"] .card-insight { display:none; }
body[data-density="compact"] .rest-card-footer { padding-top:7px; }
body[data-density="compact"] .rest-card-stat span { display:none; }
body[data-density="compact"] .dish-card-name,body[data-density="compact"] .rest-card-name { font-size:.72rem; }

/* Compare tray */
.compare-tray { position:fixed; z-index:5000; left:50%; bottom:18px; width:min(820px,calc(100vw - 28px)); min-height:68px; transform:translate(-50%,150%); border-radius:19px; padding:9px 11px; display:flex; align-items:center; gap:12px; transition:transform .55s cubic-bezier(.2,1.35,.4,1); }
.compare-tray.visible { transform:translate(-50%,0); }
.compare-tray::before { content:""; position:absolute; inset:-1px; border-radius:19px; padding:1px; background:conic-gradient(from var(--angle),var(--accent-bright),var(--accent-secondary),var(--gold),var(--accent-bright)); animation:trayBorder 5s linear infinite; -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
@property --angle { syntax:"<angle>"; initial-value:0deg; inherits:false; }
.compare-tray-copy { min-width:max-content; display:flex; align-items:center; gap:9px; }
.compare-tray-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; color:var(--accent-secondary); background:rgb(0 212 170 / .1); }
.compare-tray-copy div { display:flex; flex-direction:column; }
.compare-tray-copy strong { font-size:.7rem; }
.compare-tray-copy span { color:var(--text-muted); font-size:.57rem; }
.compare-preview { flex:1; min-width:0; display:flex; align-items:center; gap:6px; overflow:auto; scrollbar-width:none; }
.compare-preview-item { width:38px; height:38px; flex:0 0 auto; border-radius:11px; overflow:hidden; border:1px solid var(--border-light); background:var(--bg-input); position:relative; animation:previewPop .4s cubic-bezier(.2,1.4,.4,1); }
.compare-preview-item img { width:100%; height:100%; object-fit:cover; }
.compare-preview-item i { width:100%; height:100%; display:grid; place-items:center; color:var(--text-muted); }
.compare-preview-item button { position:absolute; inset:0; opacity:0; border:0; background:rgb(0 0 0 / .64); color:white; cursor:pointer; transition:opacity .2s; }
.compare-preview-item:hover button { opacity:1; }
.compare-actions { display:flex; gap:6px; }
.tray-btn { border-radius:10px; padding:8px 10px; border:1px solid var(--border-color); cursor:pointer; font-size:.62rem; font-weight:900; }
.tray-btn.secondary { color:var(--text-secondary); background:var(--bg-input); }
.tray-btn.primary { border:0; color:white; background:linear-gradient(135deg,var(--accent-color),var(--accent-bright)); box-shadow:0 8px 22px var(--accent-glow); }
.tray-btn:disabled { opacity:.35; cursor:not-allowed; box-shadow:none; }

/* Focus mode */
.focus-exit { display:none; position:fixed; z-index:8000; top:16px; left:50%; transform:translateX(-50%); border-radius:999px; padding:9px 14px; color:var(--text-primary); cursor:pointer; font-size:.66rem; font-weight:900; }
body.focus-mode .sidebar,body.focus-mode .dashboard-header,body.focus-mode .intelligence-bar,body.focus-mode .stats-bar,body.focus-mode .results-toolbar,body.focus-mode .scroll-nav { display:none!important; }
body.focus-mode .main-content { padding:0; }
body.focus-mode .p-view-sh { padding:58px 14px 95px; }
body.focus-mode .focus-exit { display:block; animation:focusExitDrop .55s cubic-bezier(.2,1.4,.4,1); }
body.focus-mode .app-container { min-height:100vh; }

/* Modals */
.modal { position:fixed; inset:0; z-index:10000; background:rgb(0 0 0 / .72); backdrop-filter:blur(16px); display:none; align-items:center; justify-content:center; padding:18px; }
.modal.active { display:flex; animation:modalFade .25s ease; }
.modal-content { width:min(1050px,96vw); max-height:92vh; border-radius:24px; overflow:hidden; display:flex; flex-direction:column; animation:modalLiquid .52s cubic-bezier(.2,1.25,.35,1); }
.modal-header { position:relative; display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:22px; border-bottom:1px solid var(--border-color); overflow:hidden; }
.modal-header::before { content:""; position:absolute; width:430px; height:230px; left:-100px; top:-150px; border-radius:50%; background:var(--accent-glow); filter:blur(45px); animation:modalAura 7s ease-in-out infinite alternate; }
.modal-header-info,.modal-header > div,.modal-header-actions { position:relative; z-index:2; }
.modal-header h2 { font-size:1.45rem; margin:5px 0 9px; }
.modal-meta { display:flex; gap:7px; flex-wrap:wrap; }
.modal-meta-item { font-size:.64rem; color:var(--text-secondary); display:flex; align-items:center; gap:5px; padding:5px 8px; border-radius:999px; background:var(--bg-input); border:1px solid var(--border-color); }
.modal-header-actions { display:flex; gap:7px; }
.modal-action-btn,.modal-close-btn { width:36px; height:36px; border-radius:12px; background:var(--bg-input); border:1px solid var(--border-color); color:var(--text-primary); cursor:pointer; display:grid; place-items:center; transition:var(--spring); }
.modal-action-btn:hover { color:var(--accent-bright); transform:translateY(-3px); }
.modal-action-btn.active { color:white; background:var(--accent-color); }
.modal-close-btn:hover { background:var(--danger); color:white; transform:rotate(90deg); border-color:transparent; }
.modal-menu-tools { display:flex; justify-content:space-between; align-items:center; padding:9px 15px; border-bottom:1px solid var(--border-color); background:var(--bg-input); }
.modal-menu-search { position:relative; width:min(360px,70%); }
.modal-menu-search i { position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:.68rem; }
.modal-menu-search input { width:100%; border:1px solid var(--border-color); border-radius:10px; background:var(--bg-color); color:var(--text-primary); padding:8px 10px 8px 31px; font-size:.68rem; outline:0; }
.modal-menu-tools > span { color:var(--text-muted); font-size:.62rem; }
.modal-body { flex:1; overflow:auto; padding:18px; scrollbar-width:thin; scrollbar-color:var(--border-light) transparent; }
.restaurant-summary { display:grid; grid-template-columns:1.3fr repeat(3,1fr); gap:9px; margin-bottom:18px; }
.summary-tile { padding:13px; border-radius:14px; background:var(--bg-input); border:1px solid var(--border-color); }
.summary-tile.primary { background:linear-gradient(135deg,var(--accent-soft),transparent); }
.summary-tile span { display:block; color:var(--text-muted); font-size:.55rem; text-transform:uppercase; letter-spacing:.09em; }
.summary-tile b { display:block; margin-top:5px; font-size:.92rem; }
.menu-category { margin-bottom:22px; }
.menu-category-name { position:sticky; top:-18px; z-index:3; padding:10px 0 8px; display:flex; align-items:center; gap:8px; font-size:.84rem; font-weight:900; color:var(--accent-bright); background:linear-gradient(var(--card-solid) 70%,transparent); }
.menu-category-name::after { content:""; flex:1; height:1px; background:linear-gradient(90deg,var(--accent-soft),transparent); }
.menu-count-pill { font-size:.54rem; color:var(--text-muted); background:var(--bg-input); border:1px solid var(--border-color); padding:3px 7px; border-radius:999px; }
.menu-items { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:9px; }
.menu-item { position:relative; display:flex; gap:11px; padding:10px; background:var(--card-bg); border:1px solid var(--border-color); border-radius:14px; transition:var(--spring); overflow:hidden; }
.menu-item::after { content:""; position:absolute; inset:auto 0 0; height:2px; background:linear-gradient(90deg,var(--accent-color),var(--accent-secondary)); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.menu-item:hover { transform:translateY(-3px); border-color:var(--border-light); background:var(--bg-card-hover); }
.menu-item:hover::after { transform:scaleX(1); }
.menu-item-img { width:64px; height:64px; border-radius:11px; object-fit:cover; background:var(--bg-input); flex-shrink:0; }
.menu-item-info { flex:1; min-width:0; }
.menu-item-name { font-size:.73rem; font-weight:900; margin-bottom:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.menu-item-desc { font-size:.6rem; color:var(--text-muted); margin-bottom:6px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.4; }
.menu-item-price { font-size:.86rem; font-weight:950; color:var(--accent-secondary); }
.menu-item-old-price { font-size:.58rem; color:var(--text-muted); text-decoration:line-through; margin-left:5px; }
.menu-item-discount { float:right; color:var(--danger); font-size:.54rem; font-weight:900; }
.comparison-content { width:min(1120px,97vw); }
.comparison-body { padding:18px; overflow:auto; }
.compare-section { margin-bottom:22px; }
.compare-section h3 { margin-bottom:10px; font-size:.82rem; color:var(--text-secondary); }
.compare-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; }
.compare-card { position:relative; padding:14px; border-radius:16px; border:1px solid var(--border-color); background:var(--card-bg); overflow:hidden; animation:compareCardReveal .55s cubic-bezier(.2,1.2,.4,1) both; animation-delay:var(--delay); }
.compare-card.best { border-color:rgb(0 212 170 / .45); box-shadow:0 0 0 1px rgb(0 212 170 / .12),0 14px 34px rgb(0 212 170 / .08); }
.compare-card.best::before { content:"BEST FIT"; position:absolute; right:-25px; top:12px; transform:rotate(38deg); width:95px; text-align:center; padding:3px 0; background:var(--accent-secondary); color:#001a13; font-size:.48rem; font-weight:950; }
.compare-card-head { display:flex; gap:9px; align-items:center; margin-bottom:12px; }
.compare-card-head img,.compare-card-head .compare-icon { width:46px; height:46px; border-radius:12px; object-fit:cover; background:var(--bg-input); display:grid; place-items:center; }
.compare-card-head strong { display:block; font-size:.75rem; line-height:1.25; }
.compare-card-head span { color:var(--text-muted); font-size:.58rem; }
.compare-metric { display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid var(--border-color); font-size:.62rem; }
.compare-metric span { color:var(--text-muted); }
.compare-metric b { text-align:right; }

/* Command palette */
.command-modal { position:fixed; inset:0; z-index:12000; display:none; align-items:flex-start; justify-content:center; padding-top:12vh; background:rgb(0 0 0 / .52); backdrop-filter:blur(10px); }
.command-modal.active { display:flex; animation:commandBackdrop .2s ease; }
.command-palette { width:min(620px,calc(100vw - 28px)); border-radius:20px; overflow:hidden; animation:commandDrop .42s cubic-bezier(.2,1.35,.4,1); }
.command-input-wrap { display:flex; align-items:center; gap:10px; padding:14px; border-bottom:1px solid var(--border-color); }
.command-input-wrap > i { color:var(--accent-bright); }
.command-input-wrap input { flex:1; border:0; background:transparent; color:var(--text-primary); outline:0; font-size:.9rem; font-weight:700; }
.command-list { max-height:390px; overflow:auto; padding:8px; }
.command-item { width:100%; display:flex; align-items:center; gap:11px; border:0; border-radius:11px; padding:10px; background:transparent; color:var(--text-secondary); text-align:left; cursor:pointer; transition:var(--transition); }
.command-item i { width:31px; height:31px; border-radius:9px; display:grid; place-items:center; color:var(--accent-bright); background:var(--accent-soft); }
.command-item div { flex:1; }
.command-item strong { display:block; font-size:.72rem; color:var(--text-primary); }
.command-item span { font-size:.58rem; color:var(--text-muted); }
.command-item kbd { margin-left:auto; }
.command-item:hover,.command-item.selected { background:var(--bg-card-hover); transform:translateX(4px); }
.command-footer { display:flex; justify-content:flex-end; gap:13px; padding:9px 13px; border-top:1px solid var(--border-color); color:var(--text-muted); font-size:.55rem; }
.command-footer span { display:flex; align-items:center; gap:3px; }

/* Analytics */
.analytics-panel { padding:14px 0 90px; }
.analytics-panel[hidden] { display:none; }
.analytics-hero { border-radius:19px; padding:18px; margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:16px; overflow:hidden; position:relative; }
.analytics-hero::after { content:""; position:absolute; width:260px; height:260px; right:-120px; top:-150px; border-radius:50%; background:var(--accent-glow); filter:blur(25px); animation:analyticsHalo 6s ease-in-out infinite alternate; }
.analytics-hero > * { position:relative; z-index:2; }
.analytics-hero h3 { margin:5px 0; font-size:1.15rem; }
.analytics-hero p { color:var(--text-muted); font-size:.67rem; }
.refresh-analytics-btn { flex:0 0 auto; border:1px solid var(--border-color); background:var(--bg-input); color:var(--text-primary); border-radius:11px; padding:8px 11px; cursor:pointer; font-size:.64rem; font-weight:900; }
.refresh-analytics-btn:hover i { animation:refreshSpin .75s cubic-bezier(.2,1.2,.4,1); }
.analytics-kpi { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:10px; }
.kpi-card { position:relative; overflow:hidden; border:1px solid var(--border-color); background:var(--card-bg); backdrop-filter:blur(18px); border-radius:16px; padding:14px; text-align:left; transition:var(--spring); }
.kpi-card:hover { transform:translateY(-4px) scale(1.01); border-color:var(--border-light); }
.kpi-card::after { content:""; position:absolute; width:80px; height:80px; right:-30px; bottom:-40px; border-radius:50%; background:currentColor; opacity:.08; filter:blur(6px); }
.kpi-card .kpi-val { font-size:1.5rem; font-weight:950; margin:4px 0; }
.kpi-card .kpi-lbl { font-size:.56rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.1em; font-weight:900; }
.kpi-card .kpi-sub { font-size:.58rem; color:var(--text-secondary); }
.kpi-card.pink { color:var(--accent-bright); animation:kpiRise .5s both; }
.kpi-card.teal { color:var(--accent-secondary); animation:kpiSlide .58s both; }
.kpi-card.gold { color:var(--gold); animation:kpiZoom .62s both; }
.kpi-card.red { color:var(--danger); animation:kpiTilt .66s both; }
.analytics-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.analytics-card { position:relative; background:var(--card-bg); border:1px solid var(--border-color); border-radius:17px; padding:14px; backdrop-filter:blur(18px); overflow:hidden; transition:var(--spring); }
.analytics-card:hover { border-color:var(--border-light); box-shadow:var(--shadow); }
.analytics-card::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s; }
.analytics-card:hover::before { opacity:1; }
.chart-card-a::before { background:radial-gradient(circle at 0 0,var(--accent-soft),transparent 42%); }
.chart-card-b::before { background:linear-gradient(135deg,transparent,rgb(245 185 66 / .08)); }
.chart-card-c::before { background:radial-gradient(circle at 100% 0,rgb(0 212 170 / .09),transparent 40%); }
.chart-card-d::before { background:linear-gradient(45deg,rgb(102 166 255 / .08),transparent); }
.chart-card-e::before { background:radial-gradient(circle at 30% 100%,rgb(116 75 255 / .09),transparent 45%); }
.chart-card-f::before { background:linear-gradient(120deg,transparent,rgb(255 82 103 / .07)); }
.chart-card-g::before { background:conic-gradient(from 180deg at 100% 100%,rgb(255 82 103 / .08),transparent 40%); }
.analytics-card h4 { position:relative; z-index:2; font-size:.63rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.1em; margin-bottom:10px; }
.analytics-card canvas { position:relative; z-index:2; width:100%!important; height:250px!important; }
.leaderboard { position:relative; z-index:2; max-height:280px; overflow:auto; }
.lb-row { display:flex; align-items:center; gap:8px; padding:7px 0; border-bottom:1px solid var(--border-color); font-size:.68rem; transition:var(--transition); }
.lb-row:hover { padding-left:5px; }
.lb-rank { width:22px; height:22px; border-radius:8px; display:grid; place-items:center; font-size:.56rem; font-weight:900; background:var(--bg-input); color:var(--text-muted); }
.lb-rank.gold { background:rgb(245 185 66 / .16); color:var(--gold); }
.lb-rank.silver { background:rgb(156 163 175 / .13); color:#aeb7c5; }
.lb-rank.bronze { background:rgb(217 119 6 / .13); color:#d99037; }
.lb-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lb-val { font-weight:900; min-width:42px; text-align:right; }
.lb-bar-wrap { width:60px; height:4px; background:var(--border-color); border-radius:999px; overflow:hidden; }
.lb-bar { display:block; height:100%; border-radius:999px; background:var(--accent-color); transform-origin:left; animation:barGrow .8s ease both; }
.analytics-table-card { grid-column:1/-1; }
.table-scroll { overflow:auto; position:relative; z-index:2; }
.analytics-table { width:100%; border-collapse:collapse; font-size:.68rem; }
.analytics-table th { text-align:left; padding:9px 11px; border-bottom:1px solid var(--border-light); color:var(--text-muted); font-weight:900; font-size:.56rem; text-transform:uppercase; letter-spacing:.08em; }
.analytics-table td { padding:9px 11px; border-bottom:1px solid var(--border-color); }
.analytics-table tr:hover td { background:var(--bg-input); }

/* Toasts and nav */
.toast-stack { position:fixed; z-index:15000; top:18px; right:18px; width:min(360px,calc(100vw - 36px)); display:flex; flex-direction:column; gap:8px; pointer-events:none; }
.toast { pointer-events:auto; display:grid; grid-template-columns:35px 1fr auto; gap:9px; align-items:center; padding:10px; border-radius:14px; border:1px solid var(--border-color); background:var(--glass-strong); backdrop-filter:blur(22px); box-shadow:var(--shadow-lg); animation:toastSpring .5s cubic-bezier(.2,1.4,.4,1); }
.toast.removing { animation:toastExit .35s ease forwards; }
.toast-icon { width:35px; height:35px; display:grid; place-items:center; border-radius:11px; background:var(--bg-input); }
.toast.success .toast-icon { color:var(--success); }
.toast.warning .toast-icon { color:var(--gold); }
.toast.error .toast-icon { color:var(--danger); }
.toast.info .toast-icon { color:var(--info); }
.toast strong { display:block; font-size:.68rem; }
.toast span { display:block; color:var(--text-muted); font-size:.58rem; margin-top:2px; }
.toast button { border:0; background:transparent; color:var(--text-muted); cursor:pointer; }
.scroll-nav { position:fixed; z-index:1000; right:18px; bottom:18px; display:flex; flex-direction:column; gap:7px; }
.scroll-btn { width:39px; height:39px; border-radius:13px; border:1px solid var(--border-color); color:var(--text-primary); background:var(--glass-strong); backdrop-filter:blur(16px); cursor:pointer; box-shadow:var(--shadow); transition:var(--spring); }
.scroll-up:hover { transform:translateY(-5px) rotate(-8deg); color:var(--accent-bright); }
.scroll-down:hover { transform:translateY(5px) rotate(8deg); color:var(--accent-secondary); }

/* Mobile */
.sidebar-overlay { display:none; }
@media (max-width:1180px) {
    .dashboard-header { align-items:flex-start; }
    .header-left { flex-wrap:wrap; }
    .search-wrapper { max-width:none; }
    .header-right { width:100%; justify-content:flex-start; }
    .stats-bar { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:1024px) {
    .sidebar-toggle-btn { display:grid; }
    .sidebar { position:fixed; left:0; top:0; bottom:0; transform:translateX(-106%); transition:transform .45s cubic-bezier(.2,1,.3,1); z-index:3000; box-shadow:30px 0 80px rgb(0 0 0 / .5); }
    .sidebar.visible { transform:translateX(0); }
    .sidebar-overlay { position:fixed; inset:0; z-index:2500; background:rgb(0 0 0 / .55); backdrop-filter:blur(7px); }
    .sidebar-overlay.active { display:block; animation:overlayFade .25s ease; }
    .main-content { width:100%; }
    .p-view-sh { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
@media (max-width:760px) {
    .main-content { padding:6px 6px 0; }
    .dashboard-header { top:6px; border-radius:17px; padding:9px; }
    .view-heading { min-width:0; }
    .view-heading .eyebrow { display:none; }
    .view-heading h2 { font-size:.85rem; }
    .search-wrapper { order:3; width:100%; flex-basis:100%; }
    .header-right { gap:6px; }
    .filter-select { flex:1; }
    .view-toggle { order:4; }
    .view-btn span { display:none; }
    .grid-controls { display:none; }
    .intelligence-bar { padding:7px; }
    .surprise-btn span { display:none; }
    .stats-bar { gap:6px; padding:7px 0; }
    .stat-item { min-height:65px; padding:9px; }
    .stat-icon { width:33px; height:33px; }
    .stat-value { font-size:1.05rem; }
    .stat-spark { display:none; }
    .results-toolbar { flex-wrap:wrap; }
    .active-filter-chips { order:3; flex-basis:100%; }
    .p-view-sh { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:7px; padding-top:8px; }
    .rest-card-img { height:120px; }
    .rest-card-body { padding:9px; }
    .card-insight { display:none; }
    .rest-card-footer { grid-template-columns:repeat(2,1fr); }
    .dish-card-body { padding:9px; }
    .analytics-kpi { grid-template-columns:repeat(2,1fr); }
    .analytics-grid { grid-template-columns:1fr; }
    .analytics-table-card { grid-column:auto; }
    .analytics-hero { align-items:flex-start; }
    .analytics-hero p { display:none; }
    .compare-tray { flex-wrap:wrap; }
    .compare-tray-copy { flex:1; }
    .compare-preview { order:3; width:100%; }
    .restaurant-summary { grid-template-columns:repeat(2,1fr); }
    .summary-tile.primary { grid-column:1/-1; }
    .modal { padding:7px; }
    .modal-content { max-height:97vh; border-radius:18px; }
    .modal-header { padding:15px; }
    .modal-header h2 { font-size:1.05rem; }
    .modal-menu-tools { padding:7px 10px; }
    .modal-body { padding:12px; }
    .menu-items { grid-template-columns:1fr; }
    .command-footer { display:none; }
}
@media (max-width:480px) {
    .stats-bar { grid-template-columns:1fr 1fr; }
    .stat-item { gap:7px; }
    .stat-label { font-size:.48rem; }
    .p-view-sh { grid-template-columns:1fr!important; }
    .rest-card-img { height:170px; }
    .rest-card-footer { grid-template-columns:repeat(4,1fr); }
    .compare-actions { width:100%; }
    .tray-btn { flex:1; }
    .header-actions .icon-btn { width:35px; height:35px; }
}

/* Motion */
@keyframes orbDriftOne { to { transform:translate(16vw,12vh) scale(.82); } }
@keyframes orbDriftTwo { to { transform:translate(-15vw,-9vh) scale(1.18); } }
@keyframes orbDriftThree { to { transform:translate(11vw,-15vh) scale(.9); } }
@keyframes loaderCore { 0%,100%{transform:scale(.9) rotate(-5deg)} 50%{transform:scale(1.08) rotate(5deg)} }
@keyframes loaderOrbitA { to{transform:rotate(360deg)} }
@keyframes loaderOrbitB { to{transform:rotate(360deg) scale(.94)} }
@keyframes loaderOrbitC { 50%{transform:rotate(180deg) scale(1.12)} 100%{transform:rotate(360deg)} }
@keyframes sidebarSweep { 0%,65%{transform:translateX(-120%)} 85%,100%{transform:translateX(120%)} }
@keyframes livePing { 0%{box-shadow:0 0 0 0 rgb(46 230 166 / .5)} 100%{box-shadow:0 0 0 8px transparent} }
@keyframes locationRipple { 0%{box-shadow:0 0 0 0 var(--accent-glow)} 100%{box-shadow:0 0 0 9px transparent} }
@keyframes heartBeat { 0%,100%{transform:scale(1)} 30%{transform:scale(1.35)} 60%{transform:scale(.88)} }
@keyframes cycleSort { 50%{transform:rotate(180deg) scale(1.15)} 100%{transform:rotate(360deg)} }
@keyframes orbitBorder { to{transform:rotate(360deg)} }
@keyframes headerBorder { to{background-position:-200% 0} }
@keyframes suggestionDrop { from{opacity:0;transform:translateY(-8px) scaleY(.92)} }
@keyframes compressGrid { 30%{transform:scaleX(.7)} 65%{transform:scaleY(.7)} }
@keyframes fireDance { to{transform:translateY(-2px) rotate(6deg) scale(1.12)} }
@keyframes boltJolt { 25%{transform:translateX(2px) skewX(-5deg)} 50%{transform:translateX(-2px) skewX(5deg)} }
@keyframes starSpin { to{transform:rotate(360deg) scale(1.15)} }
@keyframes menuUnfold { from{transform:scaleY(.65);transform-origin:top} }
@keyframes tagSwing { 25%{transform:rotate(14deg)} 75%{transform:rotate(-12deg)} }
@keyframes clockTick { to{transform:rotate(360deg)} }
@keyframes walletBounce { 40%{transform:translateY(-5px)} 70%{transform:translateY(2px)} }
@keyframes calendarFlip { 50%{transform:rotateX(180deg)} }
@keyframes surpriseBurst { 45%{transform:scale(1.18) rotate(4deg)} 70%{transform:scale(.94) rotate(-3deg)} }
@keyframes numberLift { from{opacity:.2;transform:translateY(8px) scale(.85)} }
@keyframes sparkSlide { to{transform:translateX(5px)} }
@keyframes sparkStretch { to{transform:scaleX(1.25)} }
@keyframes sparkSkew { to{transform:skewX(-12deg)} }
@keyframes sparkWave { to{transform:translateY(-3px) rotate(2deg)} }
@keyframes chipArrive { from{opacity:0;transform:scale(.6) translateY(6px)} }
@keyframes cardRise { from{opacity:0;transform:translateY(24px)} }
@keyframes cardSlideLeft { from{opacity:0;transform:translateX(-25px)} }
@keyframes cardSlideRight { from{opacity:0;transform:translateX(25px)} }
@keyframes cardTwist { from{opacity:0;transform:rotate(-2deg) scale(.94)} }
@keyframes cardBloom { from{opacity:0;filter:blur(9px);transform:scale(.9)} }
@keyframes cardFocusIn { from{opacity:0;clip-path:inset(30% 30% 30% 30% round 40px)} }
@keyframes favoritePop { 50%{transform:scale(1.3) rotate(-9deg)} }
@keyframes compareRing { 0%{box-shadow:0 0 0 0 rgb(0 212 170 / .4)} 100%{box-shadow:0 0 0 10px transparent} }
@keyframes discountFloat { to{transform:translateY(-3px) rotate(-1deg)} }
@keyframes emptyFloat { from{opacity:0;transform:translateY(18px) scale(.95)} }
@keyframes trayBorder { to{--angle:360deg} }
@keyframes previewPop { from{opacity:0;transform:scale(.6) rotate(-8deg)} }
@keyframes focusExitDrop { from{opacity:0;transform:translate(-50%,-15px)} }
@keyframes modalFade { from{opacity:0} }
@keyframes modalLiquid { from{opacity:0;transform:translateY(24px) scale(.94);border-radius:45px} }
@keyframes modalAura { to{transform:translate(110px,35px) scale(1.18)} }
@keyframes compareCardReveal { from{opacity:0;transform:translateY(16px) rotateX(9deg)} }
@keyframes commandBackdrop { from{opacity:0} }
@keyframes commandDrop { from{opacity:0;transform:translateY(-22px) scale(.96)} }
@keyframes analyticsHalo { to{transform:translate(-80px,75px) scale(1.2)} }
@keyframes refreshSpin { to{transform:rotate(360deg)} }
@keyframes kpiRise { from{opacity:0;transform:translateY(18px)} }
@keyframes kpiSlide { from{opacity:0;transform:translateX(-18px)} }
@keyframes kpiZoom { from{opacity:0;transform:scale(.85)} }
@keyframes kpiTilt { from{opacity:0;transform:rotate(2deg) translateX(12px)} }
@keyframes barGrow { from{transform:scaleX(0)} }
@keyframes toastSpring { from{opacity:0;transform:translateX(35px) scale(.9)} }
@keyframes toastExit { to{opacity:0;transform:translateX(40px) scale(.9)} }
@keyframes overlayFade { from{opacity:0} }

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.001ms!important; }
    .cursor-glow,.ambient-orb { display:none; }
}

/* =========================================================
   Performance-first price intelligence layer
   ========================================================= */

/* Keep liquid glass on a few structural surfaces, not every repeated card. */
.glass-panel {
    backdrop-filter: blur(10px) saturate(112%);
    -webkit-backdrop-filter: blur(10px) saturate(112%);
}
.ambient-layer,.cursor-glow,.sidebar::after { display:none!important; }
.stat-spark,.compare-tray::before { animation:none!important; }
.rest-card,.dish-card {
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    transform-style:flat!important;
    transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease!important;
    content-visibility:auto;
    contain:layout paint style;
    contain-intrinsic-size:340px;
}
.rest-card::before,.dish-card::before,.rest-card .card-glow-line,.dish-card .card-glow-line { display:none!important; }
.card-motion-1,.card-motion-2,.card-motion-3,.card-motion-4,.card-motion-5,.card-motion-6 { animation:none!important; }
.rest-card:hover,.dish-card:hover { transform:translateY(-2px)!important; box-shadow:0 12px 32px rgb(0 0 0 / .22)!important; }
.rest-card:hover .rest-card-img,.dish-card:hover .dish-card-img { transform:scale(1.025)!important; filter:none!important; }
.modal { backdrop-filter:none!important; -webkit-backdrop-filter:none!important; }
.modal-content,.dish-history-shell,.manager-modal { animation:none!important; }

/* Header counters */
.action-counters { gap:6px; }
.counter-action {
    min-height:36px; display:flex; align-items:center; gap:6px; border:1px solid var(--border-color);
    border-radius:11px; background:var(--bg-input); padding:6px 8px; cursor:pointer; color:var(--text-secondary);
    transition:border-color .16s ease,background .16s ease,color .16s ease;
}
.counter-action:hover,.counter-action:focus-visible { border-color:var(--accent-bright); color:var(--text-primary); }
.counter-action span { font-size:.58rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.counter-action b { min-width:19px; height:19px; display:grid; place-items:center; padding:0 5px; border-radius:999px; color:white; background:var(--accent-color); font-size:.58rem; }
.counter-action.has-triggered { border-color:var(--gold); box-shadow:0 0 0 2px rgb(245 185 66 / .12); }
.counter-action.has-triggered b { background:var(--gold); color:#111; }

/* Dish price controls */
.price-intelligence {
    border-radius:16px; padding:9px; display:flex; flex-direction:column; gap:8px;
}
.price-intelligence[hidden] { display:none!important; }
.price-filter-row,.price-range-row { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.price-filter-btn,.range-apply-btn,.range-clear-btn {
    min-height:34px; border:1px solid var(--border-color); border-radius:10px; background:var(--bg-input);
    color:var(--text-secondary); padding:6px 10px; cursor:pointer; display:inline-flex; align-items:center; gap:6px;
    font-size:.62rem; font-weight:850; transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.price-filter-btn b { color:var(--accent-secondary); font-size:.56rem; }
.price-filter-btn:hover,.price-filter-btn.active,.range-apply-btn:hover,.range-apply-btn.active {
    border-color:var(--accent-bright); color:white; background:linear-gradient(135deg,var(--accent-color),var(--accent-bright));
}
.price-filter-btn.active b { color:white; }
.inline-number-control,.compact-field,.date-control-group {
    display:flex; align-items:center; gap:6px; min-height:36px; border:1px solid var(--border-color);
    background:var(--bg-input); border-radius:11px; padding:3px 7px; color:var(--text-muted); font-size:.6rem; font-weight:800;
}
.inline-number-control .price-filter-btn { margin:-3px 0 -3px -7px; border-top-right-radius:5px; border-bottom-right-radius:5px; }
.inline-number-control input,.compact-field input { width:50px; }
.price-intelligence input[type="number"],.price-intelligence input[type="date"] {
    height:28px; color:var(--text-primary); background:var(--card-solid); border:1px solid var(--border-color);
    border-radius:7px; padding:3px 6px; font-size:.61rem; outline:none;
}
.price-intelligence input[type="date"] { width:128px; color-scheme:dark; }
body[data-theme="light"] .price-intelligence input[type="date"] { color-scheme:light; }
.range-clear-btn { min-width:28px; padding:5px; justify-content:center; }
.mean-range { margin-left:auto; }

/* Dish card price signals */
.dish-actions { max-width:calc(100% - 16px); flex-wrap:wrap; justify-content:flex-end; }
.dish-actions .card-action-btn { width:28px; height:28px; }
.card-action-btn.cart.active { color:var(--accent-secondary); background:rgb(0 212 170 / .16); }
.card-action-btn.alert.active { color:var(--gold); background:rgb(245 185 66 / .16); }
.dish-badge-stack { position:absolute; left:8px; top:8px; z-index:3; display:flex; flex-direction:column; align-items:flex-start; gap:4px; max-width:62%; }
.dish-price-badge { padding:4px 7px; border-radius:7px; color:white; font-size:.5rem; font-weight:900; box-shadow:0 4px 12px rgb(0 0 0 / .24); }
.dish-price-badge.great { background:#a80e57; }
.dish-price-badge.good { background:#087a67; }
.dish-price-badge.low { background:#6750c9; }
.dish-price-badge.new { background:#a86708; }
.dish-change-chip { position:absolute; left:8px; bottom:8px; z-index:3; display:flex; align-items:center; gap:4px; border-radius:999px; padding:4px 7px; background:rgb(0 0 0 / .7); border:1px solid rgb(255 255 255 / .12); font-size:.5rem; font-weight:900; }
.dish-change-chip.down { color:var(--success); }
.dish-change-chip.up { color:var(--danger); }
.dish-change-chip.flat { color:#cbd5e1; }
.dish-card-intel { margin-top:9px; padding-top:7px; border-top:1px solid var(--border-color); display:flex; justify-content:space-between; gap:6px; color:var(--text-muted); font-size:.53rem; font-weight:750; }

.load-more-card {
    grid-column:1/-1; min-height:74px; border:1px dashed var(--border-light); border-radius:16px; background:var(--card-bg);
    display:flex; align-items:center; justify-content:center; gap:9px; cursor:pointer; color:var(--text-secondary);
}
.load-more-card i { color:var(--accent-bright); }
.load-more-card strong { font-size:.72rem; }
.load-more-card span { font-size:.58rem; color:var(--text-muted); }
.load-more-card:hover { border-color:var(--accent-bright); background:var(--bg-card-hover); }

.menu-item[data-dish-id] { cursor:pointer; padding-right:34px; }
.menu-history-icon { position:absolute; right:11px; top:50%; transform:translateY(-50%); color:var(--accent-bright); opacity:.7; }

/* Full-screen dish price history */
.dish-modal { padding:10px; }
.dish-history-shell {
    position:relative; isolation:isolate; width:min(1480px,98vw); height:min(930px,96vh); overflow:hidden;
    border-radius:24px; display:flex; flex-direction:column; background:var(--card-solid);
}
.dish-history-bg {
    position:absolute; z-index:-2; inset:0; background-position:center; background-size:cover; opacity:.11; filter:saturate(.8) contrast(1.05);
}
.dish-history-shell::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,var(--card-solid) 0%,color-mix(in srgb,var(--card-solid) 88%,transparent) 55%,var(--card-solid) 100%); }
.dish-history-header { min-height:92px; display:grid; grid-template-columns:48px minmax(0,1fr) auto 48px; align-items:center; gap:10px; padding:14px 18px; border-bottom:1px solid var(--border-color); }
.dish-history-title { min-width:0; }
.dish-history-title h2 { margin-top:5px; font-size:clamp(1.15rem,2.2vw,2rem); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dish-history-title p { color:var(--text-secondary); font-size:.7rem; margin-top:4px; }
.dish-header-actions { display:flex; gap:7px; }
.dish-cycle-btn { width:42px; height:42px; border-radius:50%; border:1px solid var(--border-color); background:var(--bg-input); cursor:pointer; color:var(--text-primary); }
.dish-cycle-btn:hover { border-color:var(--accent-bright); color:var(--accent-bright); }
.dish-tabs { min-height:50px; padding:7px 18px; display:flex; align-items:center; gap:7px; border-bottom:1px solid var(--border-color); }
.dish-tab { min-height:34px; padding:6px 11px; border:1px solid transparent; border-radius:9px; background:transparent; color:var(--text-muted); cursor:pointer; font-size:.65rem; font-weight:850; }
.dish-tab.active { color:var(--text-primary); background:var(--bg-input); border-color:var(--border-color); }
.history-source-badge { margin-left:auto; max-width:46%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border:1px solid var(--border-color); border-radius:999px; padding:5px 8px; color:var(--text-muted); font-size:.54rem; }
.history-source-badge.real { color:var(--success); border-color:rgb(46 230 166 / .25); }
.history-source-badge.partial { color:var(--gold); }
.dish-history-body { flex:1; min-height:0; overflow:auto; padding:14px 18px 8px; }
.dish-tab-panel { display:none; height:100%; }
.dish-tab-panel.active { display:flex; flex-direction:column; }
.dish-history-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.history-kpi { min-height:64px; padding:10px; border:1px solid var(--border-color); border-radius:12px; background:color-mix(in srgb,var(--bg-input) 84%,transparent); display:flex; flex-direction:column; justify-content:center; }
.history-kpi span { color:var(--text-muted); font-size:.55rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.history-kpi strong { margin-top:5px; font-size:1rem; }
.history-kpi.down strong,.history-kpi.low strong { color:var(--success); }
.history-kpi.up strong,.history-kpi.high strong { color:var(--danger); }
.history-kpi.mean strong { color:var(--accent-secondary); }
.dish-chart-toggles { display:flex; gap:8px; margin-bottom:8px; justify-content:flex-end; }
.chart-toggle-btn { padding:5px 11px; border-radius:8px; border:1px solid var(--border-color); background:var(--bg-input); color:var(--text-muted); font-size:0.65rem; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; gap:6px; transition:all 0.2s ease; opacity:0.6; }
.chart-toggle-btn.active { opacity:1; }
.chart-toggle-btn.active[data-key="ori"],.tb-graph-btn.active[data-graph-filter="ori"] { background:rgba(16,185,129,0.15); color:#10b981; border-color:#10b981; }
.chart-toggle-btn.active[data-key="disc"],.tb-graph-btn.active[data-graph-filter="disc"] { background:rgba(236,72,153,0.15); color:var(--accent,#ec4899); border-color:var(--accent,#ec4899); }
.chart-toggle-btn.active[data-key="mean"] { background:rgba(148,163,184,0.15); color:var(--text-secondary); border-color:var(--border-color); }
.toolbar-graph-toggles { display:flex; gap:6px; align-items:center; margin:0 10px; }
.tb-graph-btn { padding:5px 10px; border-radius:8px; border:1px solid var(--border-color); background:var(--bg-input); color:var(--text-muted); font-size:0.65rem; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; gap:5px; transition:all 0.2s ease; opacity:0.5; }
.tb-graph-btn.active { opacity:1; }
.dish-chart-wrap { flex:1; min-height:330px; border:1px solid var(--border-color); border-radius:16px; background:color-mix(in srgb,var(--card-solid) 76%,transparent); padding:12px; }
.dish-chart-wrap canvas { width:100%!important; height:100%!important; }
.dish-alert-actions { display:flex; gap:9px; padding-top:10px; }
.alert-action { flex:1; min-height:42px; border:1px solid var(--border-color); border-radius:11px; background:var(--bg-input); cursor:pointer; display:flex; align-items:center; justify-content:center; gap:7px; font-size:.68rem; font-weight:900; }
.alert-action.drop { color:var(--success); }
.alert-action.rise { color:var(--danger); }
.alert-action.active { color:white; border-color:transparent; }
.alert-action.drop.active { background:#087a67; }
.alert-action.rise.active { background:#a62c43; }
.swipe-hint { min-height:32px; display:flex; align-items:center; justify-content:center; gap:7px; color:var(--text-muted); font-size:.55rem; border-top:1px solid var(--border-color); }
.dish-detail-content { max-width:1040px; width:100%; margin:auto; }
.dish-detail-hero { display:grid; grid-template-columns:minmax(180px,340px) 1fr; gap:20px; align-items:center; }
.dish-detail-hero img { width:100%; max-height:300px; object-fit:cover; border-radius:18px; border:1px solid var(--border-color); }
.dish-detail-hero h3 { font-size:1.7rem; }
.dish-detail-hero p { margin-top:10px; color:var(--text-secondary); line-height:1.65; }
.detail-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:18px; }
.detail-grid > div { padding:13px; border:1px solid var(--border-color); border-radius:12px; background:var(--bg-input); }
.detail-grid span { display:block; color:var(--text-muted); font-size:.55rem; text-transform:uppercase; font-weight:850; }
.detail-grid b { display:block; margin-top:6px; font-size:.73rem; }

/* Cart and alerts */
.manager-modal { width:min(820px,95vw); max-height:88vh; overflow:hidden; border-radius:22px; display:flex; flex-direction:column; background:var(--card-solid); }
.manager-header { display:flex; align-items:center; justify-content:space-between; padding:17px; border-bottom:1px solid var(--border-color); }
.manager-header h2 { margin-top:5px; font-size:1.15rem; }
.manager-list { overflow:auto; padding:10px; min-height:170px; }
.manager-row { display:grid; grid-template-columns:48px minmax(0,1fr) auto 34px; align-items:center; gap:10px; padding:9px; border-bottom:1px solid var(--border-color); cursor:pointer; }
.manager-row:hover { background:var(--bg-input); }
.manager-row img,.manager-row-icon { width:48px; height:48px; border-radius:10px; object-fit:cover; display:grid; place-items:center; background:var(--bg-input); }
.manager-row div { min-width:0; }
.manager-row strong,.manager-row span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.manager-row strong { font-size:.7rem; }
.manager-row span { color:var(--text-muted); font-size:.57rem; margin-top:4px; }
.manager-row > b { color:var(--accent-secondary); font-size:.76rem; }
.manager-row > em { font-size:.58rem; color:var(--text-muted); font-style:normal; }
.manager-row.triggered > em { color:var(--gold); font-weight:900; }
.manager-row > button { width:31px; height:31px; border:1px solid var(--border-color); border-radius:9px; background:transparent; color:var(--danger); cursor:pointer; }
.manager-empty { min-height:240px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--text-muted); }
.manager-empty i { font-size:2rem; color:var(--accent-bright); margin-bottom:10px; }
.manager-empty h3 { color:var(--text-primary); }
.manager-empty p { max-width:380px; margin-top:6px; font-size:.68rem; }
.cart-footer { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-top:1px solid var(--border-color); }
.cart-footer strong { color:var(--accent-secondary); font-size:1.1rem; }

@media (max-width:1120px) {
    .counter-action span { display:none; }
    .mean-range { margin-left:0; }
    .price-range-row { align-items:flex-start; }
}
@media (max-width:760px) {
    .action-counters { width:100%; overflow-x:auto; scrollbar-width:none; }
    .counter-action { flex:1; justify-content:center; min-width:70px; }
    .counter-action span { display:inline; }
    .price-intelligence { padding:7px; }
    .price-filter-row,.price-range-row { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
    .price-filter-btn,.inline-number-control,.compact-field,.date-control-group { flex:0 0 auto; }
    .dish-history-shell { width:100%; height:100%; border-radius:16px; }
    .dish-modal { padding:5px; }
    .dish-history-header { grid-template-columns:36px minmax(0,1fr) 36px; padding:10px 8px; }
    .dish-header-actions { grid-column:1/-1; grid-row:2; justify-content:center; }
    .dish-history-header > .dish-cycle-btn:last-child { grid-column:3; grid-row:1; }
    .dish-history-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .history-kpi:last-child { grid-column:1/-1; }
    .history-source-badge { display:none; }
    .dish-history-body { padding:9px; }
    .dish-chart-wrap { min-height:310px; }
    .dish-detail-hero { grid-template-columns:1fr; }
    .dish-detail-hero img { max-height:220px; }
    .detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
    .counter-action span { display:none; }
    .dish-history-title h2 { font-size:1rem; }
    .dish-history-title p { font-size:.57rem; }
    .dish-tabs { padding:6px 8px; }
    .dish-tab { flex:1; justify-content:center; }
    .dish-history-kpis { gap:5px; }
    .history-kpi { min-height:56px; padding:8px; }
    .history-kpi strong { font-size:.82rem; }
    .dish-chart-wrap { min-height:270px; padding:7px; }
    .manager-row { grid-template-columns:40px minmax(0,1fr) 31px; }
    .manager-row img,.manager-row-icon { width:40px; height:40px; }
    .manager-row > b,.manager-row > em { grid-column:2; }
    .manager-row > button { grid-column:3; grid-row:1/3; }
}

/* =========================================================
   Ultra-performance pass + edge-to-edge real-history viewer
   ========================================================= */
html { scroll-behavior:auto; }
.glass-panel,
.toast,
.scroll-btn,
.sidebar-overlay,
.analytics-card,
.kpi-card {
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
}
.glass-panel { background:var(--card-solid)!important; box-shadow:none!important; }
.dashboard-header,.intelligence-bar,.price-intelligence { background:var(--bg-secondary)!important; }
.rest-card,.dish-card { box-shadow:none!important; }
.rest-card:hover,.dish-card:hover { transform:none!important; box-shadow:none!important; }
.rest-card-img,.dish-card-img { transition:none!important; }
.rest-card:hover .rest-card-img,.dish-card:hover .dish-card-img { transform:none!important; }
.stat-item,.counter-action,.intel-btn,.price-filter-btn { transition:border-color .12s ease,background-color .12s ease,color .12s ease!important; }

.dish-modal { padding:0; background:rgb(0 0 0 / .6)!important; }
.dish-history-shell { width:100vw; height:100dvh; max-width:none; max-height:none; border:0; border-radius:0; background:transparent!important; }
.dish-history-bg {
    inset:0;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    opacity:.35;
    filter:none;
}
.dish-history-shell::after {
    background:linear-gradient(180deg,color-mix(in srgb,var(--card-solid) 82%,transparent) 0%,color-mix(in srgb,var(--card-solid) 32%,transparent) 25%,color-mix(in srgb,var(--card-solid) 28%,transparent) 65%,color-mix(in srgb,var(--card-solid) 82%,transparent) 100%);
}
.dish-history-header,.dish-tabs,.swipe-hint { position:relative; z-index:4; background:color-mix(in srgb,var(--card-solid) 60%,transparent); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.dish-history-body { flex:1; min-height:0; overflow:hidden; padding:0; }
#dish-tab-history { position:relative; height:100%; min-height:0; }
.dish-chart-wrap {
    position:absolute;
    inset:0;
    min-height:0;
    border:0;
    border-radius:0;
    background:transparent;
    padding:0;
    overflow:hidden;
}
.dish-chart-wrap canvas { position:absolute; inset:0; width:100%!important; height:100%!important; background:transparent!important; }
.dish-history-kpis {
    position:absolute;
    z-index:3;
    top:12px;
    left:14px;
    right:14px;
    margin:0;
    grid-template-columns:repeat(5,minmax(0,1fr));
    pointer-events:none;
}
#dish-tab-history .dish-chart-toggles {
    position:absolute;
    z-index:4;
    top:72px;
    right:14px;
    margin:0;
    pointer-events:auto;
}
.history-kpi { min-height:52px; padding:8px 10px; background:color-mix(in srgb,var(--card-solid) 55%,transparent); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:none; }
.dish-alert-actions {
    position:absolute;
    z-index:3;
    left:50%;
    bottom:12px;
    transform:translateX(-50%);
    width:min(520px,calc(100% - 28px));
    padding:0;
}
.alert-action { background:color-mix(in srgb,var(--card-solid) 55%,transparent); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.dish-history-empty {
    position:absolute;
    inset:0;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:24px;
    color:var(--text-secondary);
    background:transparent;
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
}
.dish-history-empty[hidden] { display:none; }
.dish-history-empty i { font-size:2.2rem; color:var(--accent-bright); margin-bottom:14px; }
.dish-history-empty h3 { color:var(--text-primary); font-size:1.2rem; }
.dish-history-empty p { max-width:480px; margin-top:8px; line-height:1.6; font-size:.75rem; }
.history-source-badge.none { color:var(--text-muted); }

@media (max-width:760px) {
    .dish-history-shell { border-radius:0; }
    .dish-history-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); top:8px; left:8px; right:8px; }
    .history-kpi { min-height:48px; }
    .dish-alert-actions { bottom:8px; }
}
