/* M3.5：手机原生交互层，颜色沿用三主题，所有浮层限制在 App 画框内。 */
:root{--tab-content-height:64px;--tab-height:calc(var(--tab-content-height) + env(safe-area-inset-bottom));--page-bottom:calc(var(--tab-height) + 107px)}
html,body{height:100%;font-size:16px;overscroll-behavior-y:none}body{overflow:hidden}*{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}input,textarea{user-select:text;-webkit-user-select:text;font-size:16px!important;min-height:48px}input[type=hidden]{display:none}button:active,a:active{transform:scale(.96)}small,.note,.muted,.eyebrow{font-size:13px}label{font-size:15px}button{font-size:15px}h1{font-size:34px;line-height:1.2;letter-spacing:0}p{line-height:1.5}button,a{min-width:44px;min-height:44px}summary{min-height:44px;padding:12px 0}#app-frame{position:relative;width:100%;height:100vh;height:100dvh;min-height:100dvh;background:var(--bg);overflow:hidden;padding-top:env(safe-area-inset-top)}#app-scroll{height:100%;overflow:auto;overscroll-behavior-y:contain;scroll-behavior:smooth;scroll-padding-top:200px}main{position:relative;max-width:560px;min-height:100%;padding:0 16px var(--page-bottom);margin:auto;outline:none}.fullscreen main{padding:0;min-height:100%}.sheet-open #app-scroll{overflow:hidden}.app-navbar{position:sticky;top:0;z-index:20;height:44px;display:flex;align-items:center;justify-content:space-between;margin:0 -16px;padding:0 12px;background:var(--bg);backdrop-filter:blur(20px);border-bottom:.5px solid var(--line)}.nav-collapsed .app-navbar{border-bottom-color:var(--line)}.nav-left,.nav-actions{display:flex;align-items:center;gap:8px;z-index:1}.nav-left{min-width:44px}.nav-actions{margin-left:auto}.nav-title{position:absolute;left:90px;right:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:17px;opacity:0;transition:opacity .2s}.nav-collapsed .nav-title{opacity:1}.nav-button,.nav-back{border:0;background:var(--clear);min-width:44px;min-height:44px;color:var(--ink);font-weight:700;padding:4px 6px}.nav-button{border-radius:50%}.nav-back{font-size:16px}.large-title{padding:16px 0 18px}.large-title .note{margin-top:8px}.bottom-nav{height:var(--tab-height);padding:0 0 env(safe-area-inset-bottom);z-index:30;left:0;right:0;bottom:0;width:100%;transform:none;border-radius:0;display:flex;background:var(--paper);backdrop-filter:blur(20px);border:0;box-shadow:0 -1px 0 var(--line)}.bottom-nav a{flex:1;min-width:56px;min-height:56px;height:var(--tab-content-height);gap:2px;border-radius:0;font-size:12px;background:var(--clear);color:var(--tab-inactive);font-weight:500;transition:color .15s}.bottom-nav a .tab-icon{display:grid;place-items:center;width:58px;height:34px;border-radius:18px;background:var(--clear);transition:background .18s,transform .18s cubic-bezier(.2,.8,.2,1)}.bottom-nav a svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bottom-nav a .tab-label{font-size:12px;line-height:16px}.bottom-nav a[aria-current=page]{background:var(--clear);color:var(--tab-active);font-weight:800}.bottom-nav a[aria-current=page] .tab-icon{background:var(--tab-highlight);animation:tab-pop .2s cubic-bezier(.2,.8,.2,1)}.bottom-nav a[aria-current=page] .tab-fill{fill:currentColor}.bottom-nav a[aria-current=page] .tab-detail{stroke:var(--tab-highlight)}.fullscreen .bottom-nav{display:none}.app-segments{position:sticky;top:44px;z-index:19;margin:0 -16px;padding:4px 16px;border-radius:0;background:var(--bg);border-bottom:.5px solid var(--line)}.segmented a{display:flex;align-items:center;justify-content:center;flex:1;min-width:44px;min-height:44px;font-size:15px;border-radius:9px}.segmented a[aria-current=page]{background:var(--paper);box-shadow:0 2px 4px var(--shadow);font-weight:750}.table-switch{display:flex;overflow:auto;gap:8px;margin:8px 0}.table-switch a{white-space:nowrap;display:flex;align-items:center}.filter-tab{font-size:14px;min-width:44px;min-height:44px}.card{padding:16px;border-radius:20px}.icon-btn{font-size:14px;min-width:44px;min-height:44px}.btn{font-size:16px;min-height:48px}.btn:active,.icon-btn:active{transform:scale(.96)}.chip{font-size:13px}.field-grid{grid-template-columns:1fr;gap:16px}.sheet .field-grid{grid-template-columns:1fr}.page-push>.page-content,.page-push>.large-title{animation:page-push .25s cubic-bezier(.2,.8,.2,1)}
/* Sheet 的头部固定，正文单独滚动；键盘只抬升浮层。 */
.overlay{padding:8px 0 0;align-items:flex-end;position:fixed;inset:0 0 var(--keyboard,0px);animation:fade-in .2s;background:var(--overlay)}.sheet{display:flex;flex-direction:column;padding:0;width:100%;max-width:560px;max-height:92vh;max-height:92dvh;overflow:hidden;border-radius:24px 24px 0 0;border:1px solid var(--line);animation:sheet-in .3s cubic-bezier(.2,.8,.2,1);box-shadow:0 -8px 30px var(--shadow);transition:transform .15s}.sheet.large,.sheet.form-sheet{height:92vh;height:92dvh}.sheet-grab{flex-shrink:0;padding-top:10px;touch-action:none}.sheet-handle{width:36px;height:5px;margin:0 auto 3px;border-radius:5px;background:var(--line)}.sheet-heading{display:grid;grid-template-columns:64px 1fr 64px;gap:4px;margin:0;padding:0 12px;border-bottom:1px solid var(--line);min-height:52px}.sheet-heading h2{font-size:17px;text-align:center;align-self:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-heading button{border:0;background:var(--clear);font-size:16px;padding:4px;min-height:44px}.sheet-done{font-weight:800;color:var(--focus)}.sheet-body{padding:20px 16px calc(24px + env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;min-height:0;flex:1}.sheet form>.btn[type=submit],.sheet form>.btn:not([type]){position:sticky;bottom:0;width:100%;z-index:2}.form-actions-hidden{display:none}.sheet .stack>*+*{margin-top:20px}.action-sheet{height:auto!important;background:var(--bg);border:0}.action-sheet .sheet-heading{display:flex;flex-direction:column;position:relative;padding:0 12px 8px}.action-sheet .sheet-heading h2{order:0;font-size:15px;padding:4px 52px}.action-sheet .sheet-cancel{position:absolute;top:0;left:10px;font-size:15px}.action-sheet .sheet-done{display:none}.action-sheet .sheet-body{padding:0 8px calc(16px + env(safe-area-inset-bottom))}.action-group{border-radius:16px;background:var(--paper);overflow:hidden;display:flex;flex-direction:column;gap:0}.action-row,.action-group>.btn,.action-group>.icon-btn{min-height:56px;width:100%;padding:12px 16px;display:flex;text-align:left;justify-content:flex-start;align-items:center;gap:12px;border:0;border-bottom:1px solid var(--line);box-shadow:none;border-radius:0;background:var(--paper);font-size:16px;font-weight:500}.action-row:last-child{border-bottom:0}.danger,.action-group .danger{color:var(--danger)}.action-message{padding:12px 16px}.value-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:12px;min-height:52px;font-size:17px;font-variant-numeric:tabular-nums;margin-top:7px}.setting-field{font-size:14px;color:var(--muted)}.setting-field .value-row{color:var(--ink)}.choice-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.choice-grid button{min-height:44px;min-width:44px;padding:8px 14px;border:1px solid var(--line);border-radius:22px;background:var(--paper);font-size:15px}.choice-grid button[aria-pressed=true],.duration-options [aria-pressed=true]{background:var(--secondary);border-color:var(--ink)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:8px 12px;background:var(--paper);border-radius:12px;font-weight:500}.switch-row span{flex:1}.switch{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 51px;width:51px!important;height:31px!important;min-height:31px!important;max-height:31px;padding:0;border:0;border-radius:18px;background:var(--line);margin:0;overflow:visible;cursor:pointer}.switch:before{content:'';position:absolute;width:27px;height:27px;top:2px;left:2px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px var(--shadow);transition:transform .2s}.switch:checked{background:var(--success)}.switch:checked:before{transform:translateX(20px)}.day-pick{display:flex;justify-content:space-between;gap:4px}.day-choice{position:relative;min-width:44px;min-height:44px;flex:1}.day-choice span{border:1px solid var(--line);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--paper);font-size:16px}.day-choice input:checked+span{background:var(--ink);color:var(--paper)}.day-choice input:focus-visible+span{outline:3px solid var(--focus)}.unavailable{opacity:.35}.clearable{position:relative;display:block;margin-top:7px}.clearable input{padding-right:48px;margin:0}.input-clear{position:absolute;right:0;top:2px;border:0;background:var(--clear);width:44px;height:44px;color:var(--muted);font-size:22px}.wheel{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;height:200px;isolation:isolate;overflow:hidden}.wheel:before{content:'';position:absolute;z-index:-1;left:10%;right:10%;top:80px;height:40px;border-radius:12px;background:var(--secondary)}.wheel:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(var(--paper),var(--clear) 35%,var(--clear) 65%,var(--paper))}.wheel-column{height:200px;width:92px;overflow-y:auto;scroll-snap-type:y mandatory;padding:80px 0;scrollbar-width:none;overscroll-behavior:contain;touch-action:pan-y}.wheel-column::-webkit-scrollbar{display:none}.wheel-column button{display:block;height:40px;min-height:40px;width:100%;scroll-snap-align:center;scroll-snap-stop:always;border:0;background:var(--clear);font-size:26px;font-variant-numeric:tabular-nums;padding:0;opacity:.55}.wheel-column button[aria-selected=true]{font-weight:800;opacity:1}.wheel-colon{font-size:24px}.duration-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.duration-step{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:32px 0}.duration-step strong{font-size:22px}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.calendar-week{margin-top:12px;text-align:center;font-size:13px}.calendar-grid button{position:relative;min-width:44px;min-height:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--clear);font-size:16px}.calendar-grid button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.is-today{outline:1.5px solid var(--focus);outline-offset:-3px}.calendar-grid i{position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--accent);left:calc(50% - 2px)}
/* 列表、手势与浮动操作。 */
.swipe-actions{position:relative;isolation:isolate;border-radius:16px;background:var(--success);overflow:hidden;min-width:0}.swipe-actions:before{content:'完成';position:absolute;left:20px;top:50%;transform:translateY(-50%);color:var(--paper);font-size:16px}.swipe-actions>button:not(.swipe-row){position:absolute;top:0;bottom:0;right:72px;width:72px;border:0;background:var(--focus);color:var(--paper);z-index:-1}.swipe-actions>button.danger{right:0;background:var(--danger)}.swipe-actions>.swipe-row{position:relative;z-index:1;touch-action:pan-y;transition:transform .15s}.swipe-actions.swipe-open>.swipe-row{box-shadow:0 2px 4px var(--shadow)}.habit-swipe{border-radius:22px}.dragging{position:relative;z-index:10;box-shadow:0 10px 24px var(--shadow);outline:2px solid var(--focus);transition:none!important}.drag-target{transform:translateY(8px);transition:transform .2s}.drag-handle{touch-action:none;min-width:44px;height:44px;min-height:44px;background:var(--clear);border:0;font-size:24px}.row-remove{min-width:44px;height:44px;border:0;background:var(--clear);color:var(--danger);font-size:26px}.row-more{min-width:44px;height:44px;min-height:44px;align-self:center;border:0;background:var(--clear);font-size:20px;padding:0}.app-fab{position:fixed;right:16px;bottom:calc(var(--tab-height) + 16px);height:56px;min-width:56px;max-width:180px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 18px;border-radius:30px;border:1.5px solid var(--ink);background:var(--accent);box-shadow:0 4px 0 var(--shadow);z-index:25;transition:bottom .2s,padding .2s;font-weight:750}.app-fab>span:first-child{font-size:28px}.fab-label{font-size:15px;white-space:nowrap}.scrolling-down .app-fab{width:56px;padding:0}.scrolling-down .fab-label{display:none}.toast{bottom:calc(var(--tab-height) + 12px);left:50%;max-width:calc(100% - 24px);padding:6px 12px;min-height:56px;z-index:90}.toast>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5;font-size:14px}.has-toast .app-fab,.has-toast .secondary-fab{bottom:calc(var(--tab-height) + 84px)}#storage-banner{background:var(--warning);font-size:13px;padding:10px 16px;position:absolute;top:0;left:0;right:0;z-index:100}#storage-banner~#app-scroll{padding-top:60px}.desktop-intro{display:none}.now-card{background:var(--secondary);border-color:var(--ink)}.now-card h2{font-size:21px;margin:8px 0}.mascot-button{border:0;background:var(--clear);padding:0;width:80px;height:80px}.now-link{display:flex;align-items:center;min-height:44px;font-weight:700;margin-top:4px}.progress-card{padding:8px 16px}.progress-card-link{display:flex;align-items:center;gap:12px;min-height:88px}.progress-card-link strong{font-size:17px;display:block;overflow-wrap:anywhere}.progress-card-link small{display:block;margin-top:6px}.progress-ring{display:grid;place-items:center;border-radius:50%;flex:0 0 52px;height:52px;background:conic-gradient(var(--primary) var(--progress),var(--rest) 0);font-size:13px;font-weight:750;border:3px solid var(--secondary)}.bedtime-shortcut{display:flex;align-items:center;min-height:44px;border-top:1px dashed var(--line);font-size:14px;font-weight:700}.settings-heading{font-size:13px;color:var(--muted);font-weight:500;margin:24px 12px 8px}.settings-group{background:var(--paper);border-radius:16px;overflow:hidden;border:1px solid var(--line)}.settings-item{min-height:56px;width:100%;display:flex;align-items:center;text-align:left;gap:12px;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:var(--clear);font-size:16px;font-weight:400}.settings-item .note{font-size:13px}.settings-icon{display:grid;place-items:center;min-width:32px;height:32px;border-radius:9px;background:var(--secondary)}.settings-reminder{padding:12px;font-size:14px}.settings-reminder .choice-grid{justify-content:space-between}.settings-group .switch-row{border-bottom:1px solid var(--line);border-radius:0}.profile-card h2{font-size:20px}.profile-card p{margin-top:8px}.install-card{margin-bottom:14px;background:var(--rest)}
/* 周计划：日分页和一屏七列。 */
.week-sticky{position:sticky;top:44px;z-index:12;background:var(--bg);margin:0 -16px;padding:0 16px;border-bottom:.5px solid var(--line);height:96px}.week-sticky>.row{gap:4px}.week-sticky .icon-btn{padding:4px;font-size:13px}.date-strip{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:0;margin:0}.date-day{flex:1;min-width:44px;min-height:56px;border:0;background:var(--clear);border-radius:24px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:4px 0;gap:2px}.date-day small{font-size:13px}.date-day strong{font-size:17px}.date-day[aria-pressed=true]{background:var(--ink);color:var(--paper)}.date-day[aria-pressed=true] small{color:var(--paper)}.day-budget{margin:6px 0;line-height:1.4}.day-pager{display:flex;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;align-items:flex-start}.day-page{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.today-list{padding:0;display:grid;gap:6px}.day-row-shell{display:flex;gap:0;align-items:center;min-width:0;position:relative;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding-right:4px;width:100%}.today-list>.swipe-actions{width:100%}.day-row-shell>.row-more{flex:0 0 44px}.today-row{border:0;border-radius:16px;background:var(--clear);padding:6px;min-height:68px;display:flex;gap:6px;text-align:left;flex:1;min-width:0;align-items:center}.today-row>svg{width:36px;height:36px}.today-row strong{font-size:17px;display:block;overflow-wrap:anywhere}.today-row small{display:block;font-size:13px;line-height:1.6}.day-check{width:56px;height:56px;min-width:56px;display:grid;place-items:center;border:1.5px dashed var(--ink);border-radius:17px;font-size:28px;background:var(--bg)}.day-row-shell:has(.today-row.completed){background:var(--life)}.completed .day-check{background:var(--secondary);animation:pop .25s}.today-row:disabled{background:var(--rest);opacity:.65}.week-footer{font-size:13px;padding:18px 0;flex-wrap:wrap;border:0}.week-scroll{overflow:visible;width:calc(100% + 24px);margin:0 -12px}.week-grid{min-width:0!important;width:100%;font-size:13px;table-layout:fixed;border-spacing:0}.week-grid th,.week-grid td{padding:2px 0;border-right:0}.week-grid .week-label-col{width:76px}.week-grid th:first-child,.week-grid td:first-child{width:auto!important;position:static;padding:0;border-right:0}.week-grid .check-cell{max-width:100%;width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;border-radius:10px;font-size:21px}.week-grid .na-cell{width:38px;height:38px}.week-grid .activity-info{display:flex;flex-direction:column;align-items:flex-start;min-height:70px;font-size:13px;padding:6px 3px;line-height:1.4;width:100%;overflow:hidden}.week-grid .activity-info>span{display:block;max-width:100%;font-size:13px}.week-grid .activity-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;overflow-wrap:anywhere;font-size:13px;line-height:1.4}.week-grid .activity-info small{display:block;font-size:13px}.week-grid .activity-info svg{display:none}.week-grid .section-row td{height:44px;padding:8px 3px;font-size:14px}.week-head-day{width:100%;min-width:38px;min-height:52px;border:0;padding:0;background:var(--clear);font-size:14px}.week-head-day small{display:block;font-size:13px}.week-grid th{height:52px}.week-grid .check-cell svg{width:24px;height:24px}
/* 习惯卡片保留大图标，编辑在原列表进行。 */
.habit-cover{padding:14px}.habit-cover .eyebrow{margin:0;font-size:13px}.habit-cover .note.mt{margin-top:4px}.habit-cover>.row>svg{display:none}.habit-cover h1{font-size:20px}.habit-parent[hidden]{display:none}.habit-tabs{position:sticky;top:96px;z-index:12;flex-wrap:nowrap;overflow:auto;background:var(--bg);padding:8px 0;margin:0;border-bottom:.5px solid var(--line)}.habit-tabs button{flex-shrink:0}.habit-steps{gap:14px}.habit-step{min-height:104px;padding:12px 8px;gap:8px}.habit-step strong{font-size:19px}.habit-step small{font-size:13px}.habit-check{width:56px;height:56px;flex-shrink:0}.habit-edit-row{display:flex;gap:0;align-items:center;min-width:0}.habit-edit-row .habit-step{min-width:0;flex:1}.habit-edit-row .habit-step>svg{width:44px;height:44px}.habit-edit-row .habit-step strong{font-size:17px}.habit-edit-row .habit-check{display:none}.parent-lock{touch-action:none}.nav-button.holding{background:conic-gradient(var(--primary),var(--secondary));animation:parent-hold 2s linear}.habit-days{gap:4px;margin:16px 0}.habit-day{font-size:13px}.habit-wall{overflow:hidden}.habit-collection{grid-template-columns:repeat(3,1fr)}.habit-countdown{touch-action:pan-y;height:100%;min-height:100vh;min-height:100dvh;padding:calc(12px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));gap:10px}.habit-countdown>.row{margin-bottom:auto}.habit-countdown #countdown-done{margin-top:auto;min-height:64px}.habit-countdown .countdown-picture{margin-top:10px}.habit-countdown .countdown-ring{width:148px;height:148px}.habit-child-mode main{height:100%;min-height:100%}.habit-child-mode #app-scroll{overflow:auto}.habit-child-mode .app-navbar{display:none}
/* 妈妈：紧凑日期、负荷和当前状态，首屏进入现在的时间轴。 */
.mom-sticky{position:sticky;top:96px;z-index:12;background:var(--bg);margin:0 -16px;padding:0 16px 8px;border-bottom:.5px solid var(--line)}.date-title{width:100%;border:0;background:var(--clear);font-weight:700;font-size:16px;min-height:44px}.mom-sticky .date-strip{margin:0}.compact-load{border:0;width:100%;display:block;text-align:left;background:var(--bg);padding:8px 0;min-height:44px;font-size:13px;border-bottom:.5px solid var(--line)}.compact-load>span:first-child{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-load .mom-load-track{height:5px;margin:5px 0 0;display:block}.compact-load .mom-load-track>span{height:100%;display:block;background:var(--success)}.compact-load.yellow .mom-load-track>span{background:var(--focus)}.compact-load.red .mom-load-track>span{background:var(--danger)}.mom-now{margin:0;padding:8px 10px;font-size:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-height:36px}.mom-timeline{margin-top:12px}.mom-tick{font-size:13px}.mom-tick>span{width:44px}.mom-block{border-radius:14px;box-shadow:0 2px 0 var(--shadow)}.mom-block-name{padding:8px;min-height:44px;width:100%;height:100%;align-items:flex-start;touch-action:pan-y}.mom-block-name strong{font-size:16px;white-space:nowrap}.mom-block-name small{font-size:13px}.mom-block.compact .mom-block-name{height:100%;padding:5px 6px;align-items:center}.mom-block.compact .mom-block-name strong{font-size:14px}.mom-block-note{position:absolute;top:54px;left:0;right:0;pointer-events:none;font-size:13px;max-height:calc(100% - 60px)}.mom-resize{display:none;position:absolute;left:0;right:0;bottom:0;min-height:44px;width:100%;font-size:13px;background:var(--secondary);z-index:9;touch-action:none}.mom-selected .mom-resize{display:block;bottom:-44px}.mom-block.compact .mom-block-head{padding:0}.mom-block.crowded .mom-block-name{flex-direction:row;padding:4px}.mom-stretch{font-size:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;left:52px}.mom-moving{z-index:14;transform:scale(1.03);touch-action:none}.drag-time-bubble{display:none;position:absolute;top:-32px;right:0;padding:4px 10px;background:var(--ink);color:var(--paper);border-radius:12px;white-space:nowrap;font-size:14px}.mom-moving .drag-time-bubble{display:block}.secondary-fab{position:fixed;bottom:calc(var(--tab-height) + 16px);right:calc(100% - 220px);padding:0 16px;border-radius:24px;min-height:48px;border:1px solid var(--ink);background:var(--paper);z-index:25;font-weight:700;font-size:14px;transition:bottom .2s}.pool-drawer-handle{position:fixed;bottom:var(--tab-height);left:0;right:0;width:100%;height:44px;border:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0;background:var(--paper);z-index:24;font-size:13px;touch-action:none;transition:opacity .15s}.secondary-fab{right:calc(100% - 200px)}.mom-pool-row{padding:8px;background:var(--paper);min-height:72px}.mom-pool-edit{font-size:16px}.mom-pool-edit small{font-size:13px}.mom-pool-summary{display:none}.mom-block.overlapping .mom-block-name strong{font-size:14px}.mom-block.crowded .mom-block-name svg{display:none}
/* 全屏引导，主按钮始终在安全区之上。 */
.onboarding{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:0 16px calc(92px + env(safe-area-inset-bottom));position:relative}.onboard-nav{display:flex;align-items:center;gap:16px;min-height:56px;padding-top:env(safe-area-inset-top)}.onboard-nav .steps{flex:1;margin:0;gap:5px}.onboard-nav .nav-button{font-size:16px}.onboard-content{flex:1;display:flex;flex-direction:column;justify-content:center}.onboarding-title{margin:12px 0 20px}.onboarding-title h1{font-size:28px;margin-bottom:10px}.onboarding-title svg{margin-bottom:12px}.age-grid{display:grid;grid-template-columns:1fr;gap:8px}.age-choice{min-height:72px;display:flex;align-items:center;justify-content:space-between;padding:12px 18px;font-size:17px}.age-choice strong{font-size:18px}.age-choice small{font-size:13px}.onboard-footer{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20}.onboard-footer .btn{height:56px}.onboarding .theme-option{min-height:160px;font-size:14px}.onboarding .theme-option svg{width:76px;height:76px}.onboard-content>.onboarding-title+.card{padding:0}.fullscreen .toast{bottom:calc(92px + env(safe-area-inset-bottom))}.onboarding .wheel{margin:24px auto}.onboarding .wheel:after{background:linear-gradient(var(--bg),var(--clear) 35%,var(--clear) 65%,var(--bg))}
@media(max-height:710px){.onboard-content{justify-content:flex-start}.onboarding-title{margin:4px 0 10px}.onboarding-title>svg{width:48px;height:48px;margin:0}.onboarding-title h1{font-size:26px;margin:4px 0}.onboarding-title .note{font-size:13px}.age-choice{min-height:72px;padding:8px 16px}.age-grid{gap:6px}.onboard-nav{min-height:48px}.habit-countdown .countdown-picture svg{width:76px;height:76px}.habit-countdown .countdown-ring{width:124px;height:124px}.habit-countdown h1{font-size:28px}}
@media(min-width:600px) and (max-width:899px){#app-frame{max-width:560px;margin:auto;transform:translateZ(0)}}
@media(min-width:900px){body{display:flex;justify-content:center;align-items:center;background:radial-gradient(var(--line) 1px,var(--clear) 1px) 0 0/24px 24px,var(--bg)}#app-frame{width:430px;height:calc(100vh - 48px);height:calc(100dvh - 48px);max-height:932px;min-height:0;border-radius:36px;border:1px solid var(--line);box-shadow:0 24px 80px var(--shadow);transform:translateZ(0);isolation:isolate}#app-scroll{height:100%}main{max-width:430px;padding:0 16px var(--page-bottom);min-height:100%}.onboarding,.habit-countdown{min-height:100%;height:100%;max-width:none}.onboarding{padding-bottom:92px}.fullscreen #main{height:100%}.bottom-nav,.overlay,.toast,.app-fab,.secondary-fab,.pool-drawer-handle,.celebration,.habit-celebration{position:fixed}.bottom-nav{left:0;width:100%;transform:none;border-radius:0}.sheet{max-height:92%;max-height:calc((100dvh - 48px)*.92);max-width:100%;border-radius:24px 24px 0 0}.sheet.large,.sheet.form-sheet{height:92%;height:calc((100dvh - 48px)*.92)}.overlay{padding:8px 0 0}.onboard-footer{left:16px;right:16px}.habit-countdown{padding-top:16px;padding-bottom:24px}.week-grid .week-label-col{width:88px}.habit-cover,.habit-wall,.habit-tabs,.habit-steps{max-width:none}.habit-days{gap:4px}.card{padding:16px}.habit-step{padding:12px 8px}.habit-path{margin-left:35px;margin-right:35px}}
@media(min-width:1100px){.desktop-intro{position:absolute;display:block;left:calc(50% - 510px);width:265px}.desktop-intro h1{font-size:30px;line-height:1.5}.desktop-intro p{font-size:15px;margin-top:24px;color:var(--muted)}}
@keyframes page-push{from{opacity:.4;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}@keyframes sheet-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes tab-pop{50%{transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:active,a:active{transform:none}}

.action-cancel{flex:0 0 auto;width:calc(100% - 16px);min-height:56px;border:0;border-radius:16px;background:var(--paper);margin:8px 8px calc(12px + env(safe-area-inset-bottom));font-size:17px;font-weight:700}.action-sheet .sheet-heading{display:block;min-height:42px}.action-sheet .sheet-cancel[hidden]{display:none}.action-sheet .sheet-heading h2{padding:8px 12px}.mom-star-select{position:absolute;right:0;top:0;width:56px;height:56px;border:1px solid var(--ink);border-radius:16px;background:var(--paper);font-size:32px;z-index:10}.mom-star-select[aria-pressed=true]{background:var(--accent)}.shift-preview{margin:16px 0;padding:12px;background:var(--rest);border-radius:12px}.shift-preview p{font-size:15px;padding:8px 0}.date-title{font-variant-numeric:tabular-nums}.form-actions-hidden{display:none!important}.switch:after{content:'';position:absolute;inset:-7px -1px}.sheet .day-pick{margin:0 -8px}.sheet .day-choice{flex:0 0 44px}.day-choice span{pointer-events:none}.row-remove:active,.drag-handle:active{transform:scale(.96)}
.nav-collapsed .mom-sticky .date-title{display:none}.nav-collapsed .mom-sticky .date-day{min-height:48px;height:48px}.nav-collapsed .mom-sticky .compact-load{padding:4px 0;min-height:44px}.nav-collapsed .mom-sticky .mom-now{padding:6px 8px;min-height:32px}
.page-back>.page-content,.page-back>.large-title{animation:page-back .25s cubic-bezier(.2,.8,.2,1)}@keyframes page-back{from{opacity:.4;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}
.fullscreen #app-frame{padding-top:0}.sheet form{display:flex;flex-direction:column}.sheet form>label,.sheet form>fieldset{width:100%}.sheet .two-col{grid-template-columns:1fr}.sheet .day-choice{font-weight:600}.page-content{min-width:0}
.sheet{max-height:min(92vh,100%);max-height:min(92dvh,100%)}.sheet.form-sheet,.sheet.large{max-height:100%}.sheet-heading h2{overflow-wrap:normal}.sheet [aria-hidden=true]{pointer-events:none}
.sheet .day-pick{gap:8px}.calendar-grid{margin:8px -8px 0;gap:8px}.calendar-week{margin-left:-8px;margin-right:-8px;gap:8px}.week-grid .activity-info svg{display:block;width:20px;height:20px}.date-progress{font-style:normal;font-size:10px;line-height:10px;height:10px}.date-day{min-height:62px}.mom-sticky .date-day{min-height:56px}.now-card[role=link]{cursor:pointer}
.date-progress{font-size:13px;line-height:13px;height:13px}.icon-tile,.theme-option{font-size:13px}.week-sticky .date-day{min-height:56px;height:56px;padding:2px 0;gap:0;border-radius:18px}

/* M3.5 修复：周头部只吸附日期；小屏首屏保留四项安排。 */
.week-screen .large-title{padding:6px 0}.week-screen .large-title .note{margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week-screen .app-segments{position:relative;top:auto;z-index:auto;margin-bottom:4px}.nav-view{height:44px;padding:0;gap:0;flex-shrink:0;background:var(--secondary)}.nav-view button{width:44px;padding:0;font-size:14px}
.week-screen .nav-title{left:12px;right:212px;text-align:left}.week-screen .nav-left:has(button)~.nav-title{left:90px;right:208px;font-size:15px}
.week-caption{display:flex;align-items:center;height:39.5px;gap:0}.week-caption .icon-btn{flex:0 0 44px;height:44px;align-self:flex-end;border:0;background:var(--bg)}
.week-period{flex:1;min-width:0;height:44px;align-self:flex-end;border:0;background:var(--bg);font-size:13px;white-space:nowrap}.week-return{height:44px;align-self:flex-end;border:0;border-radius:18px;background:var(--secondary);font-size:13px;padding:0 8px}
.week-sticky{touch-action:pan-y}.week-sticky .date-strip{height:56px}.date-day{min-width:44px;width:100%;max-width:100%}.date-progress{line-height:13px}
.week-grid .activity-info{white-space:normal}.today-list>.swipe-actions{background:var(--success)}.swipe-actions.swipe-complete:before{content:attr(data-complete-label)}
.action-sheet .action-scroll{max-height:70vh;max-height:70dvh;padding:0 8px;flex:1 1 auto;overflow-y:auto}.action-section+.action-section{margin-top:8px}.action-group-title{font-size:13px;color:var(--muted);font-weight:500;padding:4px 12px}.action-lock{display:flex;align-items:center;gap:4px;font-size:13px}.action-lock small{font-size:13px}.action-row>svg{flex:0 0 24px}.action-group{flex-shrink:0}
/* 中断入口收进不透明抽屉把手行，避免浮在时间块文字上。 */
body.mom-tab{--mom-actions-bottom:calc(var(--tab-height) + 60px)}body.mom-tab.has-toast{--mom-actions-bottom:calc(var(--tab-height) + 148px)}
body.mom-tab #mom-add{bottom:var(--mom-actions-bottom);height:56px;min-height:56px;width:56px;min-width:56px;padding:0;right:16px}body.mom-tab #mom-add .fab-label{display:none}
.pool-drawer-bar{position:fixed;bottom:var(--tab-height);left:0;right:0;display:flex;align-items:center;height:46px;padding:0 8px;gap:8px;background:var(--paper);border-top:1px solid var(--line);border-radius:16px 16px 0 0;z-index:24}
.pool-drawer-bar .pool-drawer-handle{position:static;flex:1;min-width:0;width:auto;border:0;border-radius:0;background:var(--clear);font-size:13px;padding:0;white-space:nowrap}
.drawer-interrupt{flex:0 0 auto;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:22px;background:var(--secondary);font-size:13px;font-weight:700}
body.mom-tab .toast{bottom:calc(var(--tab-height) + 60px)}body.mom-tab main{padding-bottom:calc(var(--tab-height) + 181px)}
/* Sheet 显示时提示置顶，避免盖住正文中的微调/保存操作。 */
body.sheet-open .toast{top:calc(12px + env(safe-area-inset-top));bottom:auto;max-height:calc(100% - 24px)}
.mom-busy-badge{position:absolute;left:0;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:var(--bg);color:var(--danger);z-index:9;display:grid;place-items:center;transform:translateY(-50%)}.mom-busy-badge span{font-size:20px;line-height:20px;display:grid;place-items:center;width:20px;height:20px;background:var(--warning);border-radius:6px}
.mom-tweak>.note{display:block;margin-bottom:6px}.tweak-pills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.tweak-pills button{min-width:0;height:44px;padding:2px;border:1px solid var(--line);border-radius:22px;background:var(--secondary);font-size:13px}
.parent-lock.nav-button{position:relative;display:flex;align-items:center;gap:4px;border-radius:22px}.parent-lock.nav-button.holding{animation:none;background:var(--secondary)}.lock-progress{position:absolute;left:-1px;top:2px;width:40px;height:40px;transform:rotate(-90deg);pointer-events:none}.lock-progress circle{fill:none;stroke:var(--focus);stroke-width:2.5;stroke-dasharray:113.1;stroke-dashoffset:113.1}.holding .lock-progress circle{animation:lock-ring 2s linear forwards}@keyframes lock-ring{to{stroke-dashoffset:0}}
/* M4：分工与 SOP 共享行、吸顶、场景和画框内底部操作。 */
.m4-sticky{position:sticky;top:96px;z-index:12;background:var(--bg);border-bottom:.5px solid var(--line);padding:8px 0}.family-people{display:flex;gap:8px;overflow-x:auto;padding-top:8px}.family-people button{flex-shrink:0;display:flex;align-items:center;gap:4px}.m4-row{display:flex;align-items:center;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden}.m4-check{display:flex;gap:8px;align-items:center;min-width:0;min-height:72px;border:0;background:var(--clear);text-align:left;padding:10px 8px}.m4-check>svg{flex-shrink:0}.m4-check strong{display:block;font-size:16px;overflow-wrap:anywhere}.m4-check small{display:block;font-size:13px;margin-top:4px}.m4-check[aria-pressed=true]{background:var(--rest)}.m4-tick{display:grid;place-items:center;min-width:44px;height:56px;font-size:24px;color:var(--focus)}.family-row .num{font-size:13px}.family-grid-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain}.family-grid{display:grid;gap:1px;min-width:334px;background:var(--line);padding:1px}.family-heading,.family-time{display:flex;align-items:center;justify-content:center;background:var(--bg);font-size:13px}.family-time{align-items:flex-start;padding-top:4px;font-size:12px}.family-empty{border:0;border-radius:0;background:var(--paper);color:var(--muted)}.family-block{display:flex;align-items:flex-start;flex-direction:column;gap:4px;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--secondary);padding:8px 4px;overflow:hidden;text-align:left}.family-block strong{font-size:13px;overflow-wrap:anywhere}.family-block small{font-size:12px}.family-block.is-done{background:var(--rest)}.family-stats h2{font-size:18px}.family-stats p{font-size:14px;margin-top:12px}.family-stat-track{display:block;height:8px;background:var(--line);border-radius:8px;overflow:hidden;margin-top:4px}.family-stat-track i{display:block;height:100%}.person-color-0{background:var(--primary)}.person-color-1{background:var(--focus)}.person-color-2{background:var(--success)}.person-color-3{background:var(--danger)}.family-share-bar{position:fixed;left:0;right:0;bottom:var(--tab-height);padding:8px 16px 12px;background:var(--bg);border-top:1px solid var(--line);z-index:24}.family-share-bar button{display:flex;align-items:center;justify-content:center;gap:8px}.family-share-bar svg,.sop-scene small svg{width:18px;height:18px}.family-tab #family-add{bottom:calc(var(--tab-height) + 84px)}.family-tab .toast{bottom:calc(var(--tab-height) + 84px)}.family-tab.has-toast #family-add{bottom:calc(var(--tab-height) + 172px)}.family-tab main{padding-bottom:calc(var(--tab-height) + 183px)}.family-list{min-height:100px}#family-view{touch-action:pan-y}.sop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sop-scene{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:160px;border:1px solid var(--line);border-radius:20px;padding:14px;color:var(--ink);overflow-wrap:anywhere}.scene-color-secondary{background:var(--secondary)}.scene-color-rest{background:var(--rest)}.scene-color-warning{background:var(--warning)}.scene-color-accent{background:var(--accent)}.sop-scene .progress-ring{flex-basis:44px;width:44px;height:44px}.sop-scene small{font-size:12px}.sop-new{justify-content:center;align-items:center;background:var(--paper);border-style:dashed;font-weight:700}.sop-number{font-size:13px;color:var(--muted)}.sop-steps{gap:12px}.sop-row.optional{border:2px dashed var(--focus)}.optional-label{color:var(--focus);font-size:13px}.sop-tip{display:block;min-height:44px;border:0;background:var(--clear);color:var(--ink);padding:8px 12px;font-size:14px}.sop-tip-content{padding:8px 12px;background:var(--secondary);border-radius:12px;font-size:14px;overflow-wrap:anywhere}.sop-encouragement{padding:12px}.sop-focus-tab main{padding:0 16px;min-height:100%;height:100%}.sop-focus-tab .large-title{display:none}.sop-focus-tab .page-content{height:calc(100% - 44px);min-height:0}.sop-focus-tab .nav-title{opacity:1}.sop-focus{height:100%;min-height:0;display:flex;flex-direction:column;gap:16px;text-align:center;align-items:center;padding:16px 0 calc(16px + env(safe-area-inset-bottom));touch-action:pan-y;overflow:auto}.sop-focus h2{font-size:30px;line-height:1.4;overflow-wrap:anywhere}.sop-focus>svg{flex-shrink:0}.sop-focus>.row{width:100%;margin-top:auto}.sop-focus #sop-done{min-height:64px;flex-shrink:0}.sop-focus-tab .app-navbar{padding-top:env(safe-area-inset-top);height:calc(44px + env(safe-area-inset-top))}.sop-focus-tab .nav-title{right:80px}
.family-person-pager{min-height:56px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted);border-bottom:1px dashed var(--line);touch-action:pan-y}.family-grid-scroll .family-grid{width:100%}.family-people{scrollbar-width:thin}.sop-item{touch-action:pan-y}.sop-focus-tab .page-content{height:calc(100% - 44px - env(safe-area-inset-top))}
.m4-sticky .segmented button{flex:1}.family-share-bar .btn small{white-space:nowrap}.family-row,.sop-row{width:100%}
/* M5：预览与长按图片、A4屏幕缩略、低噪音锁标。 */
.sop-scene{position:relative}.scene-lock{position:absolute;right:10px;top:10px;line-height:1}.scene-lock svg{width:18px;height:18px}
.export-image img{display:block;width:100%;height:auto;user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default;touch-action:auto;border-radius:16px;box-shadow:var(--shadow)}
.export-bottom{position:fixed;bottom:0;left:0;right:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);z-index:20;text-align:center}.export-bottom .btn{min-height:56px}.export-bottom p{margin-bottom:8px}.export-mode main{padding:0 16px}.export-mode .page-content{padding-bottom:140px}
#print-root{display:none}.print-preview{overflow:hidden;position:relative;width:100%;background:var(--paper)}.print-sheet{position:relative;width:190mm;background:var(--paper);color:var(--ink);padding:4mm;transform-origin:top left;font-size:11pt;line-height:1.5}.print-sheet h1{font-size:20pt}.print-sheet h2{font-size:15pt;margin:5mm 0 3mm}.print-sheet table{border-collapse:collapse;width:100%;table-layout:fixed}.print-sheet th,.print-sheet td{border:1px solid var(--line);padding:1mm;vertical-align:middle;overflow-wrap:anywhere}.print-sheet th:first-child{width:42mm}.print-sheet svg{vertical-align:middle;margin-right:2mm}.print-sheet small{display:block}.print-sheet li{margin:2mm 0;padding:1mm}.print-box{display:inline-block;width:12mm;height:12mm;border:.3mm solid var(--ink);border-radius:2mm;vertical-align:middle}.print-box.habit-box{width:14mm;height:14mm}.print-box.sticker-box{width:20mm;height:20mm;margin:1mm}.print-watermark{position:absolute;top:35%;left:0;right:0;text-align:center;transform:rotate(-28deg);font-size:28pt;opacity:.22;pointer-events:none}.print-section{margin-bottom:8mm}.two-scenes .print-section{min-height:115mm}

.two-scenes .print-section{min-height:110mm}.two-scenes li{margin:1mm 0;padding:0;font-size:10pt;line-height:1.2}.two-scenes .print-box{width:8mm;height:8mm;min-width:8mm;min-height:8mm}.two-scenes small{font-size:9pt}

/* M5c：空状态说明不占行，日历帮助紧接激活码；保留错误/核对中的状态文案。 */
#unlock-result:empty{display:none}#unlock-calendar-help{margin-top:8px}
