:root { --bg:#f7f6f2; --panel:#fff; --panel2:#f1efe9; --line:#e4e1d9; --text:#171a18; --muted:#74766f; --blue:#7897df; --cyan:#32c5c8; --purple:#8265d4; --pink:#ed6299; --yellow:#f4c94f; }
body { color:var(--text); background:#e9e9e4; }
.wave-hero,.free-zone { color:#fff; }
.app-shell { background:var(--bg); box-shadow:0 0 70px rgba(28,29,26,.14); }
.wave-header,.app-header { border-bottom-color:rgba(226,223,215,.9); background:rgba(250,249,246,.94); }
.wave-mark,.brand-mark { border-color:#9ccfd2; color:#fff; background:linear-gradient(135deg,#2dbfc4,#7897df); box-shadow:0 8px 20px rgba(50,197,200,.18); }
.wave-brand small,.header-copy small { color:#85877f; }
.d-day { border-color:#d9e8e8; color:#2b6668; background:#edf8f7; }
.d-day span { color:#39989c; }
.icon-button { border-color:var(--line); color:var(--text); background:#fff; }
.area-switch button { border-color:var(--line); color:var(--muted); background:#fff; }
.area-switch button.active { border-color:#2dbfc4; color:#fff; background:#2dbfc4; }
.online-bridge { display:grid; gap:9px; margin:16px 16px 0; }
.online-bridge>a { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:73px; padding:13px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 8px 22px rgba(34,35,31,.05); }
.bridge-icon { position:relative; display:grid; place-items:center; width:46px; height:46px; border-radius:15px; }
.bridge-icon.live { color:#116b70; background:#daf5f4; }
.bridge-icon.chat { color:#563f98; background:#ebe4ff; }
.bridge-icon svg { width:22px; height:22px; }
.bridge-icon i { position:absolute; top:7px; right:7px; width:7px; height:7px; border:2px solid #daf5f4; border-radius:50%; background:#e85475; }
.online-bridge small { color:#32a4a9; font-size:6px; font-weight:900; letter-spacing:.09em; }
.online-bridge strong { display:block; margin-top:4px; font-size:10px; }
.online-bridge p { margin:3px 0 0; color:var(--muted); font-size:7px; }
.online-bridge>a>b { color:#85877f; font-size:8px; }
.passport-preview { border-color:#dedbd2; background:linear-gradient(135deg,#fff,#f2f4f8); box-shadow:0 10px 25px rgba(30,31,28,.05); }
.passport-cover { color:#fff; background:linear-gradient(145deg,#31c0c5,#7897df 58%,#8e6cd7); }
.stamp-track span { border-color:#ccc9c1; color:#aaa79e; }
.stamp-track span.done { color:#fff; background:#2dbfc4; }
.stamp-track i { background:#ddd9d0; }
.schedule-card,.venue-card,.reward-list article,.saved-events a { border-color:var(--line); background:#fff; box-shadow:0 7px 19px rgba(31,32,29,.04); }
.circuit-map { border-color:#dfdcd4; background:radial-gradient(circle at 80% 15%,rgba(130,101,212,.1),transparent 35%),linear-gradient(145deg,#fff,#f0f3f7); }
.circuit-path { border-color:#aeb6c7; }
.circuit-stop>span { border-color:#fff; color:#fff; background:linear-gradient(135deg,#2dbfc4,#8265d4); box-shadow:0 0 0 4px #e9e7e2,0 7px 18px rgba(89,113,162,.2); }
.walk-info { background:rgba(255,255,255,.8); }
.walk-info strong { color:var(--text); }
.wave-manifesto { border-color:#dedbd3; background:linear-gradient(135deg,#fff,#edf3f4); }
.wave-manifesto>span { color:#fff; background:linear-gradient(145deg,#8265d4,#32c5c8); }
.bottom-nav { border-top-color:#e3e0d8; background:rgba(255,255,255,.97); box-shadow:0 -10px 28px rgba(28,29,26,.08); }
.nav-item { color:#94958f; }
.nav-item.active { color:#23aeb3; }
.dark-search { border-color:var(--line); background:#fff; box-shadow:0 8px 20px rgba(30,31,28,.04); }
.dark-search input { color:var(--text); }
.filter-chips button,.saved-tabs button { border-color:var(--line); color:var(--muted); background:#fff; }
.filter-chips button.active,.saved-tabs button.active { border-color:#2dbfc4; color:#fff; background:#2dbfc4; }
.digital-passport { border-color:#b8c7d3; color:#fff; background:radial-gradient(circle at 95% 5%,rgba(50,197,200,.22),transparent 32%),linear-gradient(145deg,#36516c,#6175a8); box-shadow:0 18px 40px rgba(56,74,99,.2); }
.passport-profile { border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.08); }
.passport-profile span,.passport-profile small,.passport-progress p { color:rgba(255,255,255,.62); }
.passport-stamp { border-color:rgba(255,255,255,.35); color:rgba(255,255,255,.48); }
.passport-stamp.collected { border-color:#78f0ec; color:#78f0ec; background:rgba(72,216,213,.1); }
.passport-progress>i { background:rgba(255,255,255,.18); }
.route-summary { border-color:#d9dce6; background:radial-gradient(circle at 95% 10%,rgba(130,101,212,.13),transparent 35%),#fff; box-shadow:0 9px 24px rgba(31,32,29,.05); }
.free-zone { box-shadow:0 14px 34px rgba(26,27,24,.16); }
@media(max-width:359px){.online-bridge{margin-right:12px;margin-left:12px}}
