*{box-sizing:border-box} :root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#243244;background:#f3f5f8;font-size:16px;font-synthesis:none}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #6e9dcc;outline-offset:2px}button{border:0;background:transparent;color:inherit}input,select,textarea{border:1px solid #dce2e9;border-radius:8px;padding:10px 12px;background:white;color:#253347;font-size:.875rem}textarea{resize:vertical}button{border-radius:8px;min-height:40px;padding:9px 14px;font-size:.875rem}p{line-height:1.7} [hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:#1b3045;color:#f1f4f7;padding:32px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:1.2rem;font-weight:600;letter-spacing:.02em}.brandmark{background:#ceea91;color:#263e32;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.1rem}.brand small{display:block;font-size:.75rem;font-weight:400;color:#a6b7c8;letter-spacing:0;margin-top:6px}.yearlabel{color:#9aaec2;font-size:.75rem;margin:43px 12px 14px}nav{display:flex;flex-direction:column;gap:3px;overflow:auto}nav button{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:9px 13px;min-height:37px;color:#c4d0dd}nav button:hover{background:#2b4158}nav button.active{background:#cdea91;color:#233f30;font-weight:600}nav small{font-size:.75rem;opacity:.75}.sidefoot{margin-top:auto;padding:26px 12px 0;color:#c6d1dc;font-size:.875rem}.sidefoot small{display:block;font-size:.75rem;line-height:1.9;color:#91a5ba;margin-top:10px}.localdot{display:inline-block;width:6px;height:6px;border-radius:100%;background:#cdea91;margin-right:8px}main{margin-left:232px;padding:38px 38px 20px;max-width:1900px}header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:30px}.eyebrow{font-size:.75rem;letter-spacing:.12em;color:#738398;margin-bottom:10px}h1{font-size:1.8rem;letter-spacing:-.04em;margin:0;font-weight:650}h2{font-size:1.35rem;margin:0}.subtitle{font-size:.875rem;color:#788595;margin:9px 0 0}.headeractions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.headeractions>span{font-size:.75rem;color:#6f7d8d;margin-right:6px}.primary{background:#234b70;color:#fff;font-weight:600}.primary:hover{background:#193c5d}.quiet{border:1px solid #dce3eb;background:#fff}.quiet:hover{background:#f4f6f8}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:19px}.stat{background:#fff;border:1px solid #e2e7ed;border-radius:12px;padding:23px 24px}.stat.primary-stat{background:#213b53;color:#fff;border-color:#213b53}.stat-label{font-size:.875rem;color:#728091;display:flex;justify-content:space-between}.primary-stat .stat-label{color:#c4d3e2}.stat-number{font-variant-numeric:tabular-nums;font-size:1.85rem;letter-spacing:-.04em;margin:16px 0 8px;font-weight:600}.stat-number .unit{font-size:.875rem;letter-spacing:0;margin-right:4px;font-weight:400}.stat-hint{font-size:.75rem;color:#7e8a9a;line-height:1.6}.primary-stat .stat-hint{color:#bdcddd}.sourcebar{display:flex;gap:12px;align-items:center;background:#edf2f7;border:1px solid #e0e7ef;border-radius:9px;padding:12px 16px;margin-bottom:24px;font-size:.8125rem;color:#61738a}.sourcebar p{margin:0;flex:1}.sourcebar strong{font-weight:500;color:#435b75}.infomark{border:1px solid #8b9bb0;border-radius:50%;width:17px;height:17px;display:grid;place-items:center;font:12px Georgia}.textbutton{color:#365d88;white-space:nowrap;padding:4px 6px;font-size:.8125rem}.workspace{background:#fff;border:1px solid #e0e6ed;border-radius:12px;overflow:hidden}.workhead{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9edf2;padding:0 23px;gap:12px}.tabs{display:flex;gap:24px}.tabs button{border-radius:0;min-height:61px;padding:0 2px;font-size:.9375rem;color:#758396;border-bottom:2px solid transparent}.tabs button[aria-selected=true]{color:#244c71;border-color:#244c71;font-weight:600}#range-title{font-size:.8125rem;color:#7b8795}.filters{padding:19px 23px;display:flex;gap:12px;flex-wrap:wrap}.search{display:flex;align-items:center;flex:1;min-width:210px;max-width:400px;border:1px solid #dce2e9;border-radius:8px;padding-left:12px}.search span{font-size:1.5rem;color:#8190a3}.search input{border:0;background:none;width:100%;outline-offset:0}.filters select{min-width:145px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:850px;font-size:.875rem}thead{background:#f8fafc;color:#778596;font-size:.8125rem;font-weight:400}th{padding:13px 16px;text-align:left;font-weight:500;white-space:nowrap}th:first-child,td:first-child{padding-left:24px}td{padding:16px;border-bottom:1px solid #edf0f4;vertical-align:middle}tbody tr:hover{background:#f9fbfd}td.time{white-space:nowrap;font-variant-numeric:tabular-nums}td.time small{display:block;color:#8793a2;margin-top:7px;font-size:.75rem}.route{max-width:380px;min-width:220px}.route div{display:flex;gap:10px;align-items:baseline;margin:4px 0;line-height:1.55;overflow-wrap:anywhere}.route i{font-style:normal;font-size:.6875rem;color:#8d9daf;background:#f0f3f6;border-radius:4px;padding:0 3px;flex-shrink:0}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.amount{font-weight:600}.money-note{display:block;font-weight:400;color:#8a95a4;font-size:.6875rem;margin-top:6px}.badge{display:inline-flex;align-items:center;border-radius:5px;font-size:.75rem;padding:5px 9px;white-space:nowrap}.pending{background:#fff3d8;color:#956514}.yes{background:#e8f4eb;color:#397d52}.no{background:#edf0f5;color:#7c8797}.friend{background:#eef0ff;color:#5a63a0}.muted{color:#93a0ae;font-size:.8125rem}.negative{color:#b85e4e}.editbtn{color:#365c83;padding:6px;min-height:36px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;color:#8793a2;font-size:.8125rem;gap:15px}.pagination>div{display:flex;align-items:center;gap:14px}.empty{padding:70px 20px;text-align:center;color:#8491a0}footer{font-size:.75rem;color:#8c97a5;padding:22px 2px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}dialog{border:1px solid #dfe5eb;border-radius:16px;box-shadow:0 25px 100px #16263833;max-height:92vh;width:min(680px,94vw);padding:0;color:#293d52}dialog::backdrop{background:#14253870;backdrop-filter:blur(2px)}.dialoghead{display:flex;justify-content:space-between;align-items:center;padding:24px 28px 19px;border-bottom:1px solid #e5eaf0}.close{font-size:1.6rem;min-width:40px;padding:0;align-self:flex-start;color:#7c8896}.dialogbody{padding:22px 28px;overflow:auto;max-height:65vh}.dialogfooter{display:flex;align-items:center;gap:10px;padding:17px 28px;border-top:1px solid #e5eaf0;background:#f8fafc}.dialogfooter span{margin-right:auto;font-size:.75rem;color:#8c99a8}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:19px 18px}.formgrid label{display:flex;flex-direction:column;gap:8px;font-size:.875rem}.wide{grid-column:1/-1}.calc{background:#edf3f9;border-radius:8px;padding:13px 15px;font-size:.875rem;line-height:1.65}.origin{font-size:.75rem;color:#8190a0;padding-bottom:18px;line-height:1.7;overflow-wrap:anywhere}.error{color:#b14543;font-size:.875rem;margin:10px 0 0}.error:empty{display:none}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);color:white;background:#203e55;padding:14px 24px;border-radius:10px;box-shadow:0 5px 25px #20334d30;z-index:99;font-size:.875rem}.dayhead{padding:22px 24px;display:flex;align-items:center;justify-content:space-between}.dayhead p{font-size:.8125rem;color:#8190a2}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e7ecf1;margin:0 24px 24px;border:1px solid #e7ecf1;border-radius:9px;overflow:hidden}.weekday{background:#f8fafc;color:#8a96a4;padding:12px;text-align:center;font-size:.8125rem}.day{background:white;padding:13px 12px;border-radius:0;min-height:112px;display:flex;flex-direction:column;align-items:flex-start;gap:9px}.day:hover{background:#f2f7fc}.day .daynum{font-weight:600}.day small{font-size:.6875rem;color:#8793a3}.day .badge{font-size:.6875rem;padding:3px 5px}.day.future{opacity:.45}.day.blank{background:#f8fafc}.daydetail{padding:22px 24px;border-top:1px solid #e5eaf0}.daydetail h3{margin:0 0 12px}.daydetail p{font-size:.875rem;color:#78889b}.daydetail form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.daydetail label{display:flex;flex-direction:column;gap:8px;font-size:.875rem}.daydetail label:last-of-type{flex:1;min-width:220px}.daydetail textarea{width:100%}.dayorders{display:flex;flex-direction:column;gap:8px;margin-top:18px}.dayorders button{text-align:left;border:1px solid #e1e8ef;background:#f8fafc;padding:12px 16px}.dayorders small{display:block;color:#8895a5;margin-top:6px}.notice{padding:12px 15px;background:#fff4dc;font-size:.8125rem;color:#8b6726;border-radius:8px}
@media(min-width:1500px){main{padding:45px 54px}.sidebar{width:248px}main{margin-left:248px}}
@media(max-width:1200px){.sidebar{width:198px;padding:27px 15px}main{margin-left:198px;padding:28px 24px}.headeractions>span{display:none}.stats{gap:10px}.stat{padding:20px 17px}.stat-number{font-size:1.5rem}h1{font-size:1.6rem}.subtitle{font-size:.8125rem}.headeractions{gap:6px}}
@media(max-width:850px){.sidebar{position:static;width:auto;padding:16px 20px}.brand{font-size:1rem}.brand small{display:none}.brandmark{width:32px;height:32px;border-radius:8px}.yearlabel,.sidefoot{display:none}nav{flex-direction:row;margin-top:16px;gap:6px}nav button{flex-shrink:0;gap:10px;min-height:34px}nav small{display:none}main{margin:0;padding:23px 18px}header{align-items:flex-start;flex-wrap:wrap;margin-bottom:20px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sourcebar{align-items:flex-start}.sourcebar .textbutton{display:none}.filters{padding:16px}.filters select{flex:1;min-width:130px}.search{max-width:none;flex-basis:100%}.workhead{padding:0 17px}.tablewrap{max-width:100%}.pagination{padding:16px;flex-wrap:wrap}.day{min-height:100px;padding:10px 6px}.calendar{margin:0 12px 16px}.day .badge{white-space:normal;text-align:left;font-size:.625rem}.dayhead{padding:18px 15px}.dayhead p{display:none}.dialogbody{padding:20px}.dialoghead,.dialogfooter{padding:18px 20px}.dialogfooter span{display:none}}
@media(max-width:450px){.formgrid{grid-template-columns:1fr}.wide{grid-column:1}.stats{gap:8px}.stat{padding:17px 13px}.stat-number{font-size:1.35rem}.stat-label{font-size:.8125rem}.stat-hint{font-size:.6875rem}.tabs{gap:20px}#range-title{font-size:.75rem}.headeractions{width:100%;justify-content:flex-end}.day small{font-size:.625rem}}

@media(max-width:600px){
 table{min-width:0;display:block}thead{display:none}tbody{display:block}
 tbody tr{display:grid;grid-template-columns:1fr 1fr;padding:18px;gap:14px;border-bottom:1px solid #e6ecf2}
 td,th:first-child,td:first-child{padding:0;border:0}
 td.time{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:4px;font-weight:600}
 td.time small{margin:0;font-weight:400}
 td:last-child{grid-column:2;grid-row:1;text-align:right;align-self:start}
 td.route{grid-column:1/-1;min-width:0;max-width:none}
 td.num{text-align:left}td:nth-child(3){grid-column:1}td:nth-child(4){grid-column:2}
 td:nth-child(5){grid-column:1}td:nth-child(6){grid-column:2}
 td:nth-child(3)::before,td:nth-child(4)::before,td:nth-child(5)::before,td:nth-child(6)::before{display:block;color:#8392a4;font-weight:400;font-size:.75rem;margin-bottom:7px}
 td:nth-child(3)::before{content:'订单金额'}td:nth-child(4)::before{content:'付款人'}
 td:nth-child(5)::before{content:'拼车状态'}td:nth-child(6)::before{content:'计入金额'}
 .money-note{font-size:.75rem}.day .badge{font-size:.75rem}.day small{font-size:.75rem}
}

.login-page{display:grid;place-items:center;min-height:100dvh;background:#eef2ed;padding:24px}.login-card{margin:0;width:min(440px,100%);padding:40px;background:white;border:1px solid #e0e5df;border-radius:24px;box-shadow:0 18px 55px #243a4510}.login-card .brandmark{margin-bottom:30px;background:#1b3045;color:#cbea86}.login-card h1{font-size:30px;margin:12px 0}.login-card form{display:grid;gap:20px;margin-top:30px}.login-card label{display:grid;gap:8px;font-size:14px;font-weight:600}.login-card input{width:100%;padding:12px;border:1px solid #d8dfd7;border-radius:9px;font:inherit}.login-card .primary{padding:13px}.login-card .error:empty{display:none}.login-hint{font-size:12px;color:#778277;text-align:center;margin-top:24px}@media(max-width:600px){.login-card{padding:28px}.login-page{padding:16px}.login-card h1{font-size:28px}}
/* Compact, collapsible month navigation shared by both ledger views. */
.sidebar{width:166px;padding:12px 10px;overflow-y:auto}.sidebar~main{margin-left:166px}.sidebar-controls{display:flex;justify-content:flex-end;flex-shrink:0}.sidebar-controls button{display:grid;place-items:center;width:30px;min-height:30px;padding:0;font-size:25px;color:#c6d5e3;border:1px solid #496075;border-radius:7px;line-height:1}.sidebar-controls button:hover{background:#30495f;color:white}.sidebar .yearlabel{margin:10px 8px 9px;font-size:11px}.sidebar nav{gap:2px;flex-shrink:0;overflow:visible}.sidebar nav button{min-height:30px;padding:5px 9px;font-size:13px}.sidebar nav small{font-size:10px}.sidebar .sidefoot{margin-top:18px;padding:10px 8px 0;font-size:11px}.sidebar .sidefoot small{font-size:10px;line-height:1.6;margin-top:6px}.sidebar-collapsed .sidebar{width:48px;padding:12px 8px}.sidebar-collapsed .sidebar-controls{justify-content:center}.sidebar-collapsed .sidebar :is(.yearlabel,nav,.sidefoot){display:none}.sidebar-collapsed .sidebar~main{margin-left:48px}
@media(max-width:850px){.sidebar{width:auto;padding:10px 16px;overflow:visible}.sidebar~main,.sidebar-collapsed .sidebar~main{margin-left:0}.sidebar-controls{justify-content:flex-start}.sidebar .yearlabel,.sidebar .sidefoot{display:none}.sidebar nav{margin-top:8px;gap:5px;overflow-x:auto}.sidebar nav button{padding:5px 12px;min-height:30px}.sidebar-collapsed .sidebar{width:auto;padding:10px 16px}.sidebar-collapsed .sidebar-controls{justify-content:flex-start}}
