:root{--ink:#144c46;--muted:#72928b;--green:#0c8f73;--mint:#d9fae5;--line:#e5f1eb;--paper:#fffdfd}*{box-sizing:border-box}body{margin:0;background:linear-gradient(145deg,#eaffb6 0%,#c7f8d2 28%,#b6eaf6 63%,#d9f4d2 100%) fixed;color:var(--ink);font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif}body:before{content:"";position:fixed;width:42vw;height:42vw;border-radius:50%;background:#8ee1c884;filter:blur(70px);right:-10vw;top:20vh;pointer-events:none}main{max-width:1120px;margin:0 auto;padding:32px 25px 85px;position:relative}header{min-height:168px;display:flex;align-items:flex-start;justify-content:space-between;padding:28px 32px 32px;border-radius:28px;background:linear-gradient(120deg,#eaffaa,#bff2d5 53%,#9ce8e9);box-shadow:0 22px 55px #55b9a530;position:relative;overflow:hidden}header:after{content:"✦";position:absolute;color:white;font-size:70px;right:14%;bottom:-19px;transform:rotate(-19deg)}header small{font-size:11px;letter-spacing:.18em;color:#308a75}h1{font-size:34px;letter-spacing:-.04em;margin:9px 0 5px;color:#00674c}header p{font-size:15px;color:#418979;margin:0}.hidden{display:none!important}button{border:1px solid #bee6d3;background:#fff;color:#147a67;border-radius:13px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 3px 8px #317d6310;transition:transform .16s,box-shadow .16s}button:hover{transform:translateY(-2px);box-shadow:0 7px 14px #317d6320}button.primary{background:linear-gradient(110deg,#17bd93,#06a38b);border-color:transparent;color:#fff;box-shadow:0 8px 18px #0ca98138}.ghost{background:#ffffffad;border-color:#ffffffbd}.card{background:var(--paper);border:1px solid #ffffff;border-radius:23px;padding:25px;box-shadow:0 13px 38px #48a88c20}#auth{max-width:430px;margin:-15px auto 0;position:relative}.tabs{display:flex;gap:8px;margin-bottom:22px;background:#f0fbf5;padding:5px;border-radius:14px}.tabs button{width:50%;box-shadow:none;border:0;background:transparent}.tabs .selected{background:white;color:#008669;box-shadow:0 3px 12px #129e7220}label{display:block;font-size:13px;font-weight:700;margin:0 0 17px;color:#4b796e}input{width:100%;margin-top:8px;padding:13px 14px;border:1px solid #d9eee3;border-radius:12px;font:inherit;background:#f9fdfb;color:#164f45;outline:0}input:focus{border-color:#19b58c;box-shadow:0 0 0 3px #21c58f1a}form button.primary{width:100%;margin-top:4px;padding:14px}.toolbar,.ledger-title,.records-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.toolbar{margin:29px 7px 16px}.toolbar span{font-size:13px;color:#4c8d7e}.toolbar h2{margin:3px 0;font-size:24px}.join{display:flex;gap:12px;max-width:480px;padding:12px;margin-bottom:18px}.join input{margin:0}.book-list{display:flex;flex-wrap:wrap;gap:10px;margin:13px 0 29px}.book-list button{border-radius:30px;padding:11px 18px}.book-list button.active{background:#fff;border:2px solid #0ba985;color:#008a6d;box-shadow:0 8px 18px #0ca98125}.ledger-title{margin:0 2px 18px}.ledger-title small{color:#5e9d8d;letter-spacing:.1em;font-weight:700}.ledger-title h2{font-size:27px;color:#005d4c;margin:3px 0}.ledger-title p{color:#4b9380;font-size:13px;margin:0}.actions{display:flex;gap:10px;align-items:center}.actions input{margin:0;background:#fff;width:160px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.stats div{min-height:110px;border-radius:20px;padding:19px 22px;background:linear-gradient(140deg,#fff,#e9fff3);box-shadow:0 11px 24px #3ca5811b;position:relative;overflow:hidden}.stats div:after{content:"◦";position:absolute;right:10px;top:0;color:#bbf2d7;font-size:66px;line-height:1}.stats div:nth-child(2){background:linear-gradient(140deg,#fff,#fff0ec)}.stats div:nth-child(3){background:linear-gradient(140deg,#fff,#e8f8ff)}.stats small{display:block;color:#72968b;font-weight:700}.stats strong{display:block;font-size:29px;margin-top:13px;position:relative}.stats div:first-child strong{color:#00a47f}.stats div:nth-child(2) strong{color:#ee7d75}.stats div:nth-child(3) strong{color:#2f8c9f}.monthly{margin-bottom:16px}.monthly h3,.records h3,#entryForm h3,#admin h3{margin:0 0 18px;color:#066f5b;font-size:19px}.stats-columns{display:grid;grid-template-columns:1fr 1fr;gap:26px}.monthly h4{margin:0 0 10px;color:#5e9485;font-size:14px}.stat-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px dashed #dceee4;font-size:14px}.stat-row b{white-space:nowrap;color:#137f6e}.muted{color:#8da49a}.columns{display:grid;grid-template-columns:350px 1fr;gap:16px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:19px}.segmented label{margin:0;background:#f3faf5;border:1px solid #ddf2e6;border-radius:13px;text-align:center;padding:11px;cursor:pointer;font-size:15px}.segmented label:has(input:checked){background:#d7f9e5;border-color:#56d6a9;color:#078e6d}.segmented input{width:auto;margin:0 6px 0 0;accent-color:#0ba981}.records{min-height:420px}.records-head{margin-bottom:10px}.records-head h3{margin:0}.records-head span{color:#88aa9b;font-size:13px}.entry{padding:15px 0;border-top:1px solid #edf5ee;display:flex;justify-content:space-between;align-items:center;gap:15px}.entry b{color:#2c5f55}.entry small{display:block;color:#9aaca5;font-weight:400;margin-top:5px}.entry strong{font-size:17px;white-space:nowrap}.entry .expense{color:#ed7772}.entry .income{color:#08a985}.entry button{padding:4px 9px;margin-left:8px;font-size:12px;box-shadow:none;border-radius:8px;color:#9ca9a5;border-color:#edf2ee}.empty{padding:42px;text-align:center;color:#a1b2ab}#admin{margin-top:16px}#members{display:flex;gap:9px;flex-wrap:wrap}#members span{padding:8px 13px;background:#e8f9ed;color:#2c876e;border-radius:30px;font-size:13px}#message{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#066855;color:#fff;border-radius:12px;padding:11px 18px;display:none;max-width:90vw;box-shadow:0 8px 28px #14715e55}#message.show{display:block}@media(max-width:700px){main{padding:10px 10px 45px}header{min-height:145px;border-radius:21px;padding:23px 21px}header:after{right:13px;font-size:55px}h1{font-size:27px}header p{font-size:12px}.ghost{font-size:12px;padding:8px}.card{padding:18px;border-radius:19px}.toolbar{margin:24px 7px 14px}.toolbar h2{font-size:21px}.toolbar button{font-size:12px}.join{max-width:none}.ledger-title{align-items:flex-start;flex-direction:column}.ledger-title h2{font-size:23px}.actions{width:100%}.actions input{flex:1}.stats{gap:7px}.stats div{min-height:92px;padding:12px 9px;border-radius:15px}.stats small{font-size:11px}.stats strong{font-size:16px;margin-top:11px}.stats-columns,.columns{grid-template-columns:1fr}.monthly h3{font-size:17px}.records{min-height:200px}}
.quick-categories{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:-5px 0 17px}.category-choice{border:0;box-shadow:none;background:#f5fbf6;border-radius:12px;padding:7px 0;display:flex;align-items:center;flex-direction:column;gap:2px;font-size:10px;color:#5e8d7e}.category-choice span:first-child{font-size:20px}.category-choice.selected{background:#d7f9e5;color:#008e6d;outline:2px solid #5bd6ac}
.add-member{display:flex;gap:10px;margin:0 0 20px;max-width:480px}.add-member input{margin:0;flex:1}.add-member button{white-space:nowrap}.tools button{white-space:nowrap}
.top-nav{display:flex;gap:8px;align-items:center;margin:18px 0 26px;background:#ffffffbd;border:1px solid #fff;border-radius:17px;padding:7px;box-shadow:0 8px 24px #43a6871c}.top-nav button{flex:1;box-shadow:none;border:0;background:transparent;color:#6e9b89;padding:13px 10px}.top-nav button.active{background:linear-gradient(110deg,#21bd91,#06a88a);color:#fff;box-shadow:0 6px 16px #0fa8833c}.tab-panel{min-height:470px}.entry-card{max-width:720px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.profile-grid h3{margin-top:0;color:#08735d}.profile-label{color:#789b8e;font-size:13px;margin-bottom:5px}.profile-grid strong{font-size:25px}.profile-grid form{margin-top:24px}.profile-grid form button{width:auto}.info-row{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid #edf4ef}.info-row span{color:#759789}.records{min-height:260px}@media(max-width:700px){.top-nav{position:sticky;top:5px;z-index:5;margin:12px 0 17px}.top-nav button{font-size:14px;padding:11px 5px}.form-grid,.profile-grid{grid-template-columns:1fr}.tab-panel{min-height:350px}.entry-card{max-width:none}}
.category-head{margin:-4px 0 10px;color:#639684;font-size:12px;font-weight:700}.category-head button{font-size:12px;padding:6px 10px;border-radius:8px;box-shadow:none}.quick-categories{grid-template-columns:repeat(5,minmax(0,1fr))}.category-choice{overflow:hidden}.category-choice span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
dialog{border:1px solid #e4f4eb;border-radius:22px;padding:25px;width:min(480px,calc(100vw - 28px));box-shadow:0 25px 80px #124f4860;background:#fff}dialog::backdrop{background:#174e4669;backdrop-filter:blur(3px)}dialog h3{margin:0 0 18px;color:#08735d}.picker-label{font-size:13px;color:#5c8c7b;font-weight:700;margin:0 0 10px}.icon-library{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;max-height:255px;overflow:auto}.icon-choice{font-size:26px;padding:8px 0;background:#f3faf5;box-shadow:none;border-radius:12px}.icon-choice.selected{background:#d1f9e1;border:2px solid #23ba91}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}
