*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}*,*:before,*:after{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}input,textarea,select,option,[contenteditable],.allow-select{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important;-webkit-touch-callout:text!important;-webkit-tap-highlight-color:initial!important}html,body,#root,*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{width:0;height:0;display:none}.recharts-wrapper *:focus,.recharts-surface:focus,svg:focus,canvas:focus{outline:none}:root{--radius: 18px;--radius-sm: 12px;--font: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:root,:root[data-theme=current]{--white: #ffffff;--black: #000000;--bg: #faf9f6;--bg-card: var(--white);--bg-muted: #f3ede3;--surface: var(--white);--text: #1c1917;--text-secondary: #78716c;--text-tertiary: #a8a29e;--border: #e7dfd3;--shadow: 0 2px 8px color-mix(in srgb, #b48c50 18%, transparent);--shadow-warm: 0 2px 8px color-mix(in srgb, #b48c50 18%, transparent);--shadow-inverted: inset 0 0 5px 1px color-mix(in srgb, var(--black) 6%, transparent);--shadow-inverted-strong: inset 0 0 5px 1px color-mix(in srgb, var(--black) 10%, transparent);--tooltip-bg: var(--white);--tooltip-shadow: 0 4px 12px color-mix(in srgb, var(--black) 10%, transparent);--overlay-scrim: color-mix(in srgb, var(--black) 45%, transparent);--overlay-scrim-strong: color-mix(in srgb, var(--black) 50%, transparent);--panel-shadow: 0 -4px 40px color-mix(in srgb, var(--black) 15%, transparent);--panel-shadow-strong: 0 -8px 48px color-mix(in srgb, var(--black) 22%, transparent);--primary: #18b018;--ev: #0ea5e9;--glide: #8750e7;--thermal: #ea580c;--info: #0891b2;--accent: #0284c7;--warn: #d97706;--danger: #dc2626;--success: #16a34a;--regen: #10b981;--primary-strong: color-mix(in srgb, var(--primary) 74%, var(--black));--primary-soft: color-mix(in srgb, var(--primary) 18%, var(--bg-card));--primary-bg: color-mix(in srgb, var(--primary) 10%, var(--bg-card));--ev-strong: color-mix(in srgb, var(--ev) 74%, var(--black));--ev-soft: color-mix(in srgb, var(--ev) 18%, var(--bg-card));--glide-strong: color-mix(in srgb, var(--glide) 74%, var(--black));--glide-soft: color-mix(in srgb, var(--glide) 50%, var(--bg-card));--glide-bg: color-mix(in srgb, var(--glide) 10%, var(--bg-card));--thermal-strong: color-mix(in srgb, var(--thermal) 74%, var(--black));--thermal-soft: color-mix(in srgb, var(--thermal) 18%, var(--bg-card));--thermal-bg: color-mix(in srgb, var(--thermal) 10%, var(--bg-card));--info-strong: color-mix(in srgb, var(--info) 74%, var(--black));--info-soft: color-mix(in srgb, var(--info) 18%, var(--bg-card));--info-bg: color-mix(in srgb, var(--info) 10%, var(--bg-card));--accent-strong: color-mix(in srgb, var(--accent) 74%, var(--black));--accent-soft: color-mix(in srgb, var(--accent) 18%, var(--bg-card));--accent-bg: color-mix(in srgb, var(--accent) 10%, var(--bg-card));--warn-strong: color-mix(in srgb, var(--warn) 74%, var(--black));--warn-soft: color-mix(in srgb, var(--warn) 18%, var(--bg-card));--warn-bg: color-mix(in srgb, var(--warn) 10%, var(--bg-card));--danger-strong: color-mix(in srgb, var(--danger) 74%, var(--black));--danger-soft: color-mix(in srgb, var(--danger) 18%, var(--bg-card));--danger-bg: color-mix(in srgb, var(--danger) 10%, var(--bg-card));--success-strong: color-mix(in srgb, var(--success) 74%, var(--black));--success-soft: color-mix(in srgb, var(--success) 18%, var(--bg-card));--success-bg: color-mix(in srgb, var(--success) 10%, var(--bg-card));--regen-strong: color-mix(in srgb, var(--regen) 74%, var(--black));--regen-soft: color-mix(in srgb, var(--regen) 18%, var(--bg-card));--regen-bg: color-mix(in srgb, var(--regen) 10%, var(--bg-card));--neutral: #94a3b8;--neutral-body: #6b7280;--neutral-line: #d6cfc5;--neutral-rank: #cd7c3a;--consumption-best: #11b093;--consumption-good: #089733;--consumption-mid: #055e1f;--consumption-mid-text: #5b5b5b;--consumption-warning: #ec9c11;--consumption-danger: #e94b4b;--grade-s: #f59e0b;--grade-a: #15803d;--grade-b: #0891b2;--grade-c: #d97706;--grade-d: #ea580c;--grade-e: #dc2626;--success-premium-text: color-mix(in srgb, var(--consumption-best) 74%, var(--black));--tier-gem: #1493c8;--tier-mythic: #7c5cf0;--tier-gold: #d4930d;--tier-silver: #7d8fa5;--tier-bronze: #b0713c;--tier-gem-strong: color-mix(in srgb, var(--tier-gem) 70%, var(--black));--tier-gem-soft: color-mix(in srgb, var(--tier-gem) 18%, var(--bg-card));--tier-gem-bg: color-mix(in srgb, var(--tier-gem) 10%, var(--bg-card));--tier-mythic-strong: color-mix(in srgb, var(--tier-mythic) 70%, var(--black));--tier-mythic-soft: color-mix(in srgb, var(--tier-mythic) 18%, var(--bg-card));--tier-mythic-bg: color-mix(in srgb, var(--tier-mythic) 10%, var(--bg-card));--tier-gold-strong: color-mix(in srgb, var(--tier-gold) 70%, var(--black));--tier-gold-soft: color-mix(in srgb, var(--tier-gold) 18%, var(--bg-card));--tier-gold-bg: color-mix(in srgb, var(--tier-gold) 10%, var(--bg-card));--tier-silver-strong: color-mix(in srgb, var(--tier-silver) 70%, var(--black));--tier-silver-soft: color-mix(in srgb, var(--tier-silver) 18%, var(--bg-card));--tier-silver-bg: color-mix(in srgb, var(--tier-silver) 10%, var(--bg-card));--tier-bronze-strong: color-mix(in srgb, var(--tier-bronze) 70%, var(--black));--tier-bronze-soft: color-mix(in srgb, var(--tier-bronze) 18%, var(--bg-card));--tier-bronze-bg: color-mix(in srgb, var(--tier-bronze) 10%, var(--bg-card));--neutral-soft: color-mix(in srgb, var(--neutral) 30%, var(--bg-card));--history-success-bg: var(--success-soft);--history-success-text: var(--success);--history-idle-bg: color-mix(in srgb, var(--neutral) 8%, var(--bg-card));--history-idle-text: var(--text-tertiary);--rank-first: var(--warn);--rank-second: var(--neutral);--rank-third: var(--neutral-rank);--altitude-chip-bg: var(--warn-bg);--altitude-chip-text: var(--warn-strong);--altitude-gradient: var(--warn);--altitude-line: var(--warn);--recap-bg: #0d0d0d;--recap-panel-warm: linear-gradient(160deg, #110f0a 0%, #1a1510 100%);--recap-panel-green: linear-gradient(160deg, #061810 0%, #0b2418 100%);--recap-panel-teal: linear-gradient(160deg, #001a1a 0%, #00211f 100%);--recap-text: #f0ede8;--recap-blue: #60a5fa;--recap-aqua: #22d3ee;--recap-teal: #2dd4bf;--recap-green: #4ade80;--recap-violet: #a78bfa;--recap-pink: #f472b6;--recap-orange: #fb923c;--recap-yellow: #fbbf24;--recap-cream: #fde68a;--recap-surface: color-mix(in srgb, #ffffff 5%, transparent);--recap-surface-hover: color-mix(in srgb, #ffffff 9%, transparent);--recap-divider: color-mix(in srgb, #ffffff 7%, transparent);--recap-text-strong: color-mix(in srgb, #ffffff 92%, transparent);--recap-text-main: color-mix(in srgb, #ffffff 82%, transparent);--recap-text-muted: color-mix(in srgb, #ffffff 55%, transparent);--recap-text-soft: color-mix(in srgb, #ffffff 45%, transparent);--recap-text-faint: color-mix(in srgb, #ffffff 35%, transparent);--recap-text-faintest: color-mix(in srgb, #ffffff 25%, transparent);--recap-text-ghost: color-mix(in srgb, #ffffff 22%, transparent);--recap-text-dim: color-mix(in srgb, #ffffff 15%, transparent)}.annual-recap{--coast: var(--info);--success-deep: var(--success-strong);--mode-glide-bright: var(--glide)}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100dvh}#root{max-width:400px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select{font:inherit}.card{background:var(--bg-card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-warm)}.card-compact{background:var(--bg-card);border-radius:var(--radius-sm);padding:14px 16px;box-shadow:var(--shadow)}.trophy-room-hero{margin-bottom:4px}.trophy-room-hero__main{gap:12px}.trophy-room-hero__icon{width:40px;height:40px;border-radius:12px;background:var(--tier-gold-bg);color:var(--tier-gold)}.trophy-room-hero__title{font-size:1.05rem;font-weight:800;letter-spacing:-.02em}.trophy-room-hero__hint{color:var(--text-secondary);font-size:.72rem}.trophy-room-hero__tiers{gap:10px;margin-top:12px;flex-wrap:wrap}.trophy-room-hero__tier{gap:5px;padding:3px 9px;border-radius:99px;font-size:.68rem;font-weight:700}.trophy-room-hero__dot{width:7px;height:7px}.weekly-palmares__card{position:relative;z-index:1}.weekly-palmares__label{font-size:.82rem;font-weight:800;letter-spacing:-.01em}.weekly-palmares__medals{padding:10px}.weekly-palmares__stats{margin:-14px 3px 0;padding:23px 14px 11px;border-radius:0 0 var(--radius) var(--radius);background:var(--bg-muted);color:var(--text-tertiary);font-size:.66rem;font-weight:600;text-align:center}.month-palmares-card{margin-bottom:10px}.month-palmares-card__main{gap:10px}.month-palmares-card__copy{min-width:0}.month-palmares-card__title{font-size:.92rem;font-weight:800;letter-spacing:-.01em}.month-palmares-card__awards{margin-top:3px;color:var(--text-secondary);font-size:.7rem;font-weight:700;line-height:1.35}.month-palmares-card__medals{gap:8px;flex-shrink:0}.month-palmares-card__stats{margin-top:8px;color:var(--text-tertiary);font-size:.64rem;font-weight:600}.gem-showcase{padding:16px 14px 14px}.gem-showcase__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 6px}.gem-showcase__slot{gap:6px}.gem-showcase__button{padding:0}.gem-showcase__copy{gap:1px}.gem-showcase__value{font-size:.66rem;font-weight:800;letter-spacing:-.01em}.gem-showcase__name{color:var(--text-secondary);font-size:.58rem;font-weight:700;line-height:1.2;text-align:center}.gem-showcase__name--locked{color:var(--text-tertiary)}.distinction-collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.distinction-collection-tile{position:relative;gap:7px;padding:14px 6px 10px;border-radius:14px;background:var(--bg-card);box-shadow:var(--shadow-warm)}.distinction-collection-tile--locked{border:1px dashed var(--border);background:color-mix(in srgb,var(--bg-card) 55%,transparent);box-shadow:none}.distinction-collection-tile__count{position:absolute;top:6px;right:6px;padding:1px 6px;border-radius:99px;font-size:.62rem;font-weight:800}.distinction-collection-tile__title{color:var(--text-secondary);font-size:.62rem;font-weight:700;line-height:1.2;text-align:center}.distinction-collection-tile__title--locked{color:var(--text-tertiary)}.distinction-collection__weekly-title{gap:7px;margin:20px 4px 10px;color:var(--text-secondary);font-size:.72rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.trophy-sheet__intro{gap:12px;margin-bottom:14px}.trophy-sheet__description{margin:0;color:var(--text-secondary);font-size:.78rem;line-height:1.45}.trophy-sheet__entries{gap:10px}.trophy-sheet__period{gap:12px}.trophy-sheet__period-copy{gap:3px;min-width:0}.trophy-sheet__period-title{font-size:.78rem;font-weight:800}.trophy-sheet__period-stats{color:var(--text-tertiary);font-size:.64rem;font-weight:600}.trophy-sheet__more{margin:0;color:var(--text-tertiary);font-size:.7rem;text-align:center}.weekly-medals-card{padding:12px;background:var(--bg-muted);box-shadow:var(--shadow-inverted)}.weekly-medal-slots__grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.weekly-medal-slots__tile{min-width:0;display:flex;flex-direction:column;align-items:stretch;text-align:center}.weekly-medal-slots__grid--2x2{grid-template-columns:repeat(2,1fr);gap:10px}.weekly-medal-slots__card{min-width:0;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--white);box-shadow:var(--shadow-warm)}.weekly-medal-slots__card>.medal,.weekly-medal-slots__card>.distinction-placeholder{flex-shrink:0}.weekly-medal-slots__card-text{min-width:0;display:flex;flex-direction:column;gap:2px}.weekly-medal-slots__card-title{font-size:.72rem;font-weight:800;line-height:1.15;letter-spacing:-.01em}.weekly-medal-slots__card-title:first-letter{text-transform:uppercase}.weekly-medal-slots__card-state{font-size:.6rem;font-weight:700;line-height:1.2;color:var(--text-secondary)}.weekly-medal-slots__island{position:relative;min-width:0;aspect-ratio:1;padding:7px 5px 6px;border-radius:var(--radius-sm);background:var(--white);box-shadow:var(--shadow-warm);display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;transition:transform .18s ease,box-shadow .18s ease}.weekly-medal-slots__island>.medal,.weekly-medal-slots__island>.distinction-placeholder,.weekly-medal-slots__island>.weekly-medal-slots__medal-stack{position:relative;top:5px}.weekly-medal-slots__tile:active .weekly-medal-slots__island{transform:scale(.96);box-shadow:var(--shadow-inverted)}.weekly-medal-slots__tile:focus-visible .weekly-medal-slots__island{outline:2px solid var(--accent);outline-offset:2px}.weekly-medal-slots__label{width:100%;display:flex;align-items:center;justify-content:center;color:var(--text);font-size:.58rem;font-weight:800;line-height:1.1;white-space:nowrap}.weekly-medal-slots__chevron{position:absolute;top:5px;right:5px;color:var(--text-tertiary)}.distinction-placeholder{display:flex;align-items:center;justify-content:center;box-sizing:border-box;flex-shrink:0;color:var(--text-tertiary)}.distinction-placeholder--medal{border-radius:50%;border:2px dashed var(--border)}.distinction-placeholder--medal.distinction-placeholder--inverted,.distinction-placeholder--gem.distinction-placeholder--inverted .gem-medal__stone{border:0;background:var(--bg-muted);box-shadow:var(--shadow-inverted-strong);color:var(--text-secondary)}.distinction-placeholder__gem-lock{transform:rotate(-45deg);font-size:.8rem;font-weight:800}.weekly-medal-slots__medal-stack{position:relative;flex-shrink:0}.weekly-medal-slots__medal-stack>.distinction-placeholder{position:absolute;top:0;right:0;bottom:0;left:0}.weekly-medal-overlay-tile{flex-shrink:0;box-sizing:border-box;padding:0;border-radius:var(--radius-sm);background:var(--white)}.weekly-medal-overlay-tile>.weekly-medal-overlay-medal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);animation:weekly-medal-recenter-in .55s cubic-bezier(.3,1.1,.35,1) both;animation-delay:var(--weekly-medal-open-delay, 0ms)}.distinction-overlay--closing .weekly-medal-overlay-tile>.weekly-medal-overlay-medal{animation:weekly-medal-recenter-out .42s cubic-bezier(.5,.05,.7,.4) both;animation-delay:var(--weekly-medal-close-delay, 0ms)}@keyframes weekly-medal-recenter-in{0%{left:var(--weekly-medal-left);top:var(--weekly-medal-top);transform:translate(0)}}@keyframes weekly-medal-recenter-out{0%{left:50%;top:50%;transform:translate(-50%,-50%)}to{left:var(--weekly-medal-left);top:var(--weekly-medal-top);transform:translate(0)}}.row{display:flex;align-items:center}.row-between{display:flex;align-items:center;justify-content:space-between}.col{display:flex;flex-direction:column}.center{display:flex;align-items:center;justify-content:center}.grow{flex:1;min-width:0}.icon-box{display:flex;align-items:center;justify-content:center;flex-shrink:0}.page{flex:1;padding:0 16px;padding-bottom:calc(90px + env(safe-area-inset-bottom));padding-top:calc(6px + env(safe-area-inset-top))}.page-title{font-size:1.9rem;font-weight:800;letter-spacing:-.03em;margin:20px 0 4px;color:var(--text)}.stat-value{font-size:1.6rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}.stat-label{font-size:.78rem;color:var(--text-secondary);margin-top:3px;font-weight:500}.badge{display:inline-flex;align-items:center;gap:3px;font-size:.68rem;font-weight:600;padding:3px 8px;border-radius:100px;white-space:nowrap}.badge-ev{background:var(--ev-soft);color:var(--ev-strong)}.badge-ice{background:var(--thermal-soft);color:var(--thermal-strong)}.badge-info{background:var(--info-soft);color:var(--info-strong)}.badge-muted{background:var(--bg-muted);color:var(--text-secondary)}.badge-warm{background:var(--warn-soft);color:var(--warn-strong);border:1px solid var(--warn-soft)}.ev-bar{height:5px;border-radius:3px;background:var(--bg-muted);overflow:hidden}.ev-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ev),var(--glide));transition:width .5s ease}.grade{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;font-weight:800;font-size:1.05rem;color:var(--white);flex-shrink:0}.grade-A{background:var(--grade-a)}.grade-B{background:var(--grade-b)}.grade-C{background:var(--grade-c)}.grade-D{background:var(--grade-d)}.grade-E{background:var(--grade-e)}.tab-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;padding-inline:12px;padding-bottom:max(6px,env(safe-area-inset-bottom));z-index:9999;background:linear-gradient(to top,color-mix(in srgb,var(--bg) 90%,transparent) 50%,transparent);pointer-events:none}.tab-bar>*{pointer-events:auto}.spinner{width:38px;height:38px;border:3px solid var(--bg-muted);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 32px;gap:18px;background:var(--bg);animation:fadeIn .2s ease;opacity:1;transition:opacity .4s ease;will-change:opacity}.splash--out{opacity:0;pointer-events:none}.splash-card{width:88px;height:88px;border-radius:22px;background:var(--white);box-shadow:var(--shadow-warm);display:flex;align-items:center;justify-content:center}.splash-logo{width:56px;height:56px;border-radius:14px;display:block}.splash-brand{font-weight:800;font-size:1.5rem;letter-spacing:-.03em;color:var(--text)}.splash-progress{width:100%;max-width:280px;display:flex;flex-direction:column;gap:10px;margin-top:6px}.splash-bar{position:relative;width:100%;height:6px;border-radius:999px;background:var(--bg-muted);overflow:hidden}.splash-bar-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .35s cubic-bezier(.4,0,.2,1)}.splash-bar-sweep{position:absolute;top:0;left:0;height:100%;width:40%;border-radius:999px;background:var(--primary);animation:splashSweep 1.1s ease-in-out infinite}.splash-status{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.8rem}.splash-phase{color:var(--text-secondary);font-weight:600;letter-spacing:-.01em}.splash-phase--error{color:var(--danger)}.splash-count{color:var(--text-tertiary);font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0}@keyframes splashPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes splashSweep{0%{left:-40%}to{left:100%}}.fade-in{animation:fadeIn .1s ease;will-change:opacity}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;background:var(--bg);display:flex;justify-content:center;overflow:hidden}.onboarding-shell{width:min(100%,480px);min-height:100dvh;padding:calc(14px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden}.onboarding-progress{display:flex;justify-content:center;gap:7px;padding:8px 0 16px;flex-shrink:0}.onboarding-dot{width:7px;height:7px;border-radius:99px;transition:background .12s ease,opacity .12s ease}.onboarding-step{flex:1;overflow-y:auto;padding-bottom:16px;animation-duration:.12s}.onboarding-welcome{min-height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:12px;padding:24px 10px 56px}.onboarding-brand-mark{width:72px;height:72px;border-radius:24px;display:flex;align-items:center;justify-content:center;color:var(--primary);background:var(--primary-bg);box-shadow:var(--shadow-inverted);margin-bottom:8px}.onboarding-welcome-title{margin:4px 0 0;max-width:320px}.onboarding-welcome-copy{margin:0;max-width:310px;color:var(--text-secondary);font-size:.95rem;line-height:1.5}.onboarding-footer{display:grid;grid-template-columns:1fr auto;gap:10px;padding-top:10px;flex-shrink:0;background:var(--bg)}::view-transition-group(root){background-color:var(--bg)}::view-transition-group(kpiMorphCard),::view-transition-group(kpiMorphValue),::view-transition-group(kpiMorphLabel){animation-duration:.34s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-old(kpiMorphCard),::view-transition-new(kpiMorphCard){height:100%;animation-timing-function:ease}@media (prefers-reduced-motion: reduce){::view-transition-group(kpiMorphCard),::view-transition-group(kpiMorphValue),::view-transition-group(kpiMorphLabel),::view-transition-old(kpiMorphCard),::view-transition-new(kpiMorphCard){animation:none!important}}.trip-detail-page.is-fade-out{opacity:0}.trip-detail-page.is-fade-in{animation:pageFadeIn .12s ease forwards;will-change:opacity}.trip-list-trips.is-fade-out{opacity:0}.trip-list-trips.is-fade-in{animation:pageFadeIn .1s ease forwards;will-change:opacity}@keyframes pageFadeIn{0%{opacity:0}to{opacity:1}}@keyframes recapReveal{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(100deg,var(--bg-muted) 30%,color-mix(in srgb,var(--bg-muted) 60%,var(--bg-card)) 50%,var(--bg-muted) 70%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes pillarWave{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes veinFlow{to{stroke-dashoffset:-22}}@keyframes savingsBurst{0%{transform:translate(0) scale(.25);opacity:0}16%{opacity:1}to{transform:translate(var(--bx),var(--by)) scale(1);opacity:0}}@keyframes savingsCorePop{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}@keyframes savingsRingPop{0%{transform:scale(1)}45%{transform:scale(1.07)}to{transform:scale(1)}}.trip-card{display:flex;align-items:center;gap:12px;padding:13px 14px;background:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s;text-align:left;width:100%}.trip-card:active{transform:scale(.985);box-shadow:none}.input{width:100%;box-sizing:border-box;padding:10px 13px;border:1.5px solid var(--border);border-radius:10px;background:var(--bg-card);font-size:.9rem;font-family:inherit;transition:border-color .15s;outline:none;color:var(--text);-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=date].input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.input:focus{border-color:var(--primary)}.eyebrow,.form-label{font-size:.62rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary)}.form-label{display:block;margin-bottom:5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;border-radius:10px;font-weight:600;font-size:.8rem;transition:all .15s;color:var(--text);background:var(--bg-card);box-shadow:var(--shadow)}.btn.inverted{box-shadow:var(--shadow-inverted);background:var(--bg-muted);-webkit-tap-highlight-color:transparent}.btn.inverted.active,.btn.inverted[aria-pressed=true]{box-shadow:var(--shadow-inverted-strong);background:var(--bg);color:var(--text)}.btn.inverted:active{box-shadow:var(--shadow-inverted-strong);background:var(--bg)}.btn.inverted:focus-visible{box-shadow:var(--shadow-inverted-strong);background:var(--bg)}.btn.inverted:disabled{opacity:.6;box-shadow:none}.btn.small{padding:4px 10px;font-size:.7rem}.btn.icon{width:30px;height:30px;padding:0}.btn-primary{background:var(--primary);color:var(--white)}.btn-primary:hover{background:var(--primary-strong)}.btn-secondary{background:var(--bg-muted);color:var(--text);border:1px solid var(--border)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.wrapped-vertical{display:flex;flex-direction:column;gap:10px;padding:4px 0 12px}.wrapped-card-v{width:100%;border-radius:var(--radius);padding:16px 18px;color:var(--white);display:flex;align-items:center;gap:14px;text-align:left;transition:transform .12s}.wrapped-card-v:active{transform:scale(.985)}.wrapped-card-v .wc-icon{flex-shrink:0;opacity:.7}.wrapped-card-v .wc-value-v{font-size:1.3rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}.wrapped-card-v .wc-label-v{font-size:.78rem;font-weight:600;opacity:.85;line-height:1.3}.wrapped-card-v .wc-sub-v{font-size:.7rem;opacity:.6;margin-top:2px}.score-elt{display:flex;align-items:center;border-radius:6px;background-color:#f5f1e9}.score-elt--first{border-radius:6px 9px 6px 6px}.score-elt--last{border-radius:6px 6px 9px}.score-bg{display:flex;align-items:center;justify-content:flex-end;gap:3px;background-color:var(--border);padding:4px;border-radius:6px}.score-bar-segment{position:relative;overflow:hidden;width:7px;height:20px;border-radius:999px;background:#c2b7ac}.score-bar-segment-fill{position:absolute;left:0;bottom:0;width:100%;border-radius:0 0 999px 999px;transition:height .35s ease}.mode-split{height:14px;border-radius:7px;overflow:hidden;display:flex}.mode-split-ev{background:linear-gradient(90deg,var(--ev),var(--glide));transition:width .6s ease}.mode-split-ice{background:linear-gradient(90deg,var(--thermal),var(--thermal-soft));flex:1}.detail-hero{background:linear-gradient(160deg,var(--text) 0%,#292524 100%);border-radius:var(--radius);padding:22px;color:var(--white);margin-bottom:20px;position:relative;overflow:hidden}.detail-hero:before{content:"";position:absolute;top:-30px;right:-30px;width:140px;height:140px;background:color-mix(in srgb,var(--success) 15%,transparent);border-radius:50%}.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}@media (min-width: 481px){#root{border-left:1px solid var(--border);border-right:1px solid var(--border)}}@media (orientation: landscape) and (max-height: 500px){#root .dm-page{max-width:100%}.page-title{font-size:1.35rem;margin:6px 0 2px}.card{padding:10px 14px}.card-compact{padding:7px 12px}.dm-cards-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dm-card-col{display:flex;flex-direction:column}.dm-card-col .card{flex:1;margin-bottom:0!important}.dm-actions{flex-direction:row!important;margin-bottom:10px!important}.dm-actions .btn{flex:1;padding:8px 10px;font-size:.82rem}.dm-log-card{max-height:160px!important;margin-bottom:10px!important}.dm-history{gap:4px!important;margin-bottom:14px!important}.dm-history .card-compact{padding:6px 10px}.page>div:first-child{margin-bottom:10px!important;margin-top:0!important}}.medal{position:relative;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);flex-shrink:0;overflow:hidden}.medal--mythic{background:radial-gradient(circle at 30% 25%,#a78bfa 0%,#7c5cf0 52%,#4c2ea8 100%);box-shadow:0 2px 10px color-mix(in srgb,var(--tier-mythic) 45%,transparent),inset 0 1px 1px color-mix(in srgb,var(--white) 55%,transparent),inset 0 -2px 3px color-mix(in srgb,var(--black) 25%,transparent)}.medal--gold{background:radial-gradient(circle at 30% 25%,#f3c145 0%,#d4930d 55%,#9c6407 100%);box-shadow:0 2px 8px color-mix(in srgb,var(--tier-gold) 45%,transparent),inset 0 1px 1px color-mix(in srgb,var(--white) 55%,transparent),inset 0 -2px 3px color-mix(in srgb,var(--black) 22%,transparent)}.medal--silver{background:radial-gradient(circle at 30% 25%,#c4d0dd 0%,#8d9fb3 55%,#5d7086 100%);box-shadow:0 2px 6px color-mix(in srgb,var(--tier-silver) 40%,transparent),inset 0 1px 1px color-mix(in srgb,var(--white) 55%,transparent),inset 0 -2px 3px color-mix(in srgb,var(--black) 18%,transparent)}.medal--bronze{background:radial-gradient(circle at 30% 25%,#d29a63 0%,#b0713c 55%,#7e4d22 100%);box-shadow:0 2px 6px color-mix(in srgb,var(--tier-bronze) 40%,transparent),inset 0 1px 1px color-mix(in srgb,var(--white) 45%,transparent),inset 0 -2px 3px color-mix(in srgb,var(--black) 20%,transparent)}.weekly-medal-slots__sacre-anchor{position:absolute;left:50%;top:50%;z-index:4;transform:translate(-50%,-50%);pointer-events:none}.gem-medal{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gem-medal__stone{width:76%;height:76%;border-radius:22%;transform:rotate(45deg);display:flex;align-items:center;justify-content:center;color:var(--white);overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--gem-c) 48%,var(--white)) 0%,var(--gem-c) 52%,color-mix(in srgb,var(--gem-c) 58%,var(--black)) 100%);box-shadow:0 2px 8px color-mix(in srgb,var(--gem-c) 50%,transparent),inset 0 1px 1px color-mix(in srgb,var(--white) 60%,transparent),inset 0 -2px 3px color-mix(in srgb,var(--black) 25%,transparent)}.gem-medal--empty .gem-medal__stone{background:color-mix(in srgb,var(--text-tertiary) 10%,var(--bg-card));border:2px dashed color-mix(in srgb,var(--text-tertiary) 55%,transparent);box-shadow:none;color:var(--text-tertiary)}.gem-stamp{animation:gem-stamp .7s cubic-bezier(.22,1.2,.36,1) both}@keyframes gem-stamp{0%{opacity:0;transform:scale(3) rotate(-120deg)}55%{opacity:1;transform:scale(.88) rotate(6deg)}75%{transform:scale(1.08) rotate(-2deg)}to{transform:scale(1) rotate(0)}}.gem-stamp-flash{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;background:radial-gradient(circle,var(--white) 0%,transparent 62%);mix-blend-mode:difference;opacity:0;animation:gem-flash .55s ease-out;pointer-events:none}@keyframes gem-flash{0%{opacity:0;transform:scale(.4)}35%{opacity:.55}to{opacity:0;transform:scale(2)}}.gem-stamp-burst{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:22%;border:2px solid var(--white);mix-blend-mode:difference;opacity:0;transform:rotate(45deg);animation:gem-burst .6s ease-out;pointer-events:none}@keyframes gem-burst{0%{opacity:.55;transform:rotate(45deg) scale(.6)}to{opacity:0;transform:rotate(225deg) scale(2)}}.medal__shine{position:absolute;top:0;left:-100%;width:100%;height:100%;transform:skew(-20deg);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--white) 40%,transparent),transparent);animation:medal-shine 4.5s infinite;pointer-events:none}@keyframes medal-shine{0%{left:-100%}45%{left:100%}to{left:100%}}.distinction-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.distinction-dot--gem{border-radius:2px;transform:rotate(45deg) scale(.88);background:linear-gradient(135deg,#6fc3e8 0%,#1493c8 55%,#0b5f85 100%);box-shadow:0 0 4px color-mix(in srgb,var(--tier-gem) 65%,transparent)}.distinction-dot--mythic{background:radial-gradient(circle at 32% 28%,#a78bfa 0%,#7c5cf0 60%,#4c2ea8 100%);box-shadow:0 0 4px color-mix(in srgb,var(--tier-mythic) 60%,transparent)}.distinction-dot--gold{background:radial-gradient(circle at 32% 28%,#f3c145 0%,#d4930d 60%,#9c6407 100%);box-shadow:0 0 4px color-mix(in srgb,var(--tier-gold) 55%,transparent)}.distinction-dot--silver{background:radial-gradient(circle at 32% 28%,#c4d0dd 0%,#8d9fb3 60%,#5d7086 100%)}.distinction-dot--bronze{background:radial-gradient(circle at 32% 28%,#d29a63 0%,#b0713c 60%,#7e4d22 100%)}.trip-hero-medals{position:relative;height:30px;min-height:30px;margin-top:-18px;margin-left:auto;cursor:pointer}.trip-hero-medals__position{position:absolute;top:0;width:30px;height:30px;transition:right .36s cubic-bezier(.22,.8,.3,1);will-change:right}.medal-stamp{animation:medal-stamp .5s cubic-bezier(.22,1.2,.36,1) both}@keyframes medal-stamp{0%{opacity:0;transform:scale(2.6) rotate(-8deg)}50%{opacity:1;transform:scale(.92) rotate(2deg)}70%{transform:scale(1.06) rotate(-1deg)}to{transform:scale(1) rotate(0)}}.medal-stamp-wave{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--white) 78%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--black) 18%,transparent),0 2px 6px color-mix(in srgb,var(--black) 16%,transparent);opacity:0;animation:medal-wave .5s ease-out;pointer-events:none}@keyframes medal-wave{0%{opacity:.62;transform:scale(.7)}to{opacity:0;transform:scale(1.7)}}.hero-thud{animation:hero-thud .32s ease-out}@keyframes hero-thud{0%{transform:translate(0)}25%{transform:translateY(2px) rotate(.2deg)}55%{transform:translate(-1px,-1px) rotate(-.15deg)}to{transform:translate(0)}}.distinction-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--overlay-scrim-strong);display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:12px;padding:24px;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;animation:overlay-fade .22s ease-out both}.distinction-overlay__title{flex-shrink:0;width:100%;max-width:420px;color:var(--white);font-size:1.08rem;font-weight:800;letter-spacing:-.01em;text-align:left;text-shadow:0 2px 6px color-mix(in srgb,var(--black) 45%,transparent);margin-bottom:4px}@keyframes overlay-fade{0%{background:transparent}}.distinction-overlay--closing{animation:overlay-scrim-out .26s ease-in both;animation-delay:var(--scrim-out-delay, .3s)}@keyframes overlay-scrim-out{to{background:transparent}}.distinction-overlay__item{position:relative;flex-shrink:0;width:100%;max-width:420px;display:flex;align-items:center;gap:12px;padding:12px 16px 12px 12px}.distinction-overlay__item--flush-medal{padding:0 14px 0 0}.distinction-overlay__bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--shadow-warm);animation:distinction-bg-in .34s cubic-bezier(.25,1,.4,1) both;animation-delay:var(--d-in, 0ms)}.distinction-overlay--closing .distinction-overlay__bg{animation:distinction-bg-out .26s cubic-bezier(.55,0,.7,.4) both;animation-delay:var(--d-out, 0ms)}@keyframes distinction-bg-in{0%{opacity:0;clip-path:inset(4px calc(100% - 58px) 4px 6px round 19px)}30%{opacity:1}to{opacity:1;clip-path:inset(0 round 12px)}}@keyframes distinction-bg-out{0%{opacity:1;clip-path:inset(0 round 12px)}70%{opacity:1}to{opacity:0;clip-path:inset(4px calc(100% - 58px) 4px 6px round 19px)}}.distinction-overlay__text{opacity:0;animation:distinction-fade-in .32s ease-out both;animation-delay:var(--dt-in, 0ms)}.distinction-overlay--closing .distinction-overlay__text{animation:distinction-fade-out .16s ease-in both;animation-delay:var(--d-out, 0ms)}@keyframes distinction-fade-in{to{opacity:1}}@keyframes distinction-fade-out{0%{opacity:1}to{opacity:0}}
