*,*: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));--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)}.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}}::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}}
