:root{font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif;color:#102549;background:#eeece7;font-synthesis:none;--paper: #fbfaf7;--paper-deep: #f5f2ec;--ink: #102549;--muted: #8991a0;--line: #e4e4e2;--accent: #f45118;--accent-dark: #d9400e;--danger: #b72e2e}*{box-sizing:border-box}html{background:#eeece7}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid rgba(244,81,24,.25);outline-offset:2px}button:disabled{opacity:.62;cursor:wait}.app-shell{min-height:100vh}.ledger{width:min(100%,480px);min-height:100vh;margin:0 auto;overflow:hidden;background:var(--paper);box-shadow:0 0 50px #10254914}.hero{position:relative;min-height:112px;padding:20px 20px 16px;display:flex;align-items:flex-start;justify-content:space-between;overflow:hidden;border-bottom:1px solid var(--line)}.hero h1{position:relative;z-index:1;margin:0;font-family:Songti SC,STSong,"Noto Serif CJK SC",serif;font-size:clamp(44px,12vw,61px);line-height:.98;letter-spacing:-.06em;font-weight:800}.hero p{position:relative;z-index:1;margin:8px 0 0;color:var(--muted);letter-spacing:.12em;font-family:Songti SC,STSong,serif;font-size:14px}.route-icon{position:absolute;right:-37px;bottom:-44px;color:#e9e9e7;transform:rotate(-8deg)}.hero-actions{position:relative;z-index:1;display:grid;justify-items:end;gap:5px}.settings-button{min-height:44px;display:flex;align-items:center;gap:5px;border:0;background:transparent;padding:2px;cursor:pointer;font-size:14px}.logout-button{width:34px;height:34px;border:1px solid #dadbdc;border-radius:50%;background:#ffffff80;display:grid;place-items:center;cursor:pointer;color:#6e7787}.date-section{position:relative;padding:13px 20px 14px;display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 75px;gap:6px;align-items:end;border-bottom:1px solid var(--line)}.date-field{min-width:0;display:grid;gap:8px}.date-field>span{color:#6f7888;font-size:13px;letter-spacing:.08em}.date-field>div{min-height:44px;display:flex;align-items:center;gap:7px;border:1px solid #cfd2d7;border-radius:7px;padding:0 8px;background:#ffffff8c}.date-field svg{flex:0 0 auto}.date-field input{min-width:0;width:100%;border:0;outline:0;color:var(--ink);background:transparent;font-size:13px}.date-field input::-webkit-calendar-picker-indicator{width:17px;height:17px;margin:0;padding:0}.date-connector{padding-bottom:12px;text-align:center;font-family:serif;font-size:17px}.calculate-button{grid-column:4;grid-row:1;min-height:44px;border:0;background:transparent;color:var(--accent);display:flex;align-items:center;justify-content:flex-end;gap:4px;cursor:pointer;font-size:12px;white-space:nowrap}.calculate-button svg{width:17px}.range-error{grid-column:1 / -1;margin:-4px 0 0;color:var(--danger);font-size:12px}.summary{scroll-margin-top:10px;min-height:88px;padding:13px 20px;display:grid;grid-template-columns:1.3fr 1px .85fr 1px 1.15fr;gap:12px;align-items:center;border-bottom:1px solid var(--line)}.summary>div{display:grid;gap:7px;text-align:center}.summary span{font-size:13px}.summary strong{font-family:Songti SC,STSong,serif;font-size:26px;font-weight:600;white-space:nowrap}.summary>i{display:block;height:43px;background:var(--line)}.summary .trip-stat strong{font-family:inherit;font-size:17px}.summary .trip-stat b{color:var(--accent);font-family:Songti SC,serif;font-size:27px}.summary .receivable-stat strong{color:var(--accent)}.section{padding:13px 20px 15px;border-bottom:1px solid var(--line)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-header h2{margin:0;display:flex;align-items:center;gap:8px;font-family:Songti SC,STSong,serif;font-size:18px}.section-header h2>span{width:7px;height:7px;border-radius:50%;background:var(--accent)}.section-header p{margin:0;color:var(--muted);font-size:13px}.member-list{padding-left:8px}.member-row{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;min-height:57px}.avatar{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:Songti SC,serif;font-size:18px}.avatar.sand{background:#f4ddc3;color:#644121}.avatar.blue{background:#cbddeb;color:#183d64}.avatar.sage{background:#c8dfdb;color:#174b4c}.avatar.lavender{background:#d9dae7;color:#343b61}.member-copy{min-width:0;display:grid;gap:4px}.member-copy strong{font-size:15px}.member-copy span{color:var(--muted);font-size:12px}.member-amount{color:var(--accent);font-family:Songti SC,serif;font-size:20px;font-weight:600}.add-button{width:100%;min-height:46px;margin-top:10px;border:0;border-radius:5px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-size:17px;font-weight:700;letter-spacing:.05em;cursor:pointer;box-shadow:0 7px 16px #f451182e}.add-button:hover,.primary-button:hover{background:var(--accent-dark)}.rides-section{padding-bottom:max(24px,env(safe-area-inset-bottom))}.ride-list{margin-top:4px}.ride-row{width:100%;min-height:50px;padding:6px 0;display:grid;grid-template-columns:41px 42px minmax(0,1fr) auto 14px;gap:7px;align-items:center;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.ride-row time{font-size:13px}.period{display:flex;align-items:center;gap:3px;font-size:13px}.period.morning svg{color:var(--accent)}.period.evening svg{color:var(--ink)}.rider-names{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.ride-money{display:grid;justify-items:end;gap:2px;white-space:nowrap}.ride-money strong{font-size:14px}.ride-money small{color:var(--muted);font-size:11px}.ride-row>svg{color:#a6acb5}.export-button{width:100%;min-height:46px;margin-top:13px;border:1.5px solid var(--ink);border-radius:5px;background:transparent;display:flex;align-items:center;justify-content:center;gap:10px;font-size:16px;font-weight:700;cursor:pointer}.export-button:disabled{opacity:.6;cursor:wait}.empty-state{padding:34px 10px 27px;display:grid;justify-items:center;gap:7px;color:var(--muted);text-align:center}.empty-state strong{color:var(--ink);font-size:15px}.empty-state span{font-size:12px}.sheet-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;padding-top:40px;background:#09172d6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .18s ease-out}.sheet{width:min(100%,480px);max-height:calc(100vh - 34px);overflow:auto;border-radius:18px 18px 0 0;background:var(--paper);padding:9px 20px max(22px,env(safe-area-inset-bottom));box-shadow:0 -20px 60px #10254929;animation:sheet-up .25s cubic-bezier(.22,.8,.3,1)}.sheet-handle{width:38px;height:4px;margin:0 auto 7px;border-radius:2px;background:#d4d3cf}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.sheet-header h2{margin:0;font-family:Songti SC,serif;font-size:25px}.icon-button{width:44px;height:44px;border:0;border-radius:50%;background:var(--paper-deep);display:grid;place-items:center;cursor:pointer}.sheet-form{display:grid;gap:17px}.sheet-intro,.field-help{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.field{display:grid;gap:7px}.field>span,.field legend{font-size:13px;color:#5f6878}.field>input,.money-input{width:100%;min-height:48px;border:1px solid #cfd2d7;border-radius:7px;background:#fff;padding:0 13px;color:var(--ink)}.fieldset-reset{margin:0;padding:0;border:0}.segmented-control{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:8px;background:#eceae5}.segmented-control button{min-height:42px;border:0;border-radius:5px;background:transparent;cursor:pointer}.segmented-control button.active{background:var(--ink);color:#fff}.rider-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rider-option{min-height:46px;padding:0 12px;border:1px solid #d7d8da;border-radius:7px;background:transparent;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.rider-option.selected{border-color:var(--accent);color:var(--accent);background:#fff4ef}.money-input{display:flex;align-items:center;gap:7px}.money-input b{font-family:serif;font-size:22px}.money-input input{min-width:0;width:100%;border:0;outline:0;background:transparent;font-family:Songti SC,serif;font-size:28px}.split-preview{min-height:58px;padding:11px 14px;background:var(--paper-deep);display:flex;align-items:center;justify-content:space-between}.split-preview span{color:var(--muted);font-size:13px}.split-preview strong{color:var(--accent)}.form-error{margin:-7px 0 0;color:var(--danger);font-size:12px}.sheet-actions{display:flex;gap:10px}.primary-button,.danger-button,.secondary-button{min-height:50px;padding:0 18px;border:0;border-radius:6px;cursor:pointer;font-weight:700}.primary-button{background:var(--accent);color:#fff}.secondary-button{background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;gap:7px}.flex-button{flex:1}.danger-button{color:var(--danger);background:#f6eaea;display:flex;align-items:center;gap:6px}.member-inputs{display:grid;gap:13px}.add-member-form{display:grid;grid-template-columns:1fr 92px;gap:10px;align-items:end}.member-manager{display:grid;gap:10px}.member-editor{display:grid;grid-template-columns:1fr 76px;gap:10px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:8px;background:#ffffff70}.member-editor.inactive{background:#f1eee8;color:#78808e}.member-editor.inactive input{color:#78808e}.member-lock,.mini-danger-button,.mini-restore-button{min-height:48px;border-radius:6px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:13px}.member-lock{color:var(--muted);background:var(--paper-deep)}.mini-danger-button,.mini-restore-button{border:0;cursor:pointer}.mini-danger-button{color:var(--danger);background:#f6eaea}.mini-restore-button{color:var(--accent);background:#fff2ec}.centered-shell,.login-ledger{position:relative;display:grid;align-content:center;min-height:100vh;padding:28px 20px}.centered-shell{justify-items:center;text-align:center}.centered-shell h1,.login-card h1{position:relative;z-index:1;margin:0;font-family:Songti SC,STSong,serif;font-size:46px;letter-spacing:-.06em}.centered-shell p{position:relative;z-index:1;margin:12px 0 0;color:var(--muted)}.login-card{position:relative;z-index:1;padding:24px 20px;border:1px solid var(--line);background:#ffffffa6;box-shadow:0 20px 50px #10254914}.login-card h1{font-size:56px}.login-card>p:not(.login-kicker){margin:9px 0 24px;color:var(--muted);line-height:1.7}.login-kicker{margin:0 0 10px;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.2em}.login-form{display:grid;gap:14px}.toast{position:fixed;z-index:30;left:50%;bottom:28px;transform:translate(-50%);padding:11px 18px;border-radius:7px;background:var(--ink);color:#fff;font-size:13px;box-shadow:0 10px 30px #10254940;animation:toast-in .2s ease-out;white-space:nowrap}.export-stage{position:fixed;left:-10000px;top:0;pointer-events:none}.export-card{width:750px;min-height:930px;padding:74px 72px 58px;background:#fbfaf7;color:#102549;font-family:PingFang SC,Microsoft YaHei,sans-serif}.export-card-mark{color:#f45118;font-size:22px;letter-spacing:.18em}.export-card h2{margin:18px 0 8px;font-family:Songti SC,STSong,serif;font-size:54px;letter-spacing:-.04em}.export-range{margin:0;color:#77808f;font-size:23px}.export-rule{height:3px;margin:35px 0;background:#102549}.export-stats{display:grid;grid-template-columns:repeat(3,1fr);padding-bottom:30px;border-bottom:1px solid #d9dadd}.export-stats>div{display:grid;gap:12px}.export-stats span{color:#7e8795;font-size:19px}.export-stats strong{font-family:Songti SC,serif;font-size:31px}.export-stats>div:last-child strong{color:#f45118}.export-members{margin-top:21px}.export-member{min-height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e2e0}.export-member>span{display:flex;align-items:center;gap:15px;font-size:23px}.export-member i{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#efe5d7;font-family:Songti SC,serif;font-style:normal}.export-member small{color:#8991a0;font-size:16px}.export-member>strong{color:#f45118;font-family:Songti SC,serif;font-size:28px}.export-rides{margin-top:34px;padding-top:28px;border-top:2px solid #102549}.export-rides>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.export-rides h3{margin:0;display:flex;align-items:center;gap:12px;font-family:Songti SC,STSong,serif;font-size:27px;font-weight:700}.export-rides h3 i{width:9px;height:9px;border-radius:50%;background:#f45118}.export-rides>header>span{color:#8991a0;font-size:18px}.export-ride{min-height:72px;display:grid;grid-template-columns:58px 62px minmax(0,1fr) auto;gap:10px;align-items:center;border-bottom:1px solid #e2e2e0}.export-ride time{font-size:20px}.export-period{display:flex;align-items:center;gap:5px;font-size:19px}.export-period.morning svg{color:#f45118}.export-period.evening svg{color:#102549}.export-rider-names{min-width:0;font-size:18px;line-height:1.45}.export-ride-money{display:grid;justify-items:end;gap:4px;white-space:nowrap}.export-ride-money strong{font-size:21px}.export-ride-money small{color:#8991a0;font-size:16px}.export-note{margin:36px 0 0;color:#7d8693;text-align:center;font-size:18px}.export-thanks{margin:12px 0 0;text-align:center;font-family:Songti SC,serif;font-size:24px}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(35px);opacity:.5}}@keyframes toast-in{0%{transform:translate(-50%,10px);opacity:0}}@media(min-width:560px){.ledger{margin-block:24px;min-height:calc(100vh - 48px);border-radius:8px}}@media(max-width:380px){.hero{padding-inline:17px}.hero h1{font-size:43px}.settings-button span{display:none}.date-section,.section{padding-inline:16px}.date-section{grid-template-columns:minmax(0,1fr) 17px minmax(0,1fr) 69px}.summary{padding-inline:15px;gap:9px}.summary strong{font-size:25px}.ride-row{grid-template-columns:37px 40px minmax(0,1fr) auto 12px;gap:5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
