@charset "UTF-8";
:root{--green:#235947;--deep:#163f32;--sage:#e9f0e7;--mint:#dce9da;--cream:#f7f6ef;--paper:#fffefa;--ink:#263e34;--muted:#768277;--line:#e5e8df;--gold:#b38b42;--red:#ad544b;--shadow:0 12px 40px #203e2907;--radius:22px;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:var(--green)}button{color:inherit}button,input,select,textarea{border-radius:12px}button:focus-visible,a:focus-visible{outline:3px solid #9bb68f;outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid #9bb68f;outline-offset:1px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:650;letter-spacing:-.035em}h1{font-size:32px;line-height:1.4}h2{font-size:21px}h3{font-size:16px}p{line-height:1.8}svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button svg{pointer-events:none}[hidden]{display:none!important}.skip-link{position:fixed;left:12px;top:-80px;background:white;padding:12px;z-index:100}.skip-link:focus{top:12px}.boot{height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:var(--muted)}.brand-mark{background:var(--green);color:var(--cream);display:grid;place-items:center;width:42px;height:42px;border-radius:13px;font-size:21px;font-weight:600;flex-shrink:0}.brand{display:flex;align-items:center;gap:12px}.brand-name{font-size:21px;font-weight:650;letter-spacing:.07em}.brand small{display:block;font-size:10px;letter-spacing:.17em;color:var(--muted);margin-top:4px}.layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;padding:38px 25px 24px;border-right:1px solid var(--line);background:#fafbf5;display:flex;flex-direction:column;z-index:10}.sidebar .brand{margin:0 7px 49px}.nav{display:flex;flex-direction:column;gap:10px}.nav button{border:0;background:none;display:flex;gap:15px;align-items:center;text-align:left;padding:15px 20px;font-size:14px;color:var(--muted);transition:background .15s}.nav button.active{background:var(--green);color:white;box-shadow:0 5px 12px #23594712}.nav button:hover:not(.active){background:var(--sage)}.nav .nav-sub{font-size:10px;opacity:.6;margin-left:auto}.sidebar-bottom{margin-top:auto}.small-quote{padding:22px 12px;font-size:12px;line-height:2;color:#94a08f}.small-quote span{display:block;font-family:Georgia,serif;font-size:28px;line-height:1;color:#b6c6ac}.account-button{display:flex;align-items:center;gap:12px;background:transparent;border:1px solid var(--line);width:100%;padding:12px;text-align:left}.avatar{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;background:var(--mint);color:var(--green);border-radius:50%;font-size:15px}.account-button strong{font-size:13px;display:block;font-weight:600;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-button small{color:var(--muted);font-size:11px;display:block;margin-top:4px}.account-button>svg{margin-left:auto;width:16px}.page{grid-column:2;padding:38px 50px 60px;max-width:1390px;width:100%;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:39px}.eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:650;color:var(--muted);margin-bottom:8px}.topbar-right{display:flex;align-items:center;gap:16px}.top-date{font-size:12px;color:var(--muted)}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:9px;border:1px solid var(--line);background:var(--paper);min-width:38px;min-height:38px}.icon-button svg{width:18px;height:18px}.mobile-account{display:none}.header-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:25px}.header-title p{font-size:13px;color:var(--muted);margin-top:7px}.badge{font-size:11px;display:inline-flex;align-items:center;gap:6px;border-radius:30px;padding:7px 11px;line-height:1.2;background:var(--sage);color:var(--green);white-space:nowrap}.badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.badge.gold{background:#f5eedf;color:var(--gold)}.badge.gray{background:#eeefea;color:var(--muted)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:27px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.card-title h2{font-size:16px}.card-title small,.muted{color:var(--muted)}.small{font-size:12px}.grid-main{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:22px;align-items:start}.stack{display:flex;flex-direction:column;gap:22px}.today-card{background:var(--green);color:var(--cream);position:relative;overflow:hidden;padding:33px;min-height:280px;border:0}.today-card:after{content:"";position:absolute;width:210px;height:210px;border:1px solid #ffffff0e;border-radius:50%;right:-50px;top:-65px;box-shadow:0 0 0 28px #ffffff04,0 0 0 60px #ffffff03;pointer-events:none}.today-card .eyebrow{color:#b9cdbd}.today-card h2{font-size:26px;margin:18px 0 9px;line-height:1.5;max-width:350px}.today-card p{color:#c4d5c7;font-size:12px}.today-card .badge{background:#ffffff14;color:#e4eade}.today-card .status-line{display:flex;align-items:center;gap:10px;margin-bottom:10px;position:relative;z-index:1}.check-buttons{display:flex;gap:12px;margin-top:26px;position:relative;z-index:1}.check-buttons button{padding:13px 20px;border:1px solid #ffffff35;background:transparent;color:white;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;min-height:46px}.check-buttons button:first-child{background:#eef1de;color:var(--green);border-color:#eef1de}.check-buttons button.selected{outline:2px solid #d4e3b2;outline-offset:3px}.check-buttons button svg{width:18px;height:18px}.note{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;color:#52674e;padding:17px 20px;background:#f2f4e9;border-radius:14px}.note::before{content:'“';display:block;color:#a6b49b;font-family:Georgia,serif;font-size:38px;height:29px;line-height:1}.note-empty{font-size:13px;color:var(--muted);background:#f6f6f0;padding:22px;border-radius:14px;line-height:1.9}.note-footer{display:flex;justify-content:space-between;margin-top:14px;align-items:center;font-size:11px;color:var(--muted)}.btn{border:1px solid var(--line);background:var(--paper);padding:11px 17px;font-size:13px;font-weight:550;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;line-height:1.5;text-decoration:none}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.soft{background:var(--sage);border-color:var(--sage);color:var(--green)}.btn.danger{color:var(--red);border-color:#ead9d4;background:#fffaf7}.btn.text{border:0;background:none;color:var(--green);padding:6px 0;min-height:30px}.btn.small{font-size:11px;padding:7px 12px;min-height:32px}.btn.full{width:100%}.btn:hover:not(:disabled){filter:brightness(.97)}.points-value{display:flex;align-items:baseline;gap:9px;margin:4px 0 12px}.points-value strong{font-size:54px;line-height:1.2;font-weight:500;letter-spacing:-.06em}.points-value span{font-size:12px;color:var(--muted)}.points-card .card-title{margin-bottom:12px}.points-card .pending{font-size:12px;color:var(--muted);padding:12px 0 21px;border-bottom:1px solid var(--line)}.points-card .pending b{font-weight:550;color:var(--gold)}.points-card .btn{margin-top:15px}.week-days{display:flex;gap:8px;justify-content:space-between;margin:22px 0 17px}.week-day{font-size:10px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:10px}.week-day .circle{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#a6b29f;font-size:10px}.week-day.done .circle{background:var(--green);border-color:var(--green);color:white}.week-day.done svg{width:15px;height:15px}.week-day.today .circle{outline:2px solid #b8c8af;outline-offset:3px}.progress-track{height:5px;background:var(--sage);border-radius:5px;overflow:hidden;margin-top:14px}.progress-track span{display:block;height:100%;background:#7f9b6d;border-radius:5px}.week-summary{font-size:11px;color:var(--muted);display:flex;justify-content:space-between}.week-summary strong{color:var(--green);font-weight:550}.tip{display:flex;gap:11px;font-size:11px;color:var(--muted);line-height:1.8;padding:0 4px}.tip svg{width:17px;height:17px;margin-top:2px;color:#9da991}.empty{padding:55px 25px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:14px}.empty-icon{width:70px;height:70px;border-radius:24px;background:var(--sage);display:grid;place-items:center;color:#7c9576;margin-bottom:8px}.empty-icon svg{width:31px;height:31px}.empty h2{font-size:22px}.empty p{font-size:13px;color:var(--muted);max-width:370px}.empty .btn{margin-top:7px}.banner{padding:16px 19px;margin-bottom:22px;border:1px solid #dfdcc8;border-radius:15px;background:#f6f0dc;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;color:#776436;line-height:1.7}.banner p{font-size:12px}.banner strong{font-size:13px;font-weight:600}.banner.archive{background:var(--sage);border-color:#d7e1d1;color:var(--green)}.banner.error{background:#fff0e9;color:#8b4937;border-color:#e8c9bb}.banner-actions{display:flex;gap:8px;flex-shrink:0}.calendar-toolbar{display:flex;align-items:center;gap:14px}.calendar-toolbar strong{font-size:17px;min-width:112px;text-align:center;font-weight:550}.calendar-toolbar .icon-button{background:transparent}.calendar-legend{display:flex;gap:16px;font-size:10px;color:var(--muted)}.calendar-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:7px;height:7px;background:#a8bc99;border-radius:50%}.legend-dot.empty-dot{background:#e6e6de}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.weekday{text-align:center;padding:10px 0 17px;color:var(--muted);font-size:11px}.day{border:1px solid transparent;background:#f7f7f1;border-radius:12px;min-height:80px;display:flex;align-items:flex-start;flex-direction:column;gap:10px;padding:11px;color:var(--ink);font-size:13px;position:relative}.day:hover{border-color:#b8c8af}.day.today{box-shadow:inset 0 0 0 1px #b3c4a9}.day.done{background:#e9f0e3}.day.done .day-status{color:#4c7545}.day.not-done .day-status{color:#9b9f91}.day.selected{outline:2px solid var(--green);outline-offset:1px}.day.future{color:#bdc3b7;background:#fbfbf7}.day-status{font-size:9px;display:flex;align-items:center;gap:4px;white-space:nowrap}.day-status svg{width:12px;height:12px}.day.has-note:after{content:'';width:4px;height:4px;background:var(--gold);border-radius:50%;position:absolute;top:13px;right:10px}.calendar-summary{display:flex;gap:24px;margin:24px 0 0;padding-top:19px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.calendar-summary b{font-size:20px;font-weight:550;color:var(--green);margin-right:5px}.date-detail{margin-top:22px;background:#f7f7f0;padding:21px;border-radius:14px}.date-detail h3{font-size:14px;margin-bottom:12px}.date-detail p{font-size:12px;color:var(--muted)}.date-detail .note{margin-top:12px;background:#ecf0e4}.rewards-head{display:flex;gap:20px;align-items:center;background:#e9eee1;border-color:#dde5d3;padding:25px 28px;margin-bottom:25px}.reward-balance{margin-left:auto;text-align:right}.reward-balance strong{font-size:34px;font-weight:500}.reward-balance span{font-size:11px;color:var(--muted);margin-left:7px}.rewards-head p{font-size:12px;color:var(--muted);margin-top:7px}.reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:30px}.reward-card{display:flex;flex-direction:column;padding:23px;min-height:220px;position:relative}.reward-icon{width:49px;height:49px;border-radius:16px;background:#f1ede1;display:grid;place-items:center;color:#a18b59;margin-bottom:20px}.reward-card:nth-child(3n+2) .reward-icon{background:#eaf0e5;color:#6d8a5c}.reward-card:nth-child(3n+3) .reward-icon{background:#f3eae3;color:#b08f77}.reward-card h3{font-size:14px;overflow-wrap:anywhere;margin-bottom:8px}.reward-card .cost{color:var(--green);font-size:20px;font-weight:500;margin-bottom:20px}.reward-card .cost span{color:var(--muted);font-size:10px;font-weight:400;margin-left:4px}.reward-card .btn{margin-top:auto;min-height:36px}.reward-card.inactive{opacity:.65}.section-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:26px 0 18px}.section-row h2{font-size:17px}.receipt{padding:19px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.receipt:last-child{border-bottom:0}.receipt-name{font-size:13px;font-weight:550}.receipt-meta{display:flex;gap:14px;font-size:11px;color:var(--muted);margin-top:9px;flex-wrap:wrap}.receipt-reason{font-size:11px;color:var(--muted);margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere}.receipt-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.receipt-actions{display:flex;gap:8px}.agreements-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:22px}.rule-row{display:flex;align-items:flex-start;gap:17px;padding:23px 0;border-bottom:1px solid var(--line)}.rule-row:last-child{border-bottom:0;padding-bottom:4px}.rule-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--sage);color:#6e8861;flex-shrink:0}.rule-row h3{font-size:14px;margin:1px 0 7px}.rule-row p{font-size:12px;color:var(--muted)}.confirm-list{display:flex;flex-direction:column;gap:14px;margin:20px 0}.confirm-person{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f6f7f1;padding:13px;border-radius:12px;font-size:12px}.confirm-person span{display:flex;align-items:center;gap:9px}.confirm-person svg{width:17px;height:17px}.confirm-person .confirmed{color:var(--green);font-size:11px}.confirm-person .await{color:#a49f8c;font-size:11px}.pair-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em;font-size:25px;background:#edf1e6;padding:18px;border-radius:12px;text-align:center;color:var(--green);margin:17px 0}.divider{height:1px;background:var(--line);margin:22px 0}.fine-print{font-size:11px;line-height:1.9;color:var(--muted)}.archive-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:16px 0;text-align:left;font-size:12px}.archive-row:last-child{border-bottom:0}.archive-row small{display:block;color:var(--muted);margin-top:7px;font-size:10px}.archive-row svg{width:16px;color:var(--muted)}.form-stack{display:flex;flex-direction:column;gap:18px}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:550}.field input,.field textarea,.field select{width:100%;padding:12px 14px;border:1px solid #dfe4d8;background:#fffefa;color:var(--ink);font-size:13px;min-height:44px;line-height:1.6}.field input::placeholder,.field textarea::placeholder{color:#a7afa1}.field textarea{resize:vertical;min-height:115px}.field small{font-size:10px;color:var(--muted);font-weight:400;line-height:1.7}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-error{background:#fbedE7;color:#9d4b39;font-size:12px;border-radius:10px;padding:11px 14px;line-height:1.7}.form-tabs{display:flex;gap:6px;padding:5px;border-radius:13px;background:#eef0e7;margin:25px 0}.form-tabs button{flex:1;border:0;background:none;padding:10px 8px;font-size:12px;color:var(--muted)}.form-tabs .active{background:var(--paper);color:var(--green);box-shadow:0 2px 7px #203e2908}.auth-page{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-story{padding:57px 14%;background:var(--green);color:var(--cream);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:75px}.auth-story .brand-mark{background:#f1f1de;color:var(--green)}.auth-story .brand small{color:#a5c2ac}.auth-story h1{font-size:43px;font-weight:500;line-height:1.6;letter-spacing:.03em}.auth-story p{font-size:13px;color:#bfd1bc;margin-top:23px;line-height:2.1}.auth-art{margin:28px 0;position:relative;width:240px;height:150px;align-self:center}.art-arch{position:absolute;width:116px;height:146px;border-radius:70px 70px 18px 18px;background:#d1dcc0;bottom:0;left:0;transform:rotate(-8deg)}.art-arch.second{background:#719878;left:103px;transform:rotate(11deg);height:126px}.art-line{position:absolute;left:24px;top:48px;width:65px;height:42px;border:2px solid #617e5b;border-top:0;border-radius:0 0 40px 40px;transform:rotate(-8deg)}.art-line.second{left:128px;top:72px;border-color:#d9e2c9;transform:rotate(11deg)}.art-spark{position:absolute;right:-10px;top:0;color:#d1dc9c;font-size:36px}.auth-story-footer{display:flex;align-items:center;gap:12px;color:#bdd0b7;font-size:11px;letter-spacing:.08em}.auth-story-footer:before{content:'';width:25px;height:1px;background:#a4be9b}.auth-main{display:flex;align-items:center;justify-content:center;padding:45px 30px}.auth-box{width:100%;max-width:370px}.auth-box h2{font-size:27px;margin-bottom:12px}.auth-box>p{font-size:12px;color:var(--muted);line-height:1.9}.auth-bottom{margin-top:23px;font-size:10px;color:var(--muted);text-align:center;line-height:1.9}.auth-box .btn.primary{margin-top:4px;min-height:46px}.role-options{display:flex;gap:10px}.role-option{position:relative;flex:1}.role-option input{position:absolute;opacity:0;width:1px;height:1px}.role-option span{display:flex;flex-direction:column;padding:13px;border:1px solid var(--line);border-radius:12px;gap:6px;font-size:12px;line-height:1.5;cursor:pointer}.role-option small{font-size:10px;color:var(--muted);font-weight:400}.role-option input:checked+span{border-color:var(--green);background:var(--sage);color:var(--green)}.role-option input:focus-visible+span{outline:3px solid #9bb68f;outline-offset:2px}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-size:12px;font-weight:550;margin-bottom:10px}.toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);background:var(--deep);color:white;padding:13px 23px;border-radius:13px;font-size:12px;box-shadow:0 7px 25px #12302323;z-index:1000;max-width:calc(100vw - 36px);line-height:1.7}.toast.error{background:#884b3b}dialog{border:1px solid var(--line);border-radius:22px;padding:29px;max-width:470px;width:calc(100% - 36px);color:var(--ink);background:var(--paper);box-shadow:0 30px 120px #163f3226;max-height:calc(100dvh - 48px);overflow-y:auto}dialog::backdrop{background:#183d3252;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.modal-head h2{font-size:20px}.modal-head button{border:0;background:transparent;padding:5px}.modal-head svg{width:19px}.modal-body>p{font-size:13px;color:var(--muted);margin-bottom:21px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.modal-body .summary{font-size:20px;color:var(--green);margin:18px 0;line-height:1.7;overflow-wrap:anywhere}.modal-body .summary small{font-size:12px;color:var(--muted);display:block}.account-summary{display:flex;align-items:center;gap:15px;margin:0 0 22px;padding:18px;background:var(--sage);border-radius:14px}.account-summary h3{font-size:15px;overflow-wrap:anywhere}.account-summary p{font-size:11px;color:var(--muted);margin-top:5px}.account-summary .avatar{background:#cfdcc8}.loading-line{padding:35px;text-align:center;color:var(--muted);font-size:13px}.bottom-note{text-align:center;color:#a6aea0;font-size:10px;letter-spacing:.07em;margin-top:35px}.noscript{position:fixed;inset:0;background:var(--cream);display:grid;place-items:center;color:var(--green)}.receipt-empty{text-align:center;padding:25px;color:var(--muted);font-size:12px}.auth-connection{padding:30px;max-width:500px;margin:15vh auto}.auth-connection p{margin:15px 0;color:var(--muted);font-size:13px}.busy-dot{display:inline-block;width:7px;height:7px;background:currentColor;border-radius:50%;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
@media(min-width:1500px){.page{padding-left:70px;padding-right:70px}.auth-story{padding-left:20%;padding-right:16%}}
@media(max-width:1150px){.layout{grid-template-columns:210px minmax(0,1fr)}.sidebar{width:210px;padding-left:17px;padding-right:17px}.sidebar .brand{margin-left:8px;gap:9px}.brand-name{font-size:18px}.brand small{font-size:9px}.sidebar .nav button{padding:14px 17px}.page{padding:32px 28px 45px}.grid-main{grid-template-columns:minmax(0,1.4fr) minmax(235px,1fr);gap:18px}.stack{gap:18px}.card{padding:22px}.today-card{padding:28px}.today-card h2{font-size:23px}.check-buttons button{padding:12px 13px;font-size:12px}.reward-grid{gap:12px}.reward-card{padding:20px}.agreements-grid{grid-template-columns:minmax(0,1.4fr) minmax(220px,1fr);gap:18px}.day{min-height:70px;padding:9px}.auth-story{padding-left:12%;padding-right:10%}.auth-story h1{font-size:36px}}
@media(max-width:900px){.grid-main{grid-template-columns:1fr}.grid-main>.stack{display:grid;grid-template-columns:1fr 1fr}.grid-main>.stack>.tip{grid-column:1/-1}.points-value strong{font-size:44px}.today-card{min-height:250px}.agreements-grid{grid-template-columns:1fr}.reward-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar .day{min-height:68px;padding:8px}.calendar{gap:6px}.calendar .day-status{font-size:8px}.auth-story{padding-left:10%;padding-right:10%}.auth-story h1{font-size:32px}.auth-story p{font-size:12px}.auth-art{transform:scale(.85)}.header-title{align-items:flex-start}.header-title h1{font-size:28px}}
@media(max-width:680px){.layout{display:block}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:calc(70px + env(safe-area-inset-bottom));padding:7px 12px calc(7px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);background:#fcfdf7ed;backdrop-filter:blur(14px)}.sidebar>.brand,.sidebar-bottom{display:none}.nav{flex-direction:row;gap:5px;height:100%}.nav button{width:25%;font-size:10px;gap:5px;justify-content:center;flex-direction:column;padding:7px!important;border-radius:12px}.nav button.active{color:var(--green);background:#eaf0e4;box-shadow:none}.nav button svg{width:21px;height:21px}.nav .nav-sub{display:none}.page{padding:23px 20px calc(100px + env(safe-area-inset-bottom))}.topbar{margin-bottom:27px}.topbar .eyebrow{display:none}.topbar .brand-name{font-size:15px;letter-spacing:.03em}.topbar .brand-mark{height:32px;width:32px;border-radius:10px;font-size:17px}.top-date{font-size:10px}.topbar-right{gap:9px}.topbar-right .icon-button{min-width:31px;min-height:31px;padding:6px}.topbar-right .icon-button svg{width:15px;height:15px}.mobile-account{display:inline-flex;border-radius:50%;background:var(--sage)!important}.header-title{margin-bottom:20px;gap:12px}.header-title h1{font-size:26px}.header-title p{font-size:11px;line-height:1.8;max-width:240px}.header-title>.badge{font-size:9px;margin-top:8px}.card{border-radius:19px;padding:22px}.grid-main{gap:17px}.stack{gap:17px}.today-card{padding:27px 25px;min-height:258px}.today-card h2{font-size:25px;margin-top:21px}.today-card p{font-size:11px}.today-card .badge{font-size:9px}.check-buttons{gap:11px;margin-top:25px}.check-buttons button{font-size:12px;padding:13px 15px;flex:1}.today-card .eyebrow{font-size:9px}.grid-main>.stack{gap:14px}.grid-main>.stack>.card{padding:20px 17px}.points-value strong{font-size:41px}.points-value{gap:6px}.points-value span{font-size:10px}.points-card .pending{font-size:10px;line-height:1.8;padding-bottom:14px}.points-card .btn{font-size:10px;margin-top:11px}.points-card .card-title h2,.week-card .card-title h2{font-size:13px}.week-card .card-title{gap:3px;margin-bottom:16px}.week-card .card-title small{font-size:10px}.week-day .circle{width:20px;height:20px;font-size:8px}.week-days{gap:3px;margin:18px 0}.week-day{font-size:8px;gap:9px}.week-day.done svg{width:12px}.week-summary{font-size:9px;gap:5px;flex-wrap:wrap}.progress-track{margin-top:14px}.tip{font-size:10px}.note{font-size:12px;padding:17px}.note-footer{font-size:10px}.card-title h2{font-size:15px}.banner{align-items:flex-start;flex-direction:column;padding:15px;gap:12px}.banner .banner-actions{width:100%}.banner .btn{min-height:32px;font-size:11px;padding:7px 12px}.reward-grid{gap:12px;margin-bottom:22px}.reward-card{padding:18px;min-height:218px}.reward-card h3{font-size:12px;line-height:1.8}.reward-card .cost{font-size:18px}.reward-icon{width:42px;height:42px;border-radius:13px;margin-bottom:14px}.reward-icon svg{width:21px}.reward-card .btn{padding:8px 10px;font-size:10px}.rewards-head{padding:22px 20px;gap:15px}.rewards-head h2{font-size:17px}.rewards-head p{font-size:10px;max-width:185px}.reward-balance strong{font-size:31px}.reward-balance span{display:block;font-size:9px;margin-top:5px}.section-row h2{font-size:16px}.section-row .btn{font-size:10px}.receipt{gap:10px;flex-direction:column;padding:17px 0}.receipt-right{width:100%;justify-content:space-between}.receipt-name{font-size:12px}.receipt-meta{font-size:10px;gap:10px}.receipt-right .badge{font-size:9px}.receipt-actions .btn{font-size:10px;padding:7px 10px}.calendar-card{padding:18px 12px}.calendar-card .card-title{padding:0 5px;margin-bottom:12px;flex-wrap:wrap}.calendar-toolbar{gap:4px}.calendar-toolbar strong{font-size:15px;min-width:98px}.calendar-toolbar .icon-button{padding:5px;min-height:30px;min-width:30px;border:0}.calendar-legend{font-size:9px;gap:8px}.calendar{gap:4px}.weekday{font-size:10px;padding:11px 0}.calendar .day{padding:8px 4px;min-height:61px;border-radius:8px;gap:10px;align-items:center;font-size:11px}.calendar .day-status{font-size:7px;gap:2px}.calendar .day-status svg{width:9px;height:9px}.day.has-note:after{right:4px;top:7px;width:3px;height:3px}.calendar-summary{font-size:10px;gap:15px;margin-top:18px;padding-top:16px;justify-content:center}.calendar-summary b{font-size:17px}.date-detail{padding:16px;margin-top:17px}.date-detail h3{font-size:12px}.date-detail p{font-size:11px}.agreements-grid{gap:17px}.rule-row{padding:20px 0;gap:14px}.rule-row h3{font-size:13px}.rule-row p{font-size:11px}.rule-icon{width:35px;height:35px}.rule-icon svg{width:18px}.auth-page{display:block}.auth-story{padding:28px 25px 32px;gap:31px;min-height:290px}.auth-story .brand{gap:10px}.auth-story .brand-mark{width:34px;height:34px;font-size:18px;border-radius:10px}.auth-story .brand-name{font-size:18px}.auth-story .brand small{font-size:8px}.auth-story h1{font-size:28px;line-height:1.6;position:relative;z-index:1}.auth-story p{font-size:10px;margin-top:13px;line-height:1.9;position:relative;z-index:1;max-width:240px}.auth-story-footer{display:none}.auth-art{position:absolute;right:0;bottom:28px;transform:scale(.53);transform-origin:bottom right;margin:0;opacity:.75}.auth-main{padding:32px 25px 45px}.auth-box{max-width:400px}.auth-box h2{font-size:23px}.auth-box>p{font-size:11px}.form-tabs{margin:22px 0}.form-stack{gap:16px}.field-row{gap:12px}.auth-bottom{font-size:9px}.modal-head h2{font-size:18px}dialog{padding:24px;max-height:calc(100dvh - 32px)}.modal-body>p{font-size:12px}.modal-actions .btn{font-size:12px}.toast{bottom:calc(85px + env(safe-area-inset-bottom));font-size:11px}.auth-page+.toast{bottom:25px}.bottom-note{margin-top:27px;font-size:9px}.fine-print{font-size:10px}}
/* Keep the primary action comfortably readable on real phone widths. */
@media(max-width:760px){
  .grid-main{grid-template-columns:minmax(0,1fr)}
  .grid-main>.stack{display:flex;flex-direction:column;min-width:0;grid-template-columns:none}
  .today-card .check-buttons{display:flex;flex-wrap:wrap}
  .check-buttons button{font-size:14px;min-height:52px;white-space:nowrap}
  .today-card p,.note,.note-empty{font-size:14px}
}
/* Dedicated next-day penalty claim page, matching the current mini program. */
.penalty-entry{width:100%;display:flex;align-items:center;gap:16px;padding:22px 25px;margin-bottom:24px;background:#f0eadb;border:1px solid #e5d9c2;border-radius:20px;text-align:left;color:#866b40}.penalty-entry-symbol{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#e9dfca}.penalty-entry strong{display:block;font-size:17px}.penalty-entry small{display:block;color:#9c8969;font-size:12px;margin-top:5px}.penalty-entry-count{margin-left:auto;font-size:12px;white-space:nowrap}.penalty-summary{background:#f1ead9;border-color:#e8ddc4;display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.penalty-summary>svg{height:58px;width:58px;color:#b29a6d}.penalty-summary strong{display:block;font-size:48px;font-weight:500;color:#8e7447}.penalty-summary strong span{font-size:14px;font-weight:400;margin-left:13px}.penalty-summary p{font-size:12px;color:#95876d}.penalty-month-card{margin-bottom:24px}.penalty-month-nav{display:flex;align-items:center;justify-content:space-between;gap:20px}.penalty-month-label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:14px}.penalty-month-label input{padding:8px 12px;border:1px solid var(--line);background:var(--paper);font-size:15px;color:var(--green)}.penalty-open-months{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:18px;font-size:12px;color:var(--muted)}.penalty-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:22px}.penalty-tabs button{background:none;border:0;border-radius:0;padding:10px 4px 16px;font-size:15px;color:var(--muted)}.penalty-tabs button.active{color:var(--green);border-bottom:3px solid #8ca375;font-weight:600}.penalty-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.penalty-records>.empty{grid-column:1/-1}.penalty-record-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}.penalty-status{font-size:12px;padding:6px 12px;background:#f5eddb;color:#9c814e;border-radius:20px;white-space:nowrap}.status-in_progress{background:#edf3e4;color:#738c58}.status-submitted{background:#f0f0e5;color:#8a8d6b}.status-completed{background:#e8f0e0;color:#6d8855}.status-cancelled{background:#eeede8;color:#a19b8d}.penalty-reason{font-size:12px;color:#a3957c;margin-top:12px}.penalty-record h2{font-size:21px;margin-top:22px;word-break:break-word}.penalty-description{font-size:14px;color:#8a927c;margin-top:10px;line-height:1.9;white-space:pre-wrap;word-break:break-word}.penalty-source{font-size:12px;color:#9ba38f;margin-top:16px}.penalty-review-note{background:#faf1e3;border-radius:12px;color:#9c7e51;padding:14px 17px;font-size:13px;margin-top:20px;white-space:pre-wrap;word-break:break-word}.penalty-actions{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.penalty-actions .btn{flex:1}.penalty-primary{background:#a18a5b!important;color:white!important;border-color:#a18a5b!important}.penalty-options{margin-top:26px}.penalty-options .fine-print{margin-top:7px}.penalty-option{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:20px 0}.penalty-option:last-child{padding-bottom:0}.penalty-option strong{font-size:15px}.penalty-option .badge{margin-left:12px}.penalty-option p{font-size:13px;color:var(--muted);margin-top:6px;white-space:pre-wrap;word-break:break-word}.penalty-option-buttons{display:flex;align-items:center;flex-shrink:0}.penalty-choice-description{background:var(--sage);padding:17px;border-radius:14px;white-space:pre-wrap;font-size:14px;color:var(--muted)}
.penalty-options-entry{margin-top:-12px;margin-bottom:24px}.penalty-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.penalty-options{scroll-margin-top:24px}
@media(max-width:760px){.penalty-entry{gap:12px;padding:18px 16px}.penalty-entry strong{font-size:15px}.penalty-entry small{font-size:10px}.penalty-entry-symbol{width:34px;height:38px}.penalty-entry-count{font-size:10px}.penalty-entry>svg{display:none}.penalty-records{grid-template-columns:minmax(0,1fr);gap:16px}.penalty-record h2{font-size:20px}.penalty-summary strong{font-size:42px}.penalty-summary .eyebrow{font-size:9px}.penalty-summary p{font-size:11px}.penalty-month-label{display:block;text-align:center;font-size:10px}.penalty-month-label input{display:block;margin-top:6px;font-size:14px;width:170px}.penalty-open-months{font-size:11px}.penalty-actions{flex-wrap:wrap}.penalty-actions .btn{font-size:13px;white-space:nowrap;min-height:44px}.penalty-options .card-title{align-items:flex-start;gap:9px}.penalty-option{gap:10px;flex-wrap:wrap}.penalty-option-buttons{margin-left:auto}.penalty-option strong{font-size:14px}.penalty-option p{font-size:13px}}
