:root{font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:#242b39;background:#e9edf1;font-size:16px;font-synthesis:none;--orange:#f56b36;--green:#23846d;--muted:#7a8290;--line:#edf0f3;--surface:#f6f7fa}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #e99e56;outline-offset:3px}a{color:var(--green)}.desktop-label{max-width:430px;margin:22px auto 12px;letter-spacing:3px;font-size:13px;font-weight:800;color:#7a8290;display:flex;justify-content:space-between}.desktop-label span{letter-spacing:0;font-weight:400;font-size:12px}.phone{position:relative;max-width:430px;min-height:calc(100dvh - 64px);margin:0 auto;background:var(--surface);box-shadow:0 12px 60px #25304715;border-radius:26px 26px 0 0;overflow:hidden;padding-bottom:94px}.initial{padding:80px 25px;text-align:center}.top{padding:23px 22px 17px;display:flex;align-items:center;justify-content:space-between;background:#fff}.brand{display:flex;align-items:center;gap:10px}.brand-mark{background:var(--orange);color:#fff;padding:9px;border-radius:13px;display:grid;place-items:center}.brand b{font-size:20px;letter-spacing:1px}.brand small{display:block;font-size:11px;color:var(--muted);letter-spacing:1px;margin-top:2px}.avatar{width:38px;height:38px;border-radius:50%;background:#fff0e3;display:grid;place-items:center;font-size:20px}.content{padding:20px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:1.45;font-weight:750}h2{font-size:18px}h3{font-size:16px}.muted{color:var(--muted);font-size:14px;line-height:1.65}.tiny{font-size:12px;color:var(--muted);line-height:1.6}.mt{margin-top:18px}.mb{margin-bottom:18px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:24px 0 13px}.link{background:none;color:var(--muted);font-size:13px;padding:4px 0}.card{background:#fff;border-radius:19px;padding:19px;margin-bottom:12px;border:1px solid #eceff3}.welcome{padding:3px 0 20px}.welcome .muted{margin-top:5px}.hero{background:#ff703b;color:#fff;border:0;position:relative;overflow:hidden;padding:23px}.hero p{color:#ffebdf}.hero h2{font-size:23px;line-height:1.55}.hero .hero-icon{font-size:52px}.hero .pill{background:#ffffff25;color:white}.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;border-radius:7px;padding:4px 8px;background:#eef6f3;color:var(--green)}.pill.orange{background:#fff0e5;color:#c96928}.pill.purple{background:#f0ecff;color:#7b61ba}.pill.gray{background:#f0f2f5;color:#7a8290}.btn{padding:12px 17px;border-radius:12px;background:var(--orange);color:#fff;font-size:14px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:43px}.btn.secondary{background:#fff3e9;color:#ba5729}.btn.ghost{background:#f1f3f6;color:#59616f}.btn.green{background:#23846d}.btn.white{background:#fff;color:#db5e2c}.btn.danger{background:#fff0ef;color:#c44040}.btn.small{min-height:34px;padding:8px 12px;font-size:13px}.full{width:100%}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 9px;text-align:center}.stat strong{display:block;font-size:22px;margin:8px 0 3px;letter-spacing:-.6px}.stat small{font-size:12px;color:var(--muted)}.stat svg{color:var(--orange)}.meal-row,.task-row,.list-row{display:flex;gap:13px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.meal-row:last-child,.task-row:last-child,.list-row:last-child{border:0;padding-bottom:0}.meal-row:first-child,.task-row:first-child{padding-top:0}.food-icon,.task-icon{width:47px;height:47px;background:#fff4e7;border-radius:14px;display:grid;place-items:center;flex-shrink:0;font-size:25px}.meal-row b,.task-row b{font-size:14px}.meal-row small,.task-row small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.points{color:var(--orange);font-weight:700;font-size:14px;white-space:nowrap}.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(430px,100%);display:flex;align-items:center;justify-content:space-around;background:#ffffffef;border-top:1px solid #e9edf1;padding:11px 7px max(13px,env(safe-area-inset-bottom));z-index:10;backdrop-filter:blur(12px)}.nav button{background:none;color:#9399a4;display:flex;flex-direction:column;gap:5px;align-items:center;font-size:11px;min-width:55px}.nav button.active{color:var(--orange)}.nav .bank-nav svg{background:#fff0e5;border-radius:10px;width:34px;height:30px;padding:4px}.icon{width:21px;height:21px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tabs{display:flex;gap:6px;overflow-x:auto;padding:4px;background:#eceff3;border-radius:12px;margin:15px 0}.tabs button{white-space:nowrap;flex:1;background:none;color:#737b89;font-size:13px;padding:10px 8px;border-radius:9px}.tabs button.active{background:#fff;color:#292f3d;box-shadow:0 2px 6px #26314a08}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;font-size:14px;color:#515a68}input,select,textarea{width:100%;border:1px solid #dfe4e9;padding:11px 12px;border-radius:10px;background:#fff;color:#242b39;min-width:0;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px #ff703b15}textarea{resize:vertical;min-height:75px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--orange);flex-shrink:0}input[type=date],input[type=month]{min-height:42px}.check{display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.7;margin:12px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.notice{background:#fff4e8;color:#a4612b;border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.8;margin-bottom:15px}.notice.green{background:#ecf6f2;color:#25755e}.empty{text-align:center;padding:35px 15px;color:var(--muted);font-size:14px;line-height:1.8}.empty .emoji{font-size:35px;display:block;margin-bottom:12px}.progress{height:7px;border-radius:5px;background:#edf0f4;overflow:hidden;margin:10px 0}.progress>span{display:block;height:100%;background:var(--orange);border-radius:5px}.hero .progress{background:#ffffff38}.hero .progress>span{background:#fff}.amount{font-size:34px;font-weight:760;letter-spacing:-1px}.money{font-variant-numeric:tabular-nums;font-weight:700}.positive{color:var(--green)}.negative{color:#d9683c}.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.badge-card{text-align:center;padding:15px 5px;background:#fff;border:1px solid var(--line);border-radius:15px}.badge-card .emoji{display:block;font-size:34px;margin:8px}.badge-card.locked{filter:grayscale(1);opacity:.6}.badge-card b{font-size:13px}.badge-card small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.modal-backdrop{position:fixed;inset:0;background:#19233477;z-index:30;display:flex;justify-content:center;align-items:center;padding:15px;backdrop-filter:blur(3px)}dialog{position:relative;border:0;border-radius:23px;max-width:410px;width:100%;max-height:90dvh;overflow-y:auto;background:#fff;color:#242b39;padding:22px;margin:auto;box-shadow:0 20px 80px #0002}dialog h2{padding-right:28px;margin-bottom:18px}dialog .close{position:absolute;right:17px;top:16px;border-radius:50%;background:#f2f4f7;width:30px;height:30px;color:#777}.dialog-body{font-size:14px;line-height:1.7}.signature{width:100%;height:115px;touch-action:none;border:1px dashed #ccd4dc;border-radius:12px;background:#fafbfc;display:block}.stamp{display:flex;justify-content:center;align-items:center;gap:8px;padding:14px;width:100%;border:1px dashed #e5a78c;border-radius:12px;color:#cc683d;background:#fff8f2;touch-action:none;user-select:none;-webkit-user-select:none}.stamp.done{border-color:#278c70;color:#278c70;background:#f1faf5}.agreement{font-size:14px;line-height:1.9;background:#faf8f4;border-radius:12px;padding:16px;white-space:pre-wrap}.auth{padding:24px}.auth .logo-large{background:var(--orange);color:#fff;width:62px;height:62px;border-radius:20px;display:grid;place-items:center;margin:15px 0 22px}.auth .logo-large svg{width:33px;height:33px}.auth h1{font-size:28px}.auth form{margin-top:24px}.auth .intro{color:#8a8f98;font-size:14px;margin-top:10px;line-height:1.8}.demo-box{border:1px dashed #e8bba4;background:#fff6ed;border-radius:15px;padding:15px;font-size:13px;line-height:1.9;margin-top:20px}.menu-row{display:flex;align-items:center;gap:12px;padding:15px 0;color:inherit;text-decoration:none;background:none;width:100%;text-align:left;border-bottom:1px solid var(--line);font-size:14px}.menu-row:last-child{border:0}.menu-row svg{color:#8c94a2}.icon-btn{padding:7px;background:none;color:#828c98;border-radius:8px}.hr{border:0;border-top:1px solid var(--line);margin:16px 0}#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);max-width:360px;width:max-content;z-index:60;border-radius:12px;background:#252b39ee;color:#fff;padding:12px 18px;font-size:14px;line-height:1.6;display:none;box-shadow:0 5px 20px #0002}.child-strip{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.child-strip select{width:auto;max-width:180px;border:0;background:#fff;padding:8px 12px;font-size:14px}.week{display:flex;gap:5px;margin:15px 0}.day{flex:1;padding:10px 0;text-align:center;border-radius:12px;background:#fff;font-size:12px;color:var(--muted);border:1px solid #eef0f4}.day b{display:block;font-size:17px;margin-top:5px}.day.active{background:var(--orange);border-color:var(--orange);color:white}.chart{display:flex;align-items:flex-end;justify-content:space-between;height:110px;gap:10px;margin-top:18px}.bar-col{flex:1;text-align:center;font-size:11px;color:var(--muted)}.bar{background:#ffd9c5;border-radius:5px 5px 0 0;min-height:3px;margin:0 auto 7px;max-width:26px}.bar-col:last-child .bar{background:var(--orange)}.error{color:#b94936;background:#fff1ee;padding:10px;border-radius:10px;margin:10px 0;font-size:13px}.sync{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#81928b}.sync::before{content:'';width:5px;height:5px;border-radius:50%;background:#58a48b}.divider-title{font-size:12px;color:#9299a4;margin:18px 0 10px}.balance-box{background:#253c39;color:white}.balance-box .muted{color:#c6d9d1}.balance-box .pill{background:#ffffff1c;color:#d9eee6}.hidden{display:none!important}.signature-preview{width:100%;height:100px;background:#fafbfc}.footnote{font-size:12px;color:#9099a5;line-height:1.8;text-align:center;margin:24px 0 6px}@media(max-width:480px){:root{background:#f6f7fa}.desktop-label{display:none}.phone{width:100%;max-width:100%;min-height:100dvh;border-radius:0;box-shadow:none}.nav{width:100%;max-width:480px}dialog{max-width:430px}.content{padding:18px}.top{padding:19px 20px 15px}}@media(prefers-reduced-motion:no-preference){.card{animation:appear .22s ease-out}@keyframes appear{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}

.syncbar{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 20px;background:#fff}.allergen-options{border:1px solid var(--line);border-radius:10px;margin-bottom:14px;padding:10px}.allergen-options .check{display:inline-flex;margin:6px;font-size:14px}fieldset{border:1px solid var(--line);border-radius:12px;padding:12px}.tiny,.nav button,.link{font-size:14px}.nav button{min-height:44px}.btn.small{min-height:44px}input,select,textarea{font-size:16px}.hero h2{font-size:20px}.hero{padding:18px}.hero-icon{display:none}.hero .mt{margin-top:10px}.stat strong{font-size:20px;overflow-wrap:anywhere}h1{font-size:23px;overflow-wrap:anywhere}

.coin-symbol{display:grid;place-items:center;width:38px;height:38px;border:2px solid #ffffff88;border-radius:50%;color:white}.recovery-code{display:block;overflow-wrap:anywhere;background:#f3f5f8;padding:16px;margin-top:16px;font-size:17px}.field{min-width:0}.row{min-width:0}.link,.icon-btn,.close,.avatar{min-height:44px;min-width:44px}.check{min-height:44px;align-items:center}.check input{flex:none}.dialog-body{overflow-wrap:anywhere}.top small,.pill,.sync,.footnote,.divider-title{font-size:13px}.tabs button{font-size:14px;min-height:44px}.nav{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.row.wrap{row-gap:10px}.row:has(fieldset){flex-wrap:wrap}h3,b{overflow-wrap:anywhere}@media(max-width:360px){.content{padding:14px}.card{padding:15px}.btn{padding:10px}.tabs button{padding:10px 7px}.bank-nav span{white-space:nowrap}.syncbar{flex-wrap:wrap}.row:has(.day){gap:3px}}
