@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,Noto Sans TC,sans-serif;color:#20213b;background:#f7f7ff;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0}.brand{display:flex;align-items:center;gap:9px;color:#24254a;text-decoration:none;font-size:20px}.brand span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#5b5ce2;color:#fff;font-size:17px}header{height:75px;padding:0 max(5vw,36px);background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ededf6}.mode-switch{background:#f0f0f8;padding:4px;border-radius:12px;display:flex;gap:2px}.mode-switch button{background:transparent;color:#777790;padding:8px 16px;border-radius:9px;font-size:13px;font-weight:700}.mode-switch .selected{background:#fff;color:#5758d5;box-shadow:0 2px 5px #d5d5e755}.profile{background:transparent;color:#454562;font-weight:600}.profile span{margin-left:5px}main{max-width:1170px;margin:auto}.adult-wrap{padding:52px 26px}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.welcome p,.panel-title p,.dialog p{font-size:13px;color:#787996;font-weight:700;margin:0 0 5px}.welcome h1{font-size:28px;letter-spacing:-.8px;margin:0 0 6px}.welcome small{color:#8b8ba4}.primary{background:#5b5ce2;color:#fff;padding:13px 19px;border-radius:11px;font-weight:700;box-shadow:0 8px 15px #5b5ce230}.overview{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px;margin-bottom:26px}.total-card{min-height:154px;border-radius:17px;padding:24px;background:linear-gradient(130deg,#5d5fe0,#7372eb);color:#fff;position:relative;overflow:hidden}.total-card:after{content:"";position:absolute;right:-35px;bottom:-70px;width:175px;height:175px;border-radius:50%;border:30px solid #ffffff13}.total-card span,.total-card small{display:block;font-size:13px;opacity:.82}.total-card strong{display:block;font-size:35px;margin:7px 0 4px;letter-spacing:-1.5px}.total-card i{position:absolute;right:22px;top:22px;font-style:normal;font-size:24px;color:#d6d6ff}.kid-card{position:relative;text-align:left;padding:22px;border:1px solid #ececf5;background:#fff;border-radius:17px;display:flex;align-items:center;gap:12px;color:#242540;transition:.2s}.kid-card:hover,.kid-card.focus{border-color:#aeaeef;box-shadow:0 7px 22px #55559e11}.kid-avatar,.child-chip span,.hero-avatar{display:grid;place-items:center;border-radius:50%;font-size:25px;width:48px;height:48px}.kid-card b,.kid-card small{display:block}.kid-card small{font-size:12px;color:#9292a6;margin-top:4px}.kid-card strong{position:absolute;left:22px;bottom:22px;font-size:18px}.kid-card em{position:absolute;right:20px;font-size:24px;font-style:normal;color:#a6a6b8}.two-col,.child-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:22px}.panel{background:#fff;border:1px solid #ededf5;border-radius:17px;padding:24px}.panel-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:13px}.panel-title h2{font-size:18px;margin:0;letter-spacing:-.3px}.text-btn{background:transparent;color:#5a5bda;font-size:13px;font-weight:700}.entry{display:flex;align-items:center;gap:12px;padding:15px 1px;border-top:1px solid #efeff5}.entry-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;font-size:20px;font-weight:500}.positive{background:#e9f8ec;color:#2aaf61}.negative{background:#ffeded;color:#ef6565}.entry-info{flex:1;min-width:0}.entry-info b,.entry-info span{display:block}.entry-info b{font-size:14px}.entry-info span{color:#9292a5;font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.money-plus{color:#20aa5c}.money-minus{color:#ed6262}.more{background:transparent;color:#a3a3b4;font-size:19px;margin-left:3px}.rule{display:flex;align-items:center;gap:11px;padding:13px 0;border-top:1px solid #efeff5}.rule-icon{background:#fff6df;width:39px;height:39px;display:grid;place-items:center;border-radius:11px;font-size:20px}.rule div{flex:1}.rule b,.rule small{display:block}.rule b{font-size:14px}.rule small{font-size:11px;color:#9292a5;margin-top:3px}.rule strong,.earn strong{color:#24a560;font-size:14px}.empty{color:#9292a5;text-align:center;padding:30px}.child-wrap{padding:37px 26px 58px;max-width:1000px}.child-picker{display:flex;justify-content:center;gap:10px;margin-bottom:23px}.child-chip{display:flex;align-items:center;gap:7px;background:transparent;color:#77778e;padding:5px 11px 5px 5px;border-radius:30px;font-weight:700}.child-chip span{width:29px;height:29px;font-size:16px}.child-chip.active{background:#efefff;color:#5758d5}.hero-balance{color:#fff;text-align:center;padding:29px 20px 24px;background:linear-gradient(135deg,#5758d5,#7c78e8);border-radius:22px;position:relative;overflow:hidden;margin-bottom:23px;box-shadow:0 16px 30px #5758d530}.hero-balance:before,.hero-balance:after{content:"";position:absolute;border-radius:50%;border:1px solid #ffffff25}.hero-balance:before{width:265px;height:265px;left:-112px;top:-145px}.hero-balance:after{width:180px;height:180px;right:-80px;bottom:-104px}.hero-avatar{position:relative;z-index:1;margin:auto;width:58px;height:58px;font-size:30px;border:3px solid #ffffff55}.hero-balance p{position:relative;z-index:1;font-size:14px;margin:9px 0 2px;opacity:.88}.hero-balance>strong{position:relative;z-index:1;display:block;font-size:43px;letter-spacing:-2px}.hero-balance>small{position:relative;z-index:1;font-size:12px;opacity:.75}.encourage{position:relative;z-index:1;margin:19px auto 0;background:#ffffff18;border:1px solid #ffffff2c;border-radius:9px;padding:8px;max-width:370px;font-size:12px}.spark{position:absolute;color:#eeefff;font-size:22px}.spark.one{top:35px;left:17%}.spark.two{right:15%;top:52px;font-size:16px}.earn{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #efeff5}.earn>span{font-size:23px}.earn div{flex:1}.earn b,.earn small{display:block}.earn b{font-size:14px}.earn small{font-size:11px;color:#9292a5;margin-top:3px}.parent-note{text-align:center;color:#9b9bb0;font-size:12px;margin:17px 0 0}.overlay{position:fixed;inset:0;background:#1f203a66;display:grid;place-items:center;padding:20px;z-index:5}.dialog{position:relative;background:#fff;border-radius:20px;padding:28px;max-width:470px;width:100%;box-shadow:0 25px 60px #17172e44}.dialog h2{margin:0 0 22px;font-size:22px}.dialog label{display:block;color:#5e5e74;font-size:13px;font-weight:700;margin:13px 0}.dialog input,.dialog select{display:block;width:100%;border:1px solid #dedeea;border-radius:9px;margin-top:6px;padding:11px;color:#292943;background:#fff;outline-color:#5b5ce2}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{width:100%;margin-top:13px}.close{position:absolute;right:17px;top:13px;background:none;color:#77778c;font-size:27px}@media(max-width:760px){header{height:65px;padding:0 16px}.brand{font-size:18px}.profile{display:none}.mode-switch button{padding:7px 9px;font-size:12px}.adult-wrap,.child-wrap{padding:29px 15px}.welcome{align-items:flex-start;gap:18px}.welcome h1{font-size:23px}.welcome small{display:none}.primary{padding:11px 13px;white-space:nowrap;font-size:13px}.overview,.two-col,.child-grid{grid-template-columns:1fr}.overview{gap:10px}.total-card{min-height:130px}.kid-card{min-height:104px}.two-col,.child-grid{gap:14px}.panel{padding:18px}.rules-panel{order:1}.entry{padding:13px 0}.entry-info span{max-width:175px}.child-wrap{padding-top:23px}.hero-balance{border-radius:17px}.hero-balance>strong{font-size:38px}.child-picker{margin-bottom:16px}.dialog{padding:24px 20px}.form-row{gap:8px}}.account-role{padding:7px 11px;border-radius:8px;background:#f0f0ff;color:#5b5ce2;font-size:12px;font-weight:700}.login-page{min-height:100vh;max-width:none;display:grid;grid-template-columns:minmax(420px,1fr) minmax(420px,.9fr);background:#fff}.login-card{width:min(410px,calc(100% - 42px));margin:auto;padding:45px 0}.login-brand{margin-bottom:52px}.login-card>p{color:#747590;font-size:13px;font-weight:700;margin:0 0 7px}.login-card h1{font-size:31px;letter-spacing:-1px;margin:0 0 8px}.login-card>small{color:#9292a6;line-height:1.7}.login-card form{margin-top:27px}.login-card label{display:block;margin:16px 0;color:#56566e;font-size:13px;font-weight:700}.login-card label small{font-weight:400;color:#9898aa}.login-card input{display:block;width:100%;padding:13px;border:1px solid #dedeea;border-radius:10px;margin-top:7px;outline-color:#5b5ce2}.login-error{height:17px;color:#dc5555;font-size:12px;margin:0}.demo-box{margin-top:31px;padding:15px 17px;border-radius:12px;background:#f7f7ff;color:#77778d;font-size:12px;line-height:1.75}.demo-box b,.demo-box span{display:block}.demo-box b{color:#56566e;margin-bottom:3px}.login-art{background:linear-gradient(145deg,#5a5bdc,#8581ed);color:#fff;padding:11vw max(5vw,40px);position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;width:500px;height:500px;right:-180px;bottom:-170px;border:40px solid #ffffff12;border-radius:50%}.login-art>div{font-size:42px;opacity:.8}.login-art>span{display:block;margin-top:22vh;font-size:65px}.login-art h2{font-size:38px;line-height:1.35;letter-spacing:-1.5px;margin:17px 0}.login-art p{opacity:.77;line-height:1.8}.login-art:before{content:"";position:absolute;width:220px;height:220px;left:-95px;top:-70px;border:1px solid #ffffff30;border-radius:50%}@media(max-width:760px){.account-role{display:none}.login-page{display:block}.login-card{padding:36px 0}.login-brand{margin-bottom:36px}.login-art{display:none}}.action-group{display:flex;gap:10px}.secondary{background:#eeefff;color:#5758d5;padding:13px 16px;border-radius:11px;font-weight:700}@media(max-width:760px){.action-group{gap:7px}.secondary{padding:11px 10px;font-size:12px}}.adult-wrap{position:relative}.add-child-corner{position:absolute;top:28px;right:26px;z-index:1;white-space:nowrap}@media(max-width:760px){.add-child-corner{top:15px;right:15px}}.entry-actions{position:relative;margin-left:3px}.entry-menu{position:absolute;z-index:4;right:0;top:28px;min-width:92px;overflow:hidden;border:1px solid #e2e2ee;border-radius:10px;background:#fff;box-shadow:0 10px 24px #20213b22}.entry-menu button{display:block;width:100%;padding:10px 12px;border:0;background:#fff;color:#4b4b65;text-align:left;font-weight:700}.entry-menu button:hover{background:#f4f4ff}.entry-menu .delete-option{color:#dc4d4d;border-top:1px solid #eeeeF5}.top-actions{display:flex;align-items:center;gap:10px}.logout-button{background:#fff;color:#63647b;border:1px solid #dedeea;border-radius:10px;padding:12px 15px;font-weight:700}.logout-button:hover{border-color:#a7a7d9;color:#4e4fbf}@media(max-width:760px){.top-actions{gap:7px}.logout-button{padding:10px 11px;font-size:12px}}@media(max-width:900px){.welcome{flex-wrap:wrap}.welcome h1{white-space:nowrap}.top-actions{width:100%;justify-content:flex-end}.top-actions button{flex:0 0 auto;white-space:nowrap}}.notification-button{position:absolute;z-index:2;top:12px;left:12px;margin:0;display:block;border:1px solid #ffffff66;background:#ffffff1c;color:#fff;border-radius:9px;padding:5px 8px;font-size:11px;line-height:1.2;font-weight:700}.notification-button.enabled{background:#ffffff36;border-color:#fff}.pull-refresh{position:fixed;z-index:20;left:50%;top:7px;transform:translate(-50%,-50px);transition:transform .18s ease;background:#35365f;color:#fff;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:700;box-shadow:0 6px 18px #17172e33;pointer-events:none}.pull-refresh.ready{background:#5b5ce2}.pull-refresh.refreshing{transform:translate(-50%,12px)!important}.pull-refresh.refreshing:first-letter{display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.logout-dialog{text-align:center;max-width:390px}.logout-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 14px;border-radius:50%;background:#f0efff;font-size:28px}.logout-dialog small{display:block;color:#85859a;line-height:1.6}.dialog-actions{display:flex;justify-content:center;gap:10px;margin-top:24px}.danger-button{background:#e65353;color:#fff;border-radius:10px;padding:11px 15px;font-weight:700}.logout-dialog .secondary{border:1px solid #dedeea;background:#fff;padding:11px 15px}.kid-card strong{position:static;margin-left:auto;align-self:center;white-space:nowrap}.kid-card em{position:static;margin-left:4px;align-self:center}html{touch-action:manipulation;overscroll-behavior:none}body{overscroll-behavior:none}@media(max-width:760px){input,select,textarea{font-size:16px!important}}.detail-header{display:flex;align-items:center;gap:16px;margin:0 0 24px}.detail-header p{margin:0 0 4px;color:#787996;font-size:13px;font-weight:700}.detail-header h1{margin:0;font-size:28px}.back-btn{padding:10px 13px;border-radius:9px;background:#eeefff;color:#5758d5;font-weight:700}@media(max-width:760px){.detail-header h1{font-size:22px}}.shared-rule{margin-top:26px;border:1px solid #ededf5;border-radius:17px;background:#fff;padding:22px 24px;display:flex;align-items:center;justify-content:space-between}.shared-rule p{margin:0 0 4px;color:#787996;font-size:13px;font-weight:700}.shared-rule h2{margin:0;font-size:18px}@media(max-width:760px){.shared-rule{padding:18px;gap:12px}.shared-rule .primary{font-size:12px;padding:11px}}.shared-rule{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.shared-rule-heading{min-width:0}.shared-rule h2{word-break:keep-all;white-space:nowrap}.shared-rule .primary{white-space:nowrap}.shared-rule-list{grid-column:1/-1;border-top:1px solid #efeff5}.shared-rule-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #efeff5}.shared-rule-item>span{font-size:24px}.shared-rule-item>div{flex:1;min-width:0}.shared-rule-item b,.shared-rule-item small{display:block}.shared-rule-item small{margin-top:3px;color:#9292a5;font-size:12px}.shared-rule-item strong{color:#20aa5c;white-space:nowrap}.shared-rule-item .edit-rule{margin-left:8px}@media(max-width:760px){.shared-rule{grid-template-columns:1fr;gap:12px}.shared-rule h2{white-space:normal;font-size:17px}.shared-rule .primary{width:100%}.shared-rule-item{gap:9px}.shared-rule-item .edit-rule{padding:6px 7px;font-size:11px}}.shared-rule{position:relative;display:block;padding:24px}.shared-rule-heading{padding-right:175px}.shared-rule .primary{position:absolute;top:22px;right:22px;width:auto;padding:10px 13px;font-size:12px}.shared-rule-list{margin-top:18px}@media(max-width:760px){.shared-rule{padding:20px}.shared-rule-heading{padding-right:145px}.shared-rule .primary{top:18px;right:18px;width:auto;padding:9px 10px;font-size:11px}.shared-rule h2{font-size:16px}}body:has(.child-wrap){overflow:hidden}.child-wrap{height:100dvh;overflow:hidden;display:flex;flex-direction:column}.child-grid{flex:1;min-height:0}.child-grid>.panel{min-height:0;overflow-y:auto;overscroll-behavior:none;-webkit-overflow-scrolling:auto}.child-grid>.panel .panel-title{position:sticky;top:-1px;z-index:1;background:#fff;padding-top:1px}@media(max-width:760px){.child-wrap{padding-bottom:15px}.child-grid{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.child-grid>.panel{padding-bottom:18px}.hero-balance{flex:0 0 auto;margin-bottom:14px}}.rule strong.money-minus,.earn strong.money-minus,.shared-rule-item strong.money-minus{color:#ed6262}.rule strong.money-plus,.earn strong.money-plus,.shared-rule-item strong.money-plus{color:#20aa5c}.edit-rule{margin-left:10px;border:1px solid #dcdcf1;border-radius:8px;background:#fff;color:#5b5ce2;padding:6px 9px;font-size:12px;font-weight:700}.sort-hint{display:block;margin-top:5px;color:#9a9aae;font-size:11px;font-weight:500}.draggable-rule{cursor:grab}.draggable-rule.dragging{opacity:.42}.drag-handle{flex:0 0 auto;padding:7px 4px;border:0;background:transparent;color:#a4a4b8;font-size:20px;line-height:1;cursor:grab;touch-action:none}.drag-handle:active{cursor:grabbing}.draggable-rule .edit-rule{margin-left:8px}@media(max-width:760px){.draggable-rule{gap:7px}.drag-handle{padding:8px 3px}.draggable-rule .edit-rule{padding:6px 7px;font-size:11px}}.delete-link{display:block;width:100%;margin:14px 0 0;border:0;background:transparent;color:#dc4d4d;font-weight:700;text-align:center;padding:8px}
