:root{-webkit-text-size-adjust:100%;font-size:18px;--green:#3f6b48;--green-dark:#2d4f37;--muted:#687165;--line:#dfe2d8;--ink:#222820}
body{overflow-x:hidden}
.app-shell{padding:calc(18px + env(safe-area-inset-top)) 16px calc(34px + env(safe-area-inset-bottom))}
.topbar{margin-bottom:18px}
.topbar h1{font-size:28px}
.eyebrow{font-size:13px}
.upcoming-card{padding:17px}
.upcoming-heading h2,.section-heading h2{font-size:23px}
.upcoming-item{grid-template-columns:42px minmax(0,1fr);gap:11px;padding:13px;border-color:#e6e8df}
.upcoming-avatar{width:40px;height:40px;font-size:16px}
.upcoming-line{align-items:flex-start;flex-wrap:wrap;gap:2px 8px}
.upcoming-line strong{font-size:17px}
.upcoming-time{font-size:15px;white-space:normal}
.upcoming-activity,.upcoming-place,.upcoming-bring{font-size:15px;line-height:1.4}
.upcoming-place a{font-size:15px}
.demo-banner,.demo-banner button{font-size:14px}
.demo-banner button{min-height:36px}
.budget-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:14px;padding:17px;border:1px solid #d3e2cb;border-radius:19px;background:#e7f0df;color:#2f5239}
.budget-card[hidden],.attention-card[hidden]{display:none}
.budget-card h2{margin:2px 0 4px;font-size:26px;letter-spacing:-.04em}
.budget-card p:not(.eyebrow){margin:0;max-width:230px;font-size:13px;line-height:1.4;color:#4c694e}
.budget-children{display:grid;gap:5px;min-width:100px}
.budget-children span{display:flex;justify-content:space-between;gap:6px;font-size:13px;white-space:nowrap}
.budget-children strong{font-size:13px}
.attention-card{display:grid;gap:7px;margin-top:12px;padding:14px 16px;border:1px solid #f0d5b8;border-radius:18px;background:#fff5e9;color:#805a39}
.attention-card strong{font-size:14px}
.attention-card p{margin:0;font-size:13px;line-height:1.4}
.attention-card button{min-height:40px;padding:8px 11px;text-align:left;border:1px solid #f0dfc9;border-radius:10px;background:#fffefa;color:#684d36;font:600 13px inherit}
.heading-actions{display:flex;align-items:center;gap:10px}
.text-button{min-height:46px;font-size:16px}
.child-tab{min-height:50px;font-size:16px}
.add-activity{width:44px;height:44px}
.activity-card{padding:17px}
.activity-title{font-size:19px}
.activity-subtitle,.schedule-note,.bring-note,.map-link,.price-note{font-size:15px;line-height:1.4}
.renewal-note{margin:10px 0 0;color:#4c6549;font-size:15px;line-height:1.4}
.menu-button{width:36px;min-width:36px;height:40px;font-size:23px;line-height:1}
.activity-top .menu-button:first-of-type{margin-left:auto}
.balance-left strong{font-size:28px}
.balance-state.overdrawn{background:#fee8de;color:#a34e38}
.balance-left span,.balance-state{font-size:13px}
.activity-footer{display:grid;gap:10px}
.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%}
.history-button,.visit-button{min-height:47px;justify-content:center;font-size:15px}
.history-button{border-radius:11px;background:#f2f3ed}
.visit-button{grid-column:1/-1}
.footer-note{font-size:13px;text-align:center}
.app-dialog{max-height:calc(100dvh - 18px);overflow-y:auto}
.app-dialog form,.dialog-content{padding:20px 18px 24px}
.app-dialog h2{font-size:26px}
.app-dialog label,.app-dialog .dialog-hint{font-size:17px;line-height:1.45}
.app-dialog label{color:#4f584c}
.app-dialog input,.app-dialog select{min-height:50px;font-size:17px;border-color:#d9ddd2}
.app-dialog .form-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}
.app-dialog .form-row>label{min-width:0}
.app-dialog .form-row input{width:100%;min-width:0;max-width:100%}
.app-dialog .weekday-picker label{min-width:36px;min-height:54px;padding:8px 4px;font-size:14px}
.weekday-picker{overflow-x:auto}
.app-dialog .weekday-picker input{min-height:18px}
.primary-button,.secondary-button{min-height:48px;font-size:16px}
.history-row{gap:10px;font-size:13px;line-height:1.35}
.history-row button{min-width:65px;min-height:40px;font-size:13px}
.event-item strong,.event-item span,.event-item small,.event-empty{font-size:15px;line-height:1.4}
.event-item button{width:40px;height:40px}
.check-row{display:flex!important;align-items:center;gap:10px}
.check-row input{width:21px!important;min-width:21px;height:21px;min-height:21px!important;margin:0!important;accent-color:#476d52}
.account-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:15px}
.account-tabs button{min-height:44px;padding:5px;border:1px solid #e6e9df;border-radius:10px;background:#f7f8f3;color:#5d6a5b;font:600 13px inherit;line-height:1.2}
.account-tabs button.selected{border-color:#69856c;background:#e8f0e2;color:#31533b}
.account-help,.account-box p,.notification-control p{font-size:15px;line-height:1.45;color:#535d50}
.account-box{display:grid;gap:10px}
.account-box strong{font-size:15px}
.account-box p{margin:0}
.account-box button{width:100%}
.account-submit{width:100%;margin-top:10px}
.backup-control{display:grid;gap:8px;margin-top:15px}
.backup-control button{width:100%}
.sync-warning{padding:10px;border-radius:10px;background:#fff2e7;color:#9a6138!important}
.invite-code{display:block;margin:8px 0;padding:13px;border:1px dashed #8ca78d;border-radius:10px;text-align:center;font-size:20px!important;letter-spacing:.14em;user-select:all}
.notification-control{margin-top:17px;padding-top:15px;border-top:1px solid #e8e9e0}
.notification-control button{width:100%}
.notification-control p{margin-bottom:0}
.toast{max-width:calc(100vw - 24px);font-size:13px;white-space:normal;text-align:center}
@media(max-width:390px){.budget-card{display:block}.budget-children{grid-template-columns:repeat(3,1fr);margin-top:12px}.budget-children span{display:block}.heading-actions{gap:4px}.app-shell{padding-left:14px;padding-right:14px}}

/* Soft lavender theme */
:root{--green:#78658f;--green-dark:#59486f;--lime:#eee9f5;--ink:#292531;--muted:#716b79;--line:#e2ddeb}
.summary-card{background:linear-gradient(120deg,#78658f 0%,#9582aa 100%);box-shadow:0 15px 30px rgba(95,76,122,.17)}
.upcoming-card{border-color:#e8e1ef;background:linear-gradient(135deg,#fffefa 0%,#f3eff7 100%)}
.calendar-mark,.upcoming-avatar{background:#eee9f5;color:#66527f}
.upcoming-item:nth-child(2) .upcoming-avatar{background:#f3eaf0;color:#805f75}
.upcoming-item:nth-child(3) .upcoming-avatar{background:#e9e7f3;color:#5f5780}
.child-tab.active{border-color:#9a87b0;background:#f0ebf6;color:#59486f}
.add-activity{background:#ece6f3;color:#66527f}
.activity-card{border-color:#ebe5f1}
.balance-state{background:#f0ebf6;color:#59486f}
.progress-fill{background:#a493ba}
.budget-card{border-color:#ded5eb;background:#f0ebf6;color:#514362}
.budget-card p:not(.eyebrow){color:#665a75}
.app-dialog input:focus{border-color:#a18bb9;box-shadow:0 0 0 3px #f0ebf6}
.weekday-picker input,.check-row input{accent-color:#78658f}
.history-button{color:#665779}
.toast{background:#443752}
.account-tabs button.selected{border-color:#9a87b0;background:#f0ebf6;color:#59486f}
