@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;600;700;800;900&display=swap";:root{--bg: #080c14;--surface: rgba(255,255,255,.04);--surface2: rgba(255,255,255,.06);--glass: rgba(12,20,35,.85);--border: rgba(255,255,255,.08);--accent: #2dd4bf;--accent-glow: rgba(45,212,191,.2);--accent2: #3b82f6;--green: #10b981;--red: #ef4444;--text: #f1f5f9;--text-muted: #64748b;--text-dim: #2d3f55;--font: "Inter", sans-serif;--heading: "Outfit", sans-serif;--ease: cubic-bezier(.4,0,.2,1);--r: 16px;--r-sm: 10px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:15px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;background-image:radial-gradient(ellipse 70% 40% at 5% 0%,rgba(45,212,191,.07) 0%,transparent 60%),radial-gradient(ellipse 50% 35% at 95% 100%,rgba(59,130,246,.07) 0%,transparent 60%)}header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.5rem;background:var(--glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);flex-wrap:wrap}.logo{font-family:var(--heading);font-size:1.6rem;font-weight:900;letter-spacing:-.04em;background:linear-gradient(130deg,#2dd4bf,#3b82f6 60%,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap;flex-shrink:0}.resort-tabs{display:flex;gap:.25rem;background:#0000004d;border:1px solid var(--border);border-radius:12px;padding:3px;flex-shrink:0}.tab-btn{font-family:var(--font);font-size:.82rem;font-weight:600;padding:.45rem 1.1rem;border-radius:9px;border:none;cursor:pointer;background:transparent;color:var(--text-muted);transition:all .2s var(--ease);white-space:nowrap}.tab-btn.active{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 2px 12px var(--accent-glow)}.tab-btn[data-resort].active{background:#2dd4bf26;color:var(--accent);border:1px solid rgba(45,212,191,.4);box-shadow:none}.tab-btn[data-resort]:hover:not(.active){color:var(--text);background:var(--surface2)}#calc-toggle-btn.active{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 2px 12px var(--accent-glow)}.tab-btn:hover:not(.active){color:var(--text);background:var(--surface2)}.header-controls{display:flex;align-items:center;gap:.75rem;margin-left:auto}.ctrl-group{display:flex;align-items:center;gap:.5rem;background:#00000040;border:1px solid var(--border);border-radius:var(--r-sm);padding:.4rem .9rem}.ctrl-group label{font-size:.75rem;color:var(--text-muted);font-weight:500;white-space:nowrap}select,input[type=number]{background:transparent;border:none;color:var(--text);font-family:var(--font);font-size:.85rem;font-weight:600;outline:none}select option{background:#1e293b}input[type=number]{width:48px}.app-layout{max-width:1800px;margin:0 auto;padding:1.5rem;display:grid;grid-template-columns:300px minmax(0,1fr) auto;gap:1.5rem;align-items:start;transition:all .3s ease}.left-col{min-width:0;width:100%}.calc-aside{width:380px;transition:all .3s cubic-bezier(.4,0,.2,1);opacity:1}.calc-aside.collapsed{width:0;opacity:0;margin-left:-1.5rem;overflow:hidden;pointer-events:none}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.panel+.panel{margin-top:1.25rem}.panel-head{padding:1rem 1.25rem .85rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;min-width:0;overflow:hidden}.panel-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.panel-body{padding:1.1rem 1.25rem 1.25rem;min-width:0}#venue-sort-select,#venue-location-select{width:100%;max-width:100%;box-sizing:border-box;height:32px;padding:0 .75rem}.search-wrap{margin-bottom:.85rem}.search-input-wrap{position:relative}.search-input-wrap:before{content:"⌕";position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--text-dim);pointer-events:none;font-size:1rem;z-index:1}#restaurant-search{width:100%;background:#0003;border:1px solid var(--border);border-radius:var(--r-sm);padding:.6rem .75rem .6rem 2.2rem;color:var(--text);font-family:var(--font);font-size:.85rem;outline:none;transition:border-color .2s}#restaurant-search:focus{border-color:var(--accent)}#restaurant-search::placeholder{color:var(--text-dim)}.venue-list{max-height:calc(100vh - 240px);overflow-y:auto;overflow-x:hidden;padding-right:.2rem}.venue-list::-webkit-scrollbar{width:3px}.venue-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.venue-item{position:relative;padding:.85rem 3rem .85rem 1rem;border-radius:12px;cursor:pointer;margin-bottom:.3rem;border:1px solid transparent;transition:all .2s var(--ease);width:100%;margin-left:0;transform:none;left:0}.venue-item:hover{background:var(--surface2)}.venue-item.active{background:#2dd4bf12;border-color:#2dd4bf4d}.venue-item.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--accent);border-radius:0 3px 3px 0}.venue-name{font-size:.88rem;font-weight:600;line-height:1.3;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-indent:0}.venue-hotel{font-size:.74rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.venue-badge{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:.58rem;font-weight:800;letter-spacing:.06em;padding:.12rem .4rem;border-radius:5px;background:#ffffff0a;color:var(--text-dim);border:1px solid var(--border);white-space:nowrap}.count-badge{font-size:.7rem;font-weight:600;color:var(--text-muted);background:var(--surface2);border:1px solid var(--border);padding:.2rem .6rem;border-radius:50px}.main-col{display:flex;flex-direction:column;gap:1.25rem;min-width:0}#menu-pill-card{display:none}.pill-bar{display:flex;flex-wrap:wrap;gap:.5rem}.menu-pill{font-family:var(--font);font-size:.82rem;font-weight:600;padding:.5rem 1.2rem;border:1px solid var(--border);border-radius:50px;cursor:pointer;background:transparent;color:var(--text-muted);transition:all .2s var(--ease);white-space:nowrap}.menu-pill:hover{border-color:var(--accent);color:var(--text)}.menu-pill.active{background:var(--accent);border-color:var(--accent);color:#0f172a;font-weight:700;box-shadow:0 2px 14px var(--accent-glow)}#history-card{display:none}.chart-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem}.chart-name{font-family:var(--heading);font-size:1rem;font-weight:700}.chart-sub{font-size:.74rem;color:var(--text-muted);margin-top:.2rem}.items-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem;gap:1rem;flex-wrap:wrap}.items-hdr-title{font-family:var(--heading);font-size:1.15rem;font-weight:700}.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.item-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1.2rem;cursor:pointer;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.75rem;min-height:0;transition:all .25s var(--ease)}.item-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 85% 15%,rgba(45,212,191,.05),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}.item-card:hover{border-color:#2dd4bf4d;transform:translateY(-2px);box-shadow:0 12px 35px -10px #0009}.item-card:hover:before{opacity:1}.item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.item-name{font-size:.9rem;font-weight:600;line-height:1.4;word-break:break-word}.item-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.snap-tag{font-size:.7rem;color:var(--text-muted)}.resort-tag{font-size:.6rem;font-weight:800;letter-spacing:.05em;padding:.12rem .4rem;border-radius:5px;border:1px solid var(--border);color:var(--text-dim)}.item-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:.5rem;flex-wrap:nowrap}.item-price{font-family:var(--heading);font-size:1.3rem;font-weight:800;color:var(--accent)}.price-na{font-size:.75rem;color:var(--text-dim);font-style:italic}.add-btn{width:36px;height:36px;border-radius:10px;border:none;background:var(--accent);color:#0c1a28;font-size:1.4rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:all .2s var(--ease);flex-shrink:0}.add-btn:hover{transform:scale(1.1);box-shadow:0 4px 16px var(--accent-glow)}.link-btn{background:none;border:none;cursor:pointer;font-size:.9rem;color:var(--text-dim);padding:2px;line-height:1;transition:color .2s;flex-shrink:0}.link-btn:hover{color:var(--accent)}.comp-btn{font-size:.72rem!important;font-weight:600;color:var(--text-muted)!important;background:#ffffff0d!important;border:1px solid var(--border)!important;border-radius:8px!important;padding:.3rem .6rem!important;cursor:pointer;white-space:nowrap;transition:all .2s var(--ease);font-family:var(--font)}.comp-btn:hover{background:#2dd4bf1a!important;color:var(--accent)!important;border-color:#2dd4bf66!important}.empty-state{text-align:center;padding:3.5rem 1rem;color:var(--text-muted)}.empty-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.4}.empty-state p{font-size:.88rem;line-height:1.6}.calc-wrap{position:sticky;top:80px}.calc-panel{background:linear-gradient(160deg,#121c30f2,#080e1cfa);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:0 25px 60px -15px #000000b3}.calc-head{padding:1.2rem 1.4rem;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.calc-title-block .calc-title{font-family:var(--heading);font-size:1.05rem;font-weight:700}.calc-title-block .calc-sub{font-size:.74rem;color:var(--text-muted);margin-top:.2rem;line-height:1.4}.clear-btn{font-size:.74rem;font-weight:600;color:var(--red);background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:8px;padding:.35rem .75rem;cursor:pointer;white-space:nowrap;transition:background .2s;flex-shrink:0}.clear-btn:hover{background:#ef444433}.cart-body{padding:.75rem 1.4rem;max-height:320px;overflow-y:auto}.cart-body::-webkit-scrollbar{width:3px}.cart-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.cart-empty{text-align:center;padding:2.5rem 1rem;color:var(--text-dim);font-size:.83rem;line-height:1.7}.cart-row{display:flex;align-items:flex-start;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.item-description{font-size:.78rem;color:var(--text-muted);margin-top:.4rem;line-height:1.4}.allergen-list{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.2rem}.allergen-badge{font-size:.6rem;font-weight:700;color:#fff;background:#3b82f6;padding:.1rem .3rem;border-radius:4px}.allergen-pill{border-color:#3b82f6!important}.allergen-pill.active{background:#3b82f6!important;color:#fff!important;box-shadow:0 4px 12px #3b82f64d!important}.cart-row-name{flex:1;font-size:.82rem;font-weight:500;line-height:1.4}.cart-row-price{font-size:.85rem;font-weight:700;color:var(--accent);white-space:nowrap}.rm-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 2px;transition:color .2s}.rm-btn:hover{color:var(--red)}.calc-totals{padding:1.2rem 1.4rem;border-top:1px solid var(--border);background:#00000026}.tot-row{display:flex;justify-content:space-between;align-items:center;font-size:.83rem;color:var(--text-muted);margin-bottom:.65rem}.tot-row:last-of-type{margin-bottom:0}.grand-row{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.grand-label{font-family:var(--heading);font-size:1.25rem;font-weight:800}.grand-value{font-family:var(--heading);font-size:1.5rem;font-weight:900;color:var(--accent)}.savings-pill{margin-top:1rem;text-align:center;font-size:.78rem;font-weight:600;color:var(--green);background:#10b98114;border:1px solid rgba(16,185,129,.2);border-radius:10px;padding:.6rem 1rem;line-height:1.5}.venue-name-hdr{font-family:var(--heading);font-size:.8rem;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem;opacity:.9}.section-filter{display:flex;flex-wrap:wrap;gap:.6rem;padding:1rem 0;margin-bottom:.5rem;border-bottom:1px solid var(--border)}.section-pill{font-size:.75rem;font-weight:700;padding:.35rem .8rem;border-radius:12px;background:#ffffff0d;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all .2s;text-transform:uppercase}.section-pill.active{background:var(--accent);border-color:var(--accent);color:#0f172a;box-shadow:0 4px 12px var(--accent-glow)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeUp .3s var(--ease) both}.switch{position:relative;display:inline-block;width:34px;height:20px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--surface2);transition:.4s;border:1px solid var(--border)}.slider:before{position:absolute;content:"";height:14px;width:14px;left:2px;bottom:2px;background-color:var(--text-muted);transition:.4s}input:checked+.slider{background-color:var(--accent-glow);border-color:var(--accent)}input:checked+.slider:before{transform:translate(14px);background-color:var(--accent)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.badge-diff{font-size:.65rem;padding:.2rem .5rem;border-radius:4px;font-weight:800;text-transform:uppercase}.badge-added{background:#22c55e1a;color:#4ade80;border:1px solid rgba(34,197,94,.2)}.badge-removed-diff{background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.2)}.price-change{display:flex;align-items:center;gap:.4rem}.price-old{color:var(--text-muted);text-decoration:line-through;font-size:.75rem}.price-up{color:#f87171;font-weight:800}.price-down{color:#4ade80;font-weight:800}.price-diff-indicator{font-size:.7rem;padding:.1rem .3rem;border-radius:4px;margin-left:.3rem}.diff-up{background:#ef44441a;color:#f87171}.diff-down{background:#22c55e1a;color:#4ade80}.item-card.removed{opacity:.6;background:#ffffff05;border-style:dashed}.item-card.removed:hover{opacity:.9}.mini-sort{background:#ffffff0d;border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:.15rem .4rem;font-size:.7rem;font-weight:700;cursor:pointer;outline:none;transition:all .2s;font-family:var(--font);text-transform:uppercase}.mini-sort:hover{background:#ffffff1a;color:var(--text);border-color:var(--text-muted)}.mini-sort option{background:#1e293b;color:var(--text);text-transform:none}.revision-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1rem;cursor:pointer;transition:all .2s}.revision-item:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px #0003}.revision-date{font-size:.75rem;color:var(--accent);font-weight:700;margin-bottom:.5rem;text-transform:uppercase}.revision-name{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:.25rem}.revision-meta{display:flex;gap:1rem;font-size:.8rem;color:var(--text-muted)}.rev-stat{display:flex;align-items:center;gap:.3rem}.rev-stat.added{color:#22c55e}.rev-stat.removed{color:#ef4444}.rev-stat.changed{color:var(--accent)}.rev-stat.increase{color:#f97316}.removed-badge{font-size:.6rem;font-weight:800;background:#ef44441a;color:#f87171;padding:.12rem .4rem;border-radius:5px;border:1px solid rgba(239,68,68,.2)}.search-mode-btn{flex:1;border:none;background:transparent;color:var(--text-muted);padding:.4rem;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s var(--ease);font-family:var(--font);font-weight:600}.search-mode-btn.active{background:#ffffff1a;color:var(--accent)}.search-mode-btn:hover:not(.active){color:var(--text);background:#ffffff0d}#snapshot-container{flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}#snapshot-container .switch{flex-shrink:0}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:var(--accent);color:#0f172a;padding:.8rem 1.5rem;border-radius:50px;font-weight:700;font-size:.9rem;box-shadow:0 10px 40px -10px var(--accent-glow);z-index:1000;display:none}.mini-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#ffffff0f;border:1px solid var(--border);color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s;padding:0;line-height:1}.mini-btn:hover{background:#2dd4bf26;color:var(--accent);border-color:var(--accent)}@keyframes toastFadeUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastFadeDown{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(12px)}}.toast.toast-enter{animation:toastFadeUp .3s var(--ease) forwards}.toast.toast-exit{animation:toastFadeDown .25s var(--ease) forwards}.section-filter{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.8rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.section-pill{background:#ffffff0d;border:1px solid var(--border);color:var(--text-muted);border-radius:20px;padding:.3rem .8rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s var(--ease);white-space:nowrap}.section-pill:hover{background:#ffffff1a;color:var(--text)}.section-pill.active{background:#2dd4bf26;border-color:var(--accent);color:var(--accent)}.desc-wrapper{margin-top:.3rem}.item-description{font-size:.8rem;color:var(--text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;transition:all .3s var(--ease)}.item-description.expanded{display:block;-webkit-line-clamp:unset}.read-more-btn{background:none;border:none;color:var(--accent);font-size:.75rem;padding:0;margin-top:.2rem;cursor:pointer;font-weight:600;display:none}.read-more-btn:hover{text-decoration:underline}.allergen-check-row{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--text);cursor:pointer;padding:.3rem .4rem;border-radius:6px;transition:background .15s}.allergen-check-row:hover{background:#ffffff0f}.allergen-check-row input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;flex-shrink:0}
