@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2)format("woff2"),url(/assets/manrope-latin-600-normal-BqgrALkZ.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/manrope-latin-700-normal-BZp_XxE4.woff2)format("woff2"),url(/assets/manrope-latin-700-normal-DGRFkw-m.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/manrope-latin-800-normal-BfWYOv1c.woff2)format("woff2"),url(/assets/manrope-latin-800-normal-uHUdIJgA.woff)format("woff")}:root{--navy:#082f3e;--ocean:#087e8b;--ocean-dark:#05616c;--ice:#e9f5f4;--foam:#f7fbfa;--sand:#e9b872;--ink:#12313b;--muted:#63777d;--line:#d9e5e4;--white:#fff;--danger:#b42318;--success:#13795b;--surface:#fff;--surface-soft:#f8fbfa;--field:#fff;--shadow:0 12px 36px #082f3e17;--radius:20px}[data-theme=dark]{--navy:#061f29;--ocean:#28a8b2;--ocean-dark:#62ced3;--ice:#123b43;--foam:#081c24;--sand:#efbd75;--ink:#edf7f6;--muted:#9fb5b8;--line:#25444b;--white:#fff;--danger:#ff8b82;--success:#57cba2;--surface:#102a33;--surface-soft:#0d242d;--field:#0b222a;--shadow:0 14px 38px #00000042}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--foam)}body{color:var(--ink);background:var(--foam);margin:0;font:16px/1.5 DM Sans,sans-serif}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{max-width:100%}.avatar img,.personal-avatar img{object-fit:cover;width:100%;height:100%}.visually-hidden{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.025em;font-family:Manrope,sans-serif;line-height:1.12}h1{font-size:clamp(2rem,5vw,3.4rem)}h2{font-size:clamp(1.35rem,3vw,2rem)}:focus-visible{outline:3px solid var(--sand);outline-offset:3px;border-radius:8px}.skip-link{z-index:100;background:var(--navy);color:#fff;padding:12px 16px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}.shell{min-height:100dvh}.sidebar{background:var(--navy);color:#e9f5f4;z-index:20;width:248px;padding:26px 18px;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;margin:0 8px 32px;font:800 17px/1.15 Manrope;display:flex}.brand-mark{border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:grid;overflow:hidden}.nav{gap:7px;display:grid}.nav a,.nav button{min-height:48px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:13px;align-items:center;gap:13px;padding:0 14px;display:flex}.nav a:hover,.nav a[aria-current=page],.nav button:hover{color:#fff;background:#ffffff1c}.nav-bottom{position:absolute;bottom:26px;left:18px;right:18px}.main{min-height:100dvh;margin-left:248px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:40;background:#f7fbfae6;justify-content:space-between;align-items:center;height:78px;padding:0 4vw;display:flex;position:sticky;top:0}.topbar-leading{display:none}.topbar-title{min-width:0;color:var(--ink);font:700 1rem Manrope}.topbar-title strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.topbar-actions{align-items:center;gap:12px;display:flex}.mobile-topbar-brand{display:none}.mobile-topbar-back{width:42px;height:42px;color:var(--ink);border-radius:13px;place-items:center;display:grid}.mobile-topbar-back:hover{background:var(--ice)}.streak-pill{min-height:38px;color:var(--ocean-dark);background:var(--ice);border-radius:99px;align-items:center;gap:7px;padding:0 12px;font-size:.84rem;font-weight:700;display:flex}.account-menu{position:relative}.account-trigger{min-height:50px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:15px;align-items:center;gap:10px;padding:4px 8px 4px 5px;display:flex}.account-trigger:hover,.account-trigger[aria-expanded=true]{background:var(--ice)}.account-copy strong,.account-copy small,.account-identity strong,.account-identity small{display:block}.account-copy small,.account-identity small{color:var(--muted);font-size:.75rem}.account-dropdown{border:1px solid var(--line);background:var(--surface);width:250px;box-shadow:var(--shadow);border-radius:17px;padding:8px;position:absolute;top:calc(100% + 10px);right:0}.account-identity{border-bottom:1px solid var(--line);margin-bottom:5px;padding:10px 10px 13px;display:none}.account-dropdown>a,.account-dropdown>button{width:100%;min-height:44px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:0 11px;display:flex}.account-dropdown>a:hover,.account-dropdown>button:hover{background:var(--ice)}.account-dropdown svg{width:18px;color:var(--ocean)}.account-error{color:var(--danger);background:#fff1f0;border-radius:9px;margin:5px;padding:8px;font-size:.78rem}.avatar{background:var(--ocean);color:#fff;border-radius:50%;place-items:center;width:40px;height:40px;font-weight:700;display:grid;overflow:hidden}.content{width:min(1180px,92%);margin:0 auto;padding:48px 0 100px}.page-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px;display:flex}.eyebrow{color:var(--ocean-dark);text-transform:uppercase;letter-spacing:.12em;margin-bottom:9px;font-size:.75rem;font-weight:800}.muted{color:var(--muted)}.button{background:var(--ocean);color:#fff;cursor:pointer;border:0;border-radius:13px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:0 18px;font-weight:700;display:inline-flex;box-shadow:0 6px 18px #087e8b2e}.button:hover{background:var(--ocean-dark);transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button.secondary{color:var(--ink);border:1px solid var(--line);box-shadow:none;background:#fff}.button.danger{background:var(--danger)}.button.icon{width:46px;padding:0}.bath-actions{gap:7px;display:flex}.grid{gap:20px;display:grid}.stats{grid-template-columns:repeat(4,1fr);margin-bottom:28px}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff}.stat{padding:22px}.stat-icon{background:var(--ice);width:42px;height:42px;color:var(--ocean-dark);border-radius:13px;place-items:center;margin-bottom:18px;display:grid}.stat strong{font:800 1.85rem Manrope;display:block}.dashboard{grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr);align-items:start}.section-card{padding:24px}.section-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.section-head h2{margin:0}.feed{gap:16px;display:grid}.bath-card{overflow:hidden}.bath-image{aspect-ratio:16/8;object-fit:cover;background:var(--ice);width:100%;display:block}.bath-body{padding:20px}.bath-header{justify-content:space-between;gap:12px;display:flex}.person{align-items:center;gap:11px;min-width:0;display:flex}.person strong,.person small{display:block}.person small{color:var(--muted)}.chips{flex-wrap:wrap;gap:8px;margin:16px 0 0;display:flex}.chip{background:var(--ice);color:var(--ocean-dark);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.83rem;font-weight:700;display:inline-flex}.leaderboard{gap:5px;display:grid}.leader{border-bottom:1px solid var(--line);grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:11px 5px;display:grid}.leader:last-child{border:0}.leader-rank{color:var(--muted);text-align:center;font-weight:700}.empty{text-align:center;border-radius:var(--radius);background:#ffffff8c;border:1px dashed #b6ccca;padding:52px 24px}.empty svg{color:var(--ocean);margin-bottom:14px}.form-card{max-width:720px;padding:28px}.form-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.field{gap:7px;display:grid}.field.full{grid-column:1/-1}.field label{font-size:.9rem;font-weight:700}.field input,.field textarea,.field select,.search{width:100%;min-height:48px;color:var(--ink);background:#fff;border:1px solid #b8ccca;border-radius:12px;padding:11px 13px}.field textarea{resize:vertical;min-height:120px}.field-error{color:var(--danger);font-size:.85rem}.upload{text-align:center;background:var(--ice);cursor:pointer;border:2px dashed #abc9c6;border-radius:16px;place-items:center;min-height:180px;display:grid;overflow:hidden}.upload img{object-fit:cover;width:100%;height:240px}.progress{background:var(--line);border-radius:99px;height:7px;overflow:hidden}.progress span{background:var(--ocean);height:100%;transition:width .2s;display:block}.toolbar{gap:12px;margin-bottom:22px;display:flex}.toolbar .search{max-width:420px}.members{grid-template-columns:repeat(3,1fr)}.member-card{align-items:center;gap:15px;padding:22px;transition:all .2s;display:flex}.member-card:hover{border-color:#9fc3c0;transform:translateY(-2px)}.member-card .avatar{flex:none;width:54px;height:54px}.member-meta{flex:1;min-width:0}.member-meta strong{text-overflow:ellipsis;display:block;overflow:hidden}.member-meta small{color:var(--muted)}.auth-page{background:#fff;grid-template-columns:1.1fr .9fr;min-height:100dvh;display:grid}.auth-art{color:#fff;background:linear-gradient(150deg,#082f3e4d,#082f3eeb),url(/login-ice-bathing.webp) 50%/cover;flex-direction:column;justify-content:flex-end;padding:7vw;display:flex;position:relative}.auth-art h1{max-width:650px;margin-bottom:12px}.auth-art p{color:#d6e9e7;max-width:540px;font-size:1.12rem}.auth-panel{place-items:center;padding:32px;display:grid}.auth-form{width:min(430px,100%)}.auth-form .brand{color:var(--navy);margin:0 0 48px}.auth-form h2{margin-bottom:8px;font-size:2rem}.auth-form form{gap:18px;margin-top:30px;display:grid}.auth-links{color:var(--ocean-dark);justify-content:space-between;gap:16px;font-size:.9rem;font-weight:700;display:flex}.auth-links button{min-height:44px;padding:0 4px}.notice{color:var(--danger);background:#fff1f0;border:1px solid #ffd2ce;border-radius:12px;padding:13px 15px}.notice.success{color:var(--success);background:#edfbf5;border-color:#b9ead7}.offline{z-index:50;color:#fff;background:var(--navy);box-shadow:var(--shadow);border-radius:99px;padding:9px 15px;font-size:.85rem;position:fixed;bottom:82px;left:50%;translate:-50%}.modal-backdrop{z-index:120;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#03181fa3;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:min(560px,100%);max-height:calc(100dvh - 36px);padding:24px;overflow:auto}.modal-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.modal-head h2{margin:0}.modal .form-card{max-width:none;padding:0}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.onboarding{width:min(620px,100%)}.onboarding-steps{gap:12px;display:grid}.onboarding-steps>div{background:var(--ice);border-radius:14px;gap:13px;padding:14px;display:flex}.onboarding-steps svg{color:var(--ocean-dark);flex:none}.onboarding-steps strong,.onboarding-steps small{display:block}.onboarding-steps small{color:var(--muted)}.load-more{width:100%;margin-top:16px}.table-scroll{overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%;min-width:680px}.table-scroll th,.table-scroll td{text-align:left;border-top:1px solid var(--line);padding:13px 7px}.table-scroll thead th{color:var(--muted);border-top:0;font-size:.82rem}.table-scroll select{border:1px solid var(--line);min-height:42px;color:var(--ink);background:var(--field);border-radius:10px;padding:0 8px}.admin-search{align-items:center;display:flex;position:relative}.admin-search svg{width:18px;color:var(--muted);position:absolute;left:12px}.admin-search input{border:1px solid var(--line);width:min(280px,100%);min-height:44px;color:var(--ink);background:var(--field);border-radius:12px;padding:0 12px 0 40px}.admin-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.operation-list{display:grid}.operation-list>div{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:9px 0;display:flex}.operation-list strong,.operation-list small{overflow-wrap:anywhere;display:block}.operation-list small{color:var(--muted)}.mobile-nav{display:none}.product-hero{color:#fff;background:linear-gradient(135deg,var(--navy),#0b5964);grid-template-columns:1.2fr .8fr;align-items:center;gap:30px;padding:clamp(24px,5vw,52px);display:grid;position:relative;overflow:hidden}.product-hero:after{content:"";border:55px solid #ffffff0f;border-radius:50%;width:290px;height:290px;position:absolute;top:-100px;right:-80px}.product-hero h1{max-width:650px;margin-bottom:14px}.product-hero p{color:#d5e8e6;max-width:580px;margin-bottom:0;font-size:1.06rem}.year-badge{z-index:1;aspect-ratio:1;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff17;border:2px solid #ffffff40;border-radius:50%;place-items:center;width:190px;margin:auto;display:grid;position:relative}.year-badge strong{color:var(--sand);font:800 3.5rem/1 Manrope;display:block}.unlock-section{margin:34px 0 44px}.towel-track{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.towel-tier{border:1px solid var(--line);background:#fff;border-radius:17px;padding:14px;position:relative}.towel-tier.locked{opacity:.58;filter:saturate(.45)}.towel-swatch{border-radius:12px;height:120px;margin-bottom:13px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.towel-swatch:before{content:"";border:2px dashed #ffffff6b;border-radius:8px;position:absolute;inset:11px}.towel-swatch:after{content:"HV";color:#fffc;place-items:center;font:800 1.7rem Manrope;display:grid;position:absolute;inset:0}.tier-state{width:30px;height:30px;color:var(--ocean-dark);background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;top:22px;right:22px;box-shadow:0 4px 12px #0000002e}.towel-tier strong,.product-info strong{font-family:Manrope;display:block}.towel-tier small{color:var(--muted)}.catalog{grid-template-columns:repeat(3,1fr)}.product-card{overflow:hidden}.product-visual{min-height:220px;color:var(--navy);background:linear-gradient(145deg,#e8f5f4,#cee6e3);place-items:center;display:grid}.product-visual svg{stroke-width:1.3px;width:82px;height:82px}.product-visual.robe{background:linear-gradient(145deg,#e7e2d9,#f5f2eb)}.product-visual.cap{background:linear-gradient(145deg,#d7e7eb,#aacbd1)}.product-visual.swim{background:linear-gradient(145deg,#f6e2c7,#e9b872)}.product-info{padding:20px}.product-info p{color:var(--muted);min-height:48px;margin:7px 0 16px}.product-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.coming{text-transform:uppercase;letter-spacing:.08em;color:var(--ocean-dark);font-size:.77rem;font-weight:800}.year-picker{align-items:center;gap:13px;display:flex}.year-picker strong{text-align:center;min-width:64px;font:800 1.25rem Manrope}.year-stats{grid-template-columns:repeat(3,1fr);margin-bottom:24px}.year-progress,.mini-progress{background:var(--line);border-radius:99px;height:7px;margin-top:14px;overflow:hidden}.year-progress span,.mini-progress span{border-radius:inherit;background:var(--ocean);height:100%;display:block}.year-card{padding:22px}.year-legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:18px;margin-bottom:18px;font-size:.82rem;display:flex}.year-legend span{align-items:center;gap:6px;display:flex}.month-dot{border-radius:4px;width:12px;height:12px}.month-dot.done{background:#1f9d70}.month-dot.missed{background:#db6259}.month-dot.future{background:#e4eceb}.year-table-scroll{overflow-x:auto}.year-table{border-collapse:separate;border-spacing:0 8px;width:100%;min-width:980px}.year-table th{color:var(--muted);text-align:center;padding:8px 6px;font-size:.78rem}.year-table thead th:first-child,.year-table tbody th{text-align:left}.year-table tbody tr{background:#f8fbfa}.year-table tbody th{border-radius:12px 0 0 12px;min-width:190px;padding:9px 12px}.year-table td{text-align:center;padding:8px 5px}.year-table td:last-child{border-radius:0 12px 12px 0;width:105px;padding-right:12px}.year-table .avatar{width:35px;height:35px;font-size:.8rem}.month-cell{border-radius:10px;place-items:center;width:34px;height:34px;margin:auto;display:grid}.month-cell svg{stroke-width:3px;width:16px;height:16px}.month-cell.done{color:#fff;background:#1f9d70;box-shadow:0 4px 10px #1f9d7033}.month-cell.missed{background:#f9d8d5;box-shadow:inset 0 0 0 1px #e9aaa5}.month-cell.future{color:#92a3a6;background:#e8efee}.mini-progress{height:5px;margin-top:4px}.celebration{z-index:100;pointer-events:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#082f3e47;place-items:center;animation:.3s ease-out both celebration-in;display:grid;position:fixed;inset:0;overflow:hidden}.celebration-card{z-index:2;text-align:center;background:#fff;border-radius:26px;width:min(390px,100% - 36px);padding:34px 28px;animation:.55s cubic-bezier(.2,1.35,.45,1) both celebration-pop;position:relative;box-shadow:0 24px 80px #082f3e40}.celebration-card h2{margin:18px 0 8px}.celebration-card p{color:var(--muted);margin:0}.celebration-icon{color:#fff;background:linear-gradient(145deg,var(--ocean),#10a0ad);border-radius:25px;place-items:center;width:78px;height:78px;margin:auto;display:grid;position:relative;transform:rotate(-5deg)}.celebration-icon>svg{width:40px;height:40px}.celebration-icon span{background:#1f9d70;border:3px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:-8px;right:-8px}.celebration i{--angle:calc(var(--i) * 20deg);background:hsl(calc(var(--i) * 37deg) 65% 55%);width:10px;height:20px;animation:confetti 1.15s calc(var(--i) * 18ms) ease-out both;border-radius:4px;position:absolute;top:50%;left:50%}.snap-capture{text-align:center;color:#fff;background:radial-gradient(circle at 50% 25%,#117e8b 0,#075362 38%,#082f3e 75%);flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 174px);margin:-48px calc(50% - 50vw) -100px;padding:clamp(28px,6vw,70px);display:flex;position:relative;overflow:hidden}.snap-capture:before,.snap-capture:after{content:"";border:1px solid #ffffff17;border-radius:50%;position:absolute}.snap-capture:before{width:520px;height:520px}.snap-capture:after{width:720px;height:720px}.capture-logo{z-index:1;width:74px;height:74px;color:var(--navy);background:var(--sand);border-radius:24px;place-items:center;margin-bottom:24px;display:grid;position:relative;transform:rotate(-5deg)}.capture-copy{z-index:1;max-width:520px;position:relative}.capture-copy .eyebrow{color:#8ee0dd}.capture-copy h1{margin-bottom:10px}.capture-copy p{color:#c9dfde;font-size:1.08rem}.capture-actions{z-index:1;gap:12px;width:min(390px,100%);margin-top:26px;display:grid;position:relative}.capture-primary{min-height:76px;color:var(--navy);cursor:pointer;background:#fff;border:0;border-radius:22px;justify-content:center;align-items:center;gap:14px;font-size:1.08rem;font-weight:800;display:flex;box-shadow:0 16px 45px #0003}.capture-primary span{color:#fff;background:var(--ocean);border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.capture-actions .button.secondary{color:#fff;background:#ffffff1a;border-color:#ffffff40}.capture-skip{color:#c9dfde;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;min-height:44px;text-decoration:underline}.capture-error{z-index:2;margin-top:18px;position:relative}.quick-bath{width:min(690px,100%);margin:0 auto}.quick-header{align-items:center;gap:18px;margin-bottom:22px;display:flex}.quick-header h1{margin:0;font-size:clamp(1.8rem,5vw,2.6rem)}.quick-header .eyebrow{margin-bottom:4px}.quick-photo{box-shadow:var(--shadow);background:var(--ice);border-radius:24px;position:relative;overflow:hidden}.quick-photo img{aspect-ratio:4/3;object-fit:cover;width:100%;max-height:52dvh;display:block}.quick-photo button{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#082f3eb8;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:14px;right:14px}.add-photo-strip{text-align:left;width:100%;min-height:92px;color:var(--ocean-dark);background:var(--ice);cursor:pointer;border:2px dashed #a9c8c5;border-radius:19px;align-items:center;gap:16px;padding:18px;display:flex}.add-photo-strip>svg{width:30px;height:30px}.add-photo-strip strong,.add-photo-strip small{display:block}.add-photo-strip small{color:var(--muted)}.quick-form{gap:16px;margin-top:18px;display:grid}.quick-required{border:1px solid var(--line);background:#fff;border-radius:17px;padding:17px 19px}.quick-required label{margin-bottom:7px;font-weight:700;display:block}.quick-required input{width:100%;min-height:46px;color:var(--ink);background:0 0;border:0;padding:0}.optional-details{border:1px solid var(--line);background:#fff;border-radius:17px;overflow:hidden}.optional-details summary{cursor:pointer;padding:17px 19px;list-style:none}.optional-details summary::-webkit-details-marker{display:none}.optional-details summary>span{align-items:center;gap:13px;display:flex}.optional-details summary strong,.optional-details summary small{display:block}.optional-details summary small{color:var(--muted);margin-top:2px}.optional-plus{width:38px;height:38px;color:var(--ocean-dark);background:var(--ice);border-radius:12px;place-items:center;font-size:1.5rem;transition:transform .2s;display:grid}.optional-details[open] .optional-plus{transform:rotate(45deg)}.quick-fields{border-top:1px solid var(--line);gap:0;display:grid}.location-autofill{border-bottom:1px solid var(--line);gap:8px;padding:14px 19px;display:grid}.location-autofill .button{width:fit-content;min-height:42px}.location-autofill small,.forecast-attribution{color:var(--muted);line-height:1.4}.forecast-attribution{padding-top:5px;font-size:.75rem;display:block}.spin{animation:.8s linear infinite location-spin}@keyframes location-spin{to{transform:rotate(360deg)}}.quick-fields label{border-bottom:1px solid var(--line);gap:13px;padding:16px 19px;display:flex}.quick-fields label:last-child{border:0}.quick-fields label>svg{color:var(--ocean);flex:none;margin-top:3px}.quick-fields label>span{flex:1}.quick-fields strong{font-size:.88rem;display:block}.quick-fields input,.quick-fields textarea{resize:vertical;width:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:6px 0 0}.quick-save{z-index:5;border-radius:18px;width:100%;min-height:58px;font-size:1.05rem;position:sticky;bottom:82px}.theme-picker{border:0;margin:0;padding:0}.theme-picker legend{margin-bottom:12px;font:700 1rem Manrope}.theme-picker>div{background:var(--ice);border-radius:15px;grid-template-columns:repeat(3,1fr);gap:8px;padding:5px;display:grid}.theme-picker button{min-height:46px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;display:flex}.theme-picker button[aria-pressed=true]{color:var(--ink);background:var(--surface);font-weight:700;box-shadow:0 3px 10px #0000001a}.community-tabs{background:var(--ice);border-radius:15px;gap:5px;width:fit-content;margin:-8px 0 28px;padding:5px;display:flex}.community-tabs a{min-height:43px;color:var(--muted);border-radius:11px;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:flex}.community-tabs a[aria-current=page]{color:var(--ink);background:var(--surface);box-shadow:0 3px 10px #082f3e17}.community-heading{align-items:center}.community-snapshot{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.community-snapshot span{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--muted);border-radius:99px;align-items:center;gap:6px;padding:0 12px;font-size:.85rem;display:flex}.community-snapshot svg{width:17px;color:var(--ocean)}.community-snapshot strong{color:var(--ink)}.community-layout{grid-template-columns:minmax(0,1.65fr) minmax(270px,.75fr);align-items:start;gap:20px;display:grid}.community-feed{min-width:0}.community-insights{gap:20px;display:grid}.insight-card{padding:22px}.insight-card .section-head h2{font-size:1.2rem}.insight-list{gap:0;margin:0;display:grid}.insight-list div{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:52px;display:flex}.insight-list dt{color:var(--muted);align-items:center;gap:8px;display:flex}.insight-list dt svg{width:18px;color:var(--ocean)}.insight-list dd{text-align:right;margin:0;font:800 1.05rem Manrope}.activity-search{position:relative}.activity-search summary{border:1px solid var(--line);min-height:44px;color:var(--ocean-dark);cursor:pointer;border-radius:12px;align-items:center;gap:7px;padding:0 12px;font-weight:700;list-style:none;display:flex}.activity-search summary::-webkit-details-marker{display:none}.activity-search summary svg{width:18px}.activity-search label{z-index:3;border:1px solid var(--line);background:var(--surface);width:min(340px,80vw);box-shadow:var(--shadow);border-radius:14px;padding:8px;position:absolute;top:calc(100% + 8px);right:0}.activity-search .search{min-height:44px}.desktop-capture{font-weight:800;color:var(--navy)!important;background:var(--sand)!important}.desktop-capture:hover,.desktop-capture[aria-current=page]{background:#f2c987!important}.profile-layout{grid-template-columns:minmax(0,720px) minmax(250px,1fr);align-items:start;gap:20px;display:grid}.profile-menu{padding:22px}.profile-menu h2{font-size:1.15rem}.profile-menu a{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:0 5px;display:flex}.profile-menu a span{align-items:center;gap:10px;font-weight:700;display:flex}.profile-menu a svg{width:19px;color:var(--ocean)}.personal-hero{background:linear-gradient(135deg,var(--surface),var(--ice));align-items:center;gap:22px;margin-bottom:24px;padding:28px;display:flex}.personal-hero h1{margin-bottom:5px;font-size:clamp(1.8rem,4vw,2.8rem)}.personal-hero p{margin-bottom:12px}.personal-avatar{color:#fff;background:linear-gradient(145deg,var(--ocean),var(--navy));border-radius:27px;flex:none;place-items:center;width:86px;height:86px;font:800 2rem Manrope;display:grid}.personal-status{width:fit-content;min-height:34px;color:var(--ocean-dark);background:var(--surface);border-radius:99px;align-items:center;gap:7px;padding:0 10px;font-size:.82rem;font-weight:700;display:flex}.personal-status svg{width:16px}.personal-stats{margin-bottom:28px}.account-section{margin-top:42px}[data-theme=dark] .topbar{background:#081c24e0}[data-theme=dark] .card,[data-theme=dark] .button.secondary,[data-theme=dark] .towel-tier,[data-theme=dark] .mobile-nav,[data-theme=dark] .quick-required,[data-theme=dark] .optional-details,[data-theme=dark] .celebration-card{background:var(--surface);color:var(--ink)}[data-theme=dark] .field input,[data-theme=dark] .field textarea,[data-theme=dark] .field select,[data-theme=dark] .search{background:var(--field);color:var(--ink);border-color:var(--line)}[data-theme=dark] .year-table tbody tr{background:var(--surface-soft)}[data-theme=dark] .auth-page,[data-theme=dark] .auth-panel{background:var(--foam)}[data-theme=dark] .empty{border-color:var(--line);background:#102a3394}[data-theme=dark] .skeleton{background:linear-gradient(90deg,#102a33 25%,#173740 50%,#102a33 75%) 0 0/200% 100%}[data-theme=dark] .product-visual{color:#bde8e7;background:linear-gradient(145deg,#163b43,#1d535b)}[data-theme=dark] .product-visual.robe{background:linear-gradient(145deg,#38362f,#242b2b)}[data-theme=dark] .product-visual.cap{background:linear-gradient(145deg,#173641,#24505b)}[data-theme=dark] .product-visual.swim{background:linear-gradient(145deg,#4a3b29,#72532f)}[data-theme=dark] .month-cell.missed{background:#592e30;box-shadow:inset 0 0 0 1px #82474a}[data-theme=dark] .month-cell.future{color:#80969a;background:#20373c}[data-theme=dark] .notice{background:#402427;border-color:#6c373b}[data-theme=dark] .notice.success{background:#163a31;border-color:#285e4d}[data-theme=dark] .upload,[data-theme=dark] .add-photo-strip{background:var(--ice);border-color:#34636a}[data-theme=dark] input:disabled{color:#879b9f;opacity:1}@keyframes celebration-in{0%{opacity:0}}@keyframes celebration-pop{0%{opacity:0;transform:translateY(25px)scale(.82)}}@keyframes confetti{0%{opacity:1;transform:rotate(var(--angle)) translateY(-30px) rotate(0)}to{opacity:0;transform:rotate(var(--angle)) translateY(-330px) rotate(480deg)}}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,#edf3f2 25%,#f8fbfa 50%,#edf3f2 75%) 0 0/200% 100%;min-height:120px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=950px){.sidebar{display:none}.main{margin-left:0}.topbar{height:66px;padding:0 16px}.topbar-leading{flex:none;width:42px;display:block}.mobile-topbar-brand{border-radius:50%;width:38px;height:38px;display:block;overflow:hidden}.topbar-title{text-align:center;pointer-events:none;font-size:.95rem;position:absolute;left:72px;right:72px}.streak-pill,.account-copy,.account-trigger>svg{display:none}.account-trigger{min-height:44px;padding:2px}.account-identity{display:block}.account-dropdown{position:fixed;top:58px;right:12px}.mobile-nav{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));grid-template-columns:repeat(3,1fr);display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -8px 24px #082f3e12}.mobile-nav a{min-height:54px;color:var(--muted);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.67rem;display:flex}.mobile-nav a[aria-current=page]{color:var(--ocean-dark);background:var(--ice)}.mobile-nav .mobile-nav-capture{min-height:59px;color:var(--navy);background:var(--sand);border:2px solid var(--surface);border-radius:14px;margin:-8px 6px 0;font-weight:800;box-shadow:0 6px 16px #082f3e29}.mobile-nav .mobile-nav-capture[aria-current=page]{color:var(--navy);background:var(--sand)}.mobile-nav .mobile-nav-capture svg{width:25px;height:25px}.stats{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr}.members{grid-template-columns:repeat(2,1fr)}.towel-track{grid-template-columns:repeat(3,1fr)}.catalog{grid-template-columns:repeat(2,1fr)}.year-stats{grid-template-columns:1fr 1fr}.profile-layout,.community-layout{grid-template-columns:1fr}}@media (width<=650px){.content{width:min(100% - 30px,1180px);padding-top:30px}.page-heading{flex-direction:column;align-items:start}.page-heading .button{width:100%}.stats{gap:12px}.stat{padding:17px}.stat strong{font-size:1.5rem}.section-card{padding:17px}.members,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.auth-page{grid-template-columns:1fr}.auth-art{min-height:280px;padding:38px 24px}.auth-panel{place-items:start center;padding:34px 22px}.auth-form .brand{margin-bottom:34px}.product-hero{grid-template-columns:1fr}.year-badge{width:150px;margin:0}.towel-track{scroll-snap-type:x mandatory;padding-bottom:8px;display:flex;overflow-x:auto}.towel-tier{scroll-snap-align:start;min-width:180px}.catalog,.year-stats{grid-template-columns:1fr}.year-card{padding:14px}.year-legend{justify-content:flex-start;gap:10px}.quick-photo{border-radius:18px}.community-tabs{width:100%}.community-tabs a{flex:1;justify-content:center;padding:0 8px}.community-heading{gap:15px}.community-snapshot{justify-content:flex-start}.community-snapshot span{min-height:38px;padding:0 10px}.community-feed>.section-head{align-items:flex-start}.activity-search summary span{display:none}.insight-card{padding:17px}.personal-hero{align-items:flex-start;gap:15px;padding:20px}.personal-avatar{border-radius:20px;width:64px;height:64px;font-size:1.45rem}.personal-hero p{font-size:.9rem}.personal-stats{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:visible}.admin-grid{grid-template-columns:1fr}.section-head:has(.admin-search){flex-direction:column;align-items:stretch}.admin-search input{width:100%}.modal{padding:19px}.modal-actions .button{flex:1}}@media (width<=360px){.topbar{padding:0 10px}.topbar-title{left:60px;right:60px}.mobile-nav{padding-left:4px;padding-right:4px}.mobile-nav a{font-size:.64rem}.community-tabs a{gap:5px;font-size:.82rem}.community-tabs a svg{width:16px}.personal-hero{display:grid}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.celebration i{display:none}}.bath-card.text-only .bath-body{padding:17px 20px}.bath-image{aspect-ratio:16/9}.clamped-comment{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.text-action{color:var(--ocean-dark);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:none}.year-mobile-list{display:none}.product-visual{position:relative}.product-visual img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.product-lock{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#082f3edb;border-radius:11px;justify-content:center;align-items:center;gap:7px;padding:9px 11px;font-size:.78rem;font-weight:700;display:flex;position:absolute;inset:auto 12px 12px}.product-lock svg{width:15px}.product-options{color:var(--muted);gap:5px;margin:-4px 0 15px;font-size:.82rem;display:grid}.product-options strong{color:var(--ink);display:inline}.color-options{align-items:center;gap:6px;display:flex}.color-options i{border:2px solid var(--surface);width:17px;height:17px;box-shadow:0 0 0 1px var(--line);border-radius:50%}.product-locked .product-visual img{filter:saturate(.55)}.achievement-card{margin-bottom:16px;padding:24px}.achievement-card h2{margin-bottom:7px}.achievement-progress{background:var(--line);border-radius:99px;height:9px;overflow:hidden}.achievement-progress span{border-radius:inherit;background:linear-gradient(90deg,var(--ocean),var(--sand));height:100%;display:block}.progression{margin-bottom:36px}.level-card{background:linear-gradient(135deg,var(--surface),var(--ice));grid-template-columns:auto 1fr;align-items:center;gap:24px;margin-bottom:28px;padding:25px;display:grid}.level-mark{aspect-ratio:1;text-align:center;color:#fff;background:linear-gradient(145deg,var(--ocean),var(--navy));border-radius:50%;place-content:center;width:96px;display:grid;box-shadow:0 10px 24px #082f3e33}.level-mark small{letter-spacing:.14em;font-size:.62rem;font-weight:800}.level-mark strong{font:800 2.5rem/1 Manrope}.level-copy h2{margin-bottom:3px}.level-copy p{margin-bottom:12px}.level-progress{background:var(--line);border-radius:99px;height:10px;overflow:hidden}.level-progress span{border-radius:inherit;background:linear-gradient(90deg,var(--ocean),var(--sand));height:100%;display:block}.level-copy>small{margin-top:7px;display:block}.badge-heading{margin-bottom:14px}.badge-heading>strong{color:var(--ocean-dark);font-size:.88rem}.badge-grid{grid-template-columns:repeat(3,1fr);gap:13px;display:grid}.badge-card{grid-template-columns:48px 1fr auto;align-items:center;gap:6px 12px;padding:15px;display:grid;position:relative;overflow:hidden}.badge-card.locked{opacity:.62;box-shadow:none}.badge-icon{background:var(--ice);border-radius:15px;grid-row:1/3;place-items:center;width:48px;height:48px;font-size:1.55rem;display:grid}.badge-icon svg{width:20px;color:var(--muted)}.badge-card strong{font-family:Manrope}.badge-card p{color:var(--muted);margin:2px 0 0;font-size:.78rem;line-height:1.3}.badge-card>small{color:var(--muted);white-space:nowrap;grid-area:1/3;font-size:.7rem;font-weight:700}.badge-card.unlocked>small{color:var(--success)}.badge-progress{background:var(--line);border-radius:99px;grid-column:2/4;height:5px;overflow:hidden}.badge-progress span{border-radius:inherit;background:var(--ocean);height:100%;display:block}.profile-editor{overflow:hidden}.profile-editor>summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:62px;padding:0 22px;list-style:none;display:flex}.profile-editor>summary::-webkit-details-marker{display:none}.profile-editor>summary span{align-items:center;gap:10px;font-weight:700;display:flex}.profile-editor>summary svg{width:19px;color:var(--ocean);transition:transform .2s}.profile-editor[open]>summary>svg{transform:rotate(90deg)}.profile-editor .form-card{border:0;border-top:1px solid var(--line);box-shadow:none;border-radius:0;max-width:none}.profile-history{max-width:760px;margin-top:36px}.capture-desktop-layout{grid-template-columns:minmax(500px,1fr) 300px;align-items:stretch;gap:24px;display:grid}.capture-desktop-layout .snap-capture{border-radius:28px;min-height:650px;margin:0}.recent-baths-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:24px;padding:28px}.recent-bath{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:14px 0;display:flex}.recent-bath strong,.recent-bath small{display:block}.recent-bath small{color:var(--muted)}@media (width>=951px) and (height>=650px){.content:has(.new-bath-page){height:calc(100dvh - 78px);padding:clamp(18px,3vh,32px) 0}.new-bath-page{height:100%}.new-bath-page .capture-desktop-layout{height:100%;min-height:0}.new-bath-page .capture-desktop-layout .snap-capture{min-height:0;padding:clamp(24px,4vh,48px)}.new-bath-page .capture-logo{width:64px;height:64px;margin-bottom:16px}.new-bath-page .capture-actions{gap:9px;margin-top:18px}.new-bath-page .capture-primary{min-height:64px}.new-bath-page .recent-baths-panel{min-height:0;padding:clamp(20px,3vh,28px);overflow:auto}.new-bath-page .quick-bath{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(300px,.9fr) minmax(390px,1.1fr);align-content:center;gap:18px 24px;width:min(100%,1020px);height:100%;display:grid}.new-bath-page .quick-header{grid-column:1/-1;margin:0}.new-bath-page .quick-photo,.new-bath-page .add-photo-strip{grid-area:2/1;align-self:stretch;min-height:0}.new-bath-page .quick-photo img{aspect-ratio:auto;object-fit:cover;height:100%;max-height:none}.new-bath-page .add-photo-strip{justify-content:center}.new-bath-page .quick-form{grid-area:2/2;align-self:start;margin:0}.new-bath-page .quick-save{position:static}}@media (width<=950px){.compact-stats{scroll-snap-type:x mandatory;padding-bottom:5px;display:flex;overflow-x:auto}.compact-stats .stat{scroll-snap-align:start;min-width:210px}.badge-grid{grid-template-columns:repeat(2,1fr)}.content:has(.new-bath-page){width:100%;padding:0}.new-bath-page .capture-desktop-layout{width:100%;height:calc(100dvh - 66px - 69px - env(safe-area-inset-bottom));margin:0;display:block}.new-bath-page .capture-desktop-layout .snap-capture{border-radius:0;width:100%;height:100%;min-height:0;margin:0;padding:clamp(28px,6vh,58px) 24px;overflow:hidden}.recent-baths-panel{display:none}}@media (width<=950px) and (height<=620px){.new-bath-page .capture-desktop-layout .snap-capture{justify-content:flex-start;overflow-y:auto}}@media (width<=650px){.new-bath-page .capture-desktop-layout .snap-capture{padding:28px 22px clamp(84px,12vh,112px)}.page-heading{margin-bottom:20px}.page-heading .eyebrow{display:none}.page-heading h1{margin-bottom:5px;font-size:1.55rem}.community-tabs{z-index:20;margin-bottom:20px;position:sticky;top:72px}.year-table-scroll{display:none}.year-mobile-list{gap:10px;display:grid}.level-card{grid-template-columns:1fr;gap:16px}.level-mark{width:78px}.badge-grid{grid-template-columns:1fr}.year-member-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:15px;overflow:hidden}.year-member-card summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:68px;padding:10px 13px;list-style:none;display:flex}.year-member-card summary::-webkit-details-marker{display:none}.year-member-card .person small{color:var(--muted);display:block}.month-grid{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:12px 7px;padding:15px;display:grid}.month-grid>span{justify-items:center;gap:4px;display:grid}.month-grid small{color:var(--muted)}.year-member-card>.text-action{padding:0 15px 15px;display:block}}
