.auth-methods{background:#f1f5f2;border-radius:13px;grid-template-columns:1fr 1fr;gap:8px;margin:-2px 0 18px;padding:4px;display:grid}.auth-methods button{min-height:38px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;font-size:13px;font-weight:800}.auth-methods button.active{color:var(--green);background:#fff;box-shadow:0 2px 7px #1d3c2a16}.auth-code-row{grid-template-columns:minmax(0,1fr) 118px;gap:9px;display:grid}.auth-code-button{color:var(--green);font:inherit;cursor:pointer;background:#eff8f3;border:1px solid #2c7b61;border-radius:13px;font-size:12px;font-weight:800}.auth-code-button:disabled{color:#a1aaa5;cursor:not-allowed;background:#f4f6f5;border-color:#d2dad5}.auth-code-button:focus-visible,.auth-methods button:focus-visible{outline-offset:2px;outline:3px solid #4d91dc}:root{--ink:#25332d;--muted:#69756f;--line:#e4e9e5;--cream:#f5f6f1;--green:#26715a;--green-soft:#e3f1e9;--yellow:#f2bf43;--yellow-soft:#fff5d9;--shadow:0 10px 30px #2c463a12}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);margin:0;font-family:Arial,Microsoft YaHei,sans-serif;font-size:16px}.adventure-map{box-shadow:var(--shadow);background:linear-gradient(135deg,#fff8df 0%,#eef9f1 60%,#e0f2ec 100%);border:1px solid #cde7d8;border-radius:24px;grid-template-columns:minmax(210px,.8fr) minmax(480px,1.4fr);align-items:center;gap:24px;margin:0 0 24px;padding:24px 28px;display:grid;position:relative;overflow:hidden}.adventure-map:after{content:"";background:#f5d16d48;border-radius:50%;width:280px;height:280px;position:absolute;bottom:-120px;right:-70px}.adventure-copy{z-index:1;position:relative}.adventure-copy h2{margin:5px 0 8px;font-size:22px}.adventure-copy p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.adventure-route{z-index:1;grid-template-columns:repeat(4,1fr);gap:10px;display:grid;position:relative}.adventure-route:before{content:"";background:#c6ddca;border-radius:99px;height:4px;position:absolute;top:23px;left:10%;right:10%}.route-stop{text-align:center;justify-items:center;gap:5px;display:grid;position:relative}.route-number{z-index:1;color:#fff;background:#c5d1c7;border:3px solid #fff;border-radius:50%;place-items:center;width:46px;height:46px;font-weight:900;display:grid;box-shadow:0 4px 10px #5d766526}.route-stop.unlocked .route-number{color:#6a5313;background:#f3bf43}.route-stop b{font-size:13px}.route-stop small{max-width:120px;color:var(--muted);font-size:10px;line-height:1.35}.route-stop.locked{filter:saturate(.65)}.badge-shelf{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;grid-template-columns:1.5fr repeat(4,1fr);align-items:stretch;gap:11px;margin:2px 0 32px;padding:19px;display:grid}.badge-shelf h2{margin:4px 0 0;font-size:18px}.badge-item{color:#a5aea8;text-align:center;filter:grayscale();background:#f4f5f1;border-radius:16px;align-content:center;justify-items:center;min-height:112px;padding:12px 6px;display:grid}.badge-item>span{background:#e1e5e0;border-radius:14px;place-items:center;width:42px;height:42px;margin-bottom:7px;display:grid}.badge-item b{font-size:11px}.badge-item small{margin-top:4px;font-size:10px}.badge-item.earned{color:#5b4c22;filter:none;background:#fff7df}.badge-item.earned>span{color:#73571c;background:#f3c547}.parent-desk{box-shadow:var(--shadow);background:linear-gradient(120deg,#f9f6ff,#f5fbf7);border:1px solid #d8d2eb;border-radius:22px;grid-template-columns:1fr auto;align-items:center;gap:20px;margin:0 0 26px;padding:24px;display:grid}.parent-desk h2{margin:5px 0 7px;font-size:21px}.parent-desk p{max-width:600px;color:var(--muted);margin:0;font-size:13px;line-height:1.6}.parent-actions{gap:12px;min-width:240px;display:grid}.secret-toggle{align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.secret-toggle input{width:17px;height:17px;accent-color:var(--green)}.request-list{gap:7px;display:grid}.request-list button{color:#fff;min-height:38px;font:inherit;cursor:pointer;background:#7066a7;border:0;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:800}.parent-actions>small{color:var(--muted);font-size:12px}.habit-card,.reward-item button,.pet-home-card,.route-stop,.badge-item{transition:transform .2s,box-shadow .2s,background-color .2s}.habit-card:active,.reward-item button:active,.pet-home-card:active{transform:scale(.985)}@media (prefers-reduced-motion:reduce){.habit-card,.reward-item button,.pet-home-card,.route-stop,.badge-item{transition:none!important}}@media (max-width:1050px){.adventure-map{grid-template-columns:1fr}.badge-shelf{grid-template-columns:repeat(4,1fr)}.badge-shelf>div:first-child{grid-column:1/-1}.parent-desk{grid-template-columns:1fr}.parent-actions{min-width:0}}@media (max-width:720px){.adventure-map{padding:20px 15px}.adventure-route{grid-template-columns:repeat(2,1fr);gap:16px}.adventure-route:before{display:none}.route-stop{text-align:left;grid-template-columns:46px 1fr;justify-items:start}.route-stop b{align-self:end}.route-stop small{grid-column:2;max-width:none}.badge-shelf{grid-template-columns:repeat(2,1fr)}.badge-item{min-height:96px}}.auth-loading{min-height:100vh;color:var(--green);place-items:center;font-weight:800;display:grid}.auth-shell{background:#fff;grid-template-columns:minmax(380px,1.05fr) minmax(420px,.95fr);min-height:100vh;display:grid}.auth-brand-panel{color:#fff;background:linear-gradient(145deg,#1f6651 0%,#2c7b61 60%,#3c8c70 100%);flex-direction:column;min-height:100vh;padding:44px clamp(38px,6vw,92px);display:flex;position:relative;overflow:hidden}.auth-brand{z-index:1;color:#fff;align-items:center;gap:11px;width:max-content;font-size:20px;font-weight:800;text-decoration:none;display:flex;position:relative}.auth-brand .brandmark{color:var(--green);background:#fff}.auth-welcome{z-index:1;max-width:590px;margin:auto 0;padding:60px 0;position:relative}.auth-kicker{letter-spacing:.08em;background:#ffffff12;border:1px solid #ffffff40;border-radius:99px;margin-bottom:20px;padding:8px 13px;font-size:13px;font-weight:800;display:inline-block}.auth-welcome h1{letter-spacing:-.04em;margin:0 0 24px;font-size:clamp(42px,5vw,72px);line-height:1.08}.auth-welcome>p{color:#e4f2ec;max-width:520px;margin:0;font-size:17px;line-height:1.8}.auth-benefits{gap:13px;margin-top:34px;display:grid}.auth-benefits span{color:#f3faf6;align-items:center;gap:10px;font-size:14px;font-weight:700;display:flex}.auth-benefits svg{color:#f5cf68}.auth-stars{color:#ffffff0b;font-size:420px;line-height:1;position:absolute;bottom:-125px;right:-50px;transform:rotate(14deg)}.auth-form-panel{background:linear-gradient(#fff 0%,#f7f8f3 100%);place-items:center;padding:42px clamp(24px,6vw,90px);display:grid}.auth-card{border:1px solid var(--line);background:#fff;border-radius:26px;width:min(100%,440px);padding:38px;box-shadow:0 22px 70px #2c463a1f}.auth-card-heading{margin-bottom:28px}.auth-card-heading>span{color:var(--green);font-size:13px;font-weight:800}.auth-card-heading h2{letter-spacing:-.03em;margin:8px 0;font-size:30px}.auth-card-heading p{color:var(--muted);margin:0;font-size:14px}.auth-field{gap:8px;margin-bottom:18px;display:grid}.auth-field>span{font-size:13px;font-weight:800}.auth-field input{width:100%;height:50px;color:var(--ink);font:inherit;background:#fbfcfa;border:1px solid #ccd6d0;border-radius:13px;padding:0 15px;transition:border-color .2s,box-shadow .2s}.auth-field input::placeholder{color:#a1aaa5}.auth-field input:focus{border-color:var(--green);outline:0;box-shadow:0 0 0 3px #26715a1c}.auth-field-hint{color:var(--muted);margin-top:-2px;font-size:11px}.auth-error{color:#a53b32;background:#fff0ee;border-radius:10px;margin:-4px 0 14px;padding:10px 12px;font-size:13px}.auth-submit{background:var(--green);color:#fff;width:100%;min-height:50px;font:inherit;cursor:pointer;border:0;border-radius:13px;margin-top:4px;font-weight:800;box-shadow:0 8px 20px #26715a30}.auth-submit:hover{background:#1d604c}.auth-submit:focus-visible,.auth-switch button:focus-visible,.logout-button:focus-visible{outline-offset:2px;outline:3px solid #4d91dc}.auth-switch{text-align:center;color:var(--muted);margin:22px 0 0;font-size:14px}.auth-switch button{color:var(--green);font:inherit;cursor:pointer;background:0 0;border:0;margin-left:6px;padding:3px;font-weight:800}.auth-local-note{border-top:1px solid var(--line);color:#87908b;text-align:center;margin:22px 0 0;padding-top:18px;font-size:11px;line-height:1.6}.logout-button{border:1px solid var(--line);min-height:38px;color:var(--muted);cursor:pointer;background:#fff;border-radius:10px;padding:0 12px;font-weight:700}.logout-button:hover{color:var(--ink);border-color:#bdc9c2}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#fff;justify-content:space-between;align-items:center;height:76px;padding:0 40px;display:flex;position:sticky;top:0}@media (max-width:850px){.auth-shell{grid-template-columns:1fr}.auth-brand-panel{min-height:auto;padding:28px 24px 34px}.auth-welcome{padding:56px 0 18px}.auth-welcome h1{font-size:42px}.auth-benefits{display:none}.auth-form-panel{padding:30px 18px 48px}.auth-card{padding:28px 22px}.auth-stars{font-size:250px;bottom:-90px;right:-20px}}@media (max-width:620px){.logout-button{padding:0 9px}.profile>span:last-child{display:none}}.brand{color:var(--ink);align-items:center;gap:11px;font-size:19px;font-weight:800;text-decoration:none;display:flex}.brandmark{background:var(--green);color:#fff;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.date-pill{background:var(--cream);color:#53615a;border-radius:99px;padding:10px 18px;font-size:14px}.profile{align-items:center;gap:10px;display:flex}.profile>span:last-child{flex-direction:column;display:flex}.profile b{font-size:14px}.profile small{color:var(--muted);font-size:12px}.avatar{color:#6c5017;background:#f3d28a;border-radius:50%;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.shell{grid-template-columns:220px 1fr;gap:36px;max-width:1440px;margin:auto;padding:32px 40px 64px;display:grid}.sidebar{flex-direction:column;justify-content:space-between;height:calc(100vh - 140px);display:flex;position:sticky;top:108px}.sidebar nav{gap:8px;display:grid}.sidebar a{color:#66736d;border-radius:13px;align-items:center;gap:12px;min-height:48px;padding:0 14px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.sidebar a.active{background:var(--green);color:#fff;box-shadow:0 6px 18px #26715a2e}.side-note{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;padding:18px}.side-note span,.side-note small{color:var(--muted);font-size:12px;display:block}.side-note strong{margin:5px 0 12px;display:block}.mini-progress,.progress-track{background:#e7ece8;border-radius:20px;height:8px;overflow:hidden}.mini-progress i,.progress-track i{background:var(--green);border-radius:inherit;width:60%;height:100%;transition:width .25s;display:block}.side-note small{margin-top:10px}.content{min-width:0}.welcome{justify-content:space-between;align-items:center;margin:4px 0 28px;display:flex}.eyebrow{color:var(--green);letter-spacing:.06em;margin-bottom:8px;font-size:13px;font-weight:800;display:block}.welcome h1{letter-spacing:-.04em;margin:0 0 9px;font-size:34px}.welcome p{color:var(--muted);margin:0}.star-summary{align-items:stretch;gap:10px;display:flex}.today-score{min-width:150px;box-shadow:var(--shadow);border:1px solid var(--line);text-align:center;background:#fff;border-radius:18px;padding:15px 20px}.today-score>span,.today-score small{color:var(--muted);font-size:12px;display:block}.today-score strong{color:#a66e00;justify-content:center;align-items:center;gap:5px;margin:3px 0;font-size:28px;display:flex}.total-score{min-width:142px;box-shadow:var(--shadow);text-align:center;background:linear-gradient(145deg,#effaf2,#e1f2e7);border:1px solid #cfe4d6;border-radius:18px;padding:14px 17px}.total-score>span,.total-score small{color:#5f776a;font-size:12px;display:block}.total-score strong{color:#287354;justify-content:center;align-items:center;gap:4px;margin:4px 0 2px;font-size:25px;display:flex}.overview-grid{grid-template-columns:1.2fr 1fr;gap:16px;margin-bottom:34px;display:grid}.progress-card,.star-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;padding:22px}.card-heading{justify-content:space-between;align-items:center;display:flex}.card-heading>div{align-items:baseline;gap:16px;display:flex}.card-heading span,.star-card span{color:var(--muted);font-size:13px;font-weight:700}.card-heading strong,.star-card strong{font-size:24px}.card-heading small,.star-card small{color:var(--muted);font-size:13px}.percent{color:var(--green)!important}.progress-track{height:10px;margin:17px 0 10px}.progress-card p,.star-card p{color:var(--muted);margin:0;font-size:13px}.star-card{background:var(--yellow-soft);border-color:#f4dfaa;align-items:center;gap:15px;display:flex}.star-orb{background:var(--yellow);color:#fff;border-radius:17px;place-items:center;width:54px;height:54px;display:grid}.star-card>div:nth-child(2){flex:1}.star-card strong{margin:3px 0;display:block}.star-card button{background:var(--green);color:#fff;border:0;border-radius:12px;padding:11px 16px;font-weight:700}.star-card button:disabled{color:#7b817b;background:#d7d8cf}.habit-section{background:linear-gradient(135deg,#f9fdf9,#f1f8f3);border:1px solid #d8e7dc;border-radius:24px;margin-bottom:24px;padding:20px;scroll-margin-top:100px;position:relative;overflow:hidden}.habit-section:before{content:"";background:#f7d66a24;border-radius:50%;width:118px;height:118px;position:absolute;top:-38px;right:-26px}.habit-section>*{z-index:1;position:relative}.life-section{background:linear-gradient(135deg,#f8fdf7,#edf8f2)}.study-section{background:linear-gradient(135deg,#fbfcff,#eff6ff);border-color:#d9e5ef}.shine-section{background:linear-gradient(135deg,#fffdf7,#fff5df);border-color:#eddfbd}.study-section:before{background:#8ac3ec20}.shine-section:before{background:#f5c5542c}.section-title{justify-content:space-between;align-items:end;margin-bottom:14px;display:flex}.section-title h2{margin:0 0 4px;font-size:20px}.section-title p{color:var(--muted);margin:0;font-size:13px}.section-title>span{color:var(--green);font-size:13px;font-weight:800}.section-actions>span{min-width:46px;min-height:36px;color:var(--green);background:#fff;border-radius:12px;place-items:center;padding:0 10px;display:grid;box-shadow:0 4px 10px #3c624e12}.shine-section .section-actions>span{color:#9a6a15}.habit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.habit-card{text-align:left;min-height:108px;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:linear-gradient(145deg,#fff,#fcfffc);border-radius:18px;align-items:flex-start;gap:13px;padding:18px;transition:all .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 20px #2c463a0d}.habit-card:before{content:"";background:#c9ead51f;border-radius:50%;width:82px;height:82px;position:absolute;bottom:-25px;right:-20px}.study-section .habit-card:before{background:#c6e2f51f}.shine-section .habit-card:before{background:#f8d47023}.habit-card:hover{border-color:#8db8a7;transform:translateY(-3px);box-shadow:0 14px 28px #2c463a18}.habit-card:active{transform:scale(.98)}.habit-card:focus-visible,.star-card button:focus-visible,.sidebar a:focus-visible{outline-offset:3px;outline:3px solid #4d91dc}.habit-card.checked{background:var(--green-soft);border-color:#8db8a7}.habit-icon{width:40px;height:40px;color:var(--green);background:linear-gradient(145deg,#edf7f0,#e1f0e7);border-radius:12px;flex:none;place-items:center;display:grid}.study-section .habit-icon{color:#417ca4;background:linear-gradient(145deg,#edf7fe,#deeffa)}.shine-section .habit-icon{color:#9b6d15;background:linear-gradient(145deg,#fff7df,#faebbd)}.checked .habit-icon{background:var(--green);color:#fff}.certificate-wall{box-shadow:var(--shadow);background:linear-gradient(135deg,#fffdf4,#fff7e5 55%,#f4fbf4);border:1px solid #eadfbb;border-radius:24px;margin:0 0 28px;padding:24px;position:relative;overflow:hidden}.certificate-wall:after{content:"";background:#f5ce5b2e;border-radius:50%;width:190px;height:190px;position:absolute;top:-65px;right:-48px}.certificate-wall>*{z-index:1;position:relative}.certificate-wall-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.certificate-wall h2{margin:4px 0 5px;font-size:23px}.certificate-wall p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.certificate-upload{color:#8a6416;cursor:pointer;background:#fffdf7;border:1px solid #cfaa53;border-radius:13px;justify-content:center;align-items:center;min-height:42px;padding:0 14px;font-size:13px;font-weight:800;display:inline-flex;box-shadow:0 6px 14px #936b1812}.certificate-upload input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.certificate-notice{color:#8a6416;background:#fff1cf;border-radius:10px;padding:9px 11px;font-weight:700;margin:14px 0 0!important;font-size:12px!important}.certificate-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px;display:grid}.certificate-card{background:#fff;border:1px solid #eadbb8;border-radius:16px;overflow:hidden;box-shadow:0 9px 20px #7b602012}.certificate-preview{aspect-ratio:1.28;cursor:zoom-in;background:#f7f1e5;border:0;width:100%;display:block}.certificate-preview img{object-fit:cover;width:100%;height:100%;transition:transform .25s}.certificate-preview:hover img{transform:scale(1.05)}.certificate-card>div{grid-template-columns:1fr auto;gap:3px;padding:11px;display:grid}.certificate-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.certificate-card small{color:var(--muted);font-size:11px}.certificate-card>div button{color:#b25b42;font:inherit;cursor:pointer;background:0 0;border:0;grid-area:1/2/3;padding:3px;font-size:11px}.certificate-empty{text-align:center;background:#fffdf8;border:1px dashed #d9c789;border-radius:18px;justify-items:center;gap:6px;min-height:170px;margin-top:18px;padding:30px;display:grid}.certificate-empty>span{font-size:34px}.certificate-empty b{font-size:15px}.certificate-empty p{max-width:370px;font-size:12px}.certificate-modal{width:min(680px,100%)}.certificate-modal>img{object-fit:contain;background:#fff;border:1px solid #e4d7b7;border-radius:16px;max-width:100%;max-height:62vh;margin:18px auto 0;display:block}.certificate-modal .modal-actions button:first-child{color:#b25142;background:#fff1ed}.habit-copy{flex-direction:column;padding-right:15px;display:flex}.habit-copy b{font-size:15px}.habit-copy small{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.5}.stars{color:#8b5d00;align-items:center;font-size:12px;font-weight:800;display:flex;position:absolute;bottom:13px;left:70px}.check-circle{color:#fff;border:1.5px solid #ccd5d0;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:absolute;top:13px;right:13px}.checked .check-circle{background:var(--green);border-color:var(--green)}.rules{gap:12px;margin-top:38px;display:grid}.rule{border:1px solid;border-radius:18px;align-items:center;gap:14px;padding:18px 20px;display:flex}.rule-icon{border-radius:13px;flex:none;place-items:center;width:44px;height:44px;display:grid}.rule h3{margin:0 0 4px;font-size:15px}.rule p{color:var(--muted);margin:0;font-size:13px}.rule.good{background:#fff7df;border-color:#efdaa1}.rule.good .rule-icon{color:#604600;background:#f3c553}.rule.warn{background:#fff1eb;border-color:#f1c5b5}.rule.warn .rule-icon{color:#fff;background:#d66b46}.rule.safe{background:#e9f4ee;border-color:#b9d9ca}.rule.safe .rule-icon{background:var(--green);color:#fff}.chore{white-space:nowrap;background:#ffffffb3;border-radius:10px;margin-left:auto;padding:8px 12px;font-size:12px;font-weight:800}@media (max-width:1000px){.shell{grid-template-columns:1fr}.sidebar{height:auto;display:block;position:static}.sidebar nav{display:flex}.sidebar nav a{flex:1;justify-content:center}.side-note{display:none}.habit-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:680px){.topbar{height:66px;padding:0 18px}.brand{font-size:17px}.date-pill,.profile small{display:none}.shell{gap:22px;padding:22px 16px 50px}.sidebar{z-index:30;border-top:1px solid var(--line);padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fff;height:auto;position:fixed;inset:auto 0 0}.sidebar nav{gap:4px}.sidebar nav a{flex-direction:column;gap:3px;min-height:48px;padding:4px;font-size:11px;color:var(--muted)!important;box-shadow:none!important;background:0 0!important}.sidebar nav a.active{color:var(--green)!important}.content{padding-bottom:72px}.welcome{flex-direction:column;align-items:flex-start;gap:10px}.star-summary{width:100%}.today-score,.total-score{flex:1;min-width:0;padding-inline:10px}.welcome h1{font-size:28px}.welcome p{font-size:14px}.today-score{min-width:94px;padding:12px}.overview-grid,.habit-grid{grid-template-columns:1fr}.habit-card{min-height:96px}.rule{align-items:flex-start}.chore{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.penalty-panel{box-shadow:var(--shadow);border:1px solid;border-radius:20px;padding:20px}.penalty-panel.is-active{background:#fff1eb;border-color:#efbca9}.penalty-panel.is-safe{background:#e9f4ee;border-color:#b9d9ca}.penalty-head{align-items:center;gap:14px;display:flex}.penalty-panel.is-active .rule-icon{color:#fff;background:#d66b46}.penalty-panel.is-safe .rule-icon{background:var(--green);color:#fff}.penalty-head>div{flex:1}.penalty-label{color:#a84d2f;letter-spacing:.05em;margin-bottom:4px;font-size:11px;font-weight:800;display:block}.penalty-head h3{margin:0 0 4px;font-size:17px}.penalty-head p{color:var(--muted);margin:0;font-size:13px}.status-badge{color:#a84d2f;white-space:nowrap;background:#fff;border:1px solid #efbca9;border-radius:99px;padding:7px 11px;font-size:12px;font-weight:800}.status-badge.finished{background:var(--green);border-color:var(--green);color:#fff}.penalty-choices{grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 14px;display:grid}.penalty-library{border-top:1px solid #f0d9cf;margin-top:12px;padding-top:15px}.penalty-library-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.penalty-library h4{margin:0 0 3px;font-size:14px}.penalty-library p{color:var(--muted);margin:0;font-size:12px}.penalty-library-head>button{color:#b55536;min-height:34px;font:inherit;cursor:pointer;background:#fff;border:1px solid #d66b46;border-radius:9px;padding:0 10px;font-size:12px;font-weight:800}.penalty-library-list{gap:7px;display:grid}.penalty-library-item{background:#fff;border:1px solid #f0ddd5;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;display:flex}.penalty-library-item>span{font-size:13px;font-weight:700}.penalty-library-item>div{gap:6px;display:flex}.penalty-library-item button{color:#8d6e62;font:inherit;cursor:pointer;background:0 0;border:0;font-size:12px}.penalty-library-item button:last-child{color:#b34f42}.penalty-section-title{justify-content:space-between;align-items:center;gap:12px;margin:20px 0 12px;display:flex}.penalty-section-title h4{margin:0 0 3px;font-size:16px}.penalty-section-title p{color:var(--muted);margin:0;font-size:12px}.penalty-section-title>button{color:#b55536;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #d66b46;border-radius:10px;padding:0 11px;font-size:12px;font-weight:800}.penalty-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.penalty-item{background:#fff;border:1px solid #efd8ce;border-radius:18px;grid-template-columns:48px 1fr;gap:11px;padding:16px;display:grid;box-shadow:0 10px 24px #7458450b}.penalty-item.selected{background:#fffaf7;border-color:#da8e70}.penalty-item-icon{color:#bf6443;background:#fff1e9;border-radius:15px;place-items:center;width:48px;height:48px;display:grid}.penalty-item h4{margin:3px 0 5px;font-size:15px}.penalty-item p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.penalty-item>button{color:#fff;min-height:42px;font:inherit;cursor:pointer;background:#d66b46;border:0;border-radius:11px;grid-column:1/-1;justify-content:center;align-items:center;gap:7px;margin-top:4px;font-weight:800;display:flex}.penalty-item>button.undo{color:#56615b;background:#edf0ed}.penalty-manage{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.penalty-manage button{color:#9a7162;font:inherit;cursor:pointer;background:0 0;border:0;font-size:12px}.penalty-manage button:last-child{color:#b34f42}.penalty-empty{color:#8b6c60;text-align:center;background:#fff8f3;border:1px dashed #e1b8a6;border-radius:15px;padding:18px;font-size:13px}.penalty-choices button{color:#6b4a3e;cursor:pointer;background:#fff9f6;border:1px solid #e2b7a7;border-radius:12px;min-height:46px;padding:8px;font-size:12px;font-weight:700}.penalty-choices button.selected{color:#fff;background:#d66b46;border-color:#d66b46}.penalty-action{background:#fff;border-radius:14px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.penalty-action>div{flex-direction:column;gap:4px;display:flex}.penalty-action small{color:var(--muted);font-size:11px}.penalty-action strong{font-size:14px}.penalty-action button{cursor:pointer;border:0;border-radius:12px;align-items:center;gap:7px;min-height:44px;padding:0 16px;font-weight:800;display:flex}.penalty-action button.complete{background:var(--green);color:#fff}.penalty-action button.undo{color:#56615b;background:#edf0ed}.penalty-choices button:focus-visible,.penalty-action button:focus-visible{outline-offset:2px;outline:3px solid #4d91dc}@media (max-width:1000px){.penalty-choices{grid-template-columns:repeat(2,1fr)}.penalty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.certificate-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:680px){.penalty-panel{padding:16px}.penalty-head{flex-wrap:wrap;align-items:flex-start}.status-badge{margin-left:58px}.penalty-choices{grid-template-columns:1fr 1fr}.penalty-action{flex-direction:column;align-items:flex-start;gap:12px}.penalty-action button{justify-content:center;width:100%}.penalty-grid{grid-template-columns:1fr}.penalty-section-title{align-items:flex-start}.penalty-section-title>button{flex:none}.certificate-wall{padding:18px}.certificate-wall-head{flex-direction:column;align-items:flex-start}.certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.certificate-upload{width:100%}}.day-switch{background:#e9ece7;border:1px solid #dfe4df;border-radius:18px;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px;margin:0 0 20px;padding:7px;display:grid}.day-switch button{min-height:58px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:13px;flex-direction:column;justify-content:center;align-items:flex-start;padding:9px 16px;display:flex}.day-switch button b{font-size:14px}.day-switch button small{margin-top:3px;font-size:11px}.day-switch button.active{color:var(--ink);background:#fff;box-shadow:0 5px 15px #2c463a12}.day-switch button.active b{color:var(--green)}.day-switch button:focus-visible{outline-offset:2px;outline:3px solid #4d91dc}.auto-tip{color:var(--muted);white-space:nowrap;padding:0 12px;font-size:11px}@media (max-width:760px){.day-switch{grid-template-columns:1fr 1fr}.auto-tip{grid-column:1/-1;padding:4px 8px 6px}.day-switch button{padding:8px 10px}.day-switch button small{line-height:1.35}}.section-actions{align-items:center;gap:12px;display:flex}.add-habit{min-height:40px;color:var(--green);cursor:pointer;background:#fff;border:1px solid #9fc4b4;border-radius:11px;padding:0 14px;font-size:13px;font-weight:800}.add-habit:hover{background:var(--green-soft)}.add-habit:focus-visible,.modal-close:focus-visible,.add-modal button:focus-visible,.add-modal input:focus-visible{outline-offset:2px;outline:3px solid #4d91dc}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:radial-gradient(circle at 18% 16%,#ffe9a766 0 7%,#0000 26%),radial-gradient(circle at 84% 83%,#b7e8d966 0 8%,#0000 28%),#18382fb3;place-items:center;min-height:100dvh;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.pet-name-backdrop{z-index:140}.add-modal{background:radial-gradient(circle at 91% 8%,#fff3b9 0 6%,#0000 7%),radial-gradient(circle at 84% 15%,#fff3b9 0 2%,#0000 3%),linear-gradient(145deg,#fffdf6,#f8fff9);border:2px solid #ffffffc9;border-radius:30px;width:min(480px,100%);margin:auto;padding:30px;animation:.25s ease-out both modal-arrive;position:relative;box-shadow:0 28px 80px #10251c73,inset 0 0 0 1px #43816822}.modal-close{color:#35745c;cursor:pointer;background:#ffffffd9;border:1px solid #dbe9df;border-radius:50%;width:44px;height:44px;font-size:24px;transition:transform .18s,background .18s;position:absolute;top:18px;right:18px}.modal-close:hover{background:#e6f4e9;transform:rotate(90deg)scale(1.05)}.modal-kicker{color:#31765b;background:#e4f4e9;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:800;display:inline-flex}.add-modal h2{color:#234436;margin:12px 0 8px;font-size:26px}.add-modal>p{color:#667a70;margin:0 0 20px;font-size:14px;line-height:1.6}.add-modal form{gap:16px;display:grid}.add-modal label{gap:7px;font-size:13px;font-weight:800;display:grid}.add-modal input{width:100%;height:48px;color:var(--ink);font:inherit;background:#ffffffd9;border:1px solid #cfe2d5;border-radius:14px;padding:0 13px;transition:border-color .18s,box-shadow .18s}.add-modal input:focus{border-color:#55a47d;outline:none;box-shadow:0 0 0 4px #6cbd9140}.add-modal input::placeholder{color:#9ba49f}.pin-modal{width:min(430px,100%)}.pin-modal form{gap:12px}.pin-input{letter-spacing:.55em;text-align:center;font-weight:800;padding-left:1.05em!important;font-size:24px!important}.pin-help,.pin-error{min-height:20px;padding-left:2px;font-size:13px;line-height:1.5}.pin-help{color:#6c8075}.pin-error{color:#c25b59;font-weight:800}.modal-actions{justify-content:flex-end;gap:10px;margin-top:5px;display:flex}.modal-actions button{cursor:pointer;border:0;border-radius:14px;min-height:46px;padding:0 19px;font-weight:800;transition:transform .18s,box-shadow .18s}.modal-actions button:first-child{color:#547062;background:#edf5ef}.modal-actions button:last-child{color:#fff;background:linear-gradient(135deg,#3d966e,#277454);box-shadow:0 8px 16px #2875533b}.modal-actions button:hover{transform:translateY(-2px)}@keyframes modal-arrive{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:560px){.section-title{align-items:flex-start}.section-actions{flex-direction:column-reverse;align-items:flex-end;gap:5px}.add-modal{padding:24px 20px}.modal-actions{grid-template-columns:1fr 1fr;display:grid}.modal-actions button{padding:0 8px}}.top-actions{align-items:center;gap:14px;display:flex}.role-switch{color:#5c6862;cursor:pointer;background:#f4f6f3;border:1px solid #d8dfdb;border-radius:12px;align-items:center;gap:7px;min-height:42px;padding:0 13px;font-weight:800;display:flex}.role-switch.parent{background:var(--green);border-color:var(--green);color:#fff}.dashboard-section{margin:38px 0;scroll-margin-top:96px}.reward-notice{background:var(--green-soft);color:var(--green);border-radius:12px;margin:0 0 12px;padding:12px 15px;font-size:13px;font-weight:800}.reward-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.reward-item{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;grid-template-columns:auto 1fr;gap:12px;padding:18px;display:grid}.reward-icon{background:var(--yellow-soft);color:#926100;border-radius:13px;place-items:center;width:42px;height:42px;display:grid}.reward-item h3{margin:1px 0 5px;font-size:15px}.reward-item p{min-height:36px;color:var(--muted);margin:0;font-size:12px;line-height:1.5}.reward-item strong{color:#8b5d00;align-items:center;gap:4px;margin-top:8px;font-size:12px;display:flex}.reward-item button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:11px;grid-column:1/-1;min-height:42px;font-weight:800}.reward-manage{gap:6px;margin-left:auto;display:flex}.reward-manage button{border:1px solid var(--line);min-height:32px;color:var(--muted);background:#fff;border-radius:8px;padding:0 8px;font-size:12px}.reward-manage button:last-child{color:#a44740}.reward-item button:disabled{color:#7c847f;cursor:not-allowed;background:#e1e4e1}.history-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.history-day{border:1px solid var(--line);text-align:center;background:#fff;border-radius:15px;padding:14px 8px}.history-day span,.history-day small{color:var(--muted);font-size:11px;display:block}.history-day strong{color:#9aa39e;margin:8px 0 3px;font-size:24px;display:block}.history-day.has-data{background:var(--green-soft);border-color:#a9cdbc}.history-day.has-data strong{color:var(--green)}.reflection-history{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(145deg,#fffdf8,#f5fbf6);border-radius:20px;margin-top:18px;padding:20px}.reflection-actions{align-items:center;gap:8px;display:flex}.reflection-actions>button,.reflection-history-head>button{color:#31765b;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #b9d8c4;border-radius:11px;padding:0 11px;font-size:12px;font-weight:800}.reflection-actions>button span{background:#e4f3e7;border-radius:99px;place-items:center;min-width:18px;height:18px;margin-left:4px;font-size:10px;display:inline-grid}.reflection-history-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.reflection-history-head .eyebrow{margin-bottom:4px;display:block}.reflection-history-head h3{margin:0;font-size:17px}.reflection-history-head>span{color:#31765b;white-space:nowrap;background:#e4f3e7;border-radius:99px;padding:6px 10px;font-size:12px;font-weight:800}.reflection-history-list{gap:10px;display:grid}.reflection-entry{background:#ffffffc7;border:1px solid #dfeae2;border-radius:15px;grid-template-columns:125px 1fr 1fr;gap:14px;padding:14px;display:grid}.reflection-entry-date{align-content:start;gap:5px;display:grid}.reflection-entry-date strong{font-size:14px}.reflection-entry-date small{color:var(--muted);font-size:11px;line-height:1.45}.reflection-entry-copy{border-left:2px solid #dbece0;min-width:0;padding-left:12px}.reflection-entry-copy.parent{border-color:#ead8b4}.reflection-entry-copy span{color:var(--green);margin-bottom:4px;font-size:11px;font-weight:800;display:block}.reflection-entry-copy.parent span{color:#9a7327}.reflection-entry-copy p{color:#45584e;word-break:break-word;margin:0;font-size:13px;line-height:1.55}.reflection-empty{color:var(--muted);text-align:center;border:1px dashed #cbded0;border-radius:14px;padding:16px;font-size:13px}@media (max-width:760px){.reflection-entry{grid-template-columns:1fr}.reflection-entry-copy{border-top:2px solid #dbece0;border-left:0;padding-top:10px;padding-left:0}.reflection-entry-copy.parent{border-color:#ead8b4}}.custom-manager{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.custom-manager h3{margin:0 0 10px;font-size:14px}.custom-manager>div{border-bottom:1px solid #edf0ed;align-items:center;gap:12px;padding:10px 0;display:flex}.custom-manager span{flex-direction:column;flex:1;gap:3px;display:flex}.custom-manager b{font-size:13px}.custom-manager small{color:var(--muted);font-size:11px}.custom-manager button{color:#aa4d2e;cursor:pointer;background:#fff0eb;border:0;border-radius:10px;min-height:38px;padding:0 12px;font-weight:800}@media (max-width:900px){.reward-grid{grid-template-columns:1fr}.history-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:680px){.top-actions{gap:7px}.role-switch{padding:0 9px;font-size:11px}.profile>span:last-child{display:none}.history-grid{grid-template-columns:repeat(2,1fr)}}.habit-wrap{min-width:0;position:relative}.habit-wrap>.habit-card{width:100%;height:100%}.habit-manage{z-index:2;gap:5px;display:flex;position:absolute;bottom:9px;right:10px}.habit-manage button{color:#59645e;cursor:pointer;background:#fff;border:1px solid #d6ddd9;border-radius:8px;min-height:30px;padding:0 8px;font-size:11px;font-weight:800}.habit-manage button:last-child{color:#aa4d2e;border-color:#ecc7ba}.habit-manage button:focus-visible,.role-switch:focus-visible{outline-offset:2px;outline:3px solid #4d91dc}.habit-card{min-height:120px;padding-bottom:38px}.habit-copy small{margin-top:8px;line-height:1.5}.stars{bottom:12px}.habit-wrap:has(.habit-manage) .habit-card{min-height:150px;padding-bottom:68px}.habit-wrap:has(.habit-manage) .stars{bottom:47px}.pet-home-card{text-align:left;width:100%;min-height:210px;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;background:linear-gradient(135deg,#e8f3eb,#fff8df);border:1px solid #d6dfd7;border-radius:24px;grid-template-columns:210px 1fr auto;align-items:center;gap:24px;margin:0 0 20px;padding:22px 24px;display:grid;overflow:hidden}.pet-house-scene{width:200px;height:165px;position:relative}.house-body{background:#dfb879;border-radius:14px 14px 24px 24px;width:160px;height:105px;position:absolute;bottom:0;left:20px;box-shadow:inset 0 -8px #c99752}.house-roof{clip-path:polygon(50% 0,100% 70%,90% 100%,10% 100%,0 70%);background:#4f8068;border-radius:20px;width:186px;height:95px;position:absolute;top:5px;left:7px}.pet-sprite,.mini-pet{background-image:url(/pet-sprites.png);background-repeat:no-repeat;background-size:200% 200%;display:block}.pet-sprite{z-index:2;border-radius:45%;width:92px;height:92px;position:absolute;bottom:2px;left:55px;box-shadow:0 5px 15px #263b3022}.pet-dog{background-position:0 0}.pet-cat{background-position:100% 0}.pet-dragon{background-position:0 100%}.pet-bunny{background-position:100% 100%}.pet-home-copy h2{margin:3px 0 8px;font-size:22px}.pet-home-copy p{color:var(--muted);margin:0 0 12px;font-size:13px}.pet-home-copy strong{color:#8b5d00;align-items:center;gap:5px;font-size:12px;display:flex}.pet-enter{color:var(--green);white-space:nowrap;background:#fff;border-radius:11px;align-self:end;padding:10px 13px;font-size:12px;font-weight:800}.pet-center{z-index:120;background:var(--cream);position:fixed;inset:0;overflow:auto}.pet-center>header{z-index:4;border-bottom:1px solid var(--line);background:#fff;grid-template-columns:1fr auto 1fr;align-items:center;min-height:78px;padding:12px 32px;display:grid;position:sticky;top:0}.pet-center>header>button{min-height:44px;color:var(--ink);cursor:pointer;background:#eef1ee;border:0;border-radius:11px;justify-self:start;padding:0 14px;font-weight:800}.pet-center>header>div{text-align:center}.pet-center>header span{color:var(--green);font-size:11px;font-weight:800}.pet-center>header h2{margin:3px 0;font-size:20px}.pet-center>header>strong{background:var(--yellow-soft);color:#8b5d00;border-radius:99px;justify-self:end;align-items:center;gap:5px;padding:10px 14px;display:flex}.pet-center-body{grid-template-columns:330px 1fr;gap:24px;max-width:1280px;margin:auto;padding:28px;display:grid}.pet-preview{text-align:center;height:520px;box-shadow:var(--shadow);background:linear-gradient(#dff0e5,#fff4d6);border-radius:26px;padding:30px;position:sticky;top:106px}.pet-house-scene.large{width:270px;height:330px;margin:auto}.pet-house-scene.large .house-body{width:220px;height:160px;left:25px}.pet-house-scene.large .house-roof{width:260px;height:140px}.pet-house-scene.large .pet-sprite{width:150px;height:150px;left:62px}.pet-preview h3{margin:0;font-size:24px}.pet-name-trigger{width:100%;color:inherit;cursor:pointer;background:0 0;border:0;justify-items:center;gap:3px;margin:16px 0 10px;padding:0;display:grid}.pet-name-trigger span{color:#6f927e;font-size:12px}.pet-name-trigger:hover h3{color:#2f795b}.pet-name-trigger:focus-visible{outline-offset:5px;border-radius:12px;outline:3px solid #4d91dc}.pet-preview p,.pet-preview>span{color:var(--muted);font-size:12px}.pet-name-editor{color:#4e7461;background:#ffffffb8;border:1px solid #c7e1d0;border-radius:13px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;max-width:230px;margin:0 auto 10px;padding:7px 9px;font-size:12px;font-weight:800;display:grid}.pet-name-editor input{color:#285e47;width:100%;min-width:0;font:inherit;text-align:center;background:0 0;border:0;border-bottom:1px dashed #9ec6aa;outline:none;font-size:14px;font-weight:800}.pet-name-editor input:focus{border-bottom-style:solid;border-bottom-color:#3d986f}.pet-shop{gap:18px;display:grid}.pet-choice-section{border:1px solid var(--line);background:#fff;border-radius:20px;padding:20px}.pet-choice-title{justify-content:space-between;align-items:center;margin-bottom:13px;display:flex}.pet-choice-title h3{margin:0;font-size:17px}.pet-choice-title span{color:var(--muted);font-size:11px}.pet-choice-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.pet-choice-grid button{border:1px solid var(--line);min-height:104px;color:var(--ink);cursor:pointer;background:#fafbf9;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:12px;display:flex}.pet-choice-grid button.selected{background:var(--green-soft);border:2px solid var(--green)}.pet-choice-grid button:disabled{opacity:.45;cursor:not-allowed}.pet-choice-grid b{font-size:13px}.pet-choice-grid small{color:var(--muted);font-size:10px}.mini-pet{border-radius:40%;width:48px;height:48px}.choice-dot{background:linear-gradient(135deg,#f1c968,#6fa58c);border-radius:12px;width:38px;height:38px;box-shadow:inset 0 0 0 5px #fff8}.choice-art,.home-art,.outfit-art{background-image:url(/pet-collection.png);background-repeat:no-repeat;background-size:400% 300%;display:block}.choice-art{filter:drop-shadow(0 5px 5px #38564726);background-color:#eef5ee;border-radius:17px;width:64px;height:64px}.art-wood,.home-art-原木小屋{background-position:0 0}.art-tent,.home-art-森林帐篷{background-position:33.333% 0}.art-castle,.home-art-星空城堡{background-position:66.667% 0}.art-bow,.outfit-art-基础项圈,.outfit-art-学院领结{background-position:0}.art-cape,.outfit-art-探险披风{background-position:33.333%}.art-biscuit{background-position:0 100%}.art-cake{background-position:33.333% 100%}.art-meal{background-position:66.667% 100%}.home-art{z-index:1;filter:drop-shadow(0 12px 12px #2949362b);background-color:#e8f1eb;border-radius:24px;width:100%;height:100%;position:absolute;inset:0}.home-art~.house-roof,.home-art~.house-body{opacity:0}.pet-house-scene .pet-sprite{z-index:3}.outfit-art{z-index:4;background-color:#fff9e8;border:2px solid #fff;border-radius:15px;width:46px;height:46px;position:absolute;top:7px;right:3px;box-shadow:0 7px 15px #28453a2b}.pet-house-scene.large .home-art{border-radius:30px;height:276px;top:12px}.pet-house-scene.large .outfit-art{border-radius:20px;width:72px;height:72px;top:20px;right:12px}.pet-choice-grid button:has(.choice-art){background:linear-gradient(145deg,#fff,#f7faf8)}.pet-choice-grid button:has(.choice-art) .choice-art{transition:transform .2s}.pet-choice-grid button:not(:disabled):hover .choice-art{transform:scale(1.08)rotate(-3deg)}.pet-sprite{mix-blend-mode:normal;isolation:isolate;background-image:url(/pet-sprites-clean.png)}.pet-house-scene{isolation:isolate;overflow:visible}.home-art{filter:drop-shadow(0 14px 14px #1d4c3a30);background-color:#0000}.choice-art.art-collar,.choice-art.art-uniform,.choice-art.art-cape,.choice-art.art-ball,.choice-art.art-backpack,.choice-art.art-trophy{mix-blend-mode:multiply;background-color:#0000;background-image:url(/pet-wearables.png);background-size:300% 200%}.art-collar{background-position:0 0}.art-uniform{background-position:50% 0}.art-cape{background-position:100% 0}.art-ball{background-position:0 100%}.art-backpack{background-position:50% 100%}.art-trophy{background-position:100% 100%}.outfit-art{width:92px;height:92px;box-shadow:none;pointer-events:none;mix-blend-mode:multiply;background-color:#0000;background-image:url(/pet-wearables.png);background-size:300% 200%;border:0;border-radius:0;inset:auto auto 2px 55px}.outfit-art-基础项圈{background-position:0 0}.outfit-art-学院领结{background-position:50% 0}.outfit-art-探险披风{background-position:100% 0}.pet-house-scene.large .outfit-art{border-radius:0;width:150px;height:150px;inset:auto auto 2px 62px}:is(.pet-choice-grid button:has(.art-ball),.pet-choice-grid button:has(.art-backpack),.pet-choice-grid button:has(.art-trophy)){background:linear-gradient(145deg,#f5faff,#fff8e5)}.choice-art,.home-art{mix-blend-mode:normal;background-image:url(/pet-collection-clean.png)}.choice-art.art-collar,.choice-art.art-uniform,.choice-art.art-cape,.choice-art.art-ball,.choice-art.art-backpack,.choice-art.art-trophy,.outfit-art{mix-blend-mode:normal;background-image:url(/pet-wearables-clean.png)}.outfit-art-基础项圈{width:76px;height:42px;bottom:24px;left:63px}.outfit-art-学院领结{width:88px;height:72px;bottom:3px;left:57px}.outfit-art-探险披风{width:106px;height:78px;bottom:2px;left:48px}.pet-house-scene.large .outfit-art-基础项圈{width:118px;height:64px;bottom:36px;left:78px}.pet-house-scene.large .outfit-art-学院领结{width:136px;height:112px;bottom:4px;left:70px}.pet-house-scene.large .outfit-art-探险披风{width:156px;height:116px;bottom:2px;left:57px}.pet-sprite.skin-基础项圈{filter:drop-shadow(0 5px 8px #264b3a36)}.pet-sprite.skin-学院领结{filter:saturate(.88)hue-rotate(165deg)drop-shadow(0 6px 9px #315fa875)}.pet-sprite.skin-探险披风{filter:saturate(1.22)contrast(1.05)drop-shadow(0 0 7px #f7c84c)drop-shadow(0 7px 10px #264b3a55)}.choice-art.art-skin-natural{background:radial-gradient(circle at 35% 28%,#fff8d2 0 13%,#0000 14%),linear-gradient(145deg,#ffc66b,#ed8357)}.choice-art.art-skin-academy{background:radial-gradient(circle at 68% 28%,#aeeaff 0 12%,#0000 13%),linear-gradient(145deg,#5d8ed6,#354c95)}.choice-art.art-skin-starlight{background:radial-gradient(circle at 35% 28%,#fff4a6 0 10%,#0000 11%),radial-gradient(circle at 70% 70%,#ffe1a1 0 8%,#0000 9%),linear-gradient(145deg,#7d5ac6,#243e91)}.art-treehouse,.home-art-云朵树屋{background-position:100% 0}.art-fruit{background-position:100% 100%}.pet-sprite.skin-粉樱皮肤{filter:hue-rotate(298deg)saturate(1.18)brightness(1.08)drop-shadow(0 6px 10px #f070aa77)}.choice-art.art-skin-pink{background:radial-gradient(circle at 30% 28%,#fff 0 11%,#0000 12%),radial-gradient(circle at 72% 66%,#ffd8e7 0 10%,#0000 11%),linear-gradient(145deg,#ffacd1,#d873ad)}.pet-headgear{z-index:5;filter:drop-shadow(0 4px 3px #2b37544d);pointer-events:none;place-items:center;width:38px;height:38px;font-size:31px;line-height:1;display:grid;position:absolute;bottom:85px;left:87px;transform:translateY(.7cm)rotate(-6deg)}.headgear-小星发夹{font-size:27px;bottom:89px;left:111px;transform:translate(-.5cm)translateY(1cm)rotate(9deg)}.headgear-彩虹皇冠{bottom:91px}.headgear-樱花发夹{font-size:28px;bottom:91px;left:94px;transform:translateY(.7cm)rotate(-13deg)}.headgear-星月发夹{font-size:28px;bottom:93px;left:103px;transform:translateY(.7cm)rotate(12deg)}.pet-house-scene.large .pet-headgear{width:56px;height:56px;font-size:46px;bottom:132px;left:117px}.pet-house-scene.large .headgear-小星发夹{font-size:40px;bottom:139px;left:153px}.pet-house-scene.large .headgear-彩虹皇冠{bottom:142px}.pet-house-scene.large .headgear-樱花发夹{font-size:42px;bottom:142px;left:127px}.pet-house-scene.large .headgear-星月发夹{font-size:42px;bottom:145px;left:142px}.pet-food-bowl{z-index:4;filter:drop-shadow(0 3px 3px #34503940);background:linear-gradient(#fff7e7 0 45%,#e4814f 48% 70%,#b9533c 72%);border-radius:50%;place-items:center;width:34px;height:25px;font-size:18px;line-height:1;animation:2.2s ease-in-out infinite food-bounce;display:grid;position:absolute;bottom:5px;left:123px}.food-草莓蛋糕{background:linear-gradient(#fff5fb 0 45%,#f29cbc 48% 70%,#cf668e 72%)}.food-星星大餐{background:linear-gradient(#fff6b3 0 45%,#e6a93b 48% 70%,#b5741f 72%)}.food-彩虹果盘{background:linear-gradient(#f1f8ff 0 45%,#77abd7 48% 70%,#47759f 72%)}.pet-house-scene.large .pet-food-bowl{width:51px;height:37px;font-size:27px;bottom:7px;left:163px}@keyframes food-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.choice-art.art-clip,.choice-art.art-crown,.choice-art.art-sakura-clip,.choice-art.art-moon-clip{background:linear-gradient(145deg,#fff7fb,#f1eafe);place-items:center;font-size:34px;display:grid;box-shadow:inset 0 0 0 1px #e8d6ee;background-image:none!important}.choice-art.art-clip:after{content:"🎀"}.choice-art.art-crown:after{content:"👑"}.choice-art.art-sakura-clip:after{content:"🌸"}.choice-art.art-moon-clip:after{content:"🌙"}@media (max-width:900px){.pet-home-card{grid-template-columns:150px 1fr}.pet-house-scene{transform-origin:0;transform:scale(.75)}.pet-enter{display:none}.pet-center-body{grid-template-columns:1fr}.pet-preview{height:430px;position:relative;top:auto}.pet-choice-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.pet-home-card{grid-template-columns:100px 1fr;gap:8px;padding:16px}.pet-house-scene{transform-origin:0;transform:scale(.55)}.pet-home-copy h2{font-size:17px}.pet-home-copy p{line-height:1.45}.pet-center>header{grid-template-columns:auto 1fr auto;padding:10px}.pet-center>header>div span,.pet-center>header>div h2{display:none}.pet-center>header>button{padding:0 9px}.pet-center-body{padding:14px}.pet-preview{height:390px;padding:18px}.pet-house-scene.large{transform-origin:top;transform:scale(.85)}.pet-choice-grid{grid-template-columns:1fr 1fr}}.pet-vitality{max-width:360px;margin:0 0 10px}.pet-vitality>span{color:var(--green);margin-bottom:5px;font-size:11px;font-weight:800;display:block}.pet-vitality>i{background:#dbe5dc;border-radius:99px;height:7px;display:block;overflow:hidden}.pet-vitality>i>b{border-radius:inherit;background:linear-gradient(90deg,#f2bf43,var(--green));height:100%;transition:width .25s;display:block}.growth-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0 38px;display:grid}.summary-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;padding:20px}.summary-card.primary{background:var(--green);border-color:var(--green);color:#fff}.summary-card>span{color:var(--muted);font-size:12px;font-weight:800;display:block}.summary-card.primary>span,.summary-card.primary p,.summary-card.primary small{color:#e4f1eb}.summary-card strong{font-variant-numeric:tabular-nums;margin:7px 0;font-size:27px;display:block}.summary-card small{color:var(--muted);font-size:12px}.summary-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.reflection-section{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;margin:38px 0;padding:22px}.saved-badge{background:var(--green-soft);border-radius:99px;padding:7px 11px;color:var(--green)!important}.reflection-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.reflection-grid label{gap:7px;display:grid;position:relative}.reflection-grid label>span{font-size:13px;font-weight:800}.reflection-grid textarea{width:100%;min-height:118px;color:var(--ink);font:inherit;resize:vertical;background:#fbfcfa;border:1px solid #ced7d2;border-radius:14px;padding:13px 14px 28px;line-height:1.6}.reflection-grid textarea:disabled{color:#929a95;background:#f0f2ef}.reflection-grid label>small{color:var(--muted);font-size:10px;position:absolute;bottom:8px;right:11px}.reflection-grid textarea:focus-visible,.save-reflection:focus-visible{outline-offset:2px;outline:3px solid #4d91dc}.save-reflection{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:12px;min-height:44px;margin:14px 0 0 auto;padding:0 18px;font-weight:800;display:block}@media (max-width:800px){.growth-summary,.reflection-grid{grid-template-columns:1fr}}@media (max-width:620px){.reflection-section{padding:16px}.save-reflection{width:100%}}.pet-care-panel{box-shadow:var(--shadow);background:linear-gradient(100deg,#f7fcf6,#fffaf0);border:1px solid #d6e7da;border-radius:20px;grid-template-columns:minmax(230px,.9fr) minmax(420px,1.4fr);align-items:center;gap:24px;margin:16px 0 24px;padding:19px 22px;display:grid}.pet-care-panel h2{margin:4px 0 5px;font-size:18px}.pet-care-panel p{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.pet-care-actions{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.pet-care-actions button{min-height:76px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #d7e1d8;border-radius:14px;gap:5px;padding:12px;transition:transform .2s,border-color .2s,background .2s;display:grid}.pet-care-actions button:not(:disabled):hover{border-color:var(--green);transform:translateY(-2px)}.pet-care-actions button.done{color:#1f7352;background:#eaf7ef;border-color:#8ac6a4}.pet-care-actions button:disabled:not(.done){color:#929a95;cursor:not-allowed;background:#f4f5f2}.pet-care-actions b{font-size:13px}.pet-care-actions small{font-size:11px;line-height:1.35}@media (max-width:900px){.pet-care-panel{grid-template-columns:1fr}.pet-care-actions{grid-template-columns:repeat(3,1fr)}}@media (max-width:620px){.pet-care-panel{padding:16px}.pet-care-actions{grid-template-columns:1fr}.pet-care-actions button{min-height:62px}}.pet-reaction{z-index:8;color:#315b4a;white-space:nowrap;background:#fff;border-radius:12px;padding:5px 8px;font-size:11px;font-weight:800;animation:.35s both pet-reaction-pop;position:absolute;bottom:112px;left:104px;box-shadow:0 6px 14px #29493624}.pet-house-scene.large .pet-reaction{font-size:14px;bottom:178px;left:128px}.weekly-quest{box-shadow:var(--shadow);background:linear-gradient(100deg,#fbf8ff,#eef9f2);border:1px solid #d9d3ef;border-radius:20px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin:0 0 24px;padding:16px 20px;display:grid}.weekly-quest-mark{background:#e8dcff;border-radius:16px;place-items:center;width:48px;height:48px;font-size:26px;display:grid}.weekly-quest h2{margin:3px 0 4px;font-size:17px}.weekly-quest p{color:var(--muted);margin:0 0 8px;font-size:12px}.weekly-quest-track{background:#e4e6e9;border-radius:99px;max-width:420px;height:7px;overflow:hidden}.weekly-quest-track i{border-radius:inherit;background:linear-gradient(90deg,#8b6ec5,#54ad81);height:100%;display:block}.weekly-quest-reward{text-align:center;color:#786f8e;background:#fff;border-radius:13px;padding:8px 11px;font-size:11px;line-height:1.45}.weekly-quest-reward b{color:#326b50}.weekly-quest.complete{background:linear-gradient(100deg,#f6ffed,#fff8da);border-color:#8fc8a6}.weekly-quest.complete .weekly-quest-mark{background:#f4cf62}@keyframes pet-reaction-pop{0%{opacity:0;transform:translateY(7px)scale(.88)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:620px){.weekly-quest{grid-template-columns:auto 1fr}.weekly-quest-reward{text-align:left;grid-column:1/-1}.pet-reaction{left:92px}}
