﻿:root {
  --bg:#0a0a0a; --bg2:#141414; --bg3:#1c1c1c; --bg4:#242424;
  --border:rgba(255,255,255,0.08); --text:#fff; --text2:rgba(255,255,255,0.55); --text3:rgba(255,255,255,0.3);
  --accent:#f5c518; --accent2:#ff9500; --green:#30d158; --red:#ff453a; --orange:#ff9f0a; --blue:#0a84ff; --purple:#bf5af2;
  --radius:20px; --radius-sm:12px;
  --sat: env(safe-area-inset-top, 0px);
  --sab: env(safe-area-inset-bottom, 0px);
  --nav-height: 60px;
  --nav-bottom-pad: 2px;
  --nav-bottom-offset: 0px;
  --nav-total: calc(var(--nav-height) + var(--nav-bottom-pad) + 6px);
}
html:not(.native-app) {
  --nav-bottom-pad: 0px;
  --nav-bottom-offset: 0px;
  --nav-total: 78px;
}
html.native-app {
  --nav-bottom-pad: max(10px, calc(var(--sab) - 12px));
  --nav-bottom-offset: 0px;
  --nav-total: calc(78px + var(--sab));
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{width:100%;height:100%;background:var(--bg)}
body{font-family:'DM Sans',-apple-system,sans-serif;background:var(--bg);color:var(--text);width:100%;height:100%;min-height:100vh;min-height:100svh;min-height:100dvh;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-font-smoothing:antialiased;}
.app{width:100%;max-width:430px;height:100vh;height:100svh;height:100dvh;min-height:100vh;min-height:100svh;min-height:100dvh;margin:0 auto;position:relative;overflow:hidden;background:var(--bg)}
html:not(.native-app),html:not(.native-app) body{background:#050505!important;height:var(--app-height,100vh)!important;min-height:var(--app-height,100vh)!important;overflow:hidden}
html:not(.native-app) .app{height:var(--app-height,100vh)!important;min-height:var(--app-height,100vh)!important;max-height:var(--app-height,100vh)!important;background:#050505!important}
.app.loading .screen,.app.loading .nav-bar{visibility:hidden}
.boot-screen{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:radial-gradient(circle at 50% 44%,rgba(245,197,24,.14),transparent 23%),radial-gradient(circle at 12% 18%,rgba(245,197,24,.12),transparent 31%),radial-gradient(circle at 88% 82%,rgba(255,149,0,.13),transparent 32%),linear-gradient(155deg,#050505 0%,#11100c 46%,#050505 100%);color:var(--accent);text-align:center;font-family:'DM Sans',-apple-system,sans-serif;transition:opacity .28s ease,visibility .28s ease}
.boot-screen::before{content:"";position:absolute;width:320px;height:320px;left:-105px;top:12%;border-radius:40% 60% 48% 52%;background:linear-gradient(135deg,rgba(245,197,24,.16),rgba(255,149,0,.055) 54%,rgba(255,255,255,.018));box-shadow:inset 0 0 0 1px rgba(245,197,24,.12),0 28px 90px rgba(245,197,24,.055);transform:rotate(-19deg)}
.boot-screen::after{content:"";position:absolute;width:238px;height:238px;right:-84px;bottom:13%;border-radius:54px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(245,197,24,.08) 42%,rgba(255,149,0,.045));box-shadow:inset 0 0 0 1px rgba(255,255,255,.065),0 24px 80px rgba(255,149,0,.06);transform:rotate(18deg)}
.boot-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}
.boot-mark{position:relative;z-index:1;width:92px;height:92px;display:flex;align-items:center;justify-content:center;background:transparent;box-shadow:none;animation:bootMoonFloat 2.6s ease-in-out infinite}
.boot-mark::before{content:"";position:absolute;inset:-58px;border-radius:44px;background:linear-gradient(150deg,rgba(255,255,255,.035),rgba(245,197,24,.075),rgba(255,149,0,.035));box-shadow:inset 0 0 0 1px rgba(255,255,255,.045),0 20px 80px rgba(245,197,24,.12);transform:rotate(-12deg);z-index:-1}
.boot-mark svg{width:58px;height:58px;stroke:currentColor;fill:none;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;transform:rotate(-12deg);filter:drop-shadow(0 0 22px rgba(245,197,24,.32))}
@keyframes bootMoonFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.025)}}

.screen{position:absolute;inset:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease;transform:translateX(30px)}
.screen.active{opacity:1;pointer-events:all;transform:translateX(0);z-index:10}
.screen.slide-left{transform:translateX(-30px);opacity:0;pointer-events:none}
.screen.slide-up{transform:translateY(100%);opacity:0;pointer-events:none}
.screen.slide-up.active{transform:translateY(0);opacity:1}

.scroll-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--nav-total) + 16px)}
#screen-home .scroll-content{padding:0 16px calc(var(--nav-total) + 20px)!important}
#screen-group-session .scroll-content{padding-bottom:calc(var(--nav-total) + 28px)!important}
.status-bar{height:var(--sat);min-height:0;flex-shrink:0}

/* NAV */
.nav-bar{position:fixed;bottom:var(--nav-bottom-offset);left:50%;transform:translateX(-50%);width:100%;max-width:430px;background:rgba(10,10,10,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);display:flex;padding-bottom:var(--nav-bottom-pad);padding-top:4px;z-index:100}
html:not(.native-app) .nav-bar{position:absolute!important;left:0!important;right:0!important;bottom:0!important;transform:none!important;width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;padding:6px 4px!important;align-items:center!important;overflow:hidden!important;border-radius:34px!important;background:rgba(8,6,4,0.38)!important;backdrop-filter:blur(48px) saturate(200%) brightness(0.88)!important;-webkit-backdrop-filter:blur(48px) saturate(200%) brightness(0.88)!important;border:none!important;box-shadow:0 16px 48px rgba(0,0,0,0.55),0 2px 8px rgba(0,0,0,0.28),inset 0 1.5px 0 rgba(245,197,24,0.38),inset 0 -1px 0 rgba(245,197,24,0.12),inset 1.5px 0 0 rgba(245,197,24,0.18),inset -1.5px 0 0 rgba(245,197,24,0.10),0 0 0 0.5px rgba(245,197,24,0.22)!important}
html:not(.native-app) .nav-bar.session-glow{box-shadow:0 16px 48px rgba(0,0,0,0.55),0 2px 8px rgba(0,0,0,0.28),inset 0 1.5px 0 rgba(48,209,88,0.38),inset 0 -1px 0 rgba(48,209,88,0.13),inset 1.5px 0 0 rgba(48,209,88,0.18),inset -1.5px 0 0 rgba(48,209,88,0.1),0 0 0 0.5px rgba(48,209,88,0.24),0 0 26px rgba(48,209,88,0.08)!important}
html:not(.native-app) body::after{content:none!important}
html:not(.native-app) .nav-item{height:50px!important;justify-content:center!important;gap:2px!important;padding:4px 0 3px!important}
html:not(.native-app) .nav-item .ni{width:22px;height:22px}
html:not(.native-app) .nav-item .ni svg{width:22px;height:22px}
html:not(.native-app) .nav-item .nl{font-size:9px}
html.native-app .nav-bar{position:fixed!important;left:10px!important;right:10px!important;bottom:22px!important;transform:none!important;width:auto!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;padding:6px 4px!important;align-items:center!important;overflow:hidden!important;border-radius:34px!important;background:rgba(8,6,4,0.38)!important;backdrop-filter:blur(48px) saturate(200%) brightness(0.88)!important;-webkit-backdrop-filter:blur(48px) saturate(200%) brightness(0.88)!important;border:none!important;box-shadow:0 16px 48px rgba(0,0,0,0.55),0 2px 8px rgba(0,0,0,0.28),inset 0 1.5px 0 rgba(245,197,24,0.38),inset 0 -1px 0 rgba(245,197,24,0.12),inset 1.5px 0 0 rgba(245,197,24,0.18),inset -1.5px 0 0 rgba(245,197,24,0.10),0 0 0 0.5px rgba(245,197,24,0.22)!important}
html.native-app .nav-bar.session-glow{box-shadow:0 16px 48px rgba(0,0,0,0.55),0 2px 8px rgba(0,0,0,0.28),inset 0 1.5px 0 rgba(48,209,88,0.38),inset 0 -1px 0 rgba(48,209,88,0.13),inset 1.5px 0 0 rgba(48,209,88,0.18),inset -1.5px 0 0 rgba(48,209,88,0.1),0 0 0 0.5px rgba(48,209,88,0.24),0 0 26px rgba(48,209,88,0.08)!important}
html.native-app .nav-item{height:50px!important;justify-content:center!important;gap:2px!important;padding:4px 0 3px!important}
html.native-app .nav-item .ni{width:22px;height:22px}
html.native-app .nav-item .ni svg{width:22px;height:22px}
html.native-app .nav-item .nl{font-size:9px}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0 6px;cursor:pointer}
.nav-item .ni{width:24px;height:24px;display:flex;align-items:center;justify-content:center}
.nav-item .ni svg{width:24px;height:24px;stroke:var(--text3);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s}
.nav-item .nl{font-size:10px;font-weight:500;color:var(--text3);letter-spacing:.3px}
.nav-item.active .nl{color:var(--accent)}
.nav-item.active .ni svg{stroke:var(--accent);filter:drop-shadow(0 0 6px rgba(245,197,24,.5))}
.nav-item.session-live{display:none;position:relative}
.nav-item.session-live.visible{display:flex}
.nav-item.session-live .nl{font-size:9px;font-weight:800}
.nav-item.session-live.visible::before{content:'';position:absolute;top:7px;width:34px;height:34px;border-radius:16px;background:rgba(48,209,88,.08);opacity:.85;animation:sessionNavPulse 3.8s ease-in-out infinite}
.nav-item.session-live .ni{position:relative;z-index:1;width:28px;height:28px;border-radius:14px;background:rgba(48,209,88,.1);border:1px solid rgba(48,209,88,.2);box-shadow:0 0 14px rgba(48,209,88,.16)}
.nav-item.session-live .ni svg{stroke:var(--green)}
.nav-item.session-live .nl{position:relative;z-index:1;color:var(--green)}
.nav-item.session-live.active .ni{background:rgba(48,209,88,.2);border-color:rgba(48,209,88,.48);box-shadow:0 0 18px rgba(48,209,88,.32)}
.nav-item.session-live.active .ni svg{stroke:var(--green);filter:drop-shadow(0 0 8px rgba(48,209,88,.65))}
.nav-item.session-live.active .nl{color:var(--green)}
@keyframes sessionNavPulse{0%,100%{transform:scale(.92);opacity:.42;box-shadow:0 0 0 0 rgba(48,209,88,.14)}50%{transform:scale(1.18);opacity:1;box-shadow:0 0 22px 8px rgba(48,209,88,.08)}}

/* HEADER */
.header{padding:4px 20px 16px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.header-title{font-size:28px;font-weight:800;letter-spacing:-.5px}
.header-sub{font-size:13px;color:var(--text2);margin-top:2px}

/* CARDS */
.card{background:var(--bg2);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}

/* BUTTONS */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;border:none;outline:none;cursor:pointer;font-family:inherit;font-weight:600;transition:transform .15s,opacity .15s;-webkit-appearance:none}
.btn:active{transform:scale(.96);opacity:.85}
.btn-primary{background:var(--accent);color:#000;border-radius:100px;font-size:17px;font-weight:700;padding:16px 24px;width:100%}
.btn-secondary{background:var(--bg3);color:var(--text);border-radius:100px;font-size:15px;font-weight:700;padding:14px 20px;width:100%}
.btn-danger{background:var(--red);color:#fff;border-radius:100px;font-size:17px;font-weight:700;padding:16px 24px;width:100%}
.btn-ghost{background:transparent;color:var(--text2);font-size:15px;padding:10px}
.btn-icon{background:var(--bg3);border-radius:50%;width:44px;height:44px;font-size:20px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.btn-icon.friends-add-btn{font-size:0}
.btn-icon.friends-add-btn span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:25px;line-height:1;font-weight:500;transform:translateY(-1px)}

/* SECTION */
.section-head{display:flex;align-items:center;justify-content:space-between;padding:0 20px;margin-bottom:10px}
.section-title{font-size:17px;font-weight:700}
.section-action{font-size:13px;color:var(--accent);font-weight:500;cursor:pointer}

/* INPUTS */
.input-field{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;font-size:16px;color:var(--text);font-family:inherit;outline:none;width:100%;transition:border-color .2s}
.input-field:focus{border-color:var(--accent)}
.input-label{font-size:13px;color:var(--text2);font-weight:500}
.input-group{display:flex;flex-direction:column;gap:8px}

/* DIVIDER */
.divider-text{display:flex;align-items:center;gap:12px;margin:0 16px 16px;font-size:13px;color:var(--text3)}
.divider-text::before,.divider-text::after{content:'';flex:1;height:1px;background:var(--border)}

/* TOAST */
.toast{position:fixed;top:calc(var(--sat) + 60px);left:50%;transform:translateX(-50%) translateY(-20px);background:var(--bg3);border:1px solid var(--border);border-radius:100px;padding:10px 20px;font-size:14px;font-weight:500;z-index:300;opacity:0;transition:all .25s;white-space:nowrap;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* OVERLAYS / SHEETS */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:flex-end;z-index:200;opacity:0;pointer-events:none;transition:opacity .3s}
.overlay.open{opacity:1;pointer-events:all}
.sheet{background:var(--bg2);border-radius:28px 28px 0 0;width:100%;padding:24px 24px calc(24px + var(--sab));display:flex;flex-direction:column;gap:16px;transform:translate3d(0,100%,0);transition:transform .5s cubic-bezier(.22,1,.36,1);max-height:90vh;overflow-y:auto;will-change:transform}
.overlay.open .sheet{transform:translateY(0)}
.sheet-handle{width:36px;height:4px;background:var(--bg4);border-radius:2px;margin:0 auto -8px}
.sheet-title{font-size:22px;font-weight:800;letter-spacing:-.5px;text-align:center}

/* GENDER ROW */
.gender-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gender-btn{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;font-size:15px;font-weight:600;color:var(--text2);cursor:pointer;font-family:inherit;transition:all .2s;text-align:center}
.gender-btn.active{background:rgba(245,197,24,.1);border-color:var(--accent);color:var(--accent)}

/* ======================== HOME ======================== */
.home-hero{min-height:104px;background:radial-gradient(circle at 16% 0%,rgba(245,197,24,.18),transparent 36%),linear-gradient(145deg,#211800 0%,#11100b 58%,#070707 100%);border-radius:22px;border:1px solid rgba(245,197,24,.24);padding:14px;margin-bottom:14px;position:relative;overflow:hidden;cursor:pointer;transition:transform .15s,border-color .15s;display:flex;flex-direction:column;justify-content:space-between}
.home-hero.active{background:linear-gradient(135deg,rgba(48,209,88,.22),#07110a 58%,#050805 100%);border-color:rgba(48,209,88,.32);box-shadow:0 0 34px rgba(48,209,88,.12)}
.home-hero.session-focus{min-height:104px;margin-bottom:14px;background:linear-gradient(145deg,#07180d 0%,#08120b 58%,#050805 100%);border-color:rgba(48,209,88,.38);box-shadow:0 14px 38px rgba(0,0,0,.28),0 0 28px rgba(48,209,88,.1)}
.home-hero.session-focus h1{font-size:28px;letter-spacing:-.8px}
.home-hero.session-focus p{font-size:12px;line-height:1.35;max-width:100%}
.home-hero.session-focus .home-hero-action{align-items:center}
.home-hero.session-focus .home-widget-kicker{color:var(--green)}
.home-hero.session-focus .home-widget-main{font-size:19px;letter-spacing:-.3px}
.home-hero.session-focus .home-widget-sub{font-size:11px;color:rgba(255,255,255,.72);margin-top:5px}
.home-hero.session-focus .home-hero-arrow{width:34px;height:34px;border-radius:13px;background:rgba(48,209,88,.17);color:var(--green);font-size:22px}
.home-hero:active{transform:scale(.985);border-color:rgba(245,197,24,.32)}
.home-hero::before{content:'';position:absolute;top:-46px;right:-38px;width:150px;height:150px;background:radial-gradient(circle,rgba(245,197,24,.1) 0%,transparent 70%);pointer-events:none}
.home-hero.active::before{background:radial-gradient(circle,rgba(48,209,88,.18) 0%,transparent 70%)}
.home-hero h1{font-size:28px;font-weight:900;letter-spacing:-.8px;line-height:1}
.home-hero p{font-size:12px;color:var(--text2);margin:5px 0 0}
.home-hero-action{margin-top:12px;padding-top:0;border-top:none;display:flex;align-items:center;justify-content:space-between;gap:14px;position:relative;z-index:1}
.home-hero-action .home-widget-kicker,.home-hero-action .home-widget-main{display:block}
.home-hero-action .home-widget-kicker{color:var(--accent);opacity:.9}
#homeHeroKicker{display:none!important}
.home-hero.active .home-hero-action .home-widget-kicker,.home-hero.active .home-hero-arrow{color:var(--green)}
.home-hero-action .home-widget-main{font-size:19px}
.home-hero-action .home-widget-sub{font-size:11px;color:var(--text2);margin-top:5px;display:block}
.home-hero-arrow{width:34px;height:34px;border-radius:13px;background:rgba(245,197,24,.16);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:22px}
.home-hero.active .home-hero-arrow{background:rgba(48,209,88,.16)}
.home-widget-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:16px}
.home-widget-grid.has-sober{grid-template-columns:1.08fr 0.92fr}
.home-session-card,.home-sober-card{min-height:118px;border-radius:22px;border:1px solid var(--border);padding:16px 14px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;cursor:pointer;font-family:inherit;text-align:left;transition:transform .15s,background .15s,border-color .15s}
.home-session-card{background:radial-gradient(circle at 16% 0%,rgba(245,197,24,.18),transparent 40%),linear-gradient(145deg,#211800 0%,#11100b 58%,#070707 100%);color:var(--text);border-color:rgba(245,197,24,.24);font-weight:900}
.home-session-card.active{background:linear-gradient(145deg,#07180d 0%,#08120b 58%,#050805 100%);border-color:rgba(48,209,88,.38);color:var(--text)}
.home-session-card:active,.home-sober-card:active{transform:scale(.98)}
.home-session-card-bottom{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}
.home-session-card-arrow{width:32px;height:32px;border-radius:12px;background:rgba(245,197,24,.16);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:22px;color:var(--accent)}
.home-session-card.active .home-session-card-arrow{background:rgba(48,209,88,.17);color:var(--green)}
.home-sober-card{background:linear-gradient(150deg,rgba(20,20,20,.96),rgba(48,209,88,.14));border-color:rgba(48,209,88,.28);color:var(--text)}
.home-widget-kicker{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.8px;opacity:.78}
.home-widget-main{font-size:19px;font-weight:900;letter-spacing:-.3px;line-height:1.05}
.home-sober-card .home-widget-main{font-size:25px;font-family:'DM Mono',monospace;color:var(--green)}
.home-widget-sub{font-size:11px;font-weight:700;opacity:.7}
.home-sober-warning{font-size:9px;line-height:1.25;color:var(--orange);font-weight:800;opacity:.95}
.home-map-reason-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.home-map-reason-grid.hide-daily-reason{grid-template-columns:1fr}
.home-map-reason-grid.hide-daily-reason .home-daily-reason-card{display:none}
.home-mini-map-card,.home-daily-reason-card{height:130px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);position:relative;background:var(--bg2)}
.home-mini-map-card{cursor:pointer}
.home-dashboard{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);grid-template-rows:auto minmax(0,1fr);gap:12px;margin-bottom:16px;align-items:stretch;grid-template-areas:"map actions" "map recent"}
.home-recent-panel{grid-column:2;grid-row:2;min-width:0;display:flex;align-items:stretch}
.home-side-stack{grid-column:2;grid-row:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.home-dashboard>.home-recent-panel{grid-area:recent}
.home-dashboard>.home-side-stack{grid-area:actions}
.home-dashboard>#homeMapCard{grid-area:map;grid-column:1;grid-row:1/3;width:100%;height:auto;min-height:330px;aspect-ratio:auto;border-radius:26px;background:#161616}
.home-dashboard>#homeMapCard #homeMiniMap{filter:saturate(.82) brightness(.82)}
.home-dashboard.no-sessions{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}
.home-dashboard.no-sessions .home-recent-panel{grid-area:recent;grid-column:2;grid-row:2}
.home-dashboard.no-sessions .home-side-stack{align-self:start}
.home-dashboard.no-sessions>#homeMapCard{grid-area:map;grid-column:1;grid-row:1/3;aspect-ratio:auto;height:auto;min-height:330px;border-radius:26px}
.home-side-action{width:100%;aspect-ratio:1/1;border-radius:26px;border:1px solid rgba(255,255,255,.1);background:#161616;color:var(--text);font-family:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:7px;padding:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:transform .15s,border-color .15s,background .15s}
.home-side-action:active{transform:scale(.98);background:#1d1d1d}
.home-mini-action{aspect-ratio:auto!important;height:58px;min-height:58px;flex:none;border-radius:18px;padding:9px 12px;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px}
.home-mini-action .home-action-plus{width:28px;height:28px;min-width:28px;border-radius:11px;font-size:20px}
.home-mini-action .home-action-title{font-size:12.5px;line-height:1.08;letter-spacing:0;max-width:calc(100% - 38px)}
.home-plan-card{border-color:rgba(255,255,255,.1);background:#161616}
.home-plan-card .home-action-plus{color:var(--accent);background:rgba(245,197,24,.12);border-color:rgba(245,197,24,.22)}
.home-plan-card .home-action-title{color:#fff}
.home-plan-card .home-action-sub{display:none}
.home-side-stack.sober-only .home-side-action{aspect-ratio:1/1;min-height:0;border-radius:26px}
.home-quick-card{cursor:pointer}
.home-quick-card .home-action-plus{color:var(--accent);background:rgba(245,197,24,.12);border-color:rgba(245,197,24,.22)}
.home-action-plus{width:34px;height:34px;border-radius:13px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:23px;font-weight:950;line-height:1;color:var(--accent)}
.home-action-title{font-size:16px;font-weight:950;line-height:1.08;letter-spacing:-.35px;color:#fff}
.home-action-sub{font-size:11px;font-weight:800;color:var(--text3);line-height:1.25}
.home-quick-card.is-sober{border-color:rgba(48,209,88,.28);background:#141816}
.home-quick-card.is-sober .home-action-plus{color:var(--green);background:rgba(48,209,88,.12);border-color:rgba(48,209,88,.18)}
.home-quick-card.is-sober .home-action-title{color:var(--green);font-family:'DM Mono',monospace;font-size:18px}
@media(max-width:370px){.home-dashboard{gap:10px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}.home-side-stack{gap:8px}.home-side-action{padding:12px;border-radius:23px}.home-mini-action{height:54px;min-height:54px;padding:8px 10px;border-radius:16px;gap:8px}.home-mini-action .home-action-title{font-size:11.5px}.home-action-title{font-size:14px}.home-action-plus{width:31px;height:31px}.home-mini-action .home-action-plus{width:26px;height:26px;min-width:26px;font-size:18px}.home-dashboard>#homeMapCard{min-height:300px;border-radius:20px}}
.home-daily-reason-card{padding:14px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 12% 0%,rgba(245,197,24,.2),transparent 42%),linear-gradient(150deg,#15120b,#0c0c0c 70%);border-color:rgba(245,197,24,.2)}
.home-daily-reason-card .home-widget-kicker{color:var(--accent)}
.home-daily-reason-text{font-size:21px;font-weight:950;letter-spacing:-.55px;line-height:1.04;color:var(--text)}
@media(max-width:380px){.home-daily-reason-text{font-size:18px}.home-daily-reason-card{padding:13px 12px}}

.session-item{background:var(--bg2);border-radius:var(--radius);border:1px solid var(--border);padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:background .2s}
.session-item:active{background:var(--bg3)}
.session-group-faces{display:flex;align-items:center;margin-right:2px;flex-shrink:0}
.session-group-face{width:26px;height:26px;border-radius:50%;background:var(--bg3);border:2px solid var(--bg2);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:11px;font-weight:900;color:var(--text);margin-left:-7px}
.session-group-face:first-child{margin-left:0}
.session-group-face img{width:100%;height:100%;object-fit:cover}
.session-group-face.more{background:rgba(48,209,88,.18);color:var(--green);font-size:10px}
.stat-pill{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text2);font-weight:500}
.stat-pill .dot{width:7px;height:7px;border-radius:50%}

/* ======================== SESSION ======================== */
.session-header{display:flex;align-items:center;justify-content:flex-end;padding:8px 20px 0;flex-shrink:0}
.session-scroll{flex:1;overflow-y:auto;padding:0 16px calc(var(--nav-total) + 16px)}
.bac-hero{text-align:center;padding:16px 0 8px}
.bac-timer{font-size:13px;color:var(--text3);font-family:'DM Mono',monospace;letter-spacing:2px;margin-bottom:6px}
.bac-value{font-size:80px;font-weight:800;letter-spacing:-3px;line-height:1;font-family:'DM Mono',monospace;transition:color .5s}
.bac-status{font-size:17px;font-weight:600;margin-top:6px;display:flex;align-items:center;justify-content:center;gap:6px}
.sober-countdown{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px}
.sober-label{font-size:13px;color:var(--text2)}
.sober-time{font-size:15px;font-weight:700;font-family:'DM Mono',monospace;color:var(--green)}
.session-distance-pill{display:inline-flex;align-items:center;gap:7px;margin-top:10px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);border-radius:999px;padding:6px 11px;font-size:12px;color:var(--text2)}
.session-distance-pill strong{font-family:'DM Mono',monospace;color:var(--text);font-size:13px}
.bac-graph-mini{background:var(--bg2);border-radius:var(--radius);border:1px solid var(--border);padding:12px;margin:12px 0;height:80px;position:relative;overflow:hidden}
#bacMiniGraph,#soberGraphCanvas{display:block;width:100%;height:100%}
.quick-drinks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.quick-drinks-wrap{margin-bottom:14px}
.quick-drinks-add-favorites{width:100%;min-height:118px;border-radius:22px;border:1px dashed rgba(245,197,24,.38);background:radial-gradient(circle at 20% 0%,rgba(245,197,24,.18),transparent 46%),linear-gradient(145deg,rgba(245,197,24,.08),rgba(255,255,255,.03));color:var(--accent);font-family:inherit;font-size:18px;font-weight:950;letter-spacing:-.3px;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}
.quick-recent-head{display:flex;align-items:center;justify-content:space-between;margin:2px 0 8px;font-size:11px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:var(--text3)}
.quick-recent-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px}
.quick-recent-row .drink-btn{min-height:94px;background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border-style:dashed}
.drink-btn{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 6px 11px;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;transition:background .15s,transform .15s,border-color .15s;position:relative;overflow:hidden}
.drink-btn:active{transform:scale(.93);background:var(--bg3)}
.drink-btn.flash{border-color:var(--accent);background:rgba(245,197,24,.08)}
.drink-emoji{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text2)}
.drink-name{font-size:12px;font-weight:700;text-align:center;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drink-count{position:absolute;top:8px;right:8px;background:var(--accent);color:#000;border-radius:50%;width:20px;height:20px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}
.drink-count.show{opacity:1}
.add-more-btn{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;color:var(--text2);font-size:15px;font-weight:500;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .15s}
.add-more-btn:active{background:var(--bg3)}
.drink-log{margin-top:14px;background:var(--bg2);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}
.drink-log-head{padding:12px 14px;font-size:13px;color:var(--text2);font-weight:500;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.drink-swipe-wrap{position:relative;overflow:hidden;border-bottom:1px solid var(--border);touch-action:pan-y;background:rgba(255,69,58,.12)}
.drink-swipe-wrap:last-child{border-bottom:none}
.drink-row-delete{position:absolute;inset:0 0 0 auto;width:74px;border:none;background:linear-gradient(135deg,#ff453a,#b71f18);color:#fff;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:20px;font-weight:950;cursor:pointer}
.drink-row-foreground{position:relative;z-index:1;background:var(--bg2);transition:transform .22s ease}
.drink-swipe-wrap.open .drink-row-foreground{transform:translateX(-74px)}
.drink-row-minus-btn{width:26px;height:26px;border-radius:50%;border:1.5px solid rgba(255,69,58,.45);background:rgba(255,69,58,.1);color:#ff453a;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;line-height:1;padding:0;margin-right:4px;font-family:inherit}
.drink-log-item{padding:11px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);animation:slideIn .2s ease}
.drink-swipe-wrap .drink-log-item{border-bottom:none}
.drink-log-item:last-child{border-bottom:none}
@keyframes slideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.warning-banner{background:rgba(255,69,58,.12);border:1px solid rgba(255,69,58,.3);border-radius:var(--radius-sm);padding:12px 14px;margin:10px 0;display:flex;align-items:center;gap:10px}
.end-btn{background:rgba(255,69,58,.15);color:var(--red);border:1px solid rgba(255,69,58,.3);border-radius:100px;font-size:13px;font-weight:600;padding:6px 14px;cursor:pointer;font-family:inherit}

/* ======================== ADD DRINK ======================== */
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 16px;flex-shrink:0}
.modal-title{font-size:18px;font-weight:700}
.close-btn{font-size:22px;background:none;border:none;color:var(--text2);cursor:pointer;padding:4px}
.tab-bar{display:flex;padding:0 20px;margin-bottom:16px;flex-shrink:0;border-bottom:1px solid var(--border)}
.tab{padding:10px 20px;font-size:14px;font-weight:600;color:var(--text3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s}
.tab.active{color:var(--accent);border-bottom-color:var(--accent)}
#screen-adddrink .tab-bar{margin:0 16px 16px;padding:4px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.085);border-radius:22px;gap:4px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
#screen-adddrink .tab{flex:1;text-align:center;border:0;margin:0;border-radius:18px;padding:11px 14px;font-size:14px;font-weight:900;letter-spacing:-.1px;color:var(--text3);transition:background .18s ease,color .18s ease,transform .18s ease}
#screen-adddrink .tab.active{background:linear-gradient(135deg,var(--accent),#f09a00);color:#050505;box-shadow:0 8px 22px rgba(245,197,24,.16),inset 0 1px 0 rgba(255,255,255,.28)}
#screen-adddrink .tab:active{transform:scale(.98)}
#screen-adddrink.custom-mode #drinkTabContent{overflow:hidden!important;display:flex;flex-direction:column;min-height:0;padding-bottom:0!important}
.custom-drink-form{padding:0 16px calc(6px + var(--sab));display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow:hidden}
.custom-drink-icons{flex:1 1 auto;min-height:110px;display:flex;flex-direction:column;min-width:0;min-height:0}
.custom-icon-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-height:180px;overflow-y:auto;padding:2px;-webkit-overflow-scrolling:touch}
#screen-adddrink.custom-mode .custom-icon-picker{max-height:none;min-height:0;flex:1}
.custom-drink-fields{display:flex;flex-direction:column;gap:12px;flex-shrink:0}
.custom-drink-actions{margin-top:auto;display:flex;flex-direction:column;gap:10px;flex-shrink:0}
.custom-icon-picker::-webkit-scrollbar{display:none}
.custom-icon-option{height:48px;border:1px solid var(--border);border-radius:16px;background:var(--bg2);color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;transition:transform .15s,border-color .15s,background .15s,color .15s}
.custom-icon-option svg{width:24px;height:24px}
.custom-icon-option.active{color:var(--accent);border-color:rgba(245,197,24,.58);background:rgba(245,197,24,.1)}
.custom-icon-option:active{transform:scale(.94)}
.custom-drink-shortcut{margin:14px 16px 0;width:calc(100% - 32px);border:1px solid rgba(245,197,24,.2);border-radius:24px;background:radial-gradient(circle at 100% 0,rgba(245,197,24,.16),transparent 42%),linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025));padding:15px 16px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-family:inherit;font-size:15px;font-weight:900;color:var(--accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:transform .16s ease,border-color .16s ease,background .16s ease}
.custom-drink-shortcut:active{transform:scale(.985);border-color:rgba(245,197,24,.42);background:linear-gradient(145deg,rgba(245,197,24,.12),rgba(255,255,255,.03))}
.drinks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 16px}
.drink-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px 8px 12px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:transform .15s,background .15s,border-color .15s;text-align:center;position:relative}
.drink-card:active{transform:scale(.93)}
.drink-card.selected{border-color:var(--accent);background:rgba(245,197,24,.08)}
.drink-card-delete-btn,.drink-card-menu-btn{position:absolute;top:5px;right:5px;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1;padding:0;z-index:2;font-family:inherit}
.drink-card-delete-btn{border:1px solid rgba(255,69,58,.4);background:rgba(255,69,58,.12);color:#ff453a;font-size:14px;font-weight:700}
.drink-card-menu-btn{border:1px solid rgba(245,197,24,.28);background:rgba(245,197,24,.12);color:var(--accent);font-size:14px;font-weight:950}
.scan-drink-row{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px}
.scan-drink-btn{display:none!important;background:linear-gradient(135deg,rgba(245,197,24,.16),rgba(255,149,0,.08));border-color:rgba(245,197,24,.26);color:var(--accent);font-weight:800}
.barcode-sheet{background:var(--bg2);border-radius:28px;border:1px solid var(--border);padding:22px;width:100%;max-width:370px;display:flex;flex-direction:column;gap:13px;box-shadow:0 24px 90px rgba(0,0,0,.58)}
.barcode-video-wrap{height:230px;border-radius:22px;overflow:hidden;background:#050505;border:1px solid rgba(255,255,255,.1);position:relative}
#barcodeVideo{width:100%;height:100%;object-fit:cover;display:block}
.barcode-frame{position:absolute;inset:38px 34px;border:2px solid rgba(245,197,24,.82);border-radius:20px;box-shadow:0 0 0 999px rgba(0,0,0,.28),0 0 24px rgba(245,197,24,.2);pointer-events:none}
.barcode-status{min-height:18px;font-size:13px;color:var(--text2);text-align:center;line-height:1.35}
.barcode-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.barcode-source-pill{display:inline-flex;align-items:center;align-self:center;gap:6px;border:1px solid rgba(245,197,24,.22);background:rgba(245,197,24,.08);border-radius:999px;color:var(--accent);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.7px;padding:5px 9px}
@media(max-width:360px){.scan-drink-row{grid-template-columns:1fr}.barcode-video-wrap{height:200px}.barcode-form-grid{grid-template-columns:1fr}}

/* ======================== MAP ======================== */
.map-screen-container{flex:1;position:relative;overflow:hidden}
#leaflet-map{width:100%;height:100%;background:#141414}
.map-overlay-panel{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(10,10,10,.98) 0%,rgba(10,10,10,.7) 80%,transparent 100%);padding:16px 16px calc(16px + var(--sab));z-index:400}
.map-places-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}
.map-places-row::-webkit-scrollbar{display:none}
.map-place-chip{background:rgba(20,20,20,.9);border:1px solid var(--border);border-radius:100px;padding:8px 14px;white-space:nowrap;font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px;flex-shrink:0}
.map-friend-dot{position:absolute;z-index:500;transform:translate(-50%,-50%);pointer-events:none}
.map-friend-strip{position:absolute;right:10px;bottom:10px;z-index:30;display:flex;gap:7px;max-width:139px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:3px;pointer-events:auto}
.map-friend-strip::-webkit-scrollbar{display:none}
.map-friend-avatar-btn{width:40px;height:40px;border-radius:50%;border:2px solid var(--green);background:rgba(10,10,10,.9);box-shadow:0 7px 22px rgba(0,0,0,.5),0 0 0 3px rgba(48,209,88,.16);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 40px;color:var(--text);font-size:14px;font-weight:900;cursor:pointer}
.map-friend-avatar-btn img{width:100%;height:100%;object-fit:cover}
.full-map-friend-strip{right:16px;bottom:calc(86px + var(--sab));z-index:2100;max-width:146px}
.map-controls{position:absolute;top:16px;right:16px;z-index:400;display:flex;flex-direction:column;gap:8px}
.map-ctrl-btn{background:rgba(20,20,20,.9);border:1px solid var(--border);border-radius:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;backdrop-filter:blur(10px)}

/* Leaflet dark overrides */
.leaflet-tile-pane{filter:brightness(.85) saturate(.7) hue-rotate(180deg) invert(1)}
.leaflet-container{background:#0a0a0a}
.leaflet-control-attribution{display:none}
.leaflet-control-zoom{border:none!important;display:none}

/* ======================== GROUP ======================== */
.group-member{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}
.group-member:last-child{border-bottom:none}
.member-avatar{width:40px;height:40px;border-radius:50%;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;overflow:hidden}
.member-avatar img{width:100%;height:100%;object-fit:cover}
.bac-bar-wrap{width:80px;height:4px;background:var(--bg4);border-radius:2px;overflow:hidden;margin-top:3px}
.bac-bar-fill{height:100%;border-radius:2px;transition:width .5s}
.leader-card{flex:1;background:var(--bg3);border-radius:var(--radius-sm);padding:12px;text-align:center}
.feed-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.feed-item:last-child{border-bottom:none}
.group-room-hero{margin:0 16px 16px;border-radius:28px;border:1px solid rgba(48,209,88,.25);background:radial-gradient(circle at 78% 12%,rgba(48,209,88,.22),transparent 38%),linear-gradient(135deg,#101810,#070907);padding:18px}
.group-room-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.group-room-stat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:12px 8px;text-align:center}
.group-room-stat strong{display:block;font-size:22px;font-weight:900;font-family:'DM Mono',monospace}
.group-room-stat span{display:block;font-size:10px;color:var(--text2);font-weight:800;margin-top:3px;text-transform:uppercase;letter-spacing:.6px}
.group-compare-row{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border)}
.group-compare-row:last-child{border-bottom:none}
.group-color-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 18px currentColor}
.group-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:var(--bg3);border:1px solid var(--border);padding:5px 8px;font-size:11px;font-weight:800;color:var(--text2);margin:3px 4px 0 0}
.group-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:12px 14px}
.group-photo-tile{aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--bg3);border:1px solid var(--border);position:relative;cursor:pointer}
.group-photo-tile img{width:100%;height:100%;object-fit:cover;display:block}
.group-photo-owner{position:absolute;left:5px;bottom:5px;right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.68);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:3px 6px;font-size:9px;font-weight:800;color:#fff}
.recap-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px 14px}
.recap-mode-tabs button{border:1px solid var(--border);background:var(--bg2);color:var(--text2);border-radius:999px;padding:10px 12px;font-size:13px;font-weight:800;font-family:inherit;cursor:pointer}
.recap-mode-tabs button.active{background:var(--accent);border-color:var(--accent);color:#000}

/* ======================== PROFILE ======================== */
.profile-hero{margin:8px 16px 14px;border-radius:30px;border:1px solid rgba(245,197,24,.22);background:radial-gradient(circle at 86% 0%,rgba(245,197,24,.2),transparent 34%),radial-gradient(circle at 14% 88%,rgba(48,209,88,.12),transparent 34%),linear-gradient(145deg,#17130b 0%,#101010 62%,#070707 100%);padding:18px;position:relative;overflow:hidden;box-shadow:0 18px 54px rgba(0,0,0,.32);cursor:pointer}
.profile-hero:active{transform:scale(.99)}
.profile-hero-lv{position:absolute;right:16px;bottom:16px;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,var(--accent),var(--accent2));color:#050505;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:950;font-family:'DM Mono',monospace;box-shadow:0 6px 18px rgba(245,197,24,.28);z-index:2}
.profile-hero::before{content:'LAST NIGHT ID';position:absolute;right:16px;top:14px;font-size:9px;font-weight:950;letter-spacing:1.7px;color:rgba(255,255,255,.16)}
.profile-hero::after{content:'';position:absolute;right:-48px;bottom:-64px;width:180px;height:180px;border-radius:50%;border:1px solid rgba(245,197,24,.12);box-shadow:0 0 70px rgba(245,197,24,.08)}
.profile-id-main{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr;gap:15px;align-items:center;width:100%}
.profile-id-copy{min-width:0;padding-right:74px}
.profile-id-name{font-size:24px;font-weight:950;letter-spacing:-.75px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-id-meta{display:inline-flex;margin-top:7px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.055);padding:6px 9px;font-size:12px;color:var(--text2);font-weight:800;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-avatar-wrap{position:relative;width:90px;height:90px;cursor:pointer}
.profile-avatar{width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:40px;overflow:hidden;border:2px solid rgba(245,197,24,.42);box-shadow:0 14px 42px rgba(245,197,24,.16),0 0 0 6px rgba(255,255,255,.035)}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-avatar-edit{position:absolute;bottom:0;right:0;background:var(--accent);color:#000;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:13px;border:2px solid var(--bg)}
.friend-profile-menu-wrap{position:relative;width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.friend-profile-menu{position:absolute;right:0;top:42px;width:190px;border:1px solid var(--border);background:rgba(24,24,24,.98);border-radius:18px;padding:6px;box-shadow:0 18px 50px rgba(0,0,0,.45);z-index:50;display:none;flex-direction:column;transform-origin:top right}
.friend-profile-menu[hidden]{display:none!important}
.friend-profile-menu.open{display:flex}
.friend-profile-menu button{width:100%;border:0;background:transparent;color:var(--text);font-family:inherit;font-size:13px;font-weight:900;padding:11px 12px;border-radius:13px;display:flex;align-items:center;gap:9px;cursor:pointer;text-align:left}
.friend-profile-menu button:active{background:rgba(255,255,255,.06)}
.friend-profile-menu button.block{color:var(--orange)}
.friend-profile-menu button.remove{color:var(--red)}
.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:transparent;border-radius:0;overflow:visible;margin:0 16px 16px;border:none}
.profile-stat{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.085);border-radius:18px;padding:13px 7px;text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.profile-stat.clickable{cursor:pointer;transition:transform .16s,border-color .16s,background .16s}
.profile-stat.clickable:active{transform:scale(.96);border-color:rgba(245,197,24,.35);background:linear-gradient(180deg,rgba(245,197,24,.11),rgba(255,255,255,.025))}
.profile-stat-num{font-size:22px;font-weight:950;font-family:'DM Mono',monospace;letter-spacing:-.7px}
.profile-stat-label{font-size:10px;color:var(--text2);margin-top:3px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}
.profile-level-card{margin:0 16px 16px;border:1px solid rgba(245,197,24,.24);border-radius:24px;background:radial-gradient(circle at 88% 8%,rgba(245,197,24,.2),transparent 36%),linear-gradient(145deg,rgba(245,197,24,.12),rgba(255,255,255,.04));padding:16px;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;overflow:hidden;position:relative}
.profile-level-card.clickable{cursor:pointer}
.profile-level-card.clickable:active{transform:scale(.99)}
.profile-level-card::after{content:'';position:absolute;inset:auto 0 0 auto;width:120px;height:120px;border-radius:50%;background:rgba(245,197,24,.10)}
.level-orb{width:58px;height:58px;border-radius:20px;background:linear-gradient(145deg,var(--accent),var(--accent2));color:#050505;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:950;font-family:'DM Mono',monospace;box-shadow:0 12px 34px rgba(245,197,24,.2);z-index:1}
.level-body{min-width:0;z-index:1}
.level-kicker{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:3px}
.level-title{font-size:19px;font-weight:950;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.level-meta{font-size:12px;color:var(--text2);margin-top:3px}
.level-bar{height:8px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden;margin-top:10px}
.level-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--green));border-radius:999px;transition:width .35s ease}
.level-list{width:100%;display:flex;flex-direction:column;gap:8px;max-height:58vh;overflow:auto;padding-right:2px}
.level-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-align:left;background:var(--bg3);border:1px solid var(--border);border-radius:16px;padding:11px}
.level-row.done{opacity:.7}
.level-row.current{border-color:rgba(245,197,24,.55);background:linear-gradient(135deg,rgba(245,197,24,.16),rgba(255,255,255,.035))}
.level-row-num{width:34px;height:34px;border-radius:12px;background:var(--bg4);display:flex;align-items:center;justify-content:center;font-family:'DM Mono',monospace;font-weight:900;color:var(--text)}
.level-row.current .level-row-num{background:linear-gradient(145deg,var(--accent),var(--accent2));color:#050505}
.level-row-name{font-size:14px;font-weight:900}
.level-row-xp{font-size:11px;color:var(--text3);margin-top:2px}
.level-row-status{font-size:10px;font-weight:900;color:var(--text3);text-transform:uppercase;letter-spacing:.6px}
.profile-heatmap-card{margin:0 16px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg2);overflow:hidden;position:relative}
#profileHeatMap{height:190px;background:#141414}
.profile-heatmap-empty{padding:22px 16px;text-align:center;color:var(--text3);font-size:14px}
.report-option-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:12px 14px}
.report-option-label{font-size:14px;font-weight:800}
.report-option-sub{font-size:11px;color:var(--text3);margin-top:2px}
.report-check{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:var(--bg3);display:flex;align-items:center;justify-content:center;color:#000;font-size:14px;font-weight:900;flex-shrink:0}
.report-option-row.on .report-check{background:var(--accent);border-color:var(--accent)}
.report-option-row.on .report-check::after{content:'✓'}
.report-edit-sheet{background:var(--bg);border-radius:28px 28px 0 0;width:100%;max-height:88dvh;overflow-y:auto;overflow-x:hidden;padding:12px 16px calc(20px + var(--sab));border:1px solid var(--border);box-shadow:0 -18px 70px rgba(0,0,0,.55);-webkit-overflow-scrolling:touch}
.report-layout-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.report-layout-tabs button{border:1px solid var(--border);background:var(--bg3);color:var(--text2);border-radius:999px;padding:10px 8px;font-family:inherit;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}
.report-layout-tabs button.active{background:var(--accent);border-color:var(--accent);color:#050505}
.report-preview-wrap{border:1px solid rgba(255,255,255,.09);background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));border-radius:22px;padding:10px;margin-bottom:12px;overflow:hidden}
.report-preview-card{width:min(100%,312px,40dvh);aspect-ratio:4/5;margin:0 auto;border-radius:22px;overflow:hidden;position:relative;background:#050505;border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 38px rgba(0,0,0,.32);touch-action:none}
.report-preview-photo{position:absolute;inset:0;background:radial-gradient(circle at 82% 18%,rgba(245,197,24,.24),transparent 44%),linear-gradient(160deg,#1c1c1c,#080808);background-size:contain;background-position:center;background-repeat:no-repeat;transform:scale(1)}
.report-preview-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.44),rgba(0,0,0,.18) 48%,rgba(0,0,0,.58));pointer-events:none}
.report-preview-overlay{position:absolute;inset:0;color:#fff;text-align:center;transform:translate(calc(var(--report-offset-x,0) * 1%),calc(var(--report-offset-y,0) * 1%));transition:transform .08s linear}
.report-preview-brand{position:absolute;left:0;right:0;bottom:22px;font-size:13px;font-weight:950;letter-spacing:.9px;text-align:center}
.report-preview-stats{position:absolute;left:24px;right:24px;top:23%;display:grid;grid-template-columns:1fr;gap:10px}
.report-preview-card.layout-story .report-preview-stats{top:auto;bottom:102px;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.report-preview-card.layout-route .report-preview-stats{top:63%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.report-preview-stat{padding:0;background:transparent;border:0;border-radius:0;backdrop-filter:none;text-shadow:0 2px 16px rgba(0,0,0,.9)}
.report-preview-stat strong{display:block;font-family:'DM Mono',monospace;font-size:20px;line-height:1.05}
.report-preview-stat span{display:block;font-size:8px;text-transform:uppercase;color:rgba(255,255,255,.76);margin-top:3px;font-weight:900;letter-spacing:.35px}
.report-preview-card.layout-story .report-preview-stat strong{font-size:18px}
.report-preview-route{position:absolute;left:50%;bottom:17%;width:64%;height:52px;color:var(--accent);display:flex;align-items:center;justify-content:center;transform:translateX(-50%);filter:drop-shadow(0 2px 12px rgba(0,0,0,.7))}
.report-preview-card.layout-story .report-preview-route{display:flex;top:auto;bottom:21px;height:58px;width:54%;left:64%}
.report-preview-card.layout-story .report-preview-brand{bottom:182px;left:18px;top:auto;right:auto;text-align:left}
.report-preview-card.layout-route .report-preview-route{top:38%;bottom:auto;height:86px;width:84%;color:var(--accent)}
.report-preview-hint-row{display:flex;justify-content:space-between;align-items:center;margin:7px 0 4px}
.report-preview-hint{color:var(--text3);font-size:11px;font-weight:800}
.report-snap-btn{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.11);color:var(--text3);font-size:10px;font-weight:800;letter-spacing:.3px;border-radius:9px;padding:4px 9px;cursor:pointer;transition:all .2s;line-height:1.4}
.report-snap-btn.active{background:rgba(245,197,24,.14);border-color:rgba(245,197,24,.38);color:var(--accent)}
.report-slider-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.report-slider-grid label{display:flex;flex-direction:column;gap:6px;font-size:10px;font-weight:900;color:var(--text3);text-transform:uppercase;letter-spacing:.4px}
.report-slider-grid input{width:100%;accent-color:var(--accent)}
.badges-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 16px 16px}
.badge-full{--tier:#f5c518;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015)),var(--bg2);border-radius:var(--radius-sm);border:1px solid var(--border);padding:12px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;overflow:hidden}
.badge-full.unlocked{border-color:rgba(245,197,24,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 10px 28px rgba(245,197,24,.14)}
.badge-full.unlocked::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(245,197,24,.16),transparent 46%);pointer-events:none}
.badge-full.tier-bronze{--tier:#cd7f32}
.badge-full.tier-silver{--tier:#c8d0d8}
.badge-full.tier-gold{--tier:#f5c518}
.badge-full.tier-platinum{--tier:#67e8f9}
.badge-full.tier-mythic{--tier:#bf5af2}
.badge-full.tier-bronze.unlocked{border-color:rgba(205,127,50,.46);box-shadow:0 10px 28px rgba(205,127,50,.13)}
.badge-full.tier-silver.unlocked{border-color:rgba(200,208,216,.46);box-shadow:0 10px 28px rgba(200,208,216,.13)}
.badge-full.tier-gold.unlocked{border-color:rgba(245,197,24,.48);box-shadow:0 10px 28px rgba(245,197,24,.15)}
.badge-full.tier-platinum.unlocked{border-color:rgba(103,232,249,.5);box-shadow:0 10px 28px rgba(103,232,249,.14)}
.badge-full.tier-mythic.unlocked{border-color:rgba(191,90,242,.52);box-shadow:0 10px 28px rgba(191,90,242,.16)}
.badge-full .bi{font-size:26px}
.badge-full .bn{font-size:10px;color:var(--text2);text-align:center;line-height:1.3}
.badge-xp{font-size:9px;font-family:'DM Mono',monospace;font-weight:800;color:var(--tier);line-height:1}
.profile-edit-row{display:flex;gap:10px;padding:0 16px 12px}
.recap-gallery{display:flex;gap:12px;overflow-x:auto;padding:0 16px 18px;-webkit-overflow-scrolling:touch}
.recap-gallery::-webkit-scrollbar{display:none}
.recap-gallery-card{--recap-x:80%;--recap-y:8%;--recap-size:38%;--recap-angle:165deg;--recap-glow:rgba(245,197,24,.18);--recap-top:#1a1710;--recap-bottom:#090909;flex:0 0 154px;min-height:218px;border-radius:26px;border:1px solid rgba(255,255,255,.12);background:radial-gradient(circle at var(--recap-x) var(--recap-y),var(--recap-glow),transparent var(--recap-size)),linear-gradient(var(--recap-angle),var(--recap-top),var(--recap-bottom));padding:15px 13px;display:flex;flex-direction:column;gap:10px;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 16px 44px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.05)}
.recap-gallery-card::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 34%,rgba(245,197,24,.055) 74%,transparent);opacity:.58;pointer-events:none}
.recap-gallery-card::after{content:'';position:absolute;right:0;bottom:0;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(245,197,24,.13),rgba(245,197,24,.045) 42%,transparent 72%);pointer-events:none}
.recap-gallery-card > *{position:relative;z-index:1}
.recap-gallery-card.tone-a{--recap-x:82%;--recap-y:10%;--recap-size:38%;--recap-angle:165deg;--recap-top:#1c160a;--recap-bottom:#0b0b0b}
.recap-gallery-card.tone-b{--recap-x:18%;--recap-y:14%;--recap-size:34%;--recap-angle:195deg;--recap-top:#161713;--recap-bottom:#080808}
.recap-gallery-card.tone-c{--recap-x:72%;--recap-y:84%;--recap-size:42%;--recap-angle:145deg;--recap-top:#18140f;--recap-bottom:#070707}
.recap-gallery-card.group{--recap-glow:rgba(245,197,24,.16);--recap-top:#171717;--recap-bottom:#0d0d0d}
.recap-gallery-card.static{cursor:default}
.recap-gallery-card:active{transform:scale(.97)}
.recap-card-delete{position:absolute;right:10px;top:10px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,69,58,.26);background:rgba(255,69,58,.16);color:var(--red);display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:18px;font-weight:950;cursor:pointer;z-index:3}
.recap-gallery-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.recap-gallery-date{min-width:42px;border-radius:14px;background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.08);padding:7px 6px;text-align:center;font-family:'DM Mono',monospace;font-size:12px;font-weight:950;color:var(--accent);line-height:1.05}
.recap-gallery-date span{display:block;font-family:inherit;font-size:9px;color:var(--text3);text-transform:uppercase;margin-top:2px}
.recap-gallery-kicker{font-size:9px;font-weight:950;letter-spacing:1.2px;color:var(--accent);text-transform:uppercase}
.recap-gallery-title{font-size:19px;font-weight:950;letter-spacing:-.65px;line-height:1.02;margin-top:3px}
.recap-gallery-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.recap-gallery-stat{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.09);border-radius:15px;padding:8px 7px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.recap-gallery-stat strong{display:block;font-size:18px;font-weight:900;font-family:'DM Mono',monospace}
.recap-gallery-stat span{display:block;font-size:9px;color:var(--text3);font-weight:800;text-transform:uppercase;margin-top:2px}
.recap-gallery-people{font-size:11px;color:var(--text2);font-weight:900}
.recap-gallery-trace{margin-top:auto;color:var(--accent);display:flex;align-items:center;justify-content:center;min-height:70px;opacity:.96;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.018));border:1px solid rgba(255,255,255,.06);overflow:hidden}
.recap-gallery-trace svg{max-width:100%;height:auto}
.recap-gallery-card.group .recap-gallery-trace{color:var(--green)}
.recap-gallery-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:950;letter-spacing:.9px;color:#fff;text-transform:uppercase}
.recap-gallery-foot::after{content:'';height:1px;flex:1;background:linear-gradient(90deg,rgba(245,197,24,.5),transparent)}
.recap-gallery-empty{margin:0 16px 18px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:18px;text-align:center;color:var(--text3);font-size:14px}
.home-recap-grid{display:grid;gap:12px;margin-bottom:16px}
.home-recap-grid.one{grid-template-columns:1fr}
.home-recap-grid.two{grid-template-columns:1fr 1fr}
.home-recap-grid .recap-gallery-card{flex:initial;min-width:0;min-height:224px;padding:12px}
.home-recap-grid.one .recap-gallery-card{min-height:236px}
#sessionList{display:flex!important;flex-direction:column!important}
#sessionList{margin:0!important;flex:1;min-height:0}
#sessionList .recap-gallery-card{flex:1;min-height:0;background:#161616;border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);gap:9px}
#sessionList .recap-gallery-card::before,#sessionList .recap-gallery-card::after{display:none}
#sessionList .recap-gallery-kicker{color:var(--accent);letter-spacing:.95px}
#sessionList .recap-gallery-trace{flex:1;min-height:60px;margin-top:0;padding:0;background:transparent;border:0;border-radius:0}
#sessionList .recap-gallery-trace svg{width:100%;height:100%;filter:drop-shadow(0 10px 18px rgba(245,197,24,.14))}
#sessionList .recap-gallery-foot::after{background:linear-gradient(90deg,rgba(245,197,24,.4),transparent)}
.home-recap-grid .recap-gallery-kicker{font-size:13px;letter-spacing:.2px;line-height:1.2;padding-top:7px;text-transform:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;word-break:break-word}
.home-recap-grid.two .recap-gallery-kicker{font-size:11px}
.home-recap-grid.two .recap-gallery-title{font-size:16px}
.home-recap-grid.two .recap-gallery-stat strong{font-size:16px}
.home-recap-grid.two .recap-gallery-trace svg{max-width:112px}
.friend-profile-recap-card{cursor:pointer}
.friend-profile-recap-card.compact .recap-gallery-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.friend-profile-recap-card.compact .recap-gallery-stat{min-width:0;text-align:center;padding:8px 5px}
.friend-profile-recap-card.compact .recap-gallery-stat span{font-size:8px;letter-spacing:-.15px}
.friend-profile-recap-card.compact .recap-gallery-people{font-size:10px}
.favorite-drinks-sheet{height:min(86dvh,720px);max-height:calc(100dvh - max(var(--sat), 12px));overflow:hidden;padding-bottom:calc(14px + max(var(--sab), 12px))}
.favorite-drink-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;width:100%;box-sizing:border-box;padding:2px 2px 12px;align-content:start}
.favorite-drink-picker::-webkit-scrollbar,.favorite-selected-list::-webkit-scrollbar{display:none}
.favorite-selected-list{display:flex;flex-direction:column;gap:8px;margin-top:-4px;max-height:clamp(96px,22dvh,170px);overflow-y:auto;flex-shrink:0;padding-right:2px}
.favorite-done-btn{flex-shrink:0;margin-top:2px}
.favorite-selected-empty{background:var(--bg2);border:1px dashed rgba(255,255,255,.16);border-radius:18px;padding:13px;text-align:center;color:var(--text3);font-size:13px}
.favorite-selected-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:18px;padding:9px 10px;min-width:0}
.favorite-order-controls{display:flex;gap:5px}
.favorite-order-controls button{width:30px;height:30px;border:none;border-radius:10px;background:var(--bg3);color:var(--text2);font-family:inherit;font-size:14px;font-weight:900;cursor:pointer}
.favorite-order-controls button:disabled{opacity:.28;cursor:default}
.favorite-drink-option{border:1px solid var(--border);background:var(--bg2);border-radius:18px;padding:12px 10px;display:flex;align-items:center;gap:9px;cursor:pointer;min-height:64px;position:relative;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden}
.favorite-drink-option > div:nth-child(2){min-width:0;flex:1}
.favorite-drink-option.active{border-color:var(--accent);background:rgba(245,197,24,.1)}
.favorite-drink-option .fav-check{position:absolute;top:7px;right:8px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#000;font-size:12px;font-weight:900;opacity:0}
.favorite-drink-option.active .fav-check{opacity:1}
.volume-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;max-height:min(58dvh,520px);overflow-y:auto;padding:2px 2px 8px;-webkit-overflow-scrolling:touch}
.volume-option-grid::-webkit-scrollbar{display:none}
.volume-option{border:1px solid var(--border);border-radius:18px;background:var(--bg2);padding:14px 12px;display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--text);font-family:inherit;text-align:left}
.volume-option:active{transform:scale(.98);background:var(--bg3)}
.drink-volume-card{min-height:214px;border-radius:26px;padding:12px 10px 13px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:8px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 24%,var(--drink-glow),transparent 46%),linear-gradient(160deg,rgba(255,255,255,.065),rgba(255,255,255,.018) 60%,rgba(0,0,0,.16));border-color:rgba(255,255,255,.095);box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 16px 38px rgba(0,0,0,.23);transition:transform .16s ease,border-color .16s ease,background .16s ease}
.drink-volume-card::before{content:'';position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.08),transparent 32%,rgba(245,197,24,.035) 78%,transparent);opacity:.7;pointer-events:none}
.drink-volume-card::after{content:'';position:absolute;right:-30px;bottom:-36px;width:96px;height:96px;border-radius:30px;border:1px solid rgba(255,255,255,.06);transform:rotate(20deg);pointer-events:none}
.drink-volume-card:active{transform:scale(.975);border-color:rgba(245,197,24,.38);background:radial-gradient(circle at 50% 24%,var(--drink-glow),transparent 48%),linear-gradient(160deg,rgba(245,197,24,.09),rgba(255,255,255,.025) 62%,rgba(0,0,0,.18))}
.drink-volume-art{height:112px;border-radius:20px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));border:1px solid rgba(255,255,255,.055);position:relative;z-index:1;overflow:hidden}
.drink-illustration-svg{width:100%;height:100%;max-width:136px;color:rgba(255,255,255,.68);overflow:visible}
.drink-svg-lines *{vector-effect:non-scaling-stroke}
.drink-svg-lines [stroke]{stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.drink-volume-copy{position:relative;z-index:1;min-width:0}
.drink-volume-topline{display:flex;justify-content:space-between;gap:8px;font-size:9px;font-weight:950;letter-spacing:.9px;text-transform:uppercase;color:var(--accent);margin-bottom:3px}
.drink-volume-topline span:last-child{color:var(--text3);font-family:'DM Mono',monospace;letter-spacing:.1px}
.drink-volume-amount{font-family:'DM Mono',monospace;font-size:28px;font-weight:950;letter-spacing:-1px;line-height:1;color:var(--text)}
.drink-volume-amount span{font-size:12px;color:var(--text3);letter-spacing:0;margin-left:3px}
.drink-volume-helper{font-size:10px;color:var(--text3);font-weight:800;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drink-volume-custom-btn{margin-top:10px;width:100%;min-height:54px;border:1px solid rgba(245,197,24,.28)!important;border-radius:24px!important;background:radial-gradient(circle at 100% 0,rgba(245,197,24,.16),transparent 42%),linear-gradient(145deg,rgba(245,197,24,.1),rgba(255,255,255,.025))!important;color:var(--accent);font-weight:950;font-size:15px;padding:14px 16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 28px rgba(0,0,0,.16)}
.drink-volume-custom-btn:active{transform:scale(.985);border-color:rgba(245,197,24,.48)!important;background:linear-gradient(145deg,rgba(245,197,24,.16),rgba(255,255,255,.035))!important}
.drink-volume-custom-panel{border:1px solid rgba(245,197,24,.18);border-radius:24px;background:radial-gradient(circle at 100% 0,rgba(245,197,24,.14),transparent 42%),linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.025));padding:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);display:flex;flex-direction:column;gap:12px}
.drink-volume-custom-panel[hidden]{display:none}
.drink-volume-custom-title{font-size:13px;font-weight:950;letter-spacing:.7px;text-transform:uppercase;color:var(--accent)}
.drink-volume-custom-input-wrap{position:relative;display:flex;align-items:center}
.drink-volume-custom-input-wrap .input-field{height:54px;border-radius:18px;padding-right:54px;font-family:'DM Mono',monospace;font-size:19px;font-weight:900;background:rgba(0,0,0,.18)}
.drink-volume-custom-input-wrap span{position:absolute;right:16px;color:var(--text3);font-family:'DM Mono',monospace;font-size:13px;font-weight:900}
.drink-volume-custom-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:360px){.drink-volume-card{min-height:198px;border-radius:22px}.drink-volume-art{height:100px}.drink-volume-amount{font-size:24px}.volume-option-grid{gap:10px}}
.top-drinks-card{margin:0 16px 16px;background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.085);border-radius:22px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.top-drink-row{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.top-drink-row:last-child{border-bottom:none}
.top-drink-count{font-family:'DM Mono',monospace;font-size:13px;font-weight:900;color:var(--accent)}
.profile-drinks-summary{margin:0 0 12px;padding:13px 15px;border-radius:18px;background:linear-gradient(145deg,rgba(245,197,24,.12),rgba(255,255,255,.035));border:1px solid rgba(245,197,24,.18);font-size:13px;color:var(--text2);font-weight:800}
.profile-drinks-list{display:flex;flex-direction:column;gap:9px;padding-bottom:10px}
.profile-drink-row{display:grid;grid-template-columns:auto auto 1fr auto;gap:12px;align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:18px;padding:12px 13px}
.profile-drink-rank{width:30px;height:30px;border-radius:12px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-family:'DM Mono',monospace;font-size:12px;font-weight:900;color:var(--text2)}
.profile-drink-name{font-size:15px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-drink-meta{font-size:11px;color:var(--text3);margin-top:3px}
.profile-drink-count{font-family:'DM Mono',monospace;font-size:18px;font-weight:950;color:var(--accent);text-align:right}

/* ======================== FRIENDS ======================== */
/* SETTINGS */
.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer}
.settings-row:last-child{border-bottom:none}
.settings-row:active{background:var(--bg3)}
.settings-label{font-size:15px;font-weight:500}
.settings-value{font-size:14px;color:var(--text3);display:flex;align-items:center;gap:6px}
.settings-changelog-card{margin:0 16px 16px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.02));border-radius:22px;padding:13px 14px;display:flex;flex-direction:column;gap:9px}
.settings-changelog-item{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start;font-size:12px;line-height:1.35}
.settings-changelog-version{font-family:'DM Mono',monospace;color:var(--accent);font-weight:800}
.settings-changelog-copy{color:var(--text2);font-weight:650}
.changelog-sheet{max-height:82dvh}
.changelog-list{margin:0;max-height:58dvh;overflow-y:auto}
.terms-consent-box{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px}
.terms-consent-label{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:flex-start;font-size:12px;line-height:1.35;color:var(--text2);cursor:pointer}
.terms-consent-label input{width:19px;height:19px;margin:0;accent-color:var(--accent)}
.terms-link-row{display:flex;gap:8px;flex-wrap:wrap}
.terms-link-btn{border:none;background:rgba(245,197,24,.12);color:var(--accent);border-radius:999px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:800;cursor:pointer}
.legal-sheet{max-height:88dvh}
.legal-content{display:flex;flex-direction:column;gap:14px;color:var(--text2);font-size:13px;line-height:1.48}
.legal-updated{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text3)}
.legal-section{background:rgba(255,255,255,.035);border:1px solid var(--border);border-radius:16px;padding:14px}
.legal-section h3{font-size:15px;margin:0 0 8px;color:var(--text);letter-spacing:-.1px}
.legal-section p{margin:0}
.lang-option{padding:10px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}
.lang-option:last-child{border-bottom:none}
.lang-option:active{background:var(--bg3)}
.lang-option.active{color:var(--accent)}
.lang-check{margin-left:auto;font-size:16px;opacity:0}
.lang-option.active .lang-check{opacity:1}
.badge-detail-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:500;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .25s}
.badge-detail-overlay.open{opacity:1;pointer-events:all}
.badge-detail-card{background:var(--bg2);border-radius:28px;border:1px solid var(--border);padding:32px 24px 28px;text-align:center;width:100%;max-width:320px;display:flex;flex-direction:column;align-items:center;gap:12px;transform:scale(.92);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.badge-detail-overlay.open .badge-detail-card{transform:scale(1)}
.badge-big-icon{font-size:64px;line-height:1}
.badge-category-pill{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:4px 10px;border-radius:100px;background:var(--bg3);color:var(--text3)}
.badge-progress-bar{width:100%;height:6px;background:var(--bg4);border-radius:3px;overflow:hidden;margin-top:4px}
.badge-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .5s}
.badge-cat-head{padding:16px 20px 8px;font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:1px}
.friend-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer}
.friend-item:last-child{border-bottom:none}
.friend-avatar{width:44px;height:44px;border-radius:50%;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:20px;overflow:hidden;flex-shrink:0}
.friend-avatar img{width:100%;height:100%;object-fit:cover}
.friend-avatar.avatar-session{box-shadow:0 0 0 2px var(--orange),0 0 18px rgba(255,149,0,.35)}
.friend-avatar.avatar-sobering{box-shadow:0 0 0 2px var(--green),0 0 18px rgba(48,209,88,.32)}
.friend-name{font-size:15px;font-weight:600}
.friend-code{font-size:12px;color:var(--text3);font-family:'DM Mono',monospace}
.friend-status{font-size:11px;font-weight:500;padding:3px 8px;border-radius:100px}
.friend-status.online{background:rgba(48,209,88,.15);color:var(--green)}
.friend-status.offline{background:rgba(255,255,255,.07);color:var(--text3)}
.friend-status.pending{background:rgba(245,197,24,.12);color:var(--accent)}
.friends-window{max-height:none;overflow-y:visible;}
.friends-feed-window{overflow:hidden;max-height:none;background:var(--bg2)}
.friends-window::-webkit-scrollbar{display:none}
.planned-session-sheet{display:flex;flex-direction:column;overflow:hidden;width:100%;max-width:100%;height:min(82dvh,640px);max-height:calc(100dvh - max(var(--sat),18px) - 16px);padding-top:16px;padding-bottom:6px}
.planned-session-sheet-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;padding:0 0 8px}
.planned-session-sheet .input-group{width:100%;min-width:0}
.planned-session-sheet .input-field{width:100%;min-width:0;max-width:100%;display:block}
#planned-session-start{box-sizing:border-box;-webkit-appearance:none;appearance:none}
#planned-session-start::-webkit-date-and-time-value{text-align:left;min-width:0}
.planned-session-friends-block{min-width:0}
.planned-friend-picker{display:flex;flex-direction:column;gap:8px;max-height:none;overflow:visible;padding-right:0}
.planned-session-actions{display:flex;flex-direction:column;gap:10px;flex-shrink:0;padding:10px 0 max(0px,var(--sab));border-top:1px solid rgba(255,255,255,.06);margin-top:auto}
.planned-friend-option{border:1px solid var(--border);background:var(--bg3);border-radius:18px;padding:10px 12px;display:flex;align-items:center;gap:10px;cursor:pointer;min-height:58px}
.planned-friend-option.active{border-color:rgba(48,209,88,.42);background:rgba(48,209,88,.09)}
.planned-friend-check{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center;color:#000;font-size:13px;font-weight:950;flex-shrink:0}
.planned-friend-option.active .planned-friend-check{background:var(--green);border-color:var(--green)}
.planned-friend-option.active .planned-friend-check::after{content:'✓'}
.planned-session-list{display:flex;flex-direction:column;gap:10px;margin:0 16px 16px}
.planned-session-card{border:1px solid rgba(48,209,88,.22);background:radial-gradient(circle at 100% 0,rgba(48,209,88,.12),transparent 42%),linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.024));border-radius:22px;padding:14px;display:flex;align-items:center;gap:12px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}
.planned-session-datebox{width:48px;border-radius:16px;background:rgba(48,209,88,.13);border:1px solid rgba(48,209,88,.22);color:var(--green);font-family:'DM Mono',monospace;text-align:center;padding:8px 5px;flex-shrink:0}
.planned-session-datebox strong{display:block;font-size:17px;line-height:1}
.planned-session-datebox span{display:block;font-size:9px;text-transform:uppercase;margin-top:3px}
.planned-session-copy{flex:1;min-width:0}
.planned-session-name{font-size:15px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planned-session-meta{font-size:11px;color:var(--text3);margin-top:4px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planned-session-faces,.planned-detail-faces{display:flex;align-items:center;flex-shrink:0}
.planned-face{width:28px;height:28px;border-radius:50%;background:var(--bg3);border:2px solid #151515;display:flex;align-items:center;justify-content:center;margin-left:-8px;overflow:hidden;font-size:11px;font-weight:950;color:var(--text)}
.planned-face:first-child{margin-left:0}
.planned-face img{width:100%;height:100%;object-fit:cover}
.planned-face.more{background:rgba(48,209,88,.18);color:var(--green)}
.planned-detail-hero{border:1px solid rgba(48,209,88,.24);background:linear-gradient(145deg,rgba(48,209,88,.12),rgba(255,255,255,.035));border-radius:24px;padding:16px;display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.planned-detail-kicker{font-size:10px;font-weight:950;letter-spacing:.9px;text-transform:uppercase;color:var(--green)}
.planned-detail-title{font-size:22px;font-weight:950;letter-spacing:-.55px;margin-top:4px}
.planned-detail-date{font-size:12px;color:var(--text2);font-weight:800;margin-top:5px}
.planned-detail-meta{border:1px solid var(--border);background:var(--bg3);border-radius:18px;padding:12px 14px;font-size:13px;color:var(--text2);line-height:1.45}
.planned-detail-people{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.planned-detail-person{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);border-radius:14px;padding:8px}
.planned-detail-person.invited{opacity:.72}
.planned-detail-person-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:850;color:var(--text)}
.planned-detail-person-state{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.5px;color:var(--accent)}
.planned-detail-person.invited .planned-detail-person-state{color:var(--text3)}
.planned-invite-card{border-color:rgba(10,132,255,.28)!important;background:radial-gradient(circle at 100% 0,rgba(10,132,255,.13),transparent 45%),linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.024))!important;cursor:pointer}
.planned-invite-card .planned-session-datebox{background:rgba(10,132,255,.13);border-color:rgba(10,132,255,.28);color:var(--blue)}
.planned-invite-btns{display:flex;flex-direction:row;gap:7px;flex-shrink:0;align-items:center}
.planned-invite-btn-accept{width:40px;height:40px;border-radius:13px;background:rgba(48,209,88,.16);border:1px solid rgba(48,209,88,.38);color:var(--green);font-size:20px;font-weight:950;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:inherit;line-height:1}
.planned-invite-btn-decline{width:40px;height:40px;border-radius:13px;background:rgba(255,69,58,.1);border:1px solid rgba(255,69,58,.3);color:#ff453a;font-size:16px;font-weight:950;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:inherit;line-height:1}
.privacy-opt{display:flex;align-items:center;gap:14px;background:var(--bg3);border:1.5px solid var(--border);border-radius:18px;padding:14px;cursor:pointer;transition:border-color .2s,background .2s}
.privacy-opt.active{border-color:rgba(10,132,255,.45);background:rgba(10,132,255,.1)}
.privacy-opt.active.priv-private{border-color:rgba(255,69,58,.45);background:rgba(255,69,58,.1)}
.privacy-opt-icon{font-size:22px;flex-shrink:0;width:34px;text-align:center}
.privacy-opt-body{flex:1;min-width:0}
.privacy-opt-label{font-size:15px;font-weight:700}
.privacy-opt-desc{font-size:12px;color:var(--text3);margin-top:3px;line-height:1.4}
.privacy-opt-check{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:950;color:#000}
.privacy-opt.active .privacy-opt-check{background:var(--blue);border-color:var(--blue)}
.privacy-opt.active.priv-private .privacy-opt-check{background:var(--red);border-color:var(--red)}
.friend-feed-item{display:grid;grid-template-columns:42px 1fr;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}
.friend-feed-item:last-child{border-bottom:none}
.friend-feed-avatar{width:42px;height:42px;border-radius:50%;background:var(--bg3);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:17px;font-weight:800;flex-shrink:0}
.friend-feed-avatar img{width:100%;height:100%;object-fit:cover}
.friend-feed-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}
.friend-feed-name{font-size:15px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-feed-time{font-size:11px;color:var(--text3);font-weight:800;white-space:nowrap;margin-top:2px}
.friend-feed-title{font-size:12px;color:var(--text2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-feed-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.friend-feed-pill{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.055);border-radius:999px;padding:5px 8px;font-size:11px;font-weight:850;color:var(--text2);white-space:nowrap}
.avatar-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:inherit;color:#fff;font-weight:900;text-transform:uppercase;letter-spacing:0;text-shadow:0 1px 10px rgba(0,0,0,.22)}
.friend-feed-pill strong{color:var(--text);font-family:'DM Mono',monospace;font-weight:900}
.friend-feed-recap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px}
.friend-feed-recap-grid.one{grid-template-columns:1fr}
.friend-feed-list{display:flex;flex-direction:column;gap:10px;padding:0 0 4px}
.friend-feed-landscape-card{min-height:0!important;padding:14px 14px 12px!important;border-radius:24px;overflow:hidden;clip-path:inset(0 round 24px);contain:paint;isolation:isolate;-webkit-mask-image:-webkit-radial-gradient(white,black)}
.friend-feed-landscape-card::after{right:-34px;bottom:-38px;width:128px;height:128px}
.friend-feed-landscape-card .recap-gallery-title{font-size:16px;letter-spacing:-.4px}
.friend-feed-landscape-card .recap-gallery-stat strong{font-size:15px}
.friend-feed-lc-top{display:flex;align-items:flex-start;gap:10px;margin-bottom:0}
.friend-feed-card{flex:initial;min-width:0;min-height:254px;padding:13px 12px}
.friend-feed-card-owner{display:flex;align-items:center;gap:8px;min-width:0}
.friend-feed-avatar.mini{width:30px;height:30px;font-size:13px}
.friend-feed-card .friend-feed-name{font-size:13px}
.friend-feed-card .friend-feed-time{font-size:10px;margin-top:0}
.friend-feed-card .recap-gallery-title{font-size:16px}
.friend-feed-card .recap-gallery-stat strong{font-size:16px}
.friend-feed-card .recap-gallery-trace svg{max-width:118px}
.friend-feed-card-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:10px;color:var(--text2);font-weight:900}
.friend-feed-card-meta span{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045);border-radius:999px;padding:4px 7px}
.req-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}
.req-item:last-child{border-bottom:none}
.req-btns{display:flex;gap:6px;flex-shrink:0}
.req-btn{border:none;border-radius:100px;font-size:12px;font-weight:700;padding:6px 14px;cursor:pointer;font-family:inherit}
.req-btn.accept{background:var(--green);color:#000}
.req-btn.decline{background:var(--bg4);color:var(--text2)}

/* ======================== SESSION DETAIL ======================== */
.detail-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 16px 16px;width:100%;box-sizing:border-box}
.detail-stat{background:var(--bg2);border-radius:var(--radius-sm);border:1px solid var(--border);padding:14px 10px;text-align:center}
.detail-stat-num{font-size:22px;font-weight:800}
.detail-stat-label{font-size:11px;color:var(--text2);margin-top:3px}
.detail-map{height:200px;border-radius:var(--radius);overflow:hidden;margin:0 16px 16px;border:1px solid var(--border);position:relative;cursor:pointer}
#detail-leaflet-map{width:100%;height:100%;background:#141414}
.detail-map.locked #detail-leaflet-map{pointer-events:none}
.detail-map::after{content:attr(data-map-hint);position:absolute;right:10px;bottom:10px;background:rgba(10,10,10,.76);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:6px 10px;color:#fff;font-size:11px;font-weight:850;backdrop-filter:blur(10px);pointer-events:none}
.detail-drink-item{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border)}
.detail-drink-item:last-child{border-bottom:none}
.detail-group-people{display:flex;gap:8px;align-items:center;overflow-x:auto;padding:0 16px 14px;-webkit-overflow-scrolling:touch}
.detail-group-person{display:flex;align-items:center;gap:7px;background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:6px 9px 6px 6px;white-space:nowrap;font-size:12px;font-weight:800;color:var(--text2)}
.detail-group-person .session-group-face{width:24px;height:24px;margin-left:0;border-color:transparent}

/* SUMMARY */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 16px 16px}
.stat-card{background:var(--bg2);border-radius:var(--radius-sm);border:1px solid var(--border);padding:14px 10px;text-align:center}
.stat-number{font-size:24px;font-weight:800;letter-spacing:-.5px}
.stat-label{font-size:11px;color:var(--text2);margin-top:3px;font-weight:500}
.badge{background:var(--bg2);border-radius:50%;width:60px;height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border);gap:2px;flex-shrink:0}
.badges-row{display:flex;gap:10px;padding:0 16px 16px;flex-wrap:wrap}

/* SOBER TIMER */
.sober-big{font-size:64px;font-weight:800;font-family:'DM Mono',monospace;color:var(--green);letter-spacing:-2px;line-height:1}
.sober-disclaimer{margin:14px 20px 0;background:rgba(255,149,0,.12);border:1px solid rgba(255,149,0,.32);border-radius:16px;padding:12px 14px;display:flex;gap:10px;text-align:left;align-items:flex-start}
.sober-disclaimer-icon{width:22px;height:22px;border-radius:50%;background:rgba(255,149,0,.18);color:var(--orange);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;flex-shrink:0}
.sober-disclaimer-text{font-size:12px;line-height:1.45;color:var(--text2)}
.sober-tips-card{margin:0 16px 14px;border-radius:var(--radius);border:1px solid rgba(48,209,88,.2);background:linear-gradient(145deg,rgba(48,209,88,.08),rgba(20,20,20,.96));overflow:hidden}
.sober-tip-row{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);align-items:center}
.sober-tip-row:last-child{border-bottom:none}
.sober-tip-icon{width:26px;height:26px;border-radius:10px;background:rgba(48,209,88,.13);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px}
.sober-tip-text{font-size:13px;line-height:1.35;color:var(--text2);font-weight:700}
.sober-source-list{display:flex;flex-direction:column;gap:10px;margin:0 16px 14px}
.sober-source-item{position:relative}
.sober-source-item .session-item{padding-right:48px}
.sober-source-delete{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:rgba(255,69,58,.15);border:none;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--red)}
.sober-source-meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:7px}
.factors-card{margin:0 16px 14px}
.factor-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}
.factor-row:last-child{border-bottom:none}

/* END SCREEN */
.end-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center;gap:16px}

/* ONBOARDING */
.onboard-screen{position:absolute;inset:0;z-index:500;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:calc(var(--sat) + 24px) 24px calc(24px + var(--sab));gap:14px;text-align:center;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.onboard-icon{font-size:80px;margin-bottom:8px}
.onboard-title{font-size:32px;font-weight:800;letter-spacing:-1px}
.onboard-sub{font-size:16px;color:var(--text2);line-height:1.5;max-width:300px}
.install-screen{position:absolute;inset:0;z-index:650;background:radial-gradient(circle at 18% -6%,rgba(245,197,24,.28),transparent 32%),radial-gradient(circle at 110% 18%,rgba(255,149,0,.18),transparent 34%),linear-gradient(180deg,#111 0%,#060606 58%,#020202 100%);display:none;flex-direction:column;align-items:center;justify-content:flex-start;padding:calc(var(--sat) + 18px) 16px calc(22px + var(--sab));overflow-y:auto;-webkit-overflow-scrolling:touch;text-align:center}
.install-screen::before{content:'';position:fixed;inset:0;background:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.024) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 72%);mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 72%);pointer-events:none}
.install-bg-orb{position:fixed;border-radius:50%;filter:blur(14px);pointer-events:none;opacity:.72}
.install-bg-orb-one{width:160px;height:160px;left:-64px;top:72px;background:rgba(245,197,24,.14)}
.install-bg-orb-two{width:220px;height:220px;right:-110px;bottom:120px;background:rgba(255,149,0,.12)}
.install-shell{width:min(100%,390px);position:relative;z-index:1;display:flex;flex-direction:column;gap:13px}
.install-hero{border-radius:34px;padding:17px;background:linear-gradient(145deg,rgba(28,28,28,.94),rgba(11,11,11,.98) 64%),radial-gradient(circle at 88% 0%,rgba(245,197,24,.18),transparent 38%);border:1px solid rgba(255,255,255,.11);box-shadow:0 26px 80px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.08);overflow:hidden;text-align:left}
.install-brand-row{display:flex;align-items:center;gap:13px}
.install-logo{width:66px;height:66px;border-radius:21px;background:#0a0a0a;border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;box-shadow:0 18px 54px rgba(245,197,24,.18);overflow:hidden;flex-shrink:0}
.install-logo svg,.install-logo img{width:100%;height:100%;display:block}
.install-brand-copy{min-width:0}
.install-eyebrow{font-size:10px;font-weight:950;letter-spacing:1.15px;text-transform:uppercase;color:var(--accent);margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.install-title{font-size:34px;font-weight:950;letter-spacing:-1.2px;line-height:.92;color:var(--text)}
.install-sub{font-size:15px;color:var(--text2);line-height:1.45;margin:15px 0 15px;max-width:330px}
.install-preview-card{border-radius:26px;border:1px solid rgba(245,197,24,.17);background:radial-gradient(circle at 78% 16%,rgba(245,197,24,.18),transparent 34%),linear-gradient(145deg,rgba(245,197,24,.08),rgba(255,255,255,.035));padding:13px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.install-preview-top{display:flex;gap:5px;margin-bottom:12px}
.install-preview-top span{width:7px;height:7px;border-radius:50%;background:rgba(245,197,24,.42)}
.install-preview-top span:nth-child(2){background:rgba(255,255,255,.22)}
.install-preview-top span:nth-child(3){background:rgba(255,255,255,.14)}
.install-preview-body{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:13px}
.install-preview-moon{width:58px;height:58px;border-radius:20px;background:linear-gradient(145deg,var(--accent),#e99200);color:#050505;display:flex;align-items:center;justify-content:center;box-shadow:0 16px 32px rgba(245,197,24,.18)}
.install-preview-lines{display:flex;flex-direction:column;gap:8px}
.install-preview-lines i{height:10px;border-radius:999px;background:rgba(255,255,255,.18);display:block}
.install-preview-lines i:nth-child(1){width:90%}
.install-preview-lines i:nth-child(2){width:68%;background:rgba(245,197,24,.32)}
.install-preview-lines i:nth-child(3){width:46%;background:rgba(255,255,255,.11)}
.install-preview-dock{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.install-preview-dock span{height:34px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.05)}
.install-preview-dock span:nth-child(2){background:rgba(245,197,24,.16);border-color:rgba(245,197,24,.16)}
.install-steps{width:100%;display:flex;flex-direction:column;gap:8px;margin:0}
.install-step{position:relative;background:linear-gradient(145deg,rgba(22,22,22,.92),rgba(13,13,13,.96));border:1px solid rgba(255,255,255,.085);border-radius:24px;padding:13px 44px 13px 13px;display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;text-align:left;box-shadow:0 16px 38px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.045)}
.install-step::after{content:'';position:absolute;right:15px;top:50%;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px rgba(245,197,24,.08);transform:translateY(-50%)}
.install-step-icon{width:48px;height:48px;border-radius:17px;background:linear-gradient(145deg,rgba(245,197,24,.18),rgba(245,197,24,.08));border:1px solid rgba(245,197,24,.22);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:950}
.install-step strong{display:block;font-size:16px;font-weight:950;letter-spacing:-.25px;color:var(--text)}
.install-step span{display:block;font-size:13px;color:var(--text2);line-height:1.35;margin-top:3px}
.install-step small{display:block;font-size:11px;color:var(--accent);line-height:1.35;margin-top:7px;font-weight:950}
.install-arrow{height:10px;color:transparent;font-size:0;margin:-1px 0;position:relative}
.install-arrow::before{content:'';position:absolute;left:37px;top:0;width:1px;height:10px;background:linear-gradient(180deg,rgba(245,197,24,.42),rgba(245,197,24,.05))}
.install-note{font-size:12px;color:var(--text3);line-height:1.45;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035);border-radius:18px;padding:11px 13px;margin:0;text-align:left}
.install-native-btn{display:none;margin-top:0}
.auth-inline-error{display:none;width:100%;border-radius:15px;border:1px solid rgba(255,69,58,.34);background:rgba(255,69,58,.13);color:#ffb4ad;padding:11px 12px;font-size:13px;font-weight:800;line-height:1.35;text-align:left}
.auth-inline-error.show{display:block}
.friend-sober-card{margin:0 16px 16px;border-radius:22px;border:1px solid rgba(48,209,88,.28);background:radial-gradient(circle at 92% 0%,rgba(48,209,88,.18),transparent 38%),linear-gradient(145deg,#101913,#0b0b0b 72%);padding:15px 14px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}
.friend-sober-kicker{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.8px;color:var(--green)}
.friend-sober-time{font-size:28px;font-family:'DM Mono',monospace;font-weight:900;color:var(--green);letter-spacing:-.8px;margin-top:4px}
.friend-sober-bac{text-align:right;font-size:13px;color:var(--text2);font-weight:800}
.friend-sober-bac strong{display:block;font-size:24px;color:var(--text);font-family:'DM Mono',monospace;margin-bottom:3px}
.profile-calendar-btn{margin:0 16px 16px;width:calc(100% - 32px);border-radius:20px}
.session-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.session-calendar-month{font-size:19px;font-weight:950;letter-spacing:-.4px}
.session-calendar-nav{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--bg3);color:var(--text);font-family:inherit;font-size:20px;font-weight:900;display:flex;align-items:center;justify-content:center}
.session-calendar-weekdays,.session-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.session-calendar-weekdays{margin-bottom:7px;color:var(--text3);font-size:10px;font-weight:900;text-transform:uppercase;text-align:center}
.session-calendar-day{height:42px;border-radius:14px;border:1px solid transparent;background:rgba(255,255,255,.035);color:var(--text2);font-family:'DM Mono',monospace;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;position:relative}
.session-calendar-day.empty{background:transparent}
.session-calendar-day.has-session{border-color:rgba(245,197,24,.55);background:radial-gradient(circle at 50% 50%,rgba(245,197,24,.22),rgba(245,197,24,.06));color:#fff;cursor:pointer}
.session-calendar-day.has-session::after{content:attr(data-count);position:absolute;right:4px;bottom:3px;min-width:14px;height:14px;border-radius:999px;background:var(--accent);color:#000;font-size:9px;font-family:inherit;display:flex;align-items:center;justify-content:center;padding:0 3px}
.report-photo-status{font-size:11px;color:var(--text3);font-weight:850;margin-top:4px}
.report-option-row.photo-selected{border-color:rgba(48,209,88,.32);background:rgba(48,209,88,.08)}

/* RIPPLE */
@keyframes ripple{0%{transform:scale(0);opacity:.4}100%{transform:scale(4);opacity:0}}
.ripple-effect{position:absolute;border-radius:50%;background:rgba(245,197,24,.3);width:40px;height:40px;margin:-20px;animation:ripple .5s ease-out forwards;pointer-events:none}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* PHOTO */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:0 16px 16px}
.photo-thumb{aspect-ratio:1;background:var(--bg3);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:24px;border:1px solid var(--border);overflow:hidden}
.photo-thumb img{width:100%;height:100%;object-fit:cover}
.photo-thumb,.session-photo-card{cursor:pointer}
.photo-viewer-img{width:100%;max-height:62dvh;object-fit:contain;border-radius:22px;background:#050505;border:1px solid var(--border)}
.camera-icon-wrap{width:100px;height:100px;background:var(--bg2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:44px;border:1px solid var(--border);animation:pulse 2s ease-in-out infinite}
.toggle-switch{width:44px;height:26px;border-radius:100px;background:var(--bg4);border:1px solid var(--border);position:relative;transition:.2s;flex-shrink:0}
.toggle-switch::after{content:'';position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;left:2px;top:2px;transition:.2s}
.toggle-switch.on{background:var(--accent);border-color:var(--accent)}
.toggle-switch.on::after{transform:translateX(18px);background:#000}

/* Shared Liquid Glass primitives and restrained festival identity */
.glass-card,.glass-modal{background:rgba(18,18,20,.78);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 55px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08);-webkit-backdrop-filter:blur(22px) saturate(135%);backdrop-filter:blur(22px) saturate(135%)}
.home-widget-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.home-festival-card{position:relative;overflow:hidden;background:radial-gradient(circle at 90% 0%,rgba(149,91,255,.28),transparent 44%),linear-gradient(145deg,rgba(54,29,86,.92),rgba(17,14,24,.94));border-color:rgba(183,137,255,.36)}
.home-festival-card::after{content:'';position:absolute;width:120px;height:120px;right:-50px;bottom:-72px;border-radius:50%;background:rgba(74,222,255,.12);filter:blur(12px);pointer-events:none}
.festival-badge,.status-badge{display:inline-flex;width:max-content;align-items:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;letter-spacing:.55px;text-transform:uppercase;background:rgba(174,121,255,.16);border:1px solid rgba(190,151,255,.32);color:#d9c0ff}
.festival-setup-sheet{background:radial-gradient(circle at 86% 0%,rgba(154,91,255,.2),transparent 36%),rgba(15,14,20,.9)}
.festival-setup-sub,.location-privacy-copy{color:var(--text2);font-size:13px;line-height:1.5;margin:0 0 14px}
.festival-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.festival-check{display:flex;align-items:flex-start;gap:10px;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:12px;margin-bottom:14px;background:rgba(255,255,255,.04)}
.festival-check span{display:flex;flex-direction:column;gap:3px}.festival-check small{color:var(--text2);line-height:1.35}.festival-primary{background:linear-gradient(135deg,#b77cff,#69dfff);color:#09070d}
.festival-active-banner{margin:0 16px 12px;padding:14px;border-radius:22px;background:radial-gradient(circle at 90% 0%,rgba(105,223,255,.18),transparent 36%),linear-gradient(135deg,rgba(113,67,173,.36),rgba(23,18,32,.88));border:1px solid rgba(190,151,255,.3);box-shadow:0 16px 42px rgba(35,11,68,.22)}
.festival-active-banner strong{display:block;font-size:17px;margin:5px 0}.festival-active-banner span{font-size:12px;color:rgba(255,255,255,.7)}
@media(max-width:390px){.festival-date-grid{grid-template-columns:1fr}.home-widget-grid{grid-template-columns:1fr}}
@media(prefers-reduced-transparency:reduce){.glass-card,.glass-modal,.header,.bottom-nav{background:#171719;-webkit-backdrop-filter:none;backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Last Night premium mobile system — high-clarity, accessible and conversion focused */
:root{--surface-glass:rgba(24,23,21,.76);--surface-strong:rgba(24,23,21,.94);--line-soft:rgba(255,255,255,.075);--line-accent:rgba(245,197,24,.24);--shadow-card:0 18px 48px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.055);--ease-premium:cubic-bezier(.22,1,.36,1);--glass-bg:rgba(24,24,28,.34);--glass-bg-strong:rgba(19,19,22,.62);--glass-line:rgba(255,255,255,.18);--glass-highlight:rgba(255,255,255,.24);--glass-shadow:0 18px 52px rgba(0,0,0,.34),inset 0 1px 0 var(--glass-highlight);--glass-blur:24px;--glass-radius:24px}
body{background:radial-gradient(circle at 50% -12%,rgba(245,197,24,.07),transparent 30%),#080808}
.app{background:linear-gradient(180deg,#0a0a09 0%,#080808 46%,#060606 100%)}
.header{padding:8px 18px 15px;background:transparent!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.header-title{font-size:27px;font-weight:850;line-height:1.08;letter-spacing:-.75px}.header-sub{font-size:13px;line-height:1.35;color:rgba(255,255,255,.58)}
.section-head{padding:0 18px;margin:22px 0 10px}.section-title{font-size:12px;font-weight:800;letter-spacing:.72px;text-transform:uppercase;color:rgba(255,255,255,.52)}
.card{background:linear-gradient(145deg,rgba(28,27,25,.9),rgba(16,16,15,.92));border:1px solid var(--line-soft);box-shadow:var(--shadow-card)}
.btn{min-height:48px;transition:transform .18s var(--ease-premium),filter .18s,background .18s}.btn:focus-visible,.input-field:focus-visible,.home-session-card:focus-visible,.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn-primary{background:linear-gradient(135deg,#ffe36a,#f5c518 58%,#e7aa08);box-shadow:0 12px 30px rgba(245,197,24,.18),inset 0 1px 0 rgba(255,255,255,.58)}
.btn-secondary{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.09)}.btn-icon{min-width:44px;min-height:44px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}
.input-field{min-height:50px;background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.09);border-radius:15px}.input-field:focus{border-color:rgba(245,197,24,.7);box-shadow:0 0 0 3px rgba(245,197,24,.1)}.input-label{font-size:12px;font-weight:750;letter-spacing:.18px;color:rgba(255,255,255,.62)}
.overlay{background:rgba(0,0,0,.66);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sheet{background:radial-gradient(circle at 80% 0%,rgba(245,197,24,.07),transparent 28%),rgba(17,17,16,.96);border:1px solid rgba(255,255,255,.1);border-bottom:0;box-shadow:0 -24px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06);border-radius:30px 30px 0 0;gap:17px}.sheet-title{font-size:23px;line-height:1.15}.sheet-handle{background:rgba(255,255,255,.2)}
#screen-home .header{padding-bottom:10px}#screen-home .scroll-content{padding-left:14px!important;padding-right:14px!important}
.home-hero{min-height:126px;padding:18px;margin-bottom:12px;border-radius:26px;background:radial-gradient(circle at 88% 8%,rgba(245,197,24,.19),transparent 34%),linear-gradient(145deg,#201a0b,#12110e 58%,#0a0a09);border-color:rgba(245,197,24,.18);box-shadow:0 22px 55px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.07)}
.home-hero.is-idle{cursor:pointer}.home-hero.is-idle .home-hero-action{display:none}.home-hero h1{font-size:30px;line-height:1.06}.home-hero p{font-size:13px;line-height:1.45;max-width:78%;color:rgba(255,255,255,.58)}
.home-widget-grid{grid-template-columns:1fr 1fr!important;gap:10px;margin-bottom:10px}.home-session-card{min-height:146px;padding:15px;border-radius:24px;position:relative;isolation:isolate;overflow:hidden;box-shadow:0 18px 46px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.07);transition:transform .2s var(--ease-premium),border-color .2s,filter .2s}.home-session-card:active{transform:scale(.975);filter:brightness(1.05)}
.home-session-card:not(.home-festival-card){background:radial-gradient(circle at 10% 0%,rgba(255,228,92,.23),transparent 44%),linear-gradient(145deg,#2a2107,#17130a 60%,#0c0b08);border-color:rgba(245,197,24,.3)}
.home-festival-card{background:radial-gradient(circle at 90% 4%,rgba(116,221,255,.2),transparent 33%),radial-gradient(circle at 0% 100%,rgba(183,124,255,.25),transparent 42%),linear-gradient(145deg,#27173b,#181020 62%,#0c0a10);border-color:rgba(190,151,255,.3)}
.home-action-icon{width:38px;height:38px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.09);color:var(--accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.home-festival-card .home-action-icon{color:#d8b9ff}.home-action-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-widget-main{font-size:18px;line-height:1.08}.home-widget-sub{font-size:10.5px;line-height:1.35;margin-top:5px;display:block}.home-session-card-arrow{width:30px;height:30px;border-radius:11px;font-size:19px}.home-festival-card .home-session-card-arrow{color:#d8b9ff;background:rgba(183,124,255,.14)}
.festival-badge{font-size:9px;letter-spacing:.48px;padding:4px 7px;background:rgba(183,124,255,.12);border-color:rgba(190,151,255,.24)}
.home-trust-strip{display:flex;align-items:center;justify-content:center;gap:7px;margin:2px 2px 16px;padding:9px 12px;border-radius:14px;color:rgba(255,255,255,.48);font-size:10.5px;font-weight:650;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.05)}.home-trust-strip svg{width:14px;height:14px;stroke:var(--green);fill:none;stroke-width:1.8}
.nav-bar{border:1px solid rgba(255,255,255,.08)!important;box-shadow:0 20px 60px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.07)!important}.nav-item{min-height:50px}.nav-item.active .ni{background:rgba(245,197,24,.1);border-radius:12px}.nav-item .ni{transition:background .2s var(--ease-premium)}
.friend-item,.session-item,.settings-row{min-height:56px}.settings-row{padding-top:14px;padding-bottom:14px}.toast{background:rgba(30,29,27,.94);border-color:rgba(255,255,255,.12);box-shadow:0 16px 44px rgba(0,0,0,.4);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
@media(max-width:350px){.home-widget-grid{grid-template-columns:1fr!important}.home-session-card{min-height:112px}.home-hero h1{font-size:27px}}
@media(prefers-reduced-transparency:reduce){.sheet,.card,.nav-bar{background:#161615!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.home-trust-strip{background:#111}}

/* Instagram-inspired compact Liquid Glass navigation */
#mainNav{height:66px!important;min-height:66px!important;padding:5px!important;align-items:stretch!important;overflow:hidden!important;isolation:isolate;border-radius:999px!important;background:linear-gradient(180deg,rgba(38,40,46,.13),rgba(5,6,9,.2))!important;border:1px solid rgba(255,255,255,.2)!important;box-shadow:0 22px 58px rgba(0,0,0,.38),inset 0 1.5px 0 rgba(255,255,255,.34),inset 0 -1.5px 0 rgba(0,0,0,.42),inset 1.5px 0 0 rgba(175,220,255,.09),inset -1.5px 0 0 rgba(255,165,210,.07),0 0 0 .5px rgba(0,0,0,.58)!important;-webkit-backdrop-filter:blur(24px) saturate(235%) contrast(116%) brightness(.9)!important;backdrop-filter:blur(24px) saturate(235%) contrast(116%) brightness(.9)!important;transition:width .38s var(--ease-premium),left .38s var(--ease-premium),right .38s var(--ease-premium),transform .38s var(--ease-premium)!important}
#mainNav::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;padding:2px;background:linear-gradient(112deg,rgba(255,255,255,.48) 0%,rgba(255,255,255,.07) 17%,transparent 38%,transparent 67%,rgba(156,205,255,.13) 84%,rgba(255,255,255,.31) 100%);-webkit-backdrop-filter:blur(7px) saturate(250%) contrast(120%);backdrop-filter:blur(7px) saturate(250%) contrast(120%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
#mainNav::after{content:'';position:absolute;inset:3px;z-index:0;pointer-events:none;border-radius:inherit;background:radial-gradient(ellipse at 18% -20%,rgba(255,255,255,.13),transparent 38%),radial-gradient(ellipse at 86% 120%,rgba(94,161,255,.07),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.045),transparent 32%,rgba(0,0,0,.1));box-shadow:inset 0 8px 16px rgba(255,255,255,.018),inset 0 -9px 18px rgba(0,0,0,.18)}
html.native-app #mainNav:not(.has-session){left:50%!important;right:auto!important;width:min(286px,calc(100% - 36px))!important;transform:translateX(-50%)!important;bottom:22px!important}
html.native-app #mainNav.has-session{left:10px!important;right:10px!important;width:auto!important;transform:none!important;bottom:22px!important}
html:not(.native-app) #mainNav:not(.has-session){left:50%!important;right:auto!important;width:min(286px,calc(100% - 36px))!important;transform:translateX(-50%)!important;bottom:8px!important}
html:not(.native-app) #mainNav.has-session{left:10px!important;right:10px!important;width:auto!important;transform:none!important;bottom:8px!important}
#mainNav .nav-item{height:56px!important;min-height:56px!important;padding:0!important;gap:0!important;justify-content:center!important;position:relative;z-index:2;border-radius:999px;isolation:isolate}
#mainNav .nav-item::after{content:'';position:absolute;inset:0;border-radius:999px;background:linear-gradient(145deg,rgba(255,255,255,.2),rgba(255,255,255,.065));border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.24),inset 0 -1px 0 rgba(0,0,0,.2),0 9px 24px rgba(0,0,0,.19);-webkit-backdrop-filter:blur(12px) saturate(220%) contrast(108%);backdrop-filter:blur(12px) saturate(220%) contrast(108%);opacity:0;transform:scale(.72);transition:opacity .24s ease,transform .32s var(--ease-premium);z-index:-1}
#mainNav .nav-item.active::after{opacity:1;transform:scale(1)}
#mainNav .nav-item.session-live.visible::before{display:none!important}
#mainNav .nav-item .ni,#mainNav .nav-item.session-live .ni{width:30px!important;height:30px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;z-index:1}
#mainNav .nav-item .ni svg{width:27px!important;height:27px!important;stroke:rgba(255,255,255,.74)!important;stroke-width:1.75!important;filter:none!important;transition:stroke .2s,transform .28s var(--ease-premium)!important}
#mainNav .nav-item.active .ni svg{stroke:#fff!important;transform:scale(1.06);filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))!important}
#mainNav .nav-item.session-live .ni svg{stroke:var(--green)!important}
#mainNav .nav-item .nl{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}

/* Reusable Liquid Glass primitives */
.glass-container,.glass-card,.glass-button,.card,.sheet,.badge-detail-card,.settings-card,.toast,.input-field,.btn-secondary,.btn-icon{background-color:var(--glass-bg)!important;border-color:var(--glass-line)!important;box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(175%) contrast(106%);backdrop-filter:blur(var(--glass-blur)) saturate(175%) contrast(106%)}
.glass-card,.card,.settings-card{border-radius:var(--glass-radius)}
.glass-button,.btn-secondary,.btn-icon{box-shadow:0 9px 25px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.2)}
.sheet,.badge-detail-card{background-image:radial-gradient(circle at 74% 0%,rgba(255,255,255,.1),transparent 32%),linear-gradient(150deg,rgba(255,255,255,.045),transparent 52%)!important}

/* One GPU-transformed indicator shared by click and drag navigation */
#mainNav{touch-action:none;--bubble-x:5px;--bubble-w:82px;will-change:width,height,transform,bottom}
#mainNav .nav-item::after{display:none!important}
#mainNav .nav-glass-bubble{position:absolute;left:0;top:5px;width:var(--bubble-w);height:56px;z-index:1;pointer-events:none;border-radius:999px;transform:translate3d(var(--bubble-x),0,0);background:linear-gradient(145deg,rgba(255,255,255,.2),rgba(255,255,255,.07));border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.3),inset 0 -1px 0 rgba(0,0,0,.18),0 10px 26px rgba(0,0,0,.18);-webkit-backdrop-filter:blur(14px) saturate(225%) contrast(110%);backdrop-filter:blur(14px) saturate(225%) contrast(110%);transition:transform .52s linear(0,.01,.045,.12,.22,.35,.5,.66,.79,.89,.96,1.01,1.035,1.045,1.04,1.025,1.01,1),width .42s var(--ease-premium),height .35s var(--ease-premium)}
#mainNav .nav-glass-bubble.immediate,#mainNav.is-dragging .nav-glass-bubble{transition:none}
#mainNav .nav-item{transition:transform .34s var(--ease-premium),opacity .25s}
#mainNav .nav-item.active,#mainNav .nav-item.drag-target{transform:scale(1.1)}
#mainNav .nav-item.drag-target .ni svg{stroke:#fff!important;transform:scale(1.12)}
#mainNav.is-dragging .nav-item:not(.drag-target){transform:scale(.93);opacity:.72}
#mainNav.is-compact{height:54px!important;min-height:54px!important;bottom:calc(12px + max(0px,var(--sab) - 10px))!important}
#mainNav.is-compact .nav-item{height:44px!important;min-height:44px!important}
#mainNav.is-compact .nav-glass-bubble{height:44px}
#mainNav.is-compact .nav-item .ni svg{transform:scale(.9)}
html.native-app #mainNav:not(.has-session).is-compact,html:not(.native-app) #mainNav:not(.has-session).is-compact{width:min(236px,calc(100% - 54px))!important}
html.native-app #mainNav.has-session.is-compact,html:not(.native-app) #mainNav.has-session.is-compact{left:34px!important;right:34px!important}

/* Home optical glass system */
#screen-home .header{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important}
#screen-home .header::before,#screen-home .header::after{display:none!important}
#screen-home{overflow:hidden!important;border:0!important;outline:0!important;box-shadow:none!important}
#screen-home>.status-bar,#screen-home>.header{flex:0 0 auto;position:relative;z-index:30;border:0!important;outline:0!important;box-shadow:none!important}
#screen-home .scroll-content{position:relative;z-index:1}
#screen-home .home-hero{position:relative}
#screen-home .home-hero.is-idle .home-hero-action,#screen-home .home-hero-action{display:flex!important;position:absolute;right:18px;bottom:18px;margin:0;padding:0}
#screen-home .home-hero-action>div:first-child{display:none!important}
#screen-home .home-hero-arrow{width:38px;height:38px;border-radius:14px;background:rgba(245,197,24,.2);border:1px solid rgba(245,197,24,.2);color:var(--accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 22px rgba(0,0,0,.2)}
#screen-home .home-hero,#screen-home .home-session-card,#screen-home .home-sober-card,#screen-home .home-side-action,#screen-home .home-mini-map-card{border:1px solid rgba(255,255,255,.14)!important;background-color:rgba(20,20,24,.2)!important;-webkit-backdrop-filter:blur(22px) saturate(175%) contrast(105%);backdrop-filter:blur(22px) saturate(175%) contrast(105%);box-shadow:0 18px 44px rgba(0,0,0,.24),inset 0 1.2px 0 rgba(255,255,255,.17),inset 0 -1px 0 rgba(0,0,0,.22)!important}
#screen-home .home-hero{background:radial-gradient(circle at 86% 0%,rgba(245,197,24,.13),transparent 38%),linear-gradient(145deg,rgba(46,37,12,.26),rgba(10,10,12,.16))!important}
#screen-home .home-session-card:not(.home-festival-card){background:radial-gradient(circle at 10% 0%,rgba(255,224,82,.16),transparent 45%),linear-gradient(145deg,rgba(44,35,9,.28),rgba(8,8,10,.14))!important}
#screen-home .home-festival-card{display:flex!important;visibility:visible!important;opacity:1!important;background:radial-gradient(circle at 88% 3%,rgba(103,218,255,.15),transparent 38%),radial-gradient(circle at 0% 100%,rgba(183,124,255,.2),transparent 46%),linear-gradient(145deg,rgba(58,30,87,.3),rgba(9,8,13,.15))!important}
#screen-home .home-side-action{background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(8,8,10,.12))!important}
#screen-home .home-dashboard{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);grid-template-areas:"map actions" "map recent" "festival recent";grid-template-rows:auto minmax(0,1fr) 58px;min-height:330px;align-items:stretch}
#screen-home .home-dashboard>#homeMapCard{grid-area:map!important;width:100%!important;height:auto!important;min-height:0!important}
#screen-home .home-festival-strip{grid-area:festival;display:grid!important;grid-template-columns:30px minmax(0,1fr) 28px;align-items:center;gap:8px;width:100%;min-height:58px!important;height:58px!important;padding:8px 10px!important;margin:0;visibility:visible!important;opacity:1!important;text-align:left;border-radius:18px}
.home-festival-strip-copy{display:flex;flex-direction:column;align-items:flex-start;gap:0;min-width:0}.home-festival-strip .festival-badge,.home-festival-strip .home-widget-sub{display:none!important}.home-festival-strip .home-widget-main{font-size:12.5px;line-height:1.08}.home-festival-strip .home-action-icon{width:28px;height:28px;border-radius:11px}.home-festival-strip .home-action-icon svg{width:17px;height:17px}.home-festival-strip .home-session-card-arrow{align-self:center;width:28px;height:28px;border-radius:11px}
@media(max-width:370px){#screen-home .home-dashboard{grid-template-rows:auto minmax(0,1fr) 54px;min-height:300px}#screen-home .home-festival-strip{height:54px!important;min-height:54px!important;padding:8px!important;border-radius:16px}.home-festival-strip .home-widget-main{font-size:11.5px}}

@media(prefers-color-scheme:light){
  :root{--bg:#eef0f4;--bg2:#f5f6f8;--bg3:#fff;--bg4:#e6e8ed;--border:rgba(20,25,34,.11);--text:#101218;--text2:rgba(16,18,24,.62);--text3:rgba(16,18,24,.4);--glass-bg:rgba(255,255,255,.48);--glass-bg-strong:rgba(255,255,255,.72);--glass-line:rgba(255,255,255,.8);--glass-highlight:rgba(255,255,255,.92);--glass-shadow:0 18px 48px rgba(42,52,68,.16),inset 0 1px 0 rgba(255,255,255,.9)}
  html:not(.native-app),html:not(.native-app) body,html:not(.native-app) .app,html.native-app,html.native-app body,html.native-app .app{background:radial-gradient(circle at 50% -10%,rgba(10,132,255,.12),transparent 32%),#eef0f4!important}
  #screen-home .home-hero,#screen-home .home-session-card:not(.home-festival-card),#screen-home .home-side-action{background:linear-gradient(145deg,rgba(255,255,255,.7),rgba(231,235,242,.38))!important}
  #screen-home .home-festival-card{background:radial-gradient(circle at 88% 3%,rgba(10,132,255,.14),transparent 38%),radial-gradient(circle at 0% 100%,rgba(175,82,222,.14),transparent 46%),rgba(255,255,255,.52)!important}
  #mainNav{background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(225,231,240,.28))!important;border-color:rgba(255,255,255,.8)!important;box-shadow:0 18px 48px rgba(31,41,55,.2),inset 0 1.5px 0 #fff,inset 0 -1px 0 rgba(40,50,65,.12)!important}
  #mainNav .nav-item .ni svg{stroke:rgba(16,18,24,.66)!important}
  #mainNav .nav-item.active .ni svg,#mainNav .nav-item.drag-target .ni svg{stroke:#101218!important}
}
@supports not ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){
  .glass-container,.glass-card,.glass-button,.card,.sheet,.badge-detail-card,.settings-card,.toast,.input-field,.btn-secondary,.btn-icon,#mainNav{background:var(--surface-strong)!important}
}
@media(prefers-reduced-transparency:reduce){
  .glass-container,.glass-card,.glass-button,.card,.sheet,.badge-detail-card,.settings-card,.toast,.input-field,.btn-secondary,.btn-icon,#mainNav{background:var(--surface-strong)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
}
@media(max-width:350px){html.native-app #mainNav:not(.has-session),html:not(.native-app) #mainNav:not(.has-session){width:260px!important}}
@media(prefers-reduced-transparency:reduce){#mainNav{background:#151517!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}

/* Near-clear optical navigation: the rim carries the visual separation. */
#mainNav{background:linear-gradient(180deg,rgba(255,255,255,.012),rgba(255,255,255,.004))!important;border-color:rgba(255,255,255,.14)!important;box-shadow:0 16px 44px rgba(0,0,0,.13),inset 0 1.5px 0 rgba(255,255,255,.32),inset 0 -1px 0 rgba(0,0,0,.13),inset 1px 0 0 rgba(137,200,255,.1),inset -1px 0 0 rgba(255,158,210,.08)!important;-webkit-backdrop-filter:blur(3px) saturate(132%) contrast(106%)!important;backdrop-filter:blur(3px) saturate(132%) contrast(106%)!important}
#mainNav::before{padding:2.5px;background:linear-gradient(105deg,rgba(255,255,255,.58),rgba(255,255,255,.07) 20%,transparent 40%,transparent 64%,rgba(142,205,255,.16) 83%,rgba(255,255,255,.44));-webkit-backdrop-filter:blur(9px) saturate(260%) contrast(124%);backdrop-filter:blur(9px) saturate(260%) contrast(124%)}
#mainNav::after{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 35%,rgba(0,0,0,.025));box-shadow:inset 0 7px 15px rgba(255,255,255,.012),inset 0 -8px 16px rgba(0,0,0,.07)}
#mainNav .nav-glass-bubble{background:linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.02));border-color:rgba(255,255,255,.16);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.25),inset 0 -1px 0 rgba(0,0,0,.1),0 8px 20px rgba(0,0,0,.09);-webkit-backdrop-filter:blur(6px) saturate(180%) contrast(108%);backdrop-filter:blur(6px) saturate(180%) contrast(108%)}

/* Header is a fixed app layer; only the content below it scrolls. */
#screen-home>.status-bar{position:absolute!important;inset:0 0 auto 0;height:var(--sat)!important;z-index:39;background:var(--bg);border:0!important}
#screen-home>.header{position:absolute!important;top:var(--sat)!important;left:0!important;right:0!important;height:70px;z-index:40;margin:0!important;padding:8px 18px 12px!important;background:var(--bg)!important;border:0!important;border-top:0!important;border-bottom:0!important;outline:0!important;box-shadow:none!important;transform:none!important}
#screen-home>.scroll-content{position:absolute!important;inset:0!important;padding-top:calc(var(--sat) + 80px)!important}

.overlay.sheet-drag-active{transition:none!important}
.overlay.sheet-drag-active .sheet,.overlay.sheet-drag-active .report-edit-sheet{transform-origin:50% 100%;border-radius:32px 32px 0 0;will-change:transform}
.overlay .sheet-handle{position:relative;touch-action:none;cursor:grab}
.overlay .sheet-handle::after{content:'';position:absolute;inset:-16px -52px}
.overlay.sheet-drag-active .sheet-handle{cursor:grabbing}

/* Pure-black canvas and compact transparent main headers. */
:root{--bg:#000;--bg2:#0b0b0c;--bg3:#111;--bg4:#181818;--text:#fff;--text2:rgba(255,255,255,.62);--text3:rgba(255,255,255,.4);--border:rgba(255,255,255,.11)}
html,body,.app,.screen{background:#000!important}
.app,.screen{border:0!important;outline:0!important;box-shadow:none!important}
#screen-home,#screen-group,#screen-profile{overflow:hidden!important}
#screen-home>.status-bar,#screen-group>.status-bar,#screen-profile>.status-bar{position:absolute!important;inset:0 0 auto 0;height:var(--sat)!important;z-index:39;background:#000!important;border:0!important;box-shadow:none!important}
#screen-home>.header,#screen-group>.header,#screen-profile>.header{position:absolute!important;top:var(--sat)!important;left:0!important;right:0!important;height:62px!important;z-index:40;margin:0!important;padding:8px 18px 10px!important;background:transparent!important;border:0!important;border-top:0!important;border-bottom:0!important;outline:0!important;box-shadow:none!important;transform:none!important}
#screen-home>.scroll-content,#screen-group>.scroll-content,#screen-profile>.scroll-content{position:absolute!important;inset:0!important;padding-top:calc(var(--sat) + 72px)!important}
#screen-home .header-sub{display:none!important}
#screen-home>.header .header-title,#screen-group>.header .header-title,#screen-profile>.header .header-title{white-space:nowrap}
#screen-home>.header .btn-icon,#screen-group>.header .btn-icon,#screen-profile>.header .btn-icon{color:#fff!important}
#screen-home>.header .header-title,#screen-group>.header .header-title,#screen-profile>.header .header-title{color:#fff!important}
#screen-group>.header .friends-add-btn span{color:#fff!important}
#screen-profile>.header .btn-icon svg{stroke:#fff!important}
#mainNav .nav-item .ni svg,#mainNav .nav-item.active .ni svg,#mainNav .nav-item.drag-target .ni svg{stroke:#fff!important}
#friendsListCard:has(#friendsList:empty){display:none}

/* Friends are part of one continuous black canvas, never a nested scroll card. */
#screen-group .friends-flat-list{margin:0 16px 18px;background:transparent;border:0;border-radius:0;box-shadow:none}
#screen-group .friends-window{height:auto!important;max-height:none!important;overflow:visible!important;background:transparent}
#screen-group .friend-item{min-height:64px;padding:12px 2px;background:transparent;border-bottom:1px solid rgba(255,255,255,.075)}
#screen-group .friend-item:last-child{border-bottom:0}
#screen-group .friend-name{font-size:15px;font-weight:850;color:#fff}
#screen-group .friend-code{margin-top:2px;color:rgba(255,255,255,.36)}
#screen-group .friend-status.offline{display:none!important}

/* One stroke-based badge language replaces platform-dependent emoji artwork. */
.badge-line-icon{display:block;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.badge-full .bi{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:14px;color:var(--tier);background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.018));border:1px solid rgba(255,255,255,.11);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.badge-full .bi .badge-line-icon{width:25px;height:25px}
.badge-full:not(.unlocked) .bi{color:rgba(255,255,255,.68)}
.badge-big-icon{width:78px;height:78px;display:flex;align-items:center;justify-content:center;border-radius:25px;color:var(--accent);background:linear-gradient(145deg,rgba(245,197,24,.13),rgba(255,255,255,.025));border:1px solid rgba(245,197,24,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 14px 32px rgba(0,0,0,.22)}
.badge-big-icon .badge-line-icon{width:48px;height:48px;stroke-width:1.45}
.badge-summary-icon{display:flex;align-items:center;justify-content:center;color:var(--accent)}
.badge-summary-icon .badge-line-icon{width:23px;height:23px}
.end-summary-badge{width:58px;height:58px;cursor:pointer;background:rgba(255,255,255,.045);color:#fff}
.end-summary-badge .badge-summary-icon{color:var(--accent)}
.badge-full .bi{width:34px;height:34px;border-radius:0;background:transparent;border:0;box-shadow:none}
.badge-full .bi .badge-line-icon{width:29px;height:29px}
.badge-big-icon{background:transparent;border:0;box-shadow:none;border-radius:0}
.badge-summary-icon{background:transparent;border:0;box-shadow:none}

/* Compact social session feed inspired by media cards, without engagement clutter. */
.friend-feed-list{gap:18px;padding:2px 0 8px}
.friend-feed-post{position:relative;min-width:0}
.friend-feed-post-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;margin-bottom:9px}
.friend-feed-person{min-width:0;min-height:48px;display:flex;align-items:center;gap:11px;padding:2px 0;border:0;background:transparent;color:#fff;font-family:inherit;text-align:left;cursor:pointer}
.friend-feed-post-avatar{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 46px;background:#141414;border:1px solid rgba(255,255,255,.24);box-shadow:0 0 0 2px #000,0 0 0 3px rgba(245,197,24,.45),0 8px 20px rgba(0,0,0,.28)}
.friend-feed-post-avatar img{width:100%;height:100%;object-fit:cover}
.friend-feed-person-copy{min-width:0;display:flex;align-items:baseline;gap:8px}
.friend-feed-person-copy strong{max-width:min(54vw,240px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:950;letter-spacing:-.2px;color:#fff}
.friend-feed-person-copy time{font-size:12px;font-weight:750;color:rgba(255,255,255,.42);white-space:nowrap}
.friend-feed-menu-wrap{position:relative;flex:0 0 auto;z-index:8}
.friend-feed-more{width:44px;height:44px;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}
.friend-feed-more svg{width:27px;height:27px;fill:currentColor}
.friend-feed-more:active{background:rgba(255,255,255,.07)}
.friend-feed-menu{position:absolute;right:0;top:42px;width:154px;padding:6px;border-radius:18px;background:linear-gradient(145deg,rgba(38,38,42,.8),rgba(14,14,17,.72));border:1px solid rgba(255,255,255,.18);box-shadow:0 18px 50px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.2);-webkit-backdrop-filter:blur(16px) saturate(175%);backdrop-filter:blur(16px) saturate(175%);transform-origin:90% 0;animation:feedMenuIn .22s var(--ease-premium)}
.friend-feed-menu[hidden]{display:none}
.friend-feed-menu button{width:100%;min-height:44px;padding:0 10px;display:flex;align-items:center;gap:10px;border:0;border-radius:12px;background:transparent;color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer;text-align:left}
.friend-feed-menu button:active{background:rgba(255,255,255,.1)}
.friend-feed-menu svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.friend-feed-session-card{position:relative;isolation:isolate;width:100%;min-height:112px;display:grid;grid-template-columns:82px minmax(0,1fr) 78px;align-items:center;gap:12px;padding:12px;border-radius:25px;border:1px solid rgba(255,255,255,.17);overflow:hidden;background:radial-gradient(circle at 4% 5%,rgba(52,170,255,.2),transparent 36%),radial-gradient(circle at 68% 115%,rgba(245,197,24,.14),transparent 48%),linear-gradient(135deg,rgba(41,43,50,.54),rgba(17,17,20,.23));box-shadow:0 16px 42px rgba(0,0,0,.25),inset 0 1.3px 0 rgba(255,255,255,.23),inset 0 -1px 0 rgba(0,0,0,.3);-webkit-backdrop-filter:blur(7px) saturate(160%) contrast(106%);backdrop-filter:blur(7px) saturate(160%) contrast(106%);color:#fff;font-family:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .2s var(--ease-premium),border-color .2s ease}
.friend-feed-session-card::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(112deg,rgba(255,255,255,.09),transparent 28%,transparent 70%,rgba(127,204,255,.08))}
.friend-feed-session-card:active{transform:scale(.985);border-color:rgba(255,255,255,.28)}
.friend-feed-map{width:82px;height:82px;border-radius:17px;overflow:hidden;background:#182027;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 8px 22px rgba(0,0,0,.24)}
.friend-feed-map svg{display:block;width:100%;height:100%;background:radial-gradient(circle at 75% 18%,rgba(255,255,255,.14),transparent 28%),linear-gradient(145deg,#263944,#11181d)}
.friend-feed-map-road{fill:none;stroke:rgba(255,255,255,.16);stroke-width:2.2}
.friend-feed-map-road.wide{stroke-width:5;stroke:rgba(255,255,255,.11)}
.friend-feed-map-road.thin{stroke-width:1.2}
.friend-feed-map-route{fill:none;stroke:#69dfff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(105,223,255,.65))}
.friend-feed-map-pin{fill:#fff;stroke:#69dfff;stroke-width:2}
.friend-feed-map.map-tone-b svg{background:radial-gradient(circle at 70% 15%,rgba(255,255,255,.13),transparent 28%),linear-gradient(145deg,#392d3e,#17131b)}
.friend-feed-map.map-tone-b .friend-feed-map-route,.friend-feed-map.map-tone-b .friend-feed-map-pin{stroke:#ff85c2}
.friend-feed-map.map-tone-c svg{background:radial-gradient(circle at 70% 15%,rgba(255,255,255,.12),transparent 28%),linear-gradient(145deg,#42391d,#19160e)}
.friend-feed-map.map-tone-c .friend-feed-map-route,.friend-feed-map.map-tone-c .friend-feed-map-pin{stroke:#f5c518}
.friend-feed-session-copy{min-width:0;align-self:center}
.friend-feed-session-copy>strong{display:block;font-size:16px;font-weight:950;letter-spacing:-.38px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.friend-feed-session-meta{display:flex;align-items:center;gap:7px;margin-top:8px;color:rgba(255,255,255,.62);font-size:11px;font-weight:750;white-space:nowrap}
.friend-feed-session-meta b{color:#fff;font-family:'DM Mono',monospace;font-weight:900}
.friend-feed-session-meta i{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.38)}
.friend-feed-peak{--feed-peak:20%;position:relative;width:76px;height:76px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;justify-self:end;background:conic-gradient(#69dfff var(--feed-peak),rgba(255,255,255,.1) 0);box-shadow:0 0 20px rgba(105,223,255,.09)}
.friend-feed-peak::before{content:'';position:absolute;inset:4px;border-radius:50%;background:rgba(7,9,11,.76);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.friend-feed-peak small,.friend-feed-peak strong{position:relative;z-index:1}
.friend-feed-peak small{font-size:6px;line-height:1;font-weight:950;letter-spacing:.75px;color:rgba(255,255,255,.48)}
.friend-feed-peak strong{font-size:17px;line-height:1.1;margin-top:4px;font-family:'DM Mono',monospace;font-weight:950;color:#fff;letter-spacing:-.8px}
.friend-feed-peak em{font-size:10px;font-style:normal;margin-left:1px;color:#69dfff}
@keyframes feedMenuIn{from{opacity:0;transform:translateY(-5px) scale(.94)}to{opacity:1;transform:none}}
@media(max-width:370px){
  .friend-feed-session-card{grid-template-columns:72px minmax(0,1fr) 68px;gap:9px;padding:10px;min-height:102px;border-radius:22px}
  .friend-feed-map{width:72px;height:72px;border-radius:15px}
  .friend-feed-peak{width:66px;height:66px}
  .friend-feed-peak strong{font-size:15px}
  .friend-feed-session-copy>strong{font-size:14px}
  .friend-feed-session-meta{font-size:10px;gap:5px}
}
@media(prefers-reduced-motion:reduce){.friend-feed-menu{animation:none}.friend-feed-session-card{transition:none}}

/* Near-clear Liquid Glass for the primary home actions and latest session. */
#screen-home .home-side-action,#screen-home .home-recent-panel .recap-gallery-card{
  background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.014) 60%,rgba(116,190,255,.025))!important;
  border:1px solid rgba(255,255,255,.17)!important;
  box-shadow:0 14px 36px rgba(0,0,0,.19),inset 0 1.2px 0 rgba(255,255,255,.27),inset 0 -1px 0 rgba(0,0,0,.22),inset 1px 0 0 rgba(130,198,255,.07),inset -1px 0 0 rgba(255,150,204,.055)!important;
  -webkit-backdrop-filter:blur(5px) saturate(160%) contrast(107%)!important;
  backdrop-filter:blur(5px) saturate(160%) contrast(107%)!important;
}
#screen-home .home-action-plus,#screen-home .home-session-card-arrow,#screen-home .home-action-icon{
  color:#fff!important;
  background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.025))!important;
  border:1px solid rgba(255,255,255,.17)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 6px 16px rgba(0,0,0,.14)!important;
  -webkit-backdrop-filter:blur(4px) saturate(150%);
  backdrop-filter:blur(4px) saturate(150%);
}
#screen-home .home-action-plus svg,#screen-home .home-action-icon svg{width:19px;height:19px;fill:none;stroke:#fff!important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#screen-home .home-recent-panel .recap-gallery-date{color:#fff!important;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
@media(prefers-reduced-transparency:reduce){
  .friend-feed-session-card,#screen-home .home-side-action,#screen-home .home-recent-panel .recap-gallery-card{background:#151517!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .friend-feed-menu{background:#1a1a1d;-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* Feed visuals stay information-first: route and BAC value without ornamental frames. */
.friend-feed-map{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.friend-feed-map svg,.friend-feed-map.map-tone-b svg,.friend-feed-map.map-tone-c svg{background:transparent!important;overflow:visible}
.friend-feed-map-road,.friend-feed-map-pin{display:none}
.friend-feed-map-route{stroke:#fff;stroke-width:4.2;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}
.friend-feed-map.map-tone-b .friend-feed-map-route{stroke:#fff}
.friend-feed-map.map-tone-c .friend-feed-map-route{stroke:#fff}
.friend-feed-peak{width:74px;height:auto;min-height:54px;border-radius:0;background:transparent!important;box-shadow:none!important}
.friend-feed-peak::before{display:none}
.friend-feed-peak small{font-size:7px;color:rgba(255,255,255,.42)}
.friend-feed-peak strong{font-size:20px;margin-top:5px;letter-spacing:-1px}
.friend-feed-peak em{color:#fff}

/* The Today card arrow follows the same white optical-button language. */
#screen-home .home-hero-arrow,#screen-home .home-hero.active .home-hero-arrow,#screen-home .home-hero.session-focus .home-hero-arrow{
  color:#fff!important;
  background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.024))!important;
  border:1px solid rgba(255,255,255,.17)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 7px 18px rgba(0,0,0,.16)!important;
  -webkit-backdrop-filter:blur(4px) saturate(150%);
  backdrop-filter:blur(4px) saturate(150%);
}

/* White optical-glass icon controls across every app screen. */
.btn-icon{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  padding:0;
  color:#fff!important;
  background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.018) 58%,rgba(120,190,255,.035))!important;
  border:1px solid rgba(255,255,255,.17)!important;
  box-shadow:0 9px 24px rgba(0,0,0,.18),inset 0 1.25px 0 rgba(255,255,255,.3),inset 0 -1px 0 rgba(0,0,0,.2),inset 1px 0 0 rgba(140,205,255,.08),inset -1px 0 0 rgba(255,155,205,.06)!important;
  -webkit-backdrop-filter:blur(5px) saturate(165%) contrast(108%)!important;
  backdrop-filter:blur(5px) saturate(165%) contrast(108%)!important;
  -webkit-tap-highlight-color:transparent;
  transition:transform .22s var(--ease-premium),background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.btn-icon::before{
  content:'';
  position:absolute;
  inset:1px;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:conic-gradient(from 210deg,rgba(135,202,255,.11),rgba(255,255,255,.36) 14%,transparent 32%,transparent 67%,rgba(255,157,207,.08) 81%,rgba(255,255,255,.22));
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1px));
}
.btn-icon>svg{
  position:relative;
  z-index:1;
  width:24px!important;
  height:24px!important;
  color:#fff!important;
  stroke:#fff!important;
}
.btn-icon>span{position:relative;z-index:1;color:#fff!important}
.btn-icon:active{transform:scale(.94)}
.btn-icon:focus-visible{outline:2px solid rgba(255,255,255,.9);outline-offset:3px}
.btn-icon.friends-add-btn span{font-size:29px}
@media(prefers-reduced-motion:reduce){.btn-icon{transition:none}}
@media(prefers-reduced-transparency:reduce){
  .btn-icon{
    background:#171719!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}

/* Profile: identity first, with two calm content modes instead of a dashboard wall. */
.profile-page-scroll{padding-left:0!important;padding-right:0!important}
.profile-overview{padding:12px 18px 8px}
.profile-overview-top{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:18px}
.profile-overview .profile-avatar-wrap,.profile-overview .profile-avatar{width:96px;height:96px}
.profile-overview .profile-avatar{font-size:28px;border-radius:50%;background:#111;border:1px solid rgba(255,255,255,.18);box-shadow:0 12px 32px rgba(0,0,0,.34);overflow:hidden}
.profile-overview .profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-overview .profile-avatar-edit{right:-1px;bottom:-1px;width:30px;height:30px;color:#fff;background:rgba(18,18,20,.82);border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.profile-overview .profile-avatar-edit svg{width:15px;height:15px;stroke-width:1.8}
.profile-top-stats{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.profile-top-stats>div{min-width:0;text-align:center}
.profile-top-stats strong{display:block;color:#fff;font-family:'DM Mono',monospace;font-size:23px;line-height:1.05;font-weight:950;letter-spacing:-1px;white-space:nowrap}
.profile-top-stats span{display:block;margin-top:7px;color:rgba(255,255,255,.5);font-size:9px;line-height:1.15;font-weight:800;letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-overview h1{margin:18px 0 0;color:#fff;font-size:28px;line-height:1.05;font-weight:950;letter-spacing:-.9px}
.profile-bio{margin:8px 0 0;color:rgba(255,255,255,.82);font-size:14px;line-height:1.45}
.profile-meta-line{margin:6px 0 0;color:rgba(255,255,255,.38);font-size:12px;line-height:1.35}
.profile-calendar-row{width:calc(100% - 36px);min-height:50px;margin:10px 18px 16px;padding:0 14px;display:grid;grid-template-columns:25px minmax(0,1fr) 20px;align-items:center;gap:11px;border-radius:18px;color:#fff;background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.012));border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);-webkit-backdrop-filter:blur(4px) saturate(150%);backdrop-filter:blur(4px) saturate(150%);font:inherit;text-align:left}
.profile-calendar-row svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.profile-calendar-row svg:last-child{width:18px;height:18px;color:rgba(255,255,255,.5)}
.profile-calendar-row span{font-size:13px;font-weight:850}
.profile-calendar-row:active{transform:scale(.985);background:rgba(255,255,255,.08)}
.profile-tabs{height:53px;margin:0 18px 17px;display:grid;grid-template-columns:repeat(2,1fr);border-bottom:1px solid rgba(255,255,255,.13)}
.profile-tabs button{position:relative;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:rgba(255,255,255,.38);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .2s ease,transform .2s var(--ease-premium)}
.profile-tabs button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--ease-premium)}
.profile-tabs button::after{content:'';position:absolute;left:17%;right:17%;bottom:-1px;height:2px;border-radius:2px;background:#fff;opacity:0;transform:scaleX(.25);transition:opacity .2s ease,transform .32s var(--ease-premium)}
.profile-tabs button.active{color:#fff}
.profile-tabs button.active svg{transform:translateY(-1px) scale(1.06)}
.profile-tabs button.active::after{opacity:1;transform:scaleX(1)}
.profile-tab-panel[hidden]{display:none!important}
.profile-activity-list{display:flex;flex-direction:column;gap:12px;padding:0 18px 28px}
.profile-activity-card{width:100%;min-height:94px;padding:12px;display:grid;grid-template-columns:70px minmax(0,1fr) 67px;align-items:center;gap:11px;border-radius:22px;color:#fff;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.012));border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 12px 28px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(4px) saturate(150%);backdrop-filter:blur(4px) saturate(150%);font:inherit;text-align:left;transition:transform .2s var(--ease-premium),border-color .2s ease}
.profile-activity-card:active{transform:scale(.985);border-color:rgba(255,255,255,.24)}
.profile-activity-card .friend-feed-map{width:68px;height:68px}
.profile-activity-copy{min-width:0}
.profile-activity-copy>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.2;font-weight:950;letter-spacing:-.2px}
.profile-activity-copy>span{display:flex;align-items:center;gap:6px;margin-top:7px;white-space:nowrap;color:rgba(255,255,255,.5);font-size:9px;font-weight:750}
.profile-activity-copy i{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.35)}
.profile-activity-bac{justify-self:end;text-align:right}
.profile-activity-bac small{display:block;color:rgba(255,255,255,.38);font-size:6px;font-weight:950;letter-spacing:.55px}
.profile-activity-bac strong{display:block;margin-top:5px;color:#fff;font-family:'DM Mono',monospace;font-size:17px;line-height:1;font-weight:950;letter-spacing:-.8px}
.profile-activity-bac em{font-size:10px;font-style:normal;margin-left:1px}
.profile-activity-empty{padding:32px 12px;text-align:center;color:rgba(255,255,255,.38);font-size:13px;line-height:1.45}
.profile-secondary-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:0 18px 14px;background:rgba(255,255,255,.11);border-radius:18px;overflow:hidden}
.profile-secondary-stats>div{min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#090909}
.profile-secondary-stats strong{font-family:'DM Mono',monospace;font-size:19px;font-weight:950}
.profile-secondary-stats span{margin-top:4px;color:rgba(255,255,255,.46);font-size:9px;font-weight:800}
.profile-level-panel{position:relative;margin:0 18px 16px;padding:14px;display:grid;grid-template-columns:47px minmax(0,1fr);align-items:center;gap:11px;border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.014));border:1px solid rgba(255,255,255,.13);overflow:hidden}
.profile-level-number{width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#000;background:var(--accent);font-family:'DM Mono',monospace;font-size:19px;font-weight:950}
.profile-level-panel>div:nth-child(2){min-width:0}
.profile-level-panel span,.profile-level-panel strong,.profile-level-panel small{display:block}
.profile-level-panel span{color:var(--accent);font-size:7px;font-weight:950;letter-spacing:1.1px}
.profile-level-panel strong{margin-top:2px;font-size:14px;font-weight:950}
.profile-level-panel small{margin-top:2px;color:rgba(255,255,255,.44);font-size:9px}
.profile-level-track{grid-column:1/-1;height:4px;border-radius:4px;background:rgba(255,255,255,.1);overflow:hidden}
.profile-level-track>div{height:100%;border-radius:inherit;background:var(--accent);transition:width .5s var(--ease-premium)}
#profileStatsPanel>.section-head,#friendProfileStatsPanel>.section-head{padding-left:18px;padding-right:18px}
#profileStatsPanel>.top-drinks-card,#friendProfileStatsPanel>.top-drinks-card,#profileStatsPanel>.profile-heatmap-card{margin-left:18px;margin-right:18px}
#profileStatsPanel>.badges-grid,#friendProfileStatsPanel>.badges-grid{padding-left:18px;padding-right:18px}

/* Secondary screens keep their title and back control visible as one transparent layer. */
#screen-badges,#screen-profile-drinks,#screen-summary-list,#screen-settings,#screen-session-detail,#screen-sober,#screen-friend-profile,#screen-group-session{overflow:hidden!important}
#screen-badges>.header,#screen-profile-drinks>.header,#screen-summary-list>.header,#screen-settings>.header,#screen-session-detail>.header,#screen-sober>.header,#screen-friend-profile>.header,#screen-group-session>.header{position:relative!important;z-index:42!important;flex:0 0 auto;background:transparent!important;border:0!important;border-top:0!important;border-bottom:0!important;box-shadow:none!important}
#screen-badges>.scroll-content,#screen-profile-drinks>.scroll-content,#screen-summary-list>.scroll-content,#screen-settings>.scroll-content,#screen-session-detail>.scroll-content,#screen-sober>.scroll-content,#screen-friend-profile>.scroll-content,#screen-group-session>.scroll-content{min-height:0;flex:1 1 auto;overflow-y:auto!important;-webkit-overflow-scrolling:touch}

@media(max-width:370px){
  .profile-overview-top{grid-template-columns:84px minmax(0,1fr);gap:12px}
  .profile-overview .profile-avatar-wrap,.profile-overview .profile-avatar{width:84px;height:84px}
  .profile-top-stats strong{font-size:20px}
  .profile-top-stats span{font-size:8px}
  .profile-activity-card{grid-template-columns:60px minmax(0,1fr) 60px;gap:8px;padding:10px}
  .profile-activity-card .friend-feed-map{width:58px;height:58px}
  .profile-activity-copy>span{font-size:8px;gap:4px}
  .profile-activity-bac strong{font-size:15px}
}
@media(prefers-reduced-motion:reduce){
  .profile-tabs button,.profile-tabs button svg,.profile-tabs button::after,.profile-activity-card,.profile-level-track>div{transition:none}
}

/* Compact one-line profile statistics. */
.profile-stats{gap:5px!important;margin-left:12px!important;margin-right:12px!important}
.profile-stat{min-width:0;padding:10px 3px!important;border-radius:15px!important}
.profile-stat-num{font-size:18px!important;line-height:1.05;letter-spacing:-.8px!important;white-space:nowrap}
.profile-stat-label{font-size:8px!important;line-height:1.1;letter-spacing:.12px!important;white-space:nowrap;overflow:hidden;text-overflow:clip}

/* Distort the illuminated rim itself while leaving the center optically clear. */
#mainNav::before{filter:url(#liquid-edge-warp);background:conic-gradient(from 202deg at 50% 50%,rgba(120,190,255,.18),rgba(255,255,255,.62) 12%,rgba(255,255,255,.05) 27%,transparent 39%,rgba(255,148,204,.12) 55%,transparent 68%,rgba(255,255,255,.48) 87%,rgba(120,190,255,.18))!important;box-shadow:inset 2px 0 2px rgba(116,190,255,.12),inset -2px 0 2px rgba(255,145,205,.1)}
.night-timeline{padding:8px 16px 14px}
.timeline-item{display:grid;grid-template-columns:42px 1fr;gap:10px;position:relative;padding:8px 0}
.timeline-item::before{content:'';position:absolute;left:20px;top:34px;bottom:-10px;width:1px;background:var(--border)}
.timeline-item:last-child::before{display:none}
.timeline-dot{width:40px;height:40px;border-radius:50%;background:var(--bg3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.timeline-title{font-size:14px;font-weight:800}
.timeline-meta{font-size:12px;color:var(--text2);line-height:1.35;margin-top:2px}
.recap-card{margin:0 16px 16px;border-radius:24px;padding:24px 20px;background:#101010;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 50px rgba(0,0,0,.35);text-align:center}
.recap-card-title{font-size:12px;color:var(--text2);font-weight:900;letter-spacing:1.8px;text-transform:uppercase}
.recap-card-main{font-size:30px;font-weight:950;letter-spacing:-.8px;margin:6px 0 18px}
.recap-card-stat{margin:14px 0}
.recap-card-stat span{display:block;font-size:13px;color:var(--text2);font-weight:800}
.recap-card-stat strong{display:block;font-size:30px;line-height:1.05;font-family:'DM Mono',monospace;margin-top:3px}
.recap-card-trace{width:160px;height:110px;margin:18px auto 12px;color:var(--accent)}
.recap-card-brand{font-size:20px;font-weight:950;letter-spacing:-.7px;margin-top:10px}
.session-photo-strip{display:flex;gap:10px;padding:12px 14px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.session-photo-strip::-webkit-scrollbar{display:none}
.session-photo-card{width:92px;flex:0 0 92px;border-radius:14px;overflow:hidden;background:var(--bg3);border:1px solid var(--border);position:relative}
.session-photo-card .photo-frame{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;color:var(--text3)}
.session-photo-card img{width:100%;height:100%;object-fit:cover;display:block}
.session-photo-time{position:absolute;left:6px;bottom:6px;background:rgba(0,0,0,.68);border:1px solid rgba(255,255,255,.12);border-radius:100px;padding:3px 7px;font-size:10px;font-weight:700;font-family:'DM Mono',monospace;color:#fff;backdrop-filter:blur(8px)}
@keyframes pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(245,197,24,.2)}50%{transform:scale(1.03);box-shadow:0 0 0 16px rgba(245,197,24,0)}}

/* SCROLLBAR HIDE */
.screen::-webkit-scrollbar,.session-scroll::-webkit-scrollbar,.scroll-content::-webkit-scrollbar{display:none}

/* Interaction refinement: motion is local, information stays clear and touch targets stay large. */
.profile-bio-input{height:auto!important;min-height:82px;resize:none;line-height:1.45;padding-top:13px}
.friend-share-glass{margin:0;text-align:center;padding:17px 16px;cursor:pointer;border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.012));border:1px solid rgba(255,255,255,.15);box-shadow:inset 0 1.2px 0 rgba(255,255,255,.23),0 14px 34px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(5px) saturate(160%);backdrop-filter:blur(5px) saturate(160%)}
#screen-group .friend-share-glass{margin:0}
.friend-share-glass #myFriendCode,.friend-share-glass #groupMyFriendCode{color:#fff!important;font-weight:950!important;text-shadow:0 2px 14px rgba(255,255,255,.12)}

/* A restrained glass lava field gives Today's Night one premium moving focal point. */
#screen-home .home-hero.is-idle{isolation:isolate;background:linear-gradient(145deg,rgba(245,197,24,.055),rgba(255,255,255,.012) 52%,rgba(255,112,38,.025))!important;-webkit-backdrop-filter:blur(5px) saturate(155%) contrast(108%)!important;backdrop-filter:blur(5px) saturate(155%) contrast(108%)!important}
#screen-home .home-hero.is-idle::before,#screen-home .home-hero.is-idle::after{content:'';position:absolute;z-index:-1;pointer-events:none;border-radius:48% 52% 58% 42%;filter:blur(18px);will-change:transform}
#screen-home .home-hero.is-idle::before{display:block!important;width:190px;height:150px;top:-58px;left:-38px;background:radial-gradient(circle at 40% 40%,rgba(245,197,24,.34),rgba(245,133,24,.12) 48%,transparent 72%);animation:homeLavaA 11s ease-in-out infinite alternate}
#screen-home .home-hero.is-idle::after{width:180px;height:155px;right:-48px;bottom:-70px;background:radial-gradient(circle at 55% 45%,rgba(255,94,38,.2),rgba(245,197,24,.1) 47%,transparent 72%);animation:homeLavaB 13s ease-in-out infinite alternate}
#screen-home .home-hero>*{position:relative;z-index:1}
@keyframes homeLavaA{0%{transform:translate3d(-8px,-4px,0) scale(.92) rotate(-8deg)}48%{transform:translate3d(92px,38px,0) scale(1.18) rotate(18deg)}100%{transform:translate3d(205px,10px,0) scale(.9) rotate(40deg)}}
@keyframes homeLavaB{0%{transform:translate3d(12px,4px,0) scale(1.05) rotate(4deg)}55%{transform:translate3d(-110px,-28px,0) scale(.88) rotate(-22deg)}100%{transform:translate3d(-214px,10px,0) scale(1.12) rotate(-42deg)}}

/* Feed: compact identity, signature yellow routes, BAC as a strong heat-coded value. */
.friend-feed-post-head{min-height:40px;margin-bottom:7px}
.friend-feed-person{min-height:38px;gap:9px}
.friend-feed-post-avatar{width:34px;height:34px;flex-basis:34px;box-shadow:0 0 0 1px #000,0 0 0 2px rgba(245,197,24,.4),0 6px 14px rgba(0,0,0,.24)}
.friend-feed-person-copy strong{font-size:14px}
.friend-feed-person-copy time{font-size:11px}
.friend-feed-map-route,.friend-feed-map.map-tone-b .friend-feed-map-route,.friend-feed-map.map-tone-c .friend-feed-map-route{stroke:var(--accent)!important;filter:drop-shadow(0 2px 6px rgba(245,197,24,.34))}
.friend-feed-peak strong{font-size:25px!important;line-height:1;font-weight:950!important}
.friend-feed-peak em{color:inherit!important;font-weight:950}
.profile-activity-bac strong{font-size:19px;font-weight:950}
.profile-activity-bac em{color:inherit}
.profile-activity-copy>span{overflow:hidden;text-overflow:ellipsis}
.profile-activity-copy time{color:rgba(255,255,255,.72);font-weight:850}

/* Latest session keeps one outer glass surface; its internal data has no boxes. */
#sessionList .recap-gallery-date{min-width:auto;padding:0;background:transparent!important;border:0!important;border-radius:0;box-shadow:none;font-size:15px;text-align:right;color:#fff!important}
#sessionList .recap-gallery-date span{font-size:9px;margin-top:3px}
#sessionList .recap-gallery-stat{padding:4px 0;background:transparent!important;border:0!important;border-radius:0;box-shadow:none}
#sessionList .recap-gallery-stat strong{font-size:21px}
#sessionList .recap-gallery-trace{background:transparent!important;border:0!important;box-shadow:none!important}

/* Profile actions and scoped horizontal navigation. */
.profile-overview .profile-avatar-edit{display:none!important}
.profile-top-stats>div[role="button"]{cursor:pointer;border-radius:12px;-webkit-tap-highlight-color:transparent}
.profile-top-stats>div[role="button"]:active{background:rgba(255,255,255,.06)}
.profile-actions-row{margin:10px 18px 16px;display:grid;grid-template-columns:1fr 1fr;gap:9px}
.profile-actions-row .profile-calendar-row,.profile-edit-row{width:100%;min-width:0;min-height:50px;margin:0;padding:0 12px;display:grid;grid-template-columns:23px minmax(0,1fr);align-items:center;gap:9px;border-radius:18px;color:#fff;background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.012));border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);-webkit-backdrop-filter:blur(4px) saturate(150%);backdrop-filter:blur(4px) saturate(150%);font:inherit;text-align:left;cursor:pointer}
.profile-actions-row svg,.profile-edit-row svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.profile-actions-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:850}
.profile-actions-row button:active{transform:scale(.98);background:rgba(255,255,255,.08)}
.profile-tab-enter-left{animation:profileTabFromRight .3s var(--ease-premium)}
.profile-tab-enter-right{animation:profileTabFromLeft .3s var(--ease-premium)}
@keyframes profileTabFromRight{from{opacity:.25;transform:translate3d(26px,0,0)}to{opacity:1;transform:none}}
@keyframes profileTabFromLeft{from{opacity:.25;transform:translate3d(-26px,0,0)}to{opacity:1;transform:none}}
.history-activity-list{padding-top:4px!important}
.history-activity-row{display:grid;grid-template-columns:minmax(0,1fr) 40px;align-items:center;gap:8px}
.history-activity-row .profile-activity-card{min-width:0}
.history-activity-delete{width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:15px;color:#ff453a;background:rgba(255,69,58,.08);border:1px solid rgba(255,69,58,.15)}
.history-activity-delete svg{width:18px;height:18px;stroke-width:1.8;stroke-linecap:round}

/* Scroll-linked nav interpolation: slow scroll = slow morph, fast scroll = fast morph. */
#mainNav{--nav-collapse:0;--nav-height:66px;--nav-item-height:56px;--nav-idle-width:286px;--nav-idle-gap:36px;--nav-side:10px;--nav-native-bottom:22px;--nav-web-bottom:8px;--nav-icon-scale:1;height:var(--nav-height)!important;min-height:var(--nav-height)!important;padding:5px!important;transition:width .14s ease-out,left .14s ease-out,right .14s ease-out,bottom .14s ease-out,height .14s ease-out,min-height .14s ease-out!important}
#mainNav .nav-item{height:var(--nav-item-height)!important;min-height:var(--nav-item-height)!important;transition:height .14s ease-out,min-height .14s ease-out,transform .34s var(--ease-premium),opacity .25s}
#mainNav .nav-glass-bubble{height:var(--nav-item-height);transition:transform .52s linear(0,.01,.045,.12,.22,.35,.5,.66,.79,.89,.96,1.01,1.035,1.045,1.04,1.025,1.01,1),width .14s ease-out,height .14s ease-out}
#mainNav .nav-item .ni svg{transform:scale(var(--nav-icon-scale))}
html.native-app #mainNav:not(.has-session),html:not(.native-app) #mainNav:not(.has-session){width:min(var(--nav-idle-width),calc(100% - var(--nav-idle-gap)))!important}
html.native-app #mainNav.has-session,html:not(.native-app) #mainNav.has-session{left:var(--nav-side)!important;right:var(--nav-side)!important}
html.native-app #mainNav{bottom:var(--nav-native-bottom)!important}
html:not(.native-app) #mainNav{bottom:var(--nav-web-bottom)!important}

@media(max-width:370px){
  .profile-actions-row{margin-left:14px;margin-right:14px;gap:7px}
  .profile-actions-row .profile-calendar-row,.profile-edit-row{padding:0 9px;gap:7px}
  .profile-actions-row span{font-size:10px}
  .history-activity-row{grid-template-columns:minmax(0,1fr) 36px;gap:6px}
  .history-activity-delete{width:36px;height:36px}
}
@media(prefers-reduced-motion:reduce){
  #screen-home .home-hero.is-idle::before,#screen-home .home-hero.is-idle::after{animation:none!important}
  .profile-tab-enter-left,.profile-tab-enter-right{animation:none!important}
  #mainNav,#mainNav .nav-item,#mainNav .nav-glass-bubble{transition:none!important}
}

/* Final alignment and reactive glass polish. */
.profile-actions-row .profile-calendar-row,.profile-edit-row{display:flex;align-items:center;justify-content:center;text-align:center}
.profile-actions-row span{flex:0 1 auto}

#screen-home .home-hero-arrow{width:42px!important;height:42px!important;border-radius:15px!important}
#screen-home .home-hero-arrow svg{width:29px;height:29px;fill:none;stroke:#fff;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}

#screen-home .home-festival-strip{grid-template-columns:30px minmax(0,1fr)!important;isolation:isolate}
#screen-home .home-festival-strip-copy{min-width:0}
#screen-home .home-festival-strip .home-widget-main{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important}
#screen-home .home-festival-strip::before,#screen-home .home-festival-strip::after{content:'';position:absolute;z-index:-1;pointer-events:none;border-radius:48% 52% 55% 45%;filter:blur(13px);will-change:transform}
#screen-home .home-festival-strip::before{display:block!important;width:110px;height:82px;left:-35px;top:-34px;background:radial-gradient(circle,rgba(183,124,255,.48),rgba(111,208,255,.13) 52%,transparent 74%);animation:festivalLavaA 20s ease-in-out infinite alternate}
#screen-home .home-festival-strip::after{width:105px;height:78px;right:-32px;bottom:-36px;background:radial-gradient(circle,rgba(105,223,255,.42),rgba(183,124,255,.12) 52%,transparent 74%);animation:festivalLavaB 24s ease-in-out infinite alternate}
@keyframes festivalLavaA{0%{transform:translate3d(-5px,0,0) scale(.9)}50%{transform:translate3d(68px,18px,0) scale(1.16)}100%{transform:translate3d(135px,-2px,0) scale(.94)}}
@keyframes festivalLavaB{0%{transform:translate3d(5px,0,0) scale(1.06)}55%{transform:translate3d(-72px,-16px,0) scale(.9)}100%{transform:translate3d(-138px,3px,0) scale(1.1)}}

#sessionList .recap-gallery-kicker{color:#fff!important}
#sessionList .recap-gallery-date{min-width:42px;padding:7px 6px}
#sessionList .recap-gallery-stats .recap-gallery-stat:nth-child(2) strong{color:#fff!important}

.friend-feed-session-card{min-height:88px;grid-template-columns:66px minmax(0,1fr) 76px;gap:10px;padding:9px 11px;border-radius:22px;background:radial-gradient(circle at 12% 18%,rgba(var(--feed-heat-rgb,245,197,24),.22),transparent 44%),linear-gradient(145deg,rgba(var(--feed-heat-rgb,245,197,24),.105),rgba(15,15,17,.25))!important;box-shadow:0 12px 32px rgba(0,0,0,.23),inset 0 1.2px 0 rgba(255,255,255,.19),inset 0 -1px 0 rgba(0,0,0,.28)!important}
.friend-feed-session-card .friend-feed-map{width:64px;height:64px}
.friend-feed-session-card::before,.friend-feed-session-card::after{content:'';position:absolute;z-index:-1;pointer-events:none;filter:blur(16px);will-change:transform,opacity}
.friend-feed-session-card::before{display:block!important;width:150px;height:112px;left:-56px;top:-49px;border-radius:var(--feed-shape-a,50%);background:radial-gradient(circle,rgba(var(--feed-heat-rgb,245,197,24),.34),rgba(var(--feed-heat-rgb,245,197,24),.08) 54%,transparent 74%);animation:feedLavaA var(--feed-lava-speed,28s) ease-in-out infinite var(--feed-lava-direction,alternate);animation-delay:var(--feed-lava-phase,0s)}
.friend-feed-session-card::after{width:145px;height:106px;right:-54px;bottom:-49px;border-radius:var(--feed-shape-b,50%);background:radial-gradient(circle,rgba(var(--feed-heat-rgb,245,197,24),.27),rgba(var(--feed-heat-rgb,245,197,24),.07) 54%,transparent 74%);animation-name:feedLavaB,feedPulse;animation-duration:var(--feed-lava-speed-alt,31.36s),var(--feed-pulse-speed,14s);animation-timing-function:ease-in-out,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:var(--feed-lava-direction,alternate),normal;animation-delay:var(--feed-lava-phase-alt,0s),var(--feed-pulse-phase,0s)}
.friend-feed-session-copy>strong{font-size:15px}
.friend-feed-session-meta{margin-top:6px}
.friend-feed-peak{min-height:48px}
@keyframes feedLavaA{0%{transform:translate3d(-8px,-3px,0) rotate(var(--feed-lava-tilt,0deg)) scale(.9)}55%{transform:translate3d(112px,30px,0) rotate(0deg) scale(1.16)}100%{transform:translate3d(222px,3px,0) rotate(var(--feed-lava-tilt,0deg)) scale(.94)}}
@keyframes feedLavaB{0%{transform:translate3d(8px,2px,0) rotate(var(--feed-lava-tilt,0deg)) scale(1.07)}52%{transform:translate3d(-105px,-27px,0) rotate(0deg) scale(.9)}100%{transform:translate3d(-215px,0,0) rotate(var(--feed-lava-tilt,0deg)) scale(1.1)}}
@keyframes feedPulse{0%,100%{opacity:.78}50%{opacity:var(--feed-pulse-max,.798)}}

@media(max-width:370px){
  .friend-feed-session-card{grid-template-columns:58px minmax(0,1fr) 68px;gap:8px;padding:8px 9px;min-height:80px}
  .friend-feed-session-card .friend-feed-map{width:56px;height:56px}
}
@media(prefers-reduced-motion:reduce){
  #screen-home .home-festival-strip::before,#screen-home .home-festival-strip::after,.friend-feed-session-card::before,.friend-feed-session-card::after{animation:none!important}
}

/* Active-session navigation and the two-card sobering state. */
#mainNav #nav-session.visible .ni svg{stroke:var(--green)!important;color:var(--green)!important;filter:drop-shadow(0 0 7px rgba(48,209,88,.42))!important}
#mainNav.session-glow .nav-glass-bubble{background:linear-gradient(145deg,rgba(48,209,88,.16),rgba(255,255,255,.045))!important;border-color:rgba(48,209,88,.28)!important;box-shadow:inset 0 1.5px 0 rgba(255,255,255,.24),inset 0 -1px 0 rgba(0,0,0,.18),0 9px 25px rgba(48,209,88,.12)!important}
.home-widget-grid.has-sober{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#screen-home .home-session-card.home-sober-start-card:not(.home-festival-card){position:relative;min-width:0;min-height:118px!important;padding:15px!important;overflow:hidden;isolation:isolate;background:linear-gradient(145deg,rgba(54,43,9,.34),rgba(12,12,13,.24))!important;border:1px solid rgba(245,197,24,.2)!important;-webkit-backdrop-filter:blur(5px) saturate(155%);backdrop-filter:blur(5px) saturate(155%)}
.home-sober-start-card::before{content:'';position:absolute;z-index:-1;width:130px;height:110px;left:-48px;top:-50px;border-radius:50%;background:radial-gradient(circle,rgba(245,197,24,.3),rgba(245,197,24,.07) 55%,transparent 74%);filter:blur(15px)}
.home-sober-start-card .home-widget-kicker{color:var(--accent)}
.home-sober-start-card .home-widget-main{max-width:82%;font-size:17px;line-height:1.1;color:#fff}
.home-sober-start-arrow{position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.23)}
.home-sober-start-arrow svg{width:23px;height:23px;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#homeWidgetGrid.has-sober .home-sober-card{min-width:0;min-height:118px;padding:15px 13px}
#homeWidgetGrid.has-sober .home-sober-card .home-widget-main{font-size:22px}
@media(max-width:350px){
  .home-widget-grid.has-sober{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  .home-sober-start-card,#homeWidgetGrid.has-sober .home-sober-card{min-height:110px!important;padding:12px!important}
  .home-sober-start-card .home-widget-main{font-size:15px}
  #homeWidgetGrid.has-sober .home-sober-card .home-widget-main{font-size:19px}
}

/* Precise state alignment: active hero action, sobering columns and full-width history. */
#screen-home #homeHeroCard .home-hero-action{
  position:absolute!important;
  inset:auto 14px 14px auto!important;
  left:auto!important;
  top:auto!important;
  right:14px!important;
  bottom:14px!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:flex-end!important;
  transform:none!important;
  z-index:6!important;
}
#screen-home #homeHeroCard .home-hero-arrow{position:relative!important;inset:auto!important;flex:0 0 auto!important;margin:0!important;transform:none!important}
#screen-home .home-widget-grid.has-sober{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;gap:12px!important}

#screen-summary-list>.scroll-content{padding-left:0!important;padding-right:0!important}
#historySessionList.history-activity-list{width:100%;padding:4px 0 28px!important}
.history-activity-row{width:100%;grid-template-columns:minmax(0,1fr) 44px;align-items:stretch;gap:8px}
.history-activity-delete{width:44px;height:auto;min-height:94px;border-radius:22px 0 0 22px}

/* Session actions use the same compact menu language as the feed. */
#screen-session-detail>.header{overflow:visible}
.detail-menu-wrap{position:relative;z-index:80}
.detail-menu-wrap>.btn-icon{display:flex;align-items:center;justify-content:center}
.detail-menu-wrap>.btn-icon svg{width:25px;height:25px;fill:#fff;stroke:none}
.session-detail-menu{position:absolute;right:0;top:50px;z-index:90;width:218px;padding:7px;border-radius:20px;background:rgba(18,18,21,.82);border:1px solid rgba(255,255,255,.16);box-shadow:0 20px 52px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.2);-webkit-backdrop-filter:blur(18px) saturate(180%);backdrop-filter:blur(18px) saturate(180%);transform-origin:top right}
.session-detail-menu[hidden]{display:none}
.session-detail-menu button{width:100%;min-height:46px;padding:10px 11px;display:flex;align-items:center;gap:11px;border:0;border-radius:14px;color:#fff;background:transparent;font:inherit;font-size:14px;font-weight:750;text-align:left;cursor:pointer}
.session-detail-menu button:active{background:rgba(255,255,255,.09)}
.session-detail-menu button+button{border-top:1px solid rgba(255,255,255,.07)}
.session-detail-menu button svg{width:21px;height:21px;flex:0 0 21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.session-detail-menu button.danger{color:#ff6961}
.detail-menu-wrap.open .session-detail-menu{animation:sessionDetailMenuIn .22s var(--ease-premium)}
@keyframes sessionDetailMenuIn{from{opacity:0;transform:translate3d(0,-7px,0) scale(.96)}to{opacity:1;transform:none}}

@media(max-width:350px){
  #screen-home .home-widget-grid.has-sober{gap:8px!important}
  .history-activity-row{grid-template-columns:minmax(0,1fr) 40px;gap:6px}
  .history-activity-delete{width:40px;min-height:90px}
}
@media(prefers-reduced-motion:reduce){
  .detail-menu-wrap.open .session-detail-menu{animation:none}
}

/* Main-tab motion and balanced 44px header hierarchy. */
.screen.main-tab-enter-right{z-index:12;animation:mainTabEnterRight .38s var(--ease-premium) both}
.screen.main-tab-enter-left{z-index:12;animation:mainTabEnterLeft .38s var(--ease-premium) both}
.screen.main-tab-exit-left{z-index:11;pointer-events:none;animation:mainTabExitLeft .38s cubic-bezier(.4,0,.7,.2) both}
.screen.main-tab-exit-right{z-index:11;pointer-events:none;animation:mainTabExitRight .38s cubic-bezier(.4,0,.7,.2) both}
.screen.main-tab-settling{transition:none!important;animation:none!important}
@keyframes mainTabEnterRight{from{opacity:.2;transform:translate3d(52px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes mainTabEnterLeft{from{opacity:.2;transform:translate3d(-52px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes mainTabExitLeft{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:.08;transform:translate3d(-30px,0,0)}}
@keyframes mainTabExitRight{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:.08;transform:translate3d(30px,0,0)}}

#screen-home>.header,#screen-group>.header,#screen-profile>.header{height:64px!important}
#screen-home>.scroll-content,#screen-group>.scroll-content,#screen-profile>.scroll-content{padding-top:calc(var(--sat) + 76px)!important}
#screen-home>.header .header-title,#screen-group>.header .header-title,#screen-profile>.header .header-title{font-size:34px!important;line-height:40px!important;font-weight:900!important;letter-spacing:-1.05px!important}
#screen-home>.header .header-title{gap:9px!important}
#screen-home>.header .header-title svg{width:30px!important;height:30px!important}
#screen-group .friends-add-btn span{width:44px!important;height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;transform:none!important;line-height:0!important}
#screen-group .friends-add-btn span svg{width:27px;height:27px;display:block;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}

@media(max-width:350px){
  #screen-home>.header .header-title,#screen-group>.header .header-title,#screen-profile>.header .header-title{font-size:31px!important;letter-spacing:-.85px!important}
  #screen-home>.header .header-title svg{width:27px!important;height:27px!important}
}
@media(prefers-reduced-motion:reduce){
  .screen.main-tab-enter-right,.screen.main-tab-enter-left,.screen.main-tab-exit-left,.screen.main-tab-exit-right{animation:none!important}
}

/* Ambient status glass: green while live, warm while preparing, red when ending. */
#screen-home .home-hero.session-focus{isolation:isolate;background:linear-gradient(145deg,rgba(48,209,88,.055),rgba(255,255,255,.012) 52%,rgba(65,255,135,.022))!important;-webkit-backdrop-filter:blur(5px) saturate(155%) contrast(108%)!important;backdrop-filter:blur(5px) saturate(155%) contrast(108%)!important}
#screen-home .home-hero.session-focus::before,#screen-home .home-hero.session-focus::after{content:'';position:absolute;z-index:-1;pointer-events:none;filter:blur(18px);will-change:transform;border-radius:46% 54% 58% 42%}
#screen-home .home-hero.session-focus::before{display:block!important;width:190px;height:150px;top:-58px;left:-42px;background:radial-gradient(circle at 40% 40%,rgba(48,209,88,.34),rgba(35,175,88,.1) 49%,transparent 73%);animation:activeHomeLavaA 22s ease-in-out infinite alternate}
#screen-home .home-hero.session-focus::after{width:180px;height:152px;right:-50px;bottom:-70px;background:radial-gradient(circle at 55% 45%,rgba(89,255,151,.2),rgba(48,209,88,.07) 48%,transparent 72%);animation:activeHomeLavaB 26s ease-in-out infinite alternate}
@keyframes activeHomeLavaA{0%{transform:translate3d(-10px,-3px,0) scale(.9) rotate(-9deg)}50%{transform:translate3d(94px,36px,0) scale(1.17) rotate(17deg)}100%{transform:translate3d(208px,8px,0) scale(.92) rotate(38deg)}}
@keyframes activeHomeLavaB{0%{transform:translate3d(12px,3px,0) scale(1.05) rotate(5deg)}54%{transform:translate3d(-108px,-26px,0) scale(.9) rotate(-20deg)}100%{transform:translate3d(-214px,8px,0) scale(1.1) rotate(-40deg)}}

#screen-home .home-sober-start-card::before{animation:soberStartLavaA 20s ease-in-out infinite alternate;will-change:transform}
#screen-home .home-sober-start-card::after{content:'';position:absolute;z-index:-1;width:126px;height:104px;right:-48px;bottom:-52px;border-radius:54% 46% 42% 58%;background:radial-gradient(circle,rgba(255,151,38,.22),rgba(245,197,24,.06) 54%,transparent 73%);filter:blur(15px);pointer-events:none;will-change:transform;animation:soberStartLavaB 24s ease-in-out infinite alternate}
@keyframes soberStartLavaA{0%{transform:translate3d(-6px,0,0) scale(.92)}52%{transform:translate3d(82px,18px,0) scale(1.16)}100%{transform:translate3d(168px,-2px,0) scale(.94)}}
@keyframes soberStartLavaB{0%{transform:translate3d(5px,0,0) scale(1.06)}52%{transform:translate3d(-76px,-15px,0) scale(.9)}100%{transform:translate3d(-158px,2px,0) scale(1.1)}}
#screen-home .home-sober-start-card .home-widget-kicker{color:#fff!important}
#screen-home .home-sober-start-card .home-widget-main{display:block;max-width:80px!important;white-space:normal!important;line-height:1.12!important;color:#fff!important}

#screen-session .end-btn{height:44px;min-height:44px;min-width:56px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;border-radius:16px;color:#ff6961!important;background:linear-gradient(145deg,rgba(255,69,58,.2),rgba(255,69,58,.055) 58%,rgba(255,140,130,.045))!important;border:1px solid rgba(255,105,97,.35)!important;box-shadow:0 9px 24px rgba(0,0,0,.18),inset 0 1.25px 0 rgba(255,190,184,.28),inset 0 -1px 0 rgba(90,0,0,.22)!important;-webkit-backdrop-filter:blur(6px) saturate(170%)!important;backdrop-filter:blur(6px) saturate(170%)!important;font-size:13px;font-weight:800}
#screen-session .end-btn:active{transform:scale(.96);background:rgba(255,69,58,.25)!important}

.history-activity-delete{border-radius:22px!important}

@media(prefers-reduced-motion:reduce){
  #screen-home .home-hero.session-focus::before,#screen-home .home-hero.session-focus::after,#screen-home .home-sober-start-card::before,#screen-home .home-sober-start-card::after{animation:none!important}
}

/* One continuous glass indicator replaces the old per-item snap highlight. */
#mainNav .nav-item::after{display:none!important}
#mainNav .nav-glass-bubble{transition:transform .48s linear(0,.006,.028,.075,.15,.25,.38,.53,.67,.79,.89,.965,1.012,1.035,1.038,1.027,1.012,1),width .28s var(--ease-premium),height .14s ease-out!important;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.032) 62%,rgba(120,190,255,.045))!important;border-color:rgba(255,255,255,.19)!important;box-shadow:inset 0 1.5px 0 rgba(255,255,255,.29),inset 0 -1px 0 rgba(0,0,0,.17),0 9px 24px rgba(0,0,0,.16)!important;will-change:transform,width}
#mainNav .nav-glass-bubble.immediate,#mainNav.is-dragging .nav-glass-bubble{transition:none!important}
#mainNav .nav-item .ni,#mainNav .nav-item .ni svg{transition:transform .32s var(--ease-premium),opacity .24s ease,stroke .24s ease,background .24s ease!important}
#mainNav .nav-item.active .ni{transform:translateY(-1px) scale(1.06)}

@media(prefers-reduced-motion:reduce){
  #mainNav .nav-glass-bubble,#mainNav .nav-item .ni,#mainNav .nav-item .ni svg{transition:none!important}
}
