*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.fixed{position:fixed}.min-h-screen{min-height:100vh}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.rounded{border-radius:.25rem}.pb-28{padding-bottom:7rem}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #141713;--muted: #73786f;--line: #e2ded4;--paper: #fbfaf6;--warm: #f0eee7;--green: #123c33;--income: #247158;--expense: #9b3f43;--outer: #dfe3df;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{overflow-x:hidden;background:var(--outer)}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-root{min-height:100vh;background:var(--outer);color:var(--ink)}.theme-light{color-scheme:light}.theme-dark{color-scheme:dark;--ink: #f3f0e8;--muted: #a7aca4;--line: #2c332d;--paper: #161d18;--warm: #0f1512;--green: #d8c8a2;--income: #86b99d;--expense: #d08a88;--outer: #070a08}.phone-shell{position:relative;min-height:100svh;width:min(100vw,430px);margin:0 auto;overflow-x:hidden;background:var(--warm);box-shadow:0 24px 70px #1e221d1f}.auth-page{min-height:100svh;padding:42px 22px 28px;background:linear-gradient(180deg,#ffffff7a,#fff0 260px),var(--warm)}.auth-kicker{margin:0;color:var(--green);font-size:17px;font-weight:800}.auth-page h1{margin:16px 0 0;color:var(--ink);font-size:44px;font-weight:820;line-height:1.08}.auth-copy{margin:18px 0 0;color:var(--muted);font-size:16px;line-height:1.7}.auth-card,.config-box{margin-top:28px;border:1px solid rgba(31,45,38,.08);border-radius:20px;background:var(--paper);padding:18px;box-shadow:0 18px 44px #21241e0e}.auth-card .field{display:block;margin-top:16px}.auth-error{margin:12px 0 0;color:var(--expense);font-size:14px;line-height:1.5}.config-box{display:grid;gap:10px}.config-box code{border-radius:14px;background:#1417130f;padding:13px 14px;color:var(--green);font-size:14px}.toast{position:fixed;top:14px;left:50%;z-index:80;display:flex;width:min(calc(100vw - 28px),402px);align-items:center;justify-content:space-between;gap:12px;transform:translate(-50%);border:1px solid var(--line);border-radius:16px;background:var(--paper);padding:12px 14px;box-shadow:0 18px 44px #21241e29}.toast span{color:var(--ink);font-size:14px;line-height:1.4}.toast button{flex:none;color:var(--green);font-size:14px;font-weight:760}.loading-strip{position:fixed;top:0;left:50%;z-index:75;width:min(100vw,430px);height:3px;overflow:hidden;transform:translate(-50%);background:transparent}.loading-strip span{display:block;width:42%;height:100%;border-radius:999px;background:var(--green);animation:loading-move 1.1s ease-in-out infinite}@keyframes loading-move{0%{transform:translate(-100%)}to{transform:translate(250%)}}.page{min-height:100svh;padding:0 18px 32px}.page-warm{background:linear-gradient(180deg,#ffffff6b 0,#fff0 220px),var(--warm)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:24px 0 20px}.mine-head{display:flex;align-items:center;gap:16px;padding:26px 0 22px}.avatar{display:grid;width:64px;height:64px;flex:none;place-items:center;border-radius:20px;background:var(--green);color:#fff;font-size:28px;font-weight:820}.mine-head h1{margin:0;color:var(--ink);font-size:30px;font-weight:820;line-height:1.1}.mine-head p{margin:6px 0 0;color:var(--muted);font-size:15px;font-weight:650}.mine-summary,.mine-vehicle{border:1px solid rgba(31,45,38,.08);border-radius:20px;background:var(--paper);padding:22px;box-shadow:0 18px 44px #21241e0e}.mine-summary p,.mine-vehicle p{margin:0;color:var(--muted);font-size:15px;font-weight:700}.mine-summary strong{display:block;margin-top:10px;color:var(--ink);font-size:44px;font-weight:820;line-height:1}.mine-summary span,.mine-vehicle span{display:block;margin-top:12px;color:var(--muted);font-size:15px;line-height:1.45}.mine-vehicle{margin-top:16px}.mine-vehicle h2{margin:8px 0 0;color:var(--ink);font-size:24px;font-weight:800}.topbar p{margin:0;color:var(--muted);font-size:14px;line-height:1.2}.topbar h1{margin:6px 0 0;color:var(--ink);font-size:30px;font-weight:760;line-height:1}.topbar>span{display:inline-flex;min-width:58px;min-height:42px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#ffffff6b;color:var(--green);font-size:15px;font-weight:700}.ledger-hero,.analysis-hero,.dashboard-panel,.score-card,.breakdown-panel,.chart-panel,.expense-panel,.simple-panel,.settings-panel{border:1px solid rgba(31,45,38,.08);border-radius:20px;background:var(--paper);box-shadow:0 18px 44px #21241e0e}.ledger-hero{padding:28px 22px 24px}.dashboard-panel{margin-top:16px;padding:22px}.dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dashboard-head p,.dashboard-main span,.dashboard-grid span,.settings-copy{margin:0;color:var(--muted);font-size:14px;font-weight:650}.dashboard-head h2{margin:6px 0 0;color:var(--ink);font-size:24px;font-weight:800;line-height:1.1}.mini-tabs{display:grid;flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;border:1px solid var(--line);border-radius:14px;background:#14171309;padding:3px}.mini-tabs button{min-width:42px;min-height:32px;border-radius:11px;color:var(--muted);font-size:13px;font-weight:730}.mini-tabs button.active{background:var(--green);color:#fff}.dashboard-main{margin-top:20px}.dashboard-main strong{display:block;margin-top:6px;color:var(--ink);font-size:42px;font-weight:820;line-height:1;word-break:break-word}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;margin-top:20px;border:1px solid rgba(20,23,19,.08);border-radius:18px;background:#14171314}.dashboard-grid>div{min-width:0;background:#ffffff7a;padding:14px 12px}.dashboard-grid b{display:block;overflow-wrap:anywhere;margin-top:7px;color:var(--ink);font-size:19px;font-weight:800;line-height:1.1}.eyebrow,.analysis-hero p,.score-card p{margin:0;color:var(--muted);font-size:15px;font-weight:650}.money-hero{margin-top:10px;color:var(--ink);font-size:clamp(52px,15.5vw,64px);font-weight:790;line-height:.98;letter-spacing:0;word-break:break-word}.money-pairs,.today-sub{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;font-size:15px;font-weight:650}.income-text{color:var(--income)}.expense-text{color:var(--expense)}.delta{margin:18px 0 0;font-size:15px;font-weight:700}.positive{color:var(--income)}.negative{color:var(--expense)}.today-focus{margin-top:16px;padding:22px;border-bottom:1px solid var(--line);background:#ffffff57}.today-focus p{margin:0;color:var(--muted);font-size:16px;font-weight:650}.today-focus strong{display:block;margin-top:8px;color:var(--ink);font-size:42px;font-weight:780;line-height:1}.drive-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding:20px 0;border-top:1px solid rgba(20,23,19,.08);border-bottom:1px solid rgba(20,23,19,.08)}.drive-strip h2,.section-title h2,.chart-panel h2,.expense-panel h2,.simple-panel h2,.settings-panel h2,.breakdown-panel h2{margin:0;color:var(--ink);font-size:21px;font-weight:760;line-height:1.15}.drive-strip p{margin:5px 0 0;color:var(--muted);font-size:14px}.drive-strip button{min-width:104px;min-height:48px;border:1px solid var(--line);border-radius:999px;background:#f7f5ef;color:var(--muted);font-size:16px;font-weight:720}.drive-strip button.active{border-color:#123c3338;background:var(--green);color:#fff}.odometer-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;margin-top:16px;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 16px 36px #1417130a}.odometer-panel h2{margin:0;color:var(--ink);font-size:21px;font-weight:760}.odometer-panel p{margin:6px 0 0;color:var(--muted);font-size:14px}.odometer-panel label{grid-column:1 / -1;display:flex;min-height:58px;align-items:center;gap:8px;border:1px solid var(--line);border-radius:17px;background:#f7f5ef;padding:0 14px}.odometer-panel input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:25px;font-weight:800}.odometer-panel label span{color:var(--muted);font-size:15px;font-weight:700}.odometer-result{display:flex;min-height:48px;flex-direction:column;justify-content:center}.odometer-result span{color:var(--muted);font-size:13px;font-weight:650}.odometer-result strong{margin-top:3px;color:var(--green);font-size:24px;font-weight:820;line-height:1}.odometer-saved-view{grid-column:1 / -1;display:grid;gap:6px;border:1px solid var(--line);border-radius:17px;background:#123c3312;padding:14px}.odometer-saved-view span{color:var(--muted);font-size:13px;font-weight:650}.odometer-saved-view strong{color:var(--ink);font-size:26px;font-weight:820;line-height:1.1}.odometer-warning{grid-column:1 / -1;margin:-4px 0 0;color:var(--expense);font-size:14px;font-weight:680}.odometer-success{grid-column:1 / -1;margin:-4px 0 0;color:var(--income);font-size:14px;font-weight:720}.odometer-panel button{min-width:116px;min-height:48px;align-self:end;border-radius:16px;background:var(--green);color:#fff;font-size:16px;font-weight:760}.odometer-panel button:disabled{background:#d8d3c9;color:#9c968c}.ledger-list{margin-top:24px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px}.section-title>span{color:var(--muted);font-size:13px;white-space:nowrap}.bill-row{display:flex;min-height:78px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(20,23,19,.08);padding:14px 0}.bill-row p{margin:0;font-size:22px;font-weight:770;line-height:1.05}.bill-row h3{margin:6px 0 0;color:var(--ink);font-size:16px;font-weight:660}.bill-row span{display:block;margin-top:5px;color:var(--muted);font-size:13px}.row-actions{display:flex;flex:none;gap:6px}.icon-btn{display:inline-flex;min-width:38px;min-height:38px;align-items:center;justify-content:center;border-radius:12px;background:#1417130e;color:var(--green);transition:transform .16s ease,background-color .16s ease}.icon-btn:disabled{cursor:not-allowed;opacity:.32}.icon-btn:not(:disabled):active{transform:scale(.96)}.icon-btn.danger{color:var(--expense)}.empty-state{display:flex;min-height:390px;flex-direction:column;align-items:flex-start;justify-content:center;padding:16px 4px}.empty-state h2{margin:0;color:var(--ink);font-size:42px;font-weight:800;line-height:1.08}.empty-state p{max-width:290px;margin:18px 0 0;color:var(--muted);font-size:17px;line-height:1.7}.empty-state button,.empty-mini button,.primary-btn{min-height:54px;border-radius:16px;background:var(--green);color:#fff;font-size:17px;font-weight:760;box-shadow:0 14px 32px #123c332e}.empty-state button{margin-top:28px;padding:0 24px}.empty-mini{border:1px dashed rgba(20,23,19,.16);border-radius:18px;padding:26px 18px;text-align:center}.empty-mini p{margin:0;color:var(--muted);font-size:16px}.empty-mini button{margin-top:18px;min-height:48px;padding:0 20px;font-size:16px}.period-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:18px;border:1px solid var(--line);border-radius:18px;background:#ffffff6b;padding:4px}.period-tabs button{min-height:40px;border-radius:14px;color:var(--muted);font-size:14px;font-weight:680}.period-tabs button.active{background:var(--green);color:#fff}.analysis-hero{padding:26px 22px 24px}.analysis-hero span{display:block;margin-top:10px;color:var(--muted);font-size:16px;font-weight:650}.analysis-hero strong{display:inline-flex;margin-top:18px;min-height:36px;align-items:center;border-radius:999px;background:#123c3314;padding:0 14px;font-size:16px}.score-card,.breakdown-panel,.chart-panel,.expense-panel,.simple-panel,.settings-panel{margin-top:16px;padding:22px}.score-card h2{margin:8px 0 22px;color:var(--ink);font-size:28px;font-weight:800;line-height:1.1}.score-line,.score-money,.simple-row{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid rgba(20,23,19,.08);padding:12px 0}.score-line span,.score-money span,.simple-row span{color:var(--muted);font-size:16px}.score-line strong{color:var(--ink);font-size:24px;font-weight:780}.score-money b{color:var(--ink);font-size:36px;font-weight:800;line-height:1}.trend-chart{display:block;width:100%;height:174px;touch-action:none}.chart-type-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:14px;border:1px solid var(--line);border-radius:15px;background:#14171309;padding:4px}.chart-type-tabs button{min-height:36px;border-radius:12px;color:var(--muted);font-size:14px;font-weight:740}.chart-type-tabs button.active{background:var(--green);color:#fff}.mileage-panel{overflow:hidden}.mileage-bars{display:grid;height:138px;grid-auto-flow:column;grid-auto-columns:minmax(9px,1fr);align-items:end;gap:5px;margin-top:18px;overflow-x:auto;padding-bottom:2px}.mileage-bars button{display:flex;min-width:9px;height:122px;align-items:flex-end;border-radius:999px;background:#1417130e;padding:0}.mileage-bars i{width:100%;border-radius:999px;background:var(--green);opacity:.74}.mileage-bars button.active i{opacity:1}.mileage-detail{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;border-top:1px solid rgba(20,23,19,.08);padding-top:12px}.mileage-detail span{color:var(--muted);font-size:14px;font-weight:650}.mileage-detail strong{color:var(--ink);font-size:22px;font-weight:820}.trend-legend{display:flex;gap:8px;margin-top:14px}.trend-legend button{display:inline-flex;min-height:34px;align-items:center;gap:7px;border-radius:999px;padding:0 11px;color:var(--muted);font-size:13px;font-weight:700}.trend-legend button.active{background:#123c3312;color:var(--ink)}.trend-legend i{width:8px;height:8px;border-radius:999px}.series-income{stroke:var(--income);fill:var(--income)}.series-expense{stroke:var(--expense);fill:var(--expense)}.series-net{stroke:var(--green);fill:var(--green)}.trend-legend .series-income i{background:var(--income)}.trend-legend .series-expense i{background:var(--expense)}.trend-legend .series-net i{background:var(--green)}.performance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:16px;overflow:hidden;border:1px solid rgba(20,23,19,.08);border-radius:20px;background:#14171314}.metric-card{min-height:118px;background:var(--paper);padding:20px 16px}.metric-card strong{display:block;color:var(--ink);font-size:28px;font-weight:800;line-height:1;word-break:break-word}.metric-card p{margin:12px 0 0;color:var(--muted);font-size:15px;font-weight:650}.metric-card span{display:block;margin-top:5px;color:#a19b90;font-size:12px}.expense-body{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:center;margin-top:18px}.donut-wrap{position:relative;width:150px;height:150px}.donut{width:150px;height:150px;transform:rotate(-90deg)}.donut-wrap>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 18px;text-align:center}.donut-wrap strong{color:var(--ink);font-size:22px;font-weight:800;line-height:1}.donut-wrap span{margin-top:7px;color:var(--muted);font-size:13px}.expense-list{min-width:0}.expense-list button{display:grid;width:100%;min-height:38px;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:9px;border-radius:12px;padding:0 8px;text-align:left}.expense-list button.active{background:#123c3311}.expense-list i{width:8px;height:8px;border-radius:999px}.expense-list span,.expense-list b,.expense-list p{overflow:hidden;color:var(--ink);font-size:14px;font-style:normal;font-weight:680;text-overflow:ellipsis;white-space:nowrap}.expense-list p{margin:12px 0 0;color:var(--muted);font-size:13px;font-weight:600;white-space:normal}.quiet{margin:16px 0 0;color:var(--muted);font-size:15px}.simple-panel h2,.settings-panel h2{margin-bottom:10px}.simple-row.featured strong{font-size:24px}.simple-row strong{flex:none;color:var(--ink);font-size:17px;font-weight:760}.breakdown-panel{background:var(--green);color:#fff}.breakdown-panel h2{color:#fff}.breakdown-panel .simple-row,.breakdown-panel .real-net-row{border-color:#ffffff29}.breakdown-panel .simple-row span,.breakdown-panel p{color:#ffffffb8}.breakdown-panel .simple-row strong{color:#fff}.breakdown-panel .simple-row .income-text{color:#c8f0dd}.breakdown-panel .simple-row .expense-text{color:#f0c8c8}.real-net-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-top:1px solid rgba(20,23,19,.08);padding:18px 0 8px}.real-net-row span{color:#ffffffb8;font-size:16px}.real-net-row b{color:#fff;font-size:38px;font-weight:820;line-height:1}.breakdown-panel p{margin:12px 0 0;font-size:14px;line-height:1.6}.estimate-note{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.65}.insight{margin:10px 0 0;border-top:1px solid rgba(20,23,19,.08);padding-top:14px;color:var(--ink);font-size:16px;line-height:1.65}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:16px}.calendar-grid>div{display:flex;aspect-ratio:.88;min-width:0;flex-direction:column;justify-content:space-between;border-radius:12px;background:#f0eee7;padding:7px 3px 6px}.calendar-grid>div.active{background:#123c331c}.calendar-grid span{color:var(--muted);font-size:11px}.calendar-grid b{color:var(--green);font-size:clamp(8px,2.45vw,10.5px);font-weight:760;line-height:1.05;overflow-wrap:anywhere;text-align:center}.sheet-mask{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#1417136b;padding:0 0 var(--safe-bottom)}.record-sheet{display:flex;width:min(100vw,430px);max-height:min(92svh,780px);overflow:hidden;flex-direction:column;border-radius:24px 24px 0 0;background:var(--paper);box-shadow:0 -18px 48px #1417132e}.record-scroll{min-height:0;overflow-y:auto;padding:22px 18px 14px}.record-footer{flex:none;border-top:1px solid rgba(20,23,19,.08);background:var(--paper);padding:12px 18px calc(14px + var(--safe-bottom))}.record-footer .primary-btn{margin-top:0}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.sheet-head h2{margin:0;color:var(--ink);font-size:30px;font-weight:800;line-height:1.1}.record-amount{display:flex;min-height:124px;align-items:center;gap:10px;margin-top:18px;border-bottom:2px solid var(--green)}.record-amount span{color:var(--green);font-size:36px;font-weight:760}.record-amount input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:clamp(64px,22vw,84px);font-weight:800;line-height:1}.type-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px}.type-switch button,.category-grid button,.more-toggle{min-height:52px;border:1px solid var(--line);border-radius:16px;background:#f4f1ea;color:var(--ink);font-size:17px;font-weight:740}.type-switch button.active{border-color:var(--green);background:var(--green);color:#fff}.record-section-label{margin:22px 0 10px;color:var(--muted);font-size:15px;font-weight:700}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.category-grid button{min-height:54px;padding:0 6px;font-size:16px}.category-grid button.active{border-color:#123c333d;background:#123c331a;color:var(--green)}.more-toggle{width:100%;margin-top:14px;background:transparent;color:var(--muted);font-size:15px;box-shadow:none}.more-category{color:var(--green)!important}.platform-grid,.quick-date{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.platform-grid button,.quick-date button{min-height:52px;border:1px solid var(--line);border-radius:16px;background:#f4f1ea;color:var(--ink);font-size:16px;font-weight:740}.platform-grid button.active,.quick-date button.active,.quick-date button:active{border-color:#123c333d;background:#123c331a;color:var(--green)}.record-more{display:grid;gap:12px;margin-top:14px}.field span{display:block;margin-bottom:7px;color:var(--muted);font-size:14px;font-weight:650}.field input,.category-add input{min-height:50px;width:100%;border:1px solid var(--line);border-radius:16px;outline:0;background:#f7f5ef;padding:0 14px;color:var(--ink);font-size:16px}.field input::-moz-placeholder,.category-add input::-moz-placeholder{color:#aaa397}.field input::placeholder,.category-add input::placeholder{color:#aaa397}.primary-btn{width:100%;margin-top:16px}.primary-btn:disabled{cursor:not-allowed;background:#d8d3c9;color:#9c968c;box-shadow:none}.subpage-head{display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;padding:24px 0 20px}.subpage-head button{min-height:40px;border:1px solid var(--line);border-radius:999px;color:var(--green);font-size:15px;font-weight:740}.subpage-head h1{margin:0;color:var(--ink);font-size:26px;font-weight:820;text-align:center}.settings-hub{display:grid;gap:4px}.settings-row{display:grid;width:100%;min-height:62px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;border-top:1px solid rgba(20,23,19,.08);text-align:left}.settings-row span{color:var(--ink);font-size:17px;font-weight:760}.settings-row b{overflow:hidden;max-width:170px;color:var(--muted);font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.settings-copy{margin-top:10px;line-height:1.6}.settings-platforms{margin-top:16px}.category-manager{margin-top:16px;border-top:1px solid rgba(20,23,19,.08);padding-top:18px}.category-add{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:10px;margin-top:14px}.category-add button{display:grid;min-height:50px;place-items:center;border-radius:16px;background:var(--green);color:#fff;font-size:15px;font-weight:760}.category-list{display:grid;gap:8px;margin-top:14px}.category-row{display:grid;min-height:70px;grid-template-columns:minmax(0,1fr);gap:10px;border-top:1px solid rgba(20,23,19,.08);padding:12px 0}.category-row span{min-width:0;overflow:hidden;color:var(--ink);font-size:17px;font-weight:670;text-overflow:ellipsis;white-space:nowrap}.category-row>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.category-row button{min-height:38px;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:13px;font-weight:720}.category-row button.danger{color:var(--expense)}.category-row button:disabled{opacity:.34}.category-save{margin-top:18px}.save-note{margin:10px 0 0;color:var(--income);font-size:14px;font-weight:720}.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.data-grid button{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:8px;border-radius:16px;background:#f4f1ea;color:var(--ink);font-size:15px;font-weight:700}.data-grid button.danger{color:var(--expense)}.theme-switch{display:grid;width:100%;min-height:64px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:14px;border:1px solid var(--line);border-radius:18px;background:#f4f1ea;padding:0 14px;text-align:left}.theme-chooser{display:grid;gap:10px;margin-top:14px}.theme-chooser button{display:grid;min-height:58px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;border:1px solid var(--line);border-radius:18px;background:#f4f1ea;padding:0 14px;text-align:left}.theme-chooser button.active{border-color:#123c3333;background:#123c3314}.theme-chooser span{display:grid;width:38px;height:38px;place-items:center;border-radius:14px;background:var(--green);color:#fff}.theme-chooser b{color:var(--ink);font-size:17px;font-weight:760}.vehicle-settings-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.vehicle-settings-head p{margin:7px 0 0;color:var(--muted);font-size:15px;font-weight:680}.vehicle-settings-head button{min-width:82px;min-height:46px;border:1px solid var(--line);border-radius:999px;background:#f4f1ea;color:var(--muted);font-size:16px;font-weight:760}.vehicle-settings-head button.active{border-color:var(--green);background:var(--green);color:#fff}.vehicle-summary{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;border-top:1px solid rgba(20,23,19,.08);border-bottom:1px solid rgba(20,23,19,.08)}.vehicle-summary span{color:var(--muted);font-size:15px;font-weight:650}.vehicle-summary strong{color:var(--ink);font-size:22px;font-weight:800;white-space:nowrap}.vehicle-expand{width:100%;min-height:48px;margin-top:14px;border:1px solid var(--line);border-radius:16px;background:transparent;color:var(--green);font-size:15px;font-weight:760}.vehicle-form{display:grid;gap:12px;margin-top:14px}.type-switch.compact{margin-top:0}.vehicle-field span{display:block;margin-bottom:7px;color:var(--muted);font-size:14px;font-weight:650}.vehicle-field div{display:flex;min-height:50px;align-items:center;gap:8px;border:1px solid var(--line);border-radius:16px;background:#f7f5ef;padding:0 14px}.vehicle-field input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:17px;font-weight:720}.vehicle-field b{flex:none;color:var(--muted);font-size:14px}.vehicle-intro{position:fixed;inset:0;z-index:70;display:flex;align-items:flex-end;justify-content:center;background:#1417136b;padding:18px 18px calc(18px + var(--safe-bottom))}.vehicle-intro>div{width:min(100%,394px);border-radius:22px;background:var(--paper);padding:24px 22px;box-shadow:0 20px 48px #14171333}.vehicle-intro h3{margin:0;color:var(--ink);font-size:28px;font-weight:800;line-height:1.18}.vehicle-intro p{margin:14px 0 0;color:var(--muted);font-size:16px;line-height:1.65}.vehicle-intro button{width:100%;min-height:54px;margin-top:22px;border-radius:16px;background:var(--green);color:#fff;font-size:17px;font-weight:760}.theme-switch span{display:grid;width:40px;height:40px;place-items:center;border-radius:14px;background:var(--green);color:#fff}.theme-switch b{overflow:hidden;color:var(--ink);font-size:17px;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.theme-switch em{color:var(--muted);font-size:13px;font-style:normal;font-weight:650}.bottom-nav{position:fixed;right:50%;bottom:0;z-index:40;display:grid;width:min(100vw,430px);grid-template-columns:1fr 1fr 1.08fr 1fr;gap:4px;transform:translate(50%);border-top:1px solid rgba(20,23,19,.08);background:#fbfaf6f0;padding:8px 10px calc(8px + var(--safe-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.bottom-nav button{display:flex;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:16px;color:#8b897f;font-size:12px;font-weight:700}.bottom-nav button.active{color:var(--green)}.bottom-nav .record-fab{position:relative;bottom:12px;min-height:66px;border:1px solid rgba(18,60,51,.22);background:var(--green);color:#fff;box-shadow:0 16px 34px #123c333d}@media(max-width:374px){.page,.record-sheet{padding-inline:14px}.expense-body{grid-template-columns:132px minmax(0,1fr);gap:12px}.donut,.donut-wrap{width:132px;height:132px}.calendar-grid{gap:4px}}.theme-dark .page-warm{background:linear-gradient(180deg,#d8c8a20e 0,#d8c8a200 240px),var(--warm)}.theme-dark .phone-shell{box-shadow:0 26px 70px #00000061}.theme-dark .topbar>span,.theme-dark .period-tabs,.theme-dark .today-focus{background:#ffffff09}.theme-dark .auth-page{background:linear-gradient(180deg,#d8c8a20e,#d8c8a200 260px),var(--warm)}.theme-dark .ledger-hero,.theme-dark .analysis-hero,.theme-dark .dashboard-panel,.theme-dark .score-card,.theme-dark .breakdown-panel,.theme-dark .chart-panel,.theme-dark .expense-panel,.theme-dark .simple-panel,.theme-dark .settings-panel{border-color:#d8c8a217;box-shadow:0 18px 44px #0003}.theme-dark .auth-card,.theme-dark .config-box,.theme-dark .toast,.theme-dark .mine-summary,.theme-dark .mine-vehicle{border-color:#d8c8a217;background:var(--paper);box-shadow:0 18px 44px #0003}.theme-dark .drive-strip,.theme-dark .bill-row,.theme-dark .settings-row,.theme-dark .category-manager,.theme-dark .mileage-detail,.theme-dark .score-line,.theme-dark .score-money,.theme-dark .simple-row,.theme-dark .vehicle-summary,.theme-dark .category-row,.theme-dark .insight{border-color:#d8c8a217}.theme-dark .drive-strip button,.theme-dark .type-switch button,.theme-dark .category-grid button,.theme-dark .platform-grid button,.theme-dark .quick-date button,.theme-dark .chart-type-tabs,.theme-dark .chart-type-tabs button,.theme-dark .subpage-head button,.theme-dark .more-toggle,.theme-dark .field input,.theme-dark .category-add input,.theme-dark .data-grid button,.theme-dark .theme-switch,.theme-dark .theme-chooser button,.theme-dark .vehicle-settings-head button,.theme-dark .vehicle-field div,.theme-dark .odometer-panel label,.theme-dark .odometer-saved-view,.theme-dark .calendar-grid>div,.theme-dark .config-box code,.theme-dark .icon-btn{background:#101611;border-color:var(--line)}.theme-dark .dashboard-grid{border-color:#d8c8a217;background:#d8c8a217}.theme-dark .dashboard-grid>div,.theme-dark .mileage-bars button{background:#101611}.theme-dark .odometer-panel{border-color:#d8c8a217;background:var(--paper);box-shadow:0 18px 44px #0003}.theme-dark .drive-strip button.active,.theme-dark .period-tabs button.active,.theme-dark .type-switch button.active,.theme-dark .mini-tabs button.active,.theme-dark .chart-type-tabs button.active,.theme-dark .vehicle-settings-head button.active,.theme-dark .category-add button,.theme-dark .bottom-nav .record-fab,.theme-dark .vehicle-intro button,.theme-dark .odometer-panel button{background:#d8c8a2;color:#101611}.theme-dark .odometer-panel button:disabled{background:#2a2d27;color:#777b72}.theme-dark .category-grid button.active,.theme-dark .platform-grid button.active,.theme-dark .quick-date button.active,.theme-dark .theme-chooser button.active,.theme-dark .trend-legend button.active,.theme-dark .expense-list button.active,.theme-dark .analysis-hero strong,.theme-dark .calendar-grid>div.active{background:#d8c8a21f;color:var(--green)}.theme-dark .empty-state button,.theme-dark .empty-mini button,.theme-dark .primary-btn{background:#d8c8a2;color:#101611;box-shadow:0 14px 32px #00000042}.theme-dark .primary-btn:disabled{background:#2a2d27;color:#777b72}.theme-dark .bottom-nav{border-color:#d8c8a217;background:#0f1512f0}.theme-dark .bottom-nav button{color:#7f867c}.theme-dark .bottom-nav button.active{color:var(--green)}.theme-dark .donut-wrap circle:first-child{stroke:#252b25}.theme-dark .theme-switch span{background:#d8c8a224;color:var(--green)}.theme-dark .theme-chooser span,.theme-dark .avatar,.theme-dark .breakdown-panel{background:#d8c8a2;color:#101611}.theme-dark .breakdown-panel h2,.theme-dark .breakdown-panel .simple-row strong,.theme-dark .breakdown-panel .real-net-row b{color:#101611}.theme-dark .breakdown-panel .simple-row span,.theme-dark .breakdown-panel .real-net-row span,.theme-dark .breakdown-panel p{color:#101611b8}.theme-dark .breakdown-panel .simple-row,.theme-dark .breakdown-panel .real-net-row{border-color:#10161124}.theme-dark .breakdown-panel .simple-row .income-text{color:#235240}.theme-dark .breakdown-panel .simple-row .expense-text{color:#874244}.theme-dark .vehicle-intro>div{background:var(--paper)}
