:root{color:#0f172a;background:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(circle at 14% 0,#2563eb29,#0000 28rem),linear-gradient(135deg,#f8fafc 0%,#eff6ff 48%,#fff 100%);min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.65}input,textarea{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:18px;outline:none;width:100%;min-height:48px;padding:13px 15px}input:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px #2563eb14}textarea{resize:vertical;min-height:88px}label{color:#475569;gap:8px;font-size:14px;font-weight:800;display:grid}h1,h2,h3,p{margin:0}h1{letter-spacing:0;font-size:30px;font-weight:950;line-height:1.12}h2{font-size:21px;font-weight:950;line-height:1.24}h3{font-size:16px;font-weight:950;line-height:1.3}.auth-page,.app-shell{width:min(100%,430px);padding:calc(env(safe-area-inset-top) + 24px) 20px 40px;margin:0 auto}.auth-page{align-items:center;min-height:100vh;display:grid}.auth-card,.expense-form,.expense-card,.panel-card,.settings-card,.settlement-card{background:#fffffff0;border:1px solid #e2e8f0;border-radius:28px;box-shadow:0 18px 48px #0f172a14}.auth-card{gap:18px;padding:26px 20px;display:grid}.auth-card p,.app-header p{color:#64748b;margin-top:8px;font-size:14px}.field-hint{color:#64748b;margin-top:-5px;font-size:12px;font-weight:700}.app-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.brand{color:#2563eb;margin-bottom:4px;font-size:14px;font-weight:900}.text-button,.link-button{color:#64748b;white-space:nowrap;background:0 0;min-height:40px;padding:0;font-size:14px;font-weight:800}.link-button{color:#2563eb}.muted-link{color:#94a3b8}.toast{color:#166534;background:#ecfdf5;border:1px solid #bbf7d0;border-radius:18px;margin-bottom:14px;padding:12px 14px;font-size:13px;font-weight:800}.form-stack,.content-stack{gap:14px;display:grid}.solid-button,.primary-action,.solid-small{color:#fff;background:#047857;font-weight:950}.solid-button{border-radius:18px;min-height:50px;padding:0 18px;font-size:16px}.primary-action{background:linear-gradient(135deg,#047857,#0f766e);border-radius:28px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:58px;margin:16px 0 18px;font-size:18px;display:flex;box-shadow:0 16px 32px #0478573d}.primary-action span{font-size:25px;line-height:1}.solid-small,.soft-button,.soft-blue,.danger-button{white-space:nowrap;border-radius:17px;min-height:42px;padding:0 14px;font-size:14px;font-weight:900}.soft-button{color:#475569;background:#fff;border:1px solid #e2e8f0}.soft-blue{color:#047857;background:#ecfdf5;border:1px solid #bbf7d0}.danger-button{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.solid-button:active,.primary-action:active,.solid-small:active,.soft-button:active,.soft-blue:active,.danger-button:active{transform:translateY(1px)}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.total-card,.mini-card{border-radius:28px;box-shadow:0 14px 32px #0f172a14}.total-card{color:#fff;background:#0f172a;grid-column:1/-1;padding:18px}.card-label,.mini-label{color:#cbd5e1;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;font-weight:800;display:flex}.card-icon,.mini-icon{background:#ffffff1f;border-radius:10px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:relative}.card-icon:before,.card-icon:after,.mini-icon:before,.mini-icon:after{content:"";position:absolute}.icon-bill:before{border:1.8px solid #cbd5e1;border-radius:4px;width:11px;height:15px}.icon-bill:after{background:#cbd5e1;width:7px;height:1.8px;box-shadow:0 4px #cbd5e1}.icon-wallet:before{border:1.8px solid #64748b;border-radius:4px;width:14px;height:10px}.icon-wallet:after{background:#f1f5f9;border:1.6px solid #64748b;border-radius:999px;width:5px;height:5px;right:5px}.icon-return:before{border:1.8px solid #64748b;border-left-color:#0000;border-radius:999px;width:12px;height:12px;transform:rotate(-24deg)}.icon-return:after{border-bottom:1.8px solid #64748b;border-left:1.8px solid #64748b;width:6px;height:6px;top:6px;left:6px;transform:rotate(45deg)}.total-card strong{font-size:31px;font-weight:950;line-height:1.15;display:block}.total-card p{color:#94a3b8;margin-top:8px;font-size:12px}.mini-card{background:#fff;border:1px solid #e2e8f0;padding:16px}.mini-label{color:#64748b;justify-content:flex-start}.mini-icon{color:#64748b;background:#f1f5f9}.mini-card strong{font-size:20px;font-weight:950;line-height:1.22;display:block}.blue{color:#2563eb!important}.danger,.danger-text{color:#dc2626!important}.expense-form{gap:15px;margin-bottom:18px;padding:20px;display:grid}.form-title-row,.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading{margin:2px 0 0}.section-heading span{color:#64748b;font-size:13px;font-weight:800}.section-heading.insetless{margin-bottom:12px}.file-input{padding-top:12px}.receipt{object-fit:cover;border:1px solid #e2e8f0;border-radius:22px;width:100%;max-height:218px}.receipt.preview{max-height:160px}.expense-rule{background:#f8fafc;border-radius:18px;padding:12px 14px;line-height:1.55}.tabs{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px;display:grid}.tabs button{color:#64748b;background:#f1f5f9;border-radius:18px;min-height:47px;font-size:14px;font-weight:950}.tabs .active{color:#fff;background:#0f172a}.expense-card{gap:12px;padding:16px;display:grid}.expense-row{justify-content:space-between;gap:14px;display:flex}.expense-row p,.expense-note,.hint-text,.reimburse-row p,.settlement-card p{color:#64748b;margin-top:4px;font-size:13px}.expense-row strong{text-align:right;white-space:nowrap;font-size:18px;font-weight:950}.badge-row,.split-list,.card-actions,.invite-actions{flex-wrap:wrap;gap:8px;display:flex}.status{border-radius:999px;align-items:center;min-height:25px;padding:0 9px;font-size:12px;font-weight:950;display:inline-flex}.status.pending{color:#b45309;background:#fffbeb}.status.approved{color:#059669;background:#ecfdf5}.status.rejected,.status.locked{color:#dc2626;background:#fef2f2}.reimburse-status.waiting{color:#b45309;background:#fffbeb}.reimburse-status.done{color:#059669;background:#ecfdf5}.split-list span{color:#64748b;background:#f8fafc;border-radius:14px;padding:6px 9px;font-size:12px;font-weight:800}.panel-card{padding:20px}.reimburse-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin:14px 0;display:grid}.reimburse-box{border-radius:22px;padding:15px}.reimburse-box span{margin-bottom:3px;font-size:13px;font-weight:900;display:block}.reimburse-box strong{font-size:22px;font-weight:950}.reimburse-box.done{color:#047857;background:#ecfdf5}.reimburse-box.waiting{color:#b45309;background:#fffbeb}.reimburse-list,.log-list{gap:10px;margin-top:10px;display:grid}.reimburse-section{gap:10px;margin-top:16px;display:grid}.reimburse-section h3{font-size:16px}.reimburse-row{background:#f8fafc;border-radius:20px;gap:12px;padding:14px;display:flex}.reimburse-row-body{flex:1;gap:8px;min-width:0;display:grid}.reimburse-confirm{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:18px;gap:10px;padding:12px;display:grid}.reimburse-confirm label{margin:0}.inline-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.file-symbol{color:#2563eb;background:#eff6ff;border-radius:16px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-weight:950;display:flex}.file-symbol.done{color:#059669;background:#ecfdf5}.muted-note{color:#94a3b8;font-size:12px;font-weight:800}.settlement-card{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.settlement-card strong{text-align:right;white-space:nowrap;font-weight:950}.log-row{background:#f8fafc;border-radius:18px;gap:4px;padding:13px 14px;display:grid}.log-row span,.log-row small{color:#64748b;font-size:12px}.settings-card{margin-top:22px;overflow:hidden}.settings-head{text-align:left;background:#ffffffeb;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;padding:18px;display:grid}.settings-head strong,.settings-head small{display:block}.settings-head strong{font-size:16px;font-weight:950}.settings-head small{color:#64748b;margin-top:2px;font-size:13px}.settings-icon{background:#f1f5f9;border-radius:17px;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.chevron{color:#94a3b8;font-size:20px;transition:transform .16s;transform:rotate(0)}.chevron.open{transform:rotate(180deg)}.settings-body{background:#f8fafc;border:1px solid #e2e8f0;border-radius:22px;gap:14px;margin:0 16px 16px;padding:16px;display:grid}.book-summary span{color:#2563eb;font-size:12px;font-weight:950}.book-summary strong{margin-top:3px;font-size:20px;font-weight:950;display:block}.book-summary p,.permission-note{color:#64748b;margin-top:5px;font-size:13px}.invite-code-box{background:#fff;border:1px solid #dbeafe;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;display:flex}.invite-code-box span{color:#2563eb;font-size:12px;font-weight:950}.invite-code-box strong{letter-spacing:0;margin:0;font-size:18px}.book-switcher,.admin-tools,.join-only-tools{gap:10px;display:grid}.book-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}.book-switcher button{color:#475569;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:18px;min-height:48px;padding:0 12px;font-size:13px;font-weight:950}.book-switcher .active{color:#fff;background:#0f172a;border-color:#0f172a}.inline-form{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.permission-note{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:14px}.account-delete-tool{background:#fff;border:1px solid #fecaca;border-radius:20px;gap:10px;padding:14px;display:grid}.account-delete-tool strong{color:#991b1b;font-size:14px;font-weight:950}.account-delete-tool p{color:#64748b;margin-top:4px;font-size:12px}.copy-status{border-radius:16px;padding:10px 12px;font-size:13px;font-weight:900}.copy-status.success{color:#047857;background:#ecfdf5;border:1px solid #bbf7d0}.copy-status.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.empty-book,.empty-state{text-align:center;color:#64748b;background:#ffffffa8;border:1px dashed #cbd5e1;border-radius:24px;padding:26px 18px}.empty-book h2{color:#0f172a;margin-bottom:6px}.empty-state.compact{padding:18px 14px}@media (width<=360px){.auth-page,.app-shell{padding-left:14px;padding-right:14px}h1{font-size:27px}.inline-form,.book-switcher{grid-template-columns:1fr}}
