.swipe-effect{pointer-events:none;--effect-color:var(--warm,#ffb99d);--effect-origin:76%;position:absolute;inset:0;overflow:hidden}.swipe-effect[data-kind=non-alcoholic]{--effect-color:var(--cool,#91e5bc);--effect-origin:24%}.effect-ring{width:28vmax;height:28vmax;left:var(--effect-origin);border:2px solid var(--effect-color);opacity:0;animation:2s ease-out both ring-out;animation-delay:calc(var(--index) * .17s);border-radius:50%;position:absolute;top:50%}.effect-pixel{left:var(--effect-origin);background:var(--effect-color);width:12px;height:12px;animation:1.8s cubic-bezier(.1,.6,.3,1) both pixel-out;animation-delay:calc(var(--index) * 18ms);position:absolute;top:50%;box-shadow:3px 3px #0006}.pixel-spark{clip-path:polygon(40% 0,60% 0,60% 40%,100% 40%,100% 60%,60% 60%,60% 100%,40% 100%,40% 60%,0 60%,0 40%,40% 40%);width:24px;height:24px}.effect-scan{border-block:2px solid var(--effect-color);background:repeating-linear-gradient(0deg, transparent 0 5px, color-mix(in srgb, var(--effect-color) 12%, transparent) 5px 7px);height:16%;animation:1.7s linear both scan-down;animation-delay:calc(var(--index) * .22s);align-items:center;gap:6%;display:flex;position:absolute;top:0;left:0;right:0}.effect-scan span{background:var(--effect-color);opacity:.3;flex:1;height:12px}.effect-scan span:nth-child(2){flex:2;height:4px}@keyframes ring-out{0%{opacity:.7;transform:translate(-50%,-50%)scale(.2)}to{opacity:0;transform:translate(-50%,-50%)scale(4)}}@keyframes pixel-out{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}12%{opacity:.9}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--rotation)) scale(.65);opacity:0}}@keyframes scan-down{0%{opacity:0;transform:translateY(-100%)}12%,65%{opacity:.65}to{opacity:0;transform:translateY(720%)}}.effect-preview{--warm:#ffb99d;--cool:var(--accent);--effect-origin:50%!important}.effect-preview .effect-ring{width:90px;height:90px}.effect-preview .effect-pixel{--dx:calc(cos(var(--index) * 30deg) * 130px)!important;--dy:calc(sin(var(--index) * 30deg) * 70px)!important}@media (prefers-reduced-motion:reduce){.swipe-effect{display:none}}.orbit-track{left:var(--effect-origin);border:2px solid var(--effect-color);width:35vmax;height:15vmax;animation:2.1s ease-out both orbit-turn;animation-delay:calc(var(--index) * .15s);border-radius:50%;position:absolute;top:50%}.orbit-track b{background:var(--effect-color);border:2px solid #fff8;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;left:-6px}.orbit-track b+b{top:40%;left:auto;right:-6px}.dust-star{left:var(--star-x);color:var(--effect-color);text-shadow:0 0 10px var(--effect-color);animation:1.8s linear both star-fall;animation-delay:calc(var(--index) * 50ms);font:24px Courier New,monospace;position:absolute;top:-20px}@keyframes orbit-turn{0%{transform:translate(-50%, -50%) rotate(calc(var(--index) * 55deg)) scale(.25);opacity:.8}to{transform:translate(-50%, -50%) rotate(calc(230deg + var(--index) * 55deg)) scale(1.6);opacity:0}}@keyframes star-fall{0%{opacity:0;transform:translate(0)rotate(0)}15%{opacity:.9}to{opacity:0;transform:translate(-20vw,110vh)rotate(160deg)}}.effect-preview .orbit-track{width:120px;height:60px}.effect-preview .dust-star{animation-name:preview-star-fall}@keyframes preview-star-fall{0%{opacity:0;transform:translate(0)rotate(0)}15%{opacity:.9}to{opacity:0;transform:translate(-45px,200px)rotate(160deg)}}.rewards-intro{margin:-14px 0 16px;font-size:13px}.achievement-grid{gap:12px;margin:28px 0 36px;display:grid}.achievement-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:18px}.achievement-title{align-items:center;gap:10px;display:flex}.achievement-title h2{margin:0;font-size:14px}.achievement-title>svg{color:var(--muted)}.achievement-title>span{color:var(--muted);margin-left:auto;font-size:11px}.is-earned .achievement-title>svg,.is-earned .achievement-title>span{color:var(--accent)}.achievement-card p{color:var(--muted);margin:14px 0;font-size:12px}.achievement-card small{color:var(--muted);margin-top:10px;font-size:11px;display:block}.achievement-card progress{width:100%;height:4px;accent-color:var(--accent);background:var(--soft);border:0;border-radius:8px}.achievement-card progress::-webkit-progress-bar{background:var(--soft)}.achievement-card progress::-webkit-progress-value{background:var(--accent)}.achievement-card progress::-moz-progress-bar{background:var(--accent)}.checkin-section{margin-bottom:36px}.checkin-section>p{color:var(--muted);font-size:12px}.checkin-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.checkin-grid button{background:var(--surface);min-height:62px;color:var(--ink);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:7px;padding:12px 4px;font-size:11px;display:flex}.checkin-grid button small{color:var(--muted);font-size:9px}.checkin-grid button[aria-pressed=true]:not(.checkin-conflict){border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.checkin-conflict{opacity:.6}.checkin-conflict small{color:var(--peach)!important}.customize-section fieldset{border:0;min-width:0;margin:24px 0;padding:0}.customize-section legend{color:var(--muted);margin-bottom:12px;font-size:12px}.reward-options{flex-wrap:wrap;gap:8px;display:flex}.reward-options button{min-height:46px;font-size:12px}.reward-options button[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}.reward-options button small{color:var(--muted);font-size:9px}.reward-options button:disabled{opacity:.4;cursor:not-allowed}.animation-preview{border:1px solid var(--line);background:var(--surface);border-radius:16px;place-items:center;height:170px;display:grid;position:relative;overflow:hidden}.animation-preview>button{z-index:1;background:#171c23d9;position:relative}.preview-wave{pointer-events:none;position:absolute;inset:0}.preview-wave i{border:1px solid var(--accent);border-radius:50%;width:90px;height:90px;animation:1.8s ease-out both preview-ripple;position:absolute;top:50%;left:50%}.preview-wave i:nth-child(2){animation-delay:.15s}.preview-wave i:nth-child(3){animation-delay:.3s}.preview-echo i{border:5px double var(--accent)}.preview-bloom i{background:radial-gradient(circle, var(--accent), transparent 70%);border:0}@keyframes preview-ripple{0%{opacity:.6;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(4)}}@media (width<=360px){.checkin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.preview-wave{display:none}}.modal{border:1px solid var(--line);background:var(--paper);color:var(--ink);overscroll-behavior:contain;border-radius:20px;width:calc(100% - 32px);max-width:480px;max-height:calc(100dvh - 48px);padding:0}.modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006}.modal-inner{padding:28px;position:relative}.modal h2{margin:4px 36px 28px 0;font-size:21px}.modal p{color:var(--muted);font-size:14px}.modal-close{color:var(--muted);position:absolute;top:12px;right:12px}.modal-actions{gap:10px;margin-top:28px;display:flex}.modal-actions button{flex:1}body:has(dialog[open]){overflow:hidden}@media (width<=600px){.sheet{width:100%;max-width:none;max-height:calc(100dvh - max(24px, env(safe-area-inset-top)));border-bottom:0;border-radius:22px 22px 0 0;margin:auto auto 0}.sheet .modal-inner{padding:28px 24px calc(24px + env(safe-area-inset-bottom))}}.session-rewards:empty{display:none}.session-rewards{margin:24px 0}.session-rewards p{align-items:flex-start;gap:12px;margin:16px 0;font-size:13px;display:flex}.session-rewards svg{color:var(--accent);flex-shrink:0}.session-rewards small{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.7;display:block}.session-background{pointer-events:none;z-index:-1;--cool:#54dfbc;--base-tint:transparent;background:#101419;position:fixed;inset:0;overflow:hidden}.color-field{background-repeat:no-repeat;transition:opacity .7s,transform .8s,background-size .8s;position:absolute;inset:-15%}.cool-field{background-image:radial-gradient(ellipse at 15% 70%, var(--cool), transparent 70%);background-size:var(--cool-size) 120%;opacity:var(--cool-opacity);transform:translateX(var(--swipe-pull));background-position:0}.warm-field{background-image:radial-gradient(ellipse at 85% 30%, var(--warm), transparent 72%);background-size:var(--warm-size) 120%;opacity:var(--warm-opacity);transform:translateX(var(--swipe-pull));background-position:100%}.session-background:after{content:"";background:linear-gradient(0deg, #10141988, transparent 40%, var(--base-tint));position:absolute;inset:0}.session-background[data-direction=non-alcoholic] .cool-field{opacity:calc(var(--cool-opacity) + var(--drag-boost))}.session-background[data-direction=alcoholic] .warm-field{opacity:calc(var(--warm-opacity) + var(--drag-boost))}.drag-wave{--wave-color:var(--warm);--origin:76%;position:absolute;inset:0}.session-background[data-direction=non-alcoholic] .drag-wave{--wave-color:var(--cool);--origin:24%}.drag-wave i{width:28vmax;height:28vmax;left:var(--origin);border:2px solid color-mix(in srgb, var(--wave-color) 65%, transparent);width:28vmax;height:28vmax;top:50%;left:var(--origin);border:2px solid color-mix(in srgb, var(--wave-color) 65%, transparent);opacity:0;border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.background-burst i{animation:2s ease-out both background-ripple}.background-burst i:nth-child(2){animation-delay:.17s}.background-burst i:nth-child(3){animation-delay:.34s}.drag-wave i{opacity:.35;transform:translate(-50%, -50%) scale(var(--drag-scale))}.drag-wave i:nth-child(2){transform:translate(-50%, -50%) scale(calc(var(--drag-scale) + .6));opacity:.18}@media (prefers-reduced-motion:reduce){.drag-wave{display:none}.color-field{transition:none;transform:none}}@property --warm{syntax:"<color>";inherits:true;initial-value:#58d28b}.session-background{transition:--warm .8s}.stats>div{flex-direction:column;gap:10px;display:flex}.stat-label{color:var(--muted);font-size:12px}.stats strong{letter-spacing:-.5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:clamp(18px,5vw,25px);font-weight:500}.home-page{max-width:480px;min-height:100dvh;padding:max(48px, env(safe-area-inset-top)) 24px calc(120px + env(safe-area-inset-bottom));align-items:center;margin:auto;display:flex}.session-control{text-align:center;flex-direction:column;align-items:center;width:100%;display:flex}.session-control h1{letter-spacing:-.5px;margin:0 0 10px;font-size:22px;font-weight:500}.home-subtitle{color:var(--muted);min-height:20px;margin:0 0 36px;font-size:12px}.swipe-card{isolation:isolate;border:1px solid var(--line);background:var(--surface);touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;border-radius:20px;width:min(100%,340px);min-height:274px;padding:28px 22px;transition:transform .18s ease-out,border-color .3s,background .4s;position:relative}.swipe-card:active{cursor:grabbing;transition:none}.card-stamp{z-index:1;color:var(--muted);font-size:11px;position:relative}.card-counts{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:16px;margin:34px 0 28px;display:grid;position:relative}.card-counts>div{flex-direction:column;gap:10px;display:flex}.card-counts strong{font-variant-numeric:tabular-nums;letter-spacing:-3px;font-size:clamp(48px,14vw,68px);font-weight:350;line-height:1}.card-counts span{color:var(--muted);font-size:11px}.card-counts .count-divider{display:none}.swipe-hint{color:var(--muted);z-index:1;margin:0;font-size:11px;position:relative}.drink-buttons{grid-template-columns:1fr 1fr;gap:12px;width:min(100%,340px);margin-top:16px;display:grid}.drink-choice{border:1px solid var(--line);background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:54px;padding:10px 6px;font-size:12px;display:flex}.non-alcoholic{color:var(--mint)}.alcoholic{color:var(--ink)}.drink-choice:active{transform:scale(.97)}.feedback{width:min(100%,340px);min-height:84px;color:var(--muted);text-align:left;justify-content:center;align-items:center;gap:16px;font-size:12px;display:flex}.feedback small{color:var(--muted);margin-top:5px;font-size:10px;line-height:1.6;display:block}.feedback button{color:var(--accent);flex-shrink:0}.soft-confirmation>div>span{color:var(--mint)}.session-actions{color:var(--muted);align-items:center;gap:20px;display:flex}.session-actions button{font-size:12px}.water-reminder{text-align:left;border-block:1px solid var(--line);align-items:center;gap:12px;width:min(100%,340px);margin-bottom:12px;padding:14px 0;font-size:12px;display:flex}.water-reminder>svg{color:var(--mint);flex-shrink:0}.water-reminder small{color:var(--muted);margin-top:5px;font-size:11px;display:block}.water-reminder button{margin-left:auto}.start-options{flex-direction:column;align-items:stretch;gap:24px;width:min(100%,300px);display:flex}.limit-toggle{color:var(--muted);justify-content:center;align-items:center;gap:10px;min-height:44px;font-size:12px;display:flex}.limit-toggle input{width:18px;height:18px;accent-color:var(--accent)}.limit-input{text-align:left;color:var(--muted);gap:12px;font-size:12px;display:grid}.limit-input input{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;width:100%;padding:14px;font-size:22px}.limit-input small{font-size:11px;line-height:1.6}.start-button{justify-content:space-between}.goal-caption{width:min(100%,340px);color:var(--muted);justify-content:space-between;margin:16px 0 0;font-size:11px;display:flex}.goal-caption span{color:var(--ink)}.feedback-soft .card-counts strong.mint{animation:.45s ease-out soft-count}@keyframes soft-count{0%{transform:scale(.9)}55%{transform:scale(1.08)}to{transform:scale(1)}}.app-shell[data-card=ripple] .swipe-card:before{content:"";z-index:0;pointer-events:none;background:repeating-radial-gradient(ellipse at center, transparent 0 24px, color-mix(in srgb, var(--accent) 7%, transparent) 25px 26px, transparent 27px 48px);border-radius:50%;position:absolute;inset:14px}.drink-list{margin:0 0 24px;padding:0;list-style:none}.drink-list li{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:72px;font-size:14px;display:flex}.drink-list time{color:var(--muted);margin-left:auto;font-size:12px}.drink-list small{color:var(--muted);margin-top:5px;font-size:11px;display:block}.entry-icon{background:var(--surface);border-radius:14px;padding:12px}@media (height<=680px){.home-page{padding-top:28px}.home-subtitle{margin-bottom:24px}.swipe-card{min-height:238px;padding-block:22px}.card-counts{margin-block:26px}}@media (prefers-reduced-motion:reduce){.feedback-soft .card-counts strong.mint{animation:none}}.home-page{isolation:isolate;position:relative}.swipe-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#171e25dc;border-color:#ffffff25}.feedback-soft{background:#1a2a29e8;border-color:#91e5bc88}.home-subtitle,.card-stamp,.swipe-hint,.card-counts span,.feedback{color:#c3cccf}.calendar-panel{background:var(--surface);border:1px solid var(--line);border-radius:24px;margin-top:28px;padding:16px}.month-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.month-heading h2{margin:0;font-size:16px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.weekday{color:var(--muted);text-align:center;padding:12px 0;font-size:10px}.calendar-day{color:var(--ink);background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:48px;font-size:13px;display:flex}.calendar-day:hover{background:var(--soft)}.calendar-day[aria-pressed=true]{background:var(--mint);color:#10271e}.calendar-day.today{border-color:#91e5bc66}.day-markers{gap:3px;height:5px;display:flex}.mint-dot,.peach-dot,.neutral-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.mint-dot{background:var(--mint)}.peach-dot{background:var(--peach)}.neutral-dot{background:var(--muted)}.calendar-day[aria-pressed=true] .mint-dot{background:#20543e}.calendar-day[aria-pressed=true] .peach-dot{background:#873c29}.calendar-legend{color:var(--muted);justify-content:center;gap:20px;margin-top:20px;font-size:10px;display:flex}.calendar-legend span{align-items:center;gap:6px;display:flex}.month-stats{text-align:center;justify-content:space-around;gap:10px;padding:24px 0 32px;font-size:10px;display:flex}.month-stats strong{margin-bottom:4px;font-size:24px;font-weight:450;display:block}.section-heading h2{margin:0;font-size:14px}.history-row{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:20px 0;display:flex}.history-row h2{margin:0 0 7px;font-size:14px}.history-row p{margin:0;font-size:11px}.history-row>svg{color:var(--muted);margin-left:auto}.session-badge{background:var(--surface);color:var(--mint);border-radius:16px;padding:14px}.calendar-empty{text-align:center;color:var(--muted);padding:40px 0;font-size:14px}.calendar-empty>svg{opacity:.6}.calendar-empty p{margin:14px 0 0}.calendar-empty small{font-size:12px}.recap{border:1px solid var(--line);background:linear-gradient(135deg,#243833,#1c242b);border-radius:22px;margin:24px 0;padding:24px}.entries-heading{margin:32px 0 12px;font-size:17px}.back-link{margin:-12px 0 20px}.achievement{color:var(--mint);align-items:center;gap:10px;font-size:12px;display:flex}.recap{background:var(--surface);border-radius:18px}.recap-heading{color:var(--muted);margin:0 0 24px;font-size:12px}.calendar-panel{border-radius:18px}.settings-section{border-bottom:1px solid var(--line);padding-bottom:30px}.settings-section h2{margin-bottom:22px;font-size:15px}.threshold-fields{grid-template-columns:1fr 1fr;gap:16px;display:grid}.threshold-fields label>span{align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.color-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.orange{background:#c98735}.red{background:#c76250}.number-field{background:var(--soft);border-radius:12px;align-items:center;padding-right:14px;display:flex}.number-field input{color:var(--ink);background:0 0;border:0;border-radius:12px;width:100%;min-width:0;padding:14px;font-size:20px}.number-field>span{color:var(--muted);font-size:12px}.settings-hint{color:var(--muted);margin:16px 0 22px;font-size:12px}.save-row{align-items:center;gap:18px;display:flex}.form-message{color:var(--muted);font-size:13px}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:22px 0;font-size:14px;display:flex}.muted,.setting-row svg{color:var(--muted)}.clear-data{text-align:left;background:0 0;border:0;width:100%}.guide-section{border-bottom:1px solid var(--line)}.guide-section summary{cursor:pointer;min-height:64px;padding:22px 0;font-size:15px}.guide-section p,.guide-section ol{color:var(--muted);margin:0 0 22px;font-size:14px;line-height:1.8}.guide-section ol{padding-left:20px}.guide-section li+li{margin-top:10px}.guide-section h2{margin:22px 0 10px;font-size:14px}.offline-status{color:var(--muted);margin-top:28px;font-size:12px}.backup-section{border-bottom:1px solid var(--line);padding:28px 0}.backup-section h2{font-size:16px}.backup-actions{flex-wrap:wrap;gap:12px;display:flex}.import-button{cursor:pointer;position:relative}.import-button input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.import-button:focus-within{outline:2px solid var(--mint);outline-offset:3px}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#101419;--surface:#1b222a;--ink:#edf2ee;--muted:#a5b3b7;--line:#303b43;--soft:#252f38;--danger:#ffaca3;--mint:#91e5bc;--peach:#ffb99d;--page-bg:var(--paper);color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.7px;margin-bottom:28px;font-size:26px;font-weight:550}h2{letter-spacing:-.3px;font-size:18px;font-weight:500}p{line-height:1.6}:focus-visible{outline:2px solid var(--ink);outline-offset:5px}main:focus{outline:none}.app-shell{background:var(--page-bg);min-height:100dvh;transition:background-color .8s}.session-view{background:radial-gradient(ellipse at 50% 18%, color-mix(in srgb, var(--session-color) 10%, transparent), transparent 65%), var(--paper);--muted:#a5b3b7;--page-bg:var(--paper);height:auto;min-height:100dvh;position:relative;inset:auto;overflow:clip}.session-page{flex:1;min-height:0}.page{max-width:640px;padding:max(44px, env(safe-area-inset-top)) 24px calc(112px + env(safe-area-inset-bottom));margin:0 auto}.main-nav{bottom:calc(14px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--page-bg) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5;border-radius:32px;gap:20px;padding:6px 12px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.main-nav a{width:48px;height:48px;color:var(--muted);border-radius:50%;place-items:center;display:grid;position:relative}.main-nav a.active{color:var(--ink)}.main-nav a.active:after{content:"";background:currentColor;border-radius:50%;width:3px;height:3px;position:absolute;bottom:3px}.main-nav a:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.text-button{min-height:44px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;padding:0;font-size:13px;display:inline-flex}.text-button:hover{color:var(--ink)}.icon-button{color:inherit;background:0 0;border:none;border-radius:10px;place-items:center;min-width:44px;min-height:44px;padding:12px;display:grid}.icon-button:hover{background:var(--soft)}.button{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:12px 20px;font-size:14px;display:inline-flex}.primary{color:var(--paper);background:var(--ink)}.secondary{color:var(--ink);background:var(--soft)}.danger{color:var(--danger)}.danger-button{background:var(--danger);color:var(--paper)}.empty-state{text-align:center;color:var(--muted);padding:15vh 0}.empty-state p{margin-bottom:24px;font-size:14px}.storage-warning{z-index:6;background:var(--surface);color:var(--danger);padding:12px 20px;font-size:13px;line-height:1.6;position:relative}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:var(--paper);padding:15px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:10px}.enter{animation:.25s both enter}@keyframes enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:.5;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.main-nav{border:1px solid var(--line);background:#1b222af0;gap:28px;box-shadow:0 10px 35px #0005}.primary{background:var(--mint);color:#10271e;font-weight:600}.mint{color:var(--mint)}.peach{color:var(--peach)}.session-editor{flex-direction:column;gap:20px;margin-top:24px;display:flex}.session-editor label{color:var(--muted);flex-direction:column;gap:8px;font-size:12px;display:flex}.session-editor input,.session-editor select{border:1px solid var(--line);background:var(--soft);width:100%;min-width:0;min-height:46px;color:var(--ink);font:inherit;border-radius:10px;padding:10px;font-size:14px}.edit-entry{border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;min-width:0;margin:0;padding:14px;display:flex}.edit-entry legend{padding:0 6px;font-size:12px}.edit-entry .text-button{align-self:flex-start}.session-editor h3{margin:0;font-size:15px}.session-editor .section-heading>span{color:var(--muted);font-size:12px}.setting-note{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.7;display:block}.setting-row input[type=checkbox]{width:24px;height:24px;accent-color:var(--mint);flex-shrink:0}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.stats .stat-label{font-size:11px}.stats strong{font-size:28px}@media (prefers-reduced-motion:reduce){.swipe-card{transform:none!important}}:root{--accent:#91e5bc;--surface:#191e24;--line:#2c343b}.session-view{background:var(--paper)}.main-nav{box-shadow:none;background:#191e24f5;border-radius:18px}.main-nav a.active{color:var(--accent);background:0 0}.main-nav a.active:after,.primary{background:var(--accent)}.main-nav{gap:16px}:root{--paper:#12132c;--surface:#1a1b37;--soft:#292a48;--line:#535678;--muted:#bac1da;--ink:#f5f5ff;--danger:#ffacba;font-family:Tahoma,Verdana,sans-serif}.app-shell{--panel:#171a31f2;--chrome:#323cc2;--chrome-end:#7870e1;--desktop:#151a3d;--grid:#7b79c026;--edge:#d4d8f5;--shadow:#080c22;background:repeating-linear-gradient(0deg, transparent 0 31px, var(--grid) 31px 32px), repeating-linear-gradient(90deg, transparent 0 31px, var(--grid) 31px 32px), var(--desktop)}.app-shell[data-palette=aurora]{--panel:#2a1538f5;--chrome:#b52e8b;--chrome-end:#e88bc8;--desktop:#321c42;--grid:#ff98db28;--edge:#fbd2ef;--shadow:#15051e;--surface:#342040;--soft:#4b2e54;--line:#8a5b8e;--muted:#dfbddb}.app-shell[data-palette=midnight]{--panel:#061710f5;--chrome:#125f3e;--chrome-end:#1b8d58;--desktop:#020c08;--grid:#36de6920;--edge:#79cb9c;--shadow:#000;--surface:#0b2418;--soft:#173a27;--line:#376447;--muted:#a9cbb3;font-family:Courier New,monospace}h1,h2,h3{letter-spacing:0}h1{font-size:22px;font-weight:700}.page{max-width:700px;padding:max(28px, env(safe-area-inset-top)) 18px calc(124px + env(safe-area-inset-bottom))}.page>.enter{background:var(--panel);border:2px solid var(--edge);box-shadow:5px 5px 0 var(--shadow), inset 1px 1px #ffffff35;padding:20px}.page>.enter>h1{background:linear-gradient(90deg, var(--chrome), var(--chrome-end));color:#fff;border-bottom:2px solid var(--edge);margin:-20px -20px 24px;padding:10px 12px;font:700 15px Tahoma,sans-serif}.button,.icon-button,.drink-choice,.calendar-day,.reward-options button,.checkin-grid button{border-radius:0}.button{border:2px solid #626582;border-color:#f1f1ff #626582 #626582 #f1f1ff;font-size:13px;box-shadow:inset 1px 1px #fff5,2px 2px #0006}.button:active,.drink-choice:active,.main-nav a:active{transform:translate(1px,1px);box-shadow:inset 2px 2px #0005}.button.secondary{color:#171b34;background:#c7cadc}.button.primary{background:var(--accent);color:#11291d;font-weight:700}.danger-button{color:#fff;background:#a52b49}.text-button{color:var(--muted);text-underline-offset:3px;text-decoration:underline}:focus-visible{outline-offset:4px;outline:2px dashed #ffed8a}.home-page{max-width:500px;min-height:100dvh;padding:max(28px, env(safe-area-inset-top)) 18px calc(124px + env(safe-area-inset-bottom))}.session-control{border:2px solid var(--edge);background:var(--panel);box-shadow:6px 6px 0 var(--shadow);padding:20px}.retro-titlebar{background:linear-gradient(90deg, var(--chrome), var(--chrome-end));border-bottom:2px solid var(--edge);color:#fff;justify-content:space-between;align-items:center;gap:12px;width:calc(100% + 40px);margin:-20px -20px 0;padding:10px 12px;display:flex}.retro-titlebar h1{letter-spacing:0;margin:0;font:700 15px Tahoma,sans-serif}.retro-titlebar>span{font-size:15px}.retro-toolbar{width:calc(100% + 40px);color:var(--muted);border-bottom:1px dashed var(--line);justify-content:space-between;gap:8px;margin:0 -20px 22px;padding:8px 10px;font:9px Courier New,monospace;display:flex}.home-subtitle{color:var(--muted);margin-bottom:22px;font-size:11px;line-height:1.7}.swipe-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0b1021ed;border:2px inset #8d96b3;border-radius:0;width:100%;min-height:240px;padding:24px 14px;box-shadow:inset 0 0 0 4px #151d34}.card-stamp{text-transform:uppercase;letter-spacing:2px;color:#bac8eb;font:10px Courier New,monospace}.card-counts{gap:12px;margin:30px 0 24px}.card-counts strong{text-shadow:3px 3px #ffffff12;font-family:Courier New,monospace;font-size:clamp(42px,13vw,64px);font-weight:700}.card-counts span{color:#c3c9e2;font:10px Courier New,monospace}.swipe-hint{font:10px Courier New,monospace}.drink-buttons{gap:10px;width:100%}.drink-choice{border:2px outset #d4dded;min-height:56px;font-size:11px;font-weight:700;box-shadow:2px 2px #0005}.drink-choice.non-alcoholic{color:#12382b;background:#b4f6d7}.drink-choice.alcoholic{color:#4b261f;background:#ffd0b6}.feedback{width:100%;min-height:82px;color:var(--muted);font:11px Courier New,monospace}.feedback>div>span:before{content:"> ";color:var(--accent)}.feedback small{font-size:10px}.feedback-soft{border-color:var(--mint);background:#122c2a}.session-actions{flex-direction:column;gap:10px;width:100%}.session-actions .end-session-button{color:#241f0b;background:#ffe66f;border-color:#fffbd1 #8e7625 #8e7625 #fffbd1;order:-1;justify-content:center;gap:14px;width:100%;min-height:56px;font:700 14px Tahoma,sans-serif}.stop-square{background:currentColor;width:12px;height:12px}.session-actions .text-button{font-size:11px}.start-options{gap:18px;width:100%}.start-button{margin-top:8px}.limit-toggle{font-size:11px}.limit-input input,.session-editor input,.session-editor select{color:#f5f5ff;background:#10172b;border:2px inset #9ba4ba;border-radius:0}.water-reminder{border:1px dashed var(--mint);background:#153a2b;padding:12px}.goal-caption{width:100%;font:11px Courier New,monospace}.main-nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:#abb0c8;border:2px outset #e0e4f1;border-radius:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:calc(100% - 24px);max-width:500px;padding:6px;display:grid;box-shadow:3px 3px #0008}.main-nav a{color:#292d49;background:#c6cadc;border:2px outset #edf0ff;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:auto;height:54px;display:flex}.main-nav a span{font:10px Tahoma,sans-serif}.main-nav a.active{background:var(--chrome);color:#fff;border-style:inset}.main-nav a.active:after{display:none}.main-nav a:hover{color:#171a31;background:#e1e4f5}.calendar-panel,.recap,.achievement-card,.edit-entry,.entry-icon,.session-badge{border-radius:0}.calendar-panel,.recap{background:var(--surface);border:2px inset #9ca4bf}.calendar-day{min-height:44px}.calendar-day[aria-pressed=true]{background:var(--accent)}.calendar-day.today{border-style:dashed}.month-stats{border-bottom:1px dashed var(--line);margin-bottom:24px}.modal,.sheet{background:#181c34;border:3px outset #d3d9ec;border-radius:0;box-shadow:6px 6px #0008}.modal-inner{padding:24px}.modal h2{color:#fff;font:700 18px Tahoma,sans-serif}.modal-close{background:#343b63;border-radius:0}.modal-actions{flex-wrap:wrap}.modal-actions button{min-width:110px}.retro-sticker{justify-content:center;align-items:center;min-width:88px;min-height:64px;margin:0 0 20px;display:inline-flex}.sticker-fallback{color:#f2d974;text-shadow:3px 3px #be539c;align-items:center;gap:9px;display:flex}.sticker-fallback span{font-size:36px;animation:3s ease-in-out infinite alternate sticker-float}.sticker-fallback span:nth-child(2){color:#b4b4ff;font-size:24px;animation-delay:-.8s}.sticker-fallback span:nth-child(3){color:var(--mint);font-size:28px;animation-delay:-1.7s}.retro-sticker img{object-fit:contain;image-rendering:pixelated;max-width:120px}.has-gif .sticker-fallback{display:none}.web-badge{color:#23163e;background:#c8b4ef;border:2px outset #ecddff;padding:6px 10px;font:700 10px Courier New,monospace;display:inline-block}.rewards-masthead{align-items:center;gap:18px;margin-bottom:12px;display:flex}.rewards-masthead .retro-sticker{margin:0}.achievement-card{background:var(--surface);border:2px outset #9c9fc7;padding:16px;position:relative}.achievement-title>svg{color:#bfcaea;background:#30385c;border:2px solid #8895bf;flex-shrink:0;width:44px;height:44px;padding:10px}.achievement-card.is-earned .achievement-title>svg{color:#46320c;background:#f6d668;border-color:#fff2b3;box-shadow:3px 3px #876f39}.achievement-card[data-badge="1"].is-earned .achievement-title>svg{color:#352254;background:#cbb8ff;border-color:#f2ddff}.achievement-card[data-badge="2"].is-earned .achievement-title>svg{color:#153e30;background:#a1efcb;border-color:#d9ffed}.achievement-card[data-badge="3"].is-earned .achievement-title>svg{color:#551135;background:#ffb4dc;border-color:#ffdfef}.achievement-card[data-badge="4"].is-earned .achievement-title>svg{color:#103b48;background:#8ee6ff;border-color:#ddfaff}.achievement-title h2{font-size:13px}.achievement-title>span{font:700 9px Courier New,monospace}.achievement-card progress{border:1px inset #687294;border-radius:0;height:8px}.achievement-card small{font-family:Courier New,monospace}.reward-options{gap:10px}.reward-options button{font-size:11px}.reward-options button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px;color:#181b34;box-shadow:2px 2px #0005}.reward-options button:disabled{opacity:.6}.reward-options button small{color:#343c5c}.checkin-grid button{border:2px outset #a0a9c8}.checkin-grid button[aria-pressed=true]:not(.checkin-conflict){border-color:var(--mint);border-style:inset}.customize-section h2,.checkin-section h2{font:700 17px Tahoma,sans-serif}.customize-section legend{font:11px Courier New,monospace}.palette-choice{flex-direction:column;flex:1;gap:8px;min-width:95px;max-width:180px;padding:8px}.skin-thumbnail{background:repeating-linear-gradient(0deg,#0000 0 9px,#9a94fd33 9px 10px),#1b244e;border:1px inset #727a9d;place-items:center;width:100%;height:80px;display:grid}.mini-window{background:#191d35;border:2px outset #d3d9ef;width:70%;display:grid}.mini-window i{background:#5261da;height:8px;display:block}.mini-window b{color:#91e5bc;padding:8px 2px;font:700 10px Courier New,monospace}.mini-window em{background:#c9cee2;height:5px;margin:0 6px 5px}.skin-thumbnail[data-skin=aurora]{background:repeating-linear-gradient(45deg,#ff93dd22 0 7px,#0000 7px 14px),#56275f}.skin-thumbnail[data-skin=aurora] .mini-window{background:#351c42;border-color:#ffcfeb}.skin-thumbnail[data-skin=aurora] i{background:#e16cb4}.skin-thumbnail[data-skin=midnight]{background:repeating-linear-gradient(0deg,#74ef9020 0 1px,#0000 1px 5px),#021209}.skin-thumbnail[data-skin=midnight] .mini-window{background:#06130a;border-color:#47ac6a}.skin-thumbnail[data-skin=midnight] i{background:#18643b}.skin-thumbnail[data-skin=midnight] b{color:#6ff398}.preview-selector{color:var(--muted);gap:8px;margin-bottom:12px;font-size:12px;display:grid}.preview-selector select{color:#fff;background:#111a31;border:2px inset #acb6d2;border-radius:0;width:100%;min-height:44px;padding:8px;font:12px Tahoma,sans-serif}.animation-preview{background:#0c1227;border:2px inset #aeb5cf;border-radius:0}.animation-preview>button{background:#c7cadc}.session-background{background-color:var(--desktop)}.session-background:before{content:"";z-index:1;background:repeating-linear-gradient(0deg,#0000 0 31px,#b2a5e81c 31px 32px),repeating-linear-gradient(90deg,#0000 0 31px,#b2a5e81c 31px 32px);position:absolute;inset:0}.session-background[data-palette=aurora]{--cool:#e5a0ff;--base-tint:#b53c8f25}.session-background[data-palette=midnight]{--cool:#7ff0b4;--base-tint:#031f0a66}.app-shell[data-palette=midnight] .session-background:before{background:repeating-linear-gradient(0deg,#7bf19714 0 1px,#0000 1px 5px)}@keyframes sticker-float{0%{transform:translateY(0)rotate(-8deg)}to{transform:translateY(-5px)rotate(8deg)}}@media (width<=360px){.home-page,.page{padding-left:12px;padding-right:12px}.session-control{padding:16px}.retro-titlebar{width:calc(100% + 32px);margin:-16px -16px 0}.retro-toolbar{width:calc(100% + 32px);margin-inline:-16px}.page>.enter{padding:16px}.page>.enter>h1{margin:-16px -16px 20px}.achievement-title{gap:8px}.achievement-title>svg{width:36px;height:36px;padding:7px}.main-nav{gap:4px}.main-nav a span{font-size:9px}}@media (prefers-reduced-motion:reduce){.sticker-fallback span{animation:none}.retro-sticker img{display:none}.has-gif .sticker-fallback{display:flex}}.app-shell[data-palette=ocean]{--panel:#071b33f5;--chrome:#075e87;--chrome-end:#63bed6;--desktop:#071b33;--grid:#6be4f022;--edge:#bdebf4;--shadow:#020e1c;--surface:#0d2941;--soft:#163c52;--line:#407184;--muted:#b1d3df}.app-shell[data-palette=space]{--panel:#200e37f5;--chrome:#733cc7;--chrome-end:#c87cd7;--desktop:#200f37;--grid:#ce99ff22;--edge:#e5cdfb;--shadow:#0c0318;--surface:#31184b;--soft:#45265c;--line:#785392;--muted:#dac2ea}.session-background[data-palette=ocean]{--cool:#73e6f1;--base-tint:#04366544}.session-background[data-palette=space]{--cool:#c4a4ff;--base-tint:#6c257933}.app-shell[data-palette=ocean] .session-background:before{background:repeating-linear-gradient(0deg,#6fe6ef14 0 1px,#0000 1px 24px)}.app-shell[data-palette=space] .session-background:before{background:radial-gradient(circle at 15px 15px,#e6cbff66 1px,#0000 2px) 0 0/60px 60px}.skin-thumbnail[data-skin=ocean]{background:repeating-linear-gradient(0deg,#67dfe820 0 1px,#0000 1px 10px),#083450}.skin-thumbnail[data-skin=ocean] .mini-window{background:#09263b;border-color:#b4ebf4}.skin-thumbnail[data-skin=ocean] i{background:#1683a5}.skin-thumbnail[data-skin=space]{background:radial-gradient(circle at 12px 12px,#edc5ff77 1px,#0000 2px) 0 0/23px 23px,#391654}.skin-thumbnail[data-skin=space] .mini-window{background:#29113d;border-color:#e5c9ff}.skin-thumbnail[data-skin=space] i{background:#a15fce}.app-shell[data-card=arcade] .swipe-card:before{content:"";z-index:0;pointer-events:none;background:conic-gradient(#91e5bc12 25%, transparent 0 50%, #91e5bc12 0 75%, transparent 0) 0 0 / 32px 32px;position:absolute;inset:6px}.app-shell[data-card=laser] .swipe-card:before{content:"";z-index:0;pointer-events:none;background:repeating-linear-gradient(45deg,#0000 0 20px,#e6a1ff25 20px 21px),repeating-linear-gradient(-45deg,#0000 0 20px,#8bdef52b 20px 21px);position:absolute;inset:6px}.collection-summary{color:var(--muted);align-items:baseline;gap:10px;padding:24px 0 16px;font:12px Courier New,monospace;display:flex}.collection-summary strong{color:var(--accent);font-size:24px}.badge-filters{flex-wrap:wrap;gap:8px;display:flex}.badge-filters button{min-height:44px;font-size:11px}.badge-filters button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.checkin-summary{font-family:Courier New,monospace}.accent-swatch{border:1px solid #2a2b43;flex-shrink:0;width:12px;height:12px}@media (width>=640px){.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-title{flex-wrap:wrap}.achievement-title>h2{flex:1}.achievement-title>span{margin-left:0}}.window-title{align-items:center;gap:8px;min-width:0;display:flex}.window-app-icon{width:20px;height:20px;image-rendering:pixelated;flex-shrink:0;display:block}
