/* 手机端新界面（mobile-v2）：全部写在 html.m2 下，只有手机触屏会带这个类，电脑端不受影响 */
html.m2{
  --m2-bg:var(--bg-deep);--m2-s:var(--bg-card);--m2-s2:var(--bg-hover);--m2-line:var(--border);
  --m2-t:var(--text-primary);--m2-t2:var(--text-secondary);--m2-t3:var(--text-muted);
  --m2-gold:var(--accent);--m2-amber:#C27A0E;--m2-red:var(--accent-red,#D04444);--m2-green:var(--accent-green,#3FA266);
  --m2-tabh:58px;--m2-safe-b:env(safe-area-inset-bottom,0px);
}
html.m2:not(.theme-light){--m2-amber:#E3A33B}
html.m2 svg.m2i,html.m2 .m2-ib svg,html.m2 #m2Tab svg,html.m2 .m2-notice svg,html.m2 .m2-d-acts svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* —— 旧的手机外壳隐藏 —— */
html.m2 #mobileTabBar,html.m2 .mob-menu-btn,html.m2 .fab-add,html.m2 .fab-quicknote-wrap,html.m2 .sidebar-overlay{display:none !important}
html.m2 .main-body{padding-bottom:calc(var(--m2-tabh) + var(--m2-safe-b) + 24px) !important}
html.m2[data-m2page="today"] .main-header,html.m2[data-m2page="week"] .main-header,html.m2[data-m2page="calendar"] .main-header{display:none !important}
html.m2 #page-today>.quick-add-bar,html.m2 #page-today>.today-date-switcher,html.m2 #todayHubTabs,html.m2 #todayContent{display:none !important}
html.m2 #page-week>.quick-add-bar,html.m2 #page-week>.today-date-switcher,html.m2 #weekHubTabs,html.m2 #weekGoalsContainer,html.m2 #weekContent{display:none !important}
html.m2 #todayPanel-todo,html.m2 #weekPanel-todo,html.m2 #todayPanel-timeline,html.m2 #weekPanel-quadrant{padding-top:0;margin-top:0}

/* —— 二级页面顶部：返回 + 标题 —— */
html.m2 #m2Back{display:none}
html.m2.m2-sub #m2Back{display:grid}
html.m2 .main-header .header-actions,html.m2 .main-header .global-search{display:none !important}
html.m2 .main-header{gap:4px}
html.m2 .main-header .main-title{font-size:20px;font-weight:600;color:var(--m2-t)}
html.m2[data-m2page="habits"] .main-header .main-title{font-size:28px;font-weight:700}

/* —— 顶部（今日/本周/月度）—— */
html.m2 .m2-top{margin:0 0 2px}
html.m2 .m2-head{display:flex;align-items:center;gap:6px;padding:6px 0 4px 4px}
html.m2 .m2-head .m2-ib:last-child{margin-right:-6px}
html.m2 .m2-title{font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--m2-t);line-height:38px}
html.m2 .m2-sp{flex:1}
html.m2 .m2-ib{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--m2-t2);position:relative;cursor:pointer;flex-shrink:0}
html.m2 .m2-ib:active{background:var(--m2-s2)}
html.m2 .m2-ib.on{background:var(--accent-glow,rgba(200,160,64,.14));color:var(--m2-gold)}
html.m2 .m2-ib svg{width:22px;height:22px}
html.m2 .m2-badge{position:absolute;top:4px;right:3px;min-width:16px;height:16px;border-radius:8px;background:var(--m2-red);color:#fff;font-size:10px;line-height:16px;text-align:center;padding:0 4px;font-weight:600}
html.m2 .m2-badge.s{position:static;margin-right:2px}
html.m2 .m2-scope{display:flex;background:var(--m2-s2);border-radius:12px;padding:3px;margin:6px 0 2px}
html.m2 .m2-scope div{flex:1;text-align:center;padding:7px 0;font-size:14px;border-radius:10px;color:var(--m2-t2);cursor:pointer}
html.m2 .m2-scope div.on{background:var(--m2-s);color:var(--m2-t);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}
html.m2 .m2-dateline{display:flex;align-items:center;gap:4px;padding:10px 4px 0;font-size:14px;color:var(--m2-t2)}
html.m2 .m2-dateline .m2-nav:first-child{margin-left:-10px}
html.m2 .m2-dateline .cnt{margin-left:auto;font-size:13px;color:var(--m2-t3);font-variant-numeric:tabular-nums}
html.m2 .m2-nav{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--m2-t2);font-size:18px}
html.m2 .m2-nav:active{background:var(--m2-s2)}
html.m2 .m2-dateline .d{font-weight:600;color:var(--m2-t);cursor:pointer}
html.m2 .m2-dateline .back{margin-left:6px;color:var(--m2-gold);font-size:13px;cursor:pointer;display:none}
html.m2 .m2-dateline.off .back{display:block}
html.m2 .m2-prog{display:flex;align-items:center;gap:10px;padding:6px 2px 0;font-size:13px;color:var(--m2-t3)}
html.m2 .m2-prog .bar{flex:1;height:4px;border-radius:2px;background:var(--m2-s2);overflow:hidden}
html.m2 .m2-prog .bar b{display:block;height:100%;background:var(--m2-gold);border-radius:2px;transition:width .3s}
html.m2 .m2-notice{margin:12px 0 0;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--m2-red) 9%,transparent);display:flex;align-items:center;gap:10px;font-size:14px;color:var(--m2-t);cursor:pointer}
html.m2 .m2-notice svg{width:20px;height:20px;color:var(--m2-red);flex-shrink:0}
html.m2 .m2-notice .go{margin-left:auto;color:var(--m2-red);font-weight:600}
/* —— 任务列表 —— */
html.m2 .m2-sec{display:flex;align-items:center;gap:6px;padding:18px 4px 7px;font-size:13px;font-weight:600;color:var(--m2-t2)}
html.m2 .m2-sec .n{color:var(--m2-t3);font-weight:500}
html.m2 .m2-sec .star{color:var(--m2-gold)}
html.m2 .m2-group{background:var(--m2-s);border-radius:16px;overflow:hidden}
html.m2 .m2-row{position:relative;overflow:hidden;background:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:pan-y}
html.m2 .m2-rin{display:flex;align-items:center;gap:12px;padding:0 14px;min-height:52px;position:relative;z-index:1;background:inherit;will-change:transform}
html.m2 .m2-row:active .m2-rin{background:var(--m2-s2)}
html.m2 .m2-row.sw-l:active .m2-rin,html.m2 .m2-row.sw-r:active .m2-rin{background:inherit}
/* 滑动时露出的提示：右滑=推到明天，左滑=完成 */
html.m2 .m2-sw{position:absolute;top:0;bottom:0;display:none;align-items:center;padding:0 22px;font-size:14px;font-weight:600;color:#fff}
html.m2 .m2-sw-l{left:0;right:0;background:var(--accent-blue,#4A7FD6);justify-content:flex-start}
html.m2 .m2-sw-r{left:0;right:0;background:var(--m2-green);justify-content:flex-end}
html.m2 .m2-row.done .m2-sw-r{background:var(--m2-t3)}
html.m2 .m2-row.sw-l .m2-sw-l,html.m2 .m2-row.sw-r .m2-sw-r{display:flex;opacity:.55}
html.m2 .m2-row.arm .m2-sw{opacity:1}
html.m2 .m2-row+.m2-row::before{content:"";position:absolute;top:0;left:45px;right:0;height:1px;background:var(--m2-line);z-index:2}
html.m2 .m2-chk{flex:0 0 19px;width:19px;height:19px;border-radius:50%;border:1.6px solid var(--m2-t3);display:grid;place-items:center;transition:all .2s;box-sizing:border-box}
html.m2 .m2-row.ui .m2-chk,html.m2 .m2-chk.ui{border-color:var(--m2-red);background:color-mix(in srgb,var(--m2-red) 8%,transparent)}
html.m2 .m2-row.done .m2-chk,html.m2 .m2-chk.on,html.m2 .m2-gi.done .m2-chk{background:var(--m2-green);border-color:var(--m2-green)}
html.m2 .m2-row.done .m2-chk::after,html.m2 .m2-chk.on::after,html.m2 .m2-gi.done .m2-chk::after{content:"";width:8px;height:4px;border-left:1.8px solid #fff;border-bottom:1.8px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
html.m2 .m2-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px}
html.m2 .m2-name{font-size:16px;line-height:22px;color:var(--m2-t);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.m2 .m2-row.done .m2-name{color:var(--m2-t3);text-decoration:line-through}
html.m2 .m2-meta{font-size:13px;color:var(--m2-t3);flex-shrink:0;white-space:nowrap}
html.m2 .m2-meta.red{color:var(--m2-red)}
html.m2 .m2-row.done .m2-meta{display:none}
html.m2 .m2-time{font-size:14px;color:var(--m2-t2);flex-shrink:0;font-variant-numeric:tabular-nums}
html.m2 .m2-row.done .m2-time{color:var(--m2-t3)}
html.m2 .m2-tip{margin:16px 6px 0;font-size:13px;color:var(--m2-t3)}
html.m2 .m2-empty{text-align:center;padding:48px 0 20px;font-size:16px;color:var(--m2-t2);line-height:1.8}
html.m2 .m2-empty span{font-size:13px;color:var(--m2-t3)}
html.m2 .m2-none{padding:2px 6px 0;font-size:13px;color:var(--m2-t3)}
html.m2 .m2-fold{padding:18px 4px 7px;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--m2-t3);cursor:pointer}
html.m2 .m2-fold b{font-weight:600;color:var(--m2-t2)}
html.m2 .m2-fold .n{font-weight:500}
html.m2 .m2-fold-wait b{color:var(--m2-amber)}
html.m2 .m2-fold .arr,html.m2 .m2-mod .arr,html.m2 .m2-goals-h .arr{margin-left:auto;color:var(--m2-t3);transition:transform .2s;display:inline-block}
html.m2 .m2-fold.open .arr{transform:rotate(90deg)}
html.m2 .m2-foldbody{margin-top:0}
html.m2 .m2-first{margin-top:14px}
/* 等待中：和电脑端一样用琥珀色，圆圈换成暂停图标（点它=完成） */
html.m2 .m2-group.m2-wait{background:color-mix(in srgb,var(--m2-amber) 7%,var(--m2-s))}
html.m2 .m2-row.wait .m2-chk{border-color:var(--m2-amber);color:var(--m2-amber)}
html.m2 .m2-row.wait:not(.done) .m2-chk::after{content:"";width:5px;height:7px;border-left:2px solid currentColor;border-right:2px solid currentColor;box-sizing:border-box}
html.m2 .m2-foldbody[hidden]{display:none}
html.m2 .m2-muted{color:var(--m2-t3);font-size:13px}
/* 随手记：只列没处理的 */
html.m2 #todayQuickNotesPanel{display:none !important}
html.m2 .m2-qn{padding:12px 14px}
html.m2 .m2-qn+.m2-qn{border-top:1px solid var(--m2-line)}
html.m2 .m2-qn .q{font-size:15px;line-height:21px;color:var(--m2-t);word-break:break-word}
html.m2 .m2-qn .w{display:flex;align-items:center;gap:14px;margin-top:6px;font-size:13px;color:var(--m2-t3)}
html.m2 .m2-qn .w span:first-child{flex:1}
html.m2 .m2-qn .op{color:var(--m2-gold);cursor:pointer;padding:2px 0}
html.m2 .m2-qn .op.del{color:var(--m2-t3)}
html.m2 .m2-qn-more{font-size:12px;color:var(--m2-t3);padding:8px 4px 0}
/* 本周：每天的标题往上滑时停在顶部 */
html.m2 #m2WeekList .m2-day{position:sticky;top:0;z-index:3;background:var(--m2-bg)}
html.m2 .m2-goals{margin-top:10px;background:var(--m2-s);border-radius:16px;overflow:hidden}
html.m2 .m2-goals-h{display:flex;align-items:center;gap:8px;padding:13px 16px;cursor:pointer;font-size:14px;color:var(--m2-t2)}
html.m2 .m2-goals-h b{color:var(--m2-t);font-weight:600}
html.m2 .m2-goals-h .bar{flex:0 0 64px;height:4px;border-radius:2px;background:var(--m2-s2);overflow:hidden;margin-left:4px}
html.m2 .m2-goals-h .bar i{display:block;height:100%;background:var(--m2-gold)}
html.m2 .m2-goals.open .m2-goals-h .arr{transform:rotate(90deg)}
html.m2 .m2-gl{display:none;border-top:1px solid var(--m2-line)}
html.m2 .m2-goals.open .m2-gl{display:block}
html.m2 .m2-gi{display:flex;align-items:center;gap:12px;padding:0 16px;min-height:46px;font-size:14px;color:var(--m2-t);cursor:pointer}
html.m2 .m2-gi+.m2-gi{border-top:1px solid var(--m2-line)}
html.m2 .m2-gi .m2-chk{flex:0 0 18px;width:18px;height:18px}
html.m2 .m2-gi span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.m2 .m2-gi.done span:first-of-type{color:var(--m2-t3);text-decoration:line-through}
/* 列表模式切换：时间轴 / 四象限时隐藏新列表 */
html.m2.m2-tl #m2Notice{display:none}
/* —— 底部栏 —— */
html.m2 #m2Tab{position:fixed;left:0;right:0;bottom:0;z-index:35;display:flex;align-items:flex-end;height:calc(var(--m2-tabh) + var(--m2-safe-b));padding-bottom:var(--m2-safe-b);
  background:color-mix(in srgb,var(--m2-s) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:.5px solid var(--m2-line);box-sizing:border-box}
html.m2.keyboard-open #m2Tab{display:none}
html.m2 body:has(#taskDetailDrawerV50.open) #m2Tab{display:none}
html.m2 .m2-tab{flex:1;height:var(--m2-tabh);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;color:var(--m2-t3);cursor:pointer;position:relative}
html.m2 .m2-tab svg{width:24px;height:24px}
html.m2 .m2-tab.on{color:var(--m2-gold)}
html.m2 .m2-dot{display:none}
html.m2 .m2-plus{flex:1;display:flex;justify-content:center;height:var(--m2-tabh);align-items:center}
html.m2 .m2-plus button{width:54px;height:54px;border-radius:50%;border:0;background:var(--m2-gold);color:#fff;display:grid;place-items:center;transform:translateY(-12px);box-shadow:0 6px 18px color-mix(in srgb,var(--m2-gold) 45%,transparent);cursor:pointer;padding:0}
html.m2 .m2-plus button:active{transform:translateY(-12px) scale(.92)}
html.m2 .m2-plus svg{width:26px;height:26px;stroke-width:2.4}
html:not(.m2) #m2Tab,html:not(.m2) .m2-ov,html:not(.m2) #m2Sheet,html:not(.m2) #m2Mask,html:not(.m2) .m2-top,html:not(.m2) #m2DayList,html:not(.m2) #m2WeekList,html:not(.m2) #m2Month,html:not(.m2) #m2Back{display:none !important}

/* —— 板块 / 我的 浮层 —— */
html.m2 .m2-ov{position:fixed;left:0;right:0;top:0;bottom:calc(var(--m2-tabh) + var(--m2-safe-b));z-index:30;background:var(--m2-bg);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(env(safe-area-inset-top,0px) + 8px) 12px 40px;display:none;box-sizing:border-box}
html.m2 .m2-ov.on{display:block}
html.m2 .m2-recent{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
html.m2 .m2-recent::-webkit-scrollbar{display:none}
html.m2 .m2-rc{flex:0 0 auto;background:var(--m2-s);border-radius:14px;padding:12px 14px;min-width:104px;max-width:150px;cursor:pointer}
html.m2 .m2-rc .t{font-size:14px;font-weight:600;color:var(--m2-t);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.m2 .m2-rc .s{font-size:11px;color:var(--m2-t3);margin-top:3px}
html.m2 .m2-mod{display:flex;align-items:center;gap:12px;padding:0 14px;min-height:54px;cursor:pointer;position:relative}
html.m2 .m2-mod:active{background:var(--m2-s2)}
html.m2 .m2-group>.m2-mod+.m2-mod::before,html.m2 .m2-subs+.m2-mod::before{content:"";position:absolute;top:0;left:54px;right:0;height:1px;background:var(--m2-line)}
html.m2 .m2-mod .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--m2-s2);color:var(--m2-gold);flex-shrink:0;font-size:16px}
html.m2 .m2-mod .ic svg{width:18px;height:18px}
html.m2 .m2-mod .t{flex:1;font-size:16px;color:var(--m2-t);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.m2 .m2-mod .c{font-size:13px;color:var(--m2-t3)}
html.m2 .m2-mod .exp{width:36px;height:36px;margin:-8px -10px -8px 0;display:grid;place-items:center;border-radius:10px}
html.m2 .m2-mod .exp:active{background:var(--m2-s2)}
html.m2 .m2-mod .exp .arr{transform:rotate(90deg);margin:0}
html.m2 .m2-mod.open .exp .arr{transform:rotate(-90deg)}
html.m2 .m2-mod.danger{justify-content:center}
html.m2 .m2-mod.danger .t{flex:0 1 auto;color:var(--m2-red)}
/* 目录下的二级目录：两列等宽排整齐（宽屏三列），名字太长就省略 */
html.m2 .m2-subs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:2px 14px 14px}   /* 和笔记里的板块选择同样的整行铺满格子，不再缩进 */
@media (min-width:520px){html.m2 .m2-subs{grid-template-columns:repeat(3,minmax(0,1fr))}}
html.m2 .m2-subs[hidden]{display:none}
html.m2 .m2-sub-item{box-sizing:border-box;min-width:0;min-height:40px;display:flex;align-items:center;padding:8px 12px;line-height:24px;border-radius:12px;background:var(--m2-s2);font-size:14px;color:var(--m2-t2);cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
html.m2 .m2-sub-item:active{background:var(--m2-line)}
html.m2 .m2-note{font-size:13px;color:var(--m2-t3);text-align:center;padding:16px 8px;line-height:1.6}
html.m2 .m2-me{display:flex;align-items:center;gap:14px;background:var(--m2-s);border-radius:16px;padding:16px;margin-top:6px;cursor:pointer}
html.m2 .m2-me .av{width:52px;height:52px;border-radius:50%;background:var(--accent-glow,rgba(200,160,64,.14));display:grid;place-items:center;font-size:20px;color:var(--m2-gold);font-weight:700;overflow:hidden;flex-shrink:0}
html.m2 .m2-me .av img{width:100%;height:100%;object-fit:cover}
html.m2 .m2-me .n{font-size:20px;font-weight:600;color:var(--m2-t)}
html.m2 .m2-me .s{font-size:13px;color:var(--m2-t3);margin-top:3px;word-break:break-all}
/* —— 底部面板 —— */
html.m2 #m2Mask{position:fixed;inset:0;z-index:var(--z-mask);background:rgba(0,0,0,.32);opacity:0;pointer-events:none;transition:opacity .25s}
html.m2 #m2Mask.on{opacity:1;pointer-events:auto}
html.m2 #m2Sheet{position:fixed;left:0;right:0;bottom:var(--m2-kb,0px);z-index:var(--z-sheet);background:var(--m2-s);border-radius:20px 20px 0 0;padding:8px 18px calc(18px + var(--m2-safe-b));
  transform:translateY(105%);visibility:hidden;transition:transform .32s cubic-bezier(.32,.72,.24,1),visibility 0s .32s;max-height:85vh;overflow-y:auto;box-sizing:border-box}
html.m2 #m2Sheet.on{transform:none;visibility:visible;transition:transform .32s cubic-bezier(.32,.72,.24,1)}
html.m2 #m2Sheet .grip{width:36px;height:5px;border-radius:3px;background:var(--m2-line);margin:0 auto 12px}
html.m2 .m2-d-head{display:flex;gap:12px;align-items:flex-start;padding:4px 0 14px}
html.m2 .m2-d-head .m2-chk{margin-top:4px;cursor:pointer;flex-basis:22px;width:22px;height:22px}
html.m2 .m2-d-head .name{font-size:20px;font-weight:600;line-height:28px;flex:1;color:var(--m2-t);word-break:break-word;cursor:pointer}
html.m2 .m2-d-row{display:flex;align-items:center;padding:13px 2px;border-top:1px solid var(--m2-line);font-size:16px;cursor:pointer}
html.m2 .m2-d-row span{width:72px;color:var(--m2-t3);flex-shrink:0}
html.m2 .m2-d-row b{font-weight:500;flex:1;color:var(--m2-t);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.m2 .m2-d-row em{font-style:normal;color:var(--m2-t3)}
html.m2 .m2-d-row i{font-style:normal;color:var(--m2-t3)}
html.m2 .m2-d-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin-top:14px}
html.m2 .m2-d-acts div{background:var(--m2-s2);border-radius:12px;padding:12px 0 10px;text-align:center;font-size:11px;color:var(--m2-t2);cursor:pointer}
html.m2 .m2-d-acts svg{display:block;margin:0 auto 5px;width:22px;height:22px}
html.m2 .m2-d-acts .del{color:var(--m2-red)}
html.m2 .m2-d-more{text-align:center;font-size:13px;color:var(--m2-t3);padding:14px 0 2px;cursor:pointer}
html.m2 .m2-collab{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--m2-s2);font-size:13px;color:var(--m2-t2)}
html.m2 .m2-collab .btns{display:flex;gap:8px;margin-top:10px}
html.m2 .m2-collab .btns div{flex:1;text-align:center;padding:9px 0;border-radius:10px;background:var(--m2-s);font-size:14px;color:var(--m2-t);cursor:pointer}
html.m2 .m2-collab .btns .ok{background:var(--m2-gold);color:#fff}
html.m2 .m2-collab .btns .no{color:var(--m2-red)}
html.m2 .m2-menu-t{font-size:13px;color:var(--m2-t3);text-align:center;padding:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.m2 .m2-menu{background:var(--m2-s2);border-radius:14px;overflow:hidden}
html.m2 .m2-menu div{padding:15px 16px;font-size:16px;color:var(--m2-t);text-align:center;cursor:pointer}
html.m2 .m2-menu div+div{border-top:1px solid var(--m2-line)}
html.m2 .m2-menu div.del{color:var(--m2-red)}
html.m2 .m2-menu div.cur{color:var(--m2-gold);font-weight:600}
/* 添加 */
html.m2 .m2-seg{display:flex;background:var(--m2-s2);border-radius:12px;padding:3px;margin-bottom:12px}
html.m2 .m2-seg div{flex:1;text-align:center;padding:8px 0;font-size:14px;border-radius:10px;color:var(--m2-t2);cursor:pointer}
html.m2 .m2-seg div.on{background:var(--m2-s);color:var(--m2-t);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}
html.m2 .m2-ctx{font-size:13px;color:var(--m2-t3);margin:0 2px 6px}
html.m2 .m2-in{width:100%;border:0;outline:0;background:transparent;font-size:16px;color:var(--m2-t);padding:10px 2px;font-family:inherit;box-sizing:border-box;resize:none}
html.m2 textarea.m2-in{background:var(--m2-s2);border-radius:12px;padding:12px}
html.m2 .m2-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
html.m2 .m2-chip{position:relative;padding:7px 12px;border-radius:999px;background:var(--m2-s2);font-size:13px;color:var(--m2-t2);cursor:pointer;overflow:hidden}
html.m2 .m2-chip.on{background:var(--accent-glow,rgba(200,160,64,.14));color:var(--m2-gold);font-weight:600}
html.m2 .m2-chip input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
html.m2 .m2-primary{width:100%;border:0;border-radius:14px;padding:14px;background:var(--m2-gold);color:#fff;font-size:16px;font-weight:600;cursor:pointer;margin-top:4px}
html.m2 .m2-link{text-align:center;font-size:13px;color:var(--m2-t3);padding:14px 0 2px;cursor:pointer}

/* —— 月度 —— */
html.m2 #page-calendar>*:not(#m2HeadCal):not(#m2Month){display:none !important}
html.m2 .m2-cal{margin-top:12px;background:var(--m2-s);border-radius:16px;padding:8px 6px 10px}
html.m2 .m2-wk{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;color:var(--m2-t3);padding:2px 0 6px}
html.m2 .m2-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}
html.m2 .m2-cd{height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:12px;cursor:pointer}
html.m2 .m2-cd.e{cursor:default}
html.m2 .m2-cd .n{font-size:16px;color:var(--m2-t);width:30px;height:24px;line-height:24px;text-align:center;border-radius:12px;font-variant-numeric:tabular-nums}
html.m2 .m2-cd.past .n{color:var(--m2-t3)}
html.m2 .m2-cd .c{font-size:11px;line-height:13px;min-height:13px;color:var(--m2-gold);font-weight:600}
html.m2 .m2-cd .c.all{color:var(--m2-t3);font-weight:500}
html.m2 .m2-cd.today .n{color:var(--m2-gold);font-weight:700}
html.m2 .m2-cd.sel .n{background:var(--m2-gold);color:#fff;font-weight:600}
html.m2 .m2-cd:active{background:var(--m2-s2)}
html.m2 .m2-flash{box-shadow:0 0 0 3px var(--accent-glow,rgba(200,160,64,.35)) !important;transition:box-shadow .3s}
/* SOP 步骤 */
html.m2 .m2-sop{margin-top:14px;background:var(--m2-s2);border-radius:12px;padding:4px 14px 6px}
html.m2 .m2-sop-h{display:flex;align-items:center;font-size:13px;color:var(--m2-t2);font-weight:600;padding:8px 0 4px}
html.m2 .m2-sop-h span{margin-left:auto;color:var(--m2-gold);font-variant-numeric:tabular-nums}
html.m2 .m2-step{display:flex;align-items:center;gap:10px;min-height:40px;font-size:15px;color:var(--m2-t);cursor:pointer}
html.m2 .m2-step+.m2-step{border-top:1px solid var(--m2-line)}
html.m2 .m2-step .m2-chk{flex:0 0 18px;width:18px;height:18px;border-radius:5px}
html.m2 .m2-step.done .m2-chk{background:var(--m2-green);border-color:var(--m2-green)}
html.m2 .m2-step.done .m2-chk::after{content:"";width:8px;height:4px;border-left:1.8px solid #fff;border-bottom:1.8px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
html.m2 .m2-step.done span{color:var(--m2-t3);text-decoration:line-through}
html.m2 .m2-sopn{font-variant-numeric:tabular-nums}
/* 详情里改时间 */
html.m2 .m2-timein{background:var(--m2-s2);border-radius:12px;padding:14px;font-size:20px;text-align:center;margin-top:4px;min-height:52px}
html.m2 .m2-two{display:flex;gap:10px;margin-top:12px}
html.m2 .m2-two>*{flex:1}
html.m2 .m2-sec-btn{border:0;border-radius:14px;padding:14px;background:var(--m2-s2);color:var(--m2-t2);font-size:16px;cursor:pointer}
html.m2 .m2-plus button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
html.m2 .m2-mod .ic svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* —— 批量选择：每行左边变成方框，底部换成「完成 / 删除 / 取消」—— */
html.m2 .m2-bx{flex:0 0 21px;width:21px;height:21px;border-radius:7px;border:1.8px solid var(--m2-t3);display:grid;place-items:center;transition:all .15s;box-sizing:border-box}
html.m2 .m2-bx.on{background:var(--m2-gold);border-color:var(--m2-gold)}
html.m2 .m2-bx.on::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
html.m2 #m2BatchBar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:36;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px calc(10px + var(--m2-safe-b));background:var(--m2-s);border-top:1px solid var(--m2-line);font-size:14px;color:var(--m2-t2)}
html.m2 #m2BatchBar b{color:var(--m2-t);font-size:16px}
html.m2.m2-batch #m2BatchBar{display:flex}
html.m2.m2-batch #m2Tab{display:none}
html.m2 #m2BatchBar .m2-bb{display:flex;gap:8px}
html.m2 #m2BatchBar button{border:0;border-radius:12px;padding:10px 18px;font-size:15px;font-weight:600;background:var(--m2-gold);color:#fff;cursor:pointer}
html.m2 #m2BatchBar button.del{background:var(--m2-red)}
html.m2 #m2BatchBar button.cancel{background:var(--m2-s2);color:var(--m2-t2);font-weight:500}
html.m2 #m2BatchBar button.off{opacity:.4;pointer-events:none}

/* —— 通知中心：手机上改成从底部升起的面板 —— */
html.m2 #_notifCenterModal{align-items:flex-end !important;justify-content:center !important;padding:0 !important}
html.m2 #_notifCenterModal>div{width:100% !important;max-width:640px !important;max-height:78vh !important;border-radius:20px 20px 0 0 !important;padding-bottom:var(--m2-safe-b)}
html.m2 .m2-nc-collab{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--m2-line);font-size:15px;color:var(--m2-t);cursor:pointer}
html.m2 .m2-nc-collab span{flex:1}
html.m2 .m2-nc-collab b{background:var(--m2-red);color:#fff;border-radius:10px;min-width:20px;height:20px;line-height:20px;text-align:center;font-size:12px;padding:0 6px}
html.m2 .m2-nc-collab i{font-style:normal;color:var(--m2-t3);font-size:18px}

/* —— 折叠屏展开（宽度 700~959）：侧边栏收起，内容居中、不拉满整屏 —— */
html.m2 .sidebar{display:none !important}
html.m2 .main-content{margin-left:0 !important}
@media (min-width:700px){
  html.m2 body{background:var(--m2-bg)}
  html.m2 .main-content{max-width:680px;width:100%;margin-left:auto !important;margin-right:auto !important}
  html.m2 #m2Tab,html.m2 #m2BatchBar,html.m2 .m2-ov,html.m2 #m2Sheet{left:0;right:0;margin-left:auto;margin-right:auto;width:100%;max-width:680px}
}
html.m2 .m2-top{width:100%;box-sizing:border-box}

/* ═══════════════ 习惯页（手机新界面）═══════════════
   只换了顶部（大标题 + 右上角图标）；周条、时段分组、习惯卡片保持原来的格式。 */
html.m2[data-m2page="habits"] .main-header{display:none !important}
html.m2 #page-habits .quadrant-header{display:none !important}
html.m2 #page-habits .habit-view{padding:0 !important;max-width:none !important}
/* 时段：小标题 + 一张白卡 */
/* 一行一个习惯：图标 + 名字 + 本周进度 + 完成圈 */
/* 右侧完成圈：未完成是空圈，完成是绿色对勾 */

/* ═══════════════ 任务协作页（手机新界面）═══════════════
   页签一排放得下；每条协作两行：第一行「方向 + 对方 + 状态 + 日期」，第二行是任务名；操作按钮整行平分。 */
html.m2 #page-collab .collab-page-shell{padding:0}
html.m2 #collabTabs{display:flex;gap:4px;padding:4px;margin:0 0 12px;background:var(--m2-s2);border:0;border-radius:12px;overflow-x:auto;scrollbar-width:none}
html.m2 #collabTabs::-webkit-scrollbar{display:none}
html.m2 #collabTabs .today-hub-tab{flex:1 0 auto;padding:8px 10px;margin:0;font-size:14px;border-radius:9px;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:4px;border:0;background:transparent;color:var(--m2-t2);box-shadow:none}
html.m2 #collabTabs .today-hub-tab.active{background:var(--m2-s);color:var(--m2-t);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}
html.m2 #collabTabs .collab-tab-badge{margin:0;min-width:18px;height:18px;line-height:18px;padding:0 5px;font-size:11px;border-radius:9px}
html.m2 #page-collab .collab-ov-card{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:12px 14px 12px;margin:0 0 8px;background:var(--m2-s);border:0;border-radius:14px;box-shadow:none}
html.m2 #page-collab .collab-ov-card .ov-dir{flex:0 0 auto;order:1}
html.m2 #page-collab .collab-ov-card .ov-counterparty{flex:0 1 auto;order:2;font-size:13px;color:var(--m2-t2);max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.m2 #page-collab .collab-ov-card .ov-status{order:3;margin-left:auto;font-size:12px}
html.m2 #page-collab .collab-ov-card .ov-date-chip{order:4;font-size:12px}
html.m2 #page-collab .collab-ov-card .ov-more-btn,html.m2 #page-collab .collab-ov-card details.ov-more-inline{order:5;flex:0 0 auto}
html.m2 #page-collab .collab-ov-card .ov-name{order:9;flex:1 1 100%;font-size:16px;font-weight:500;line-height:1.35;white-space:normal;color:var(--m2-t)}
html.m2 #page-collab .collab-v59-actions{display:flex;gap:8px;margin:-4px 0 8px;padding:0 14px 12px;background:var(--m2-s);border-radius:0 0 14px 14px;position:relative;top:-8px}
html.m2 #page-collab .collab-ov-card:has(+ .collab-v59-actions){margin-bottom:0;border-radius:14px 14px 0 0}
html.m2 #page-collab .collab-v59-actions .btn{flex:1;min-height:40px;font-size:15px;border-radius:10px}
html.m2 #page-collab .collab-v47-section,html.m2 #page-collab .collab-v48-person-group{margin:0 0 6px;padding:0;background:transparent;border:0;box-shadow:none}
html.m2 #page-collab .collab-v47-section-head,html.m2 #page-collab .collab-v48-person-head{display:flex;align-items:center;justify-content:space-between;padding:6px 4px 6px;font-size:13px;font-weight:600;color:var(--m2-t2)}
html.m2 #page-collab .collab-v47-count{font-size:13px;color:var(--m2-t3);font-weight:400}
html.m2 #page-collab .collab-v47-empty,html.m2 #page-collab .collab-flat-empty{padding:12px 4px;font-size:13px;color:var(--m2-t3)}
html.m2 #page-collab .collab-ended-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 10px;font-size:13px;color:var(--m2-t3)}
html.m2 #collabTabs{gap:2px}
html.m2 #collabTabs .today-hub-tab{padding:8px 6px;font-size:13px;gap:3px;flex:1 1 auto}
html.m2 #collabTabs .collab-tab-badge{min-width:16px;height:16px;line-height:16px;padding:0 4px;font-size:10px}
html.m2 #page-collab .collab-overview-filters{background:transparent !important;border:0 !important;box-shadow:none !important;padding:0 !important;margin:0 0 12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
html.m2 #page-collab .collab-hero,html.m2 #page-collab .collab-overview-panel,html.m2 #page-collab .collab-people-block,html.m2 #page-collab .collab-status-group{background:var(--m2-s) !important;border:0 !important;box-shadow:none !important;border-radius:14px !important;margin:0 0 10px}
html.m2 #page-collab .collab-hero{padding:14px 16px}
html.m2 #page-collab .collab-advice-v2{border-radius:14px;margin:0 0 10px}
html.m2 #page-collab .collab-overview-panel,html.m2 #page-collab .collab-status-group-body{padding:6px 10px 10px}
html.m2 #page-collab .collab-overview-panel .collab-ov-card,html.m2 #page-collab .collab-status-group-body .collab-ov-card{background:transparent;margin:0;padding:10px 4px;border-radius:0;border-top:1px solid var(--m2-line)}
html.m2 #page-collab .collab-overview-empty-line{padding:10px 4px;font-size:13px;color:var(--m2-t3)}
html.m2 #page-collab .collab-status-group-header{padding:12px 14px}
html.m2 #collabTabs{margin-top:8px}

/* ═══════════════ 复盘页（手机新界面）═══════════════
   去掉电脑端的渐变横线、层层嵌套的卡片和阴影：每块一张平的白卡，页签用分段条。 */
html.m2 #page-review .review-hub-tabs{display:flex;gap:2px;padding:4px;margin:8px 0 10px;background:var(--m2-s2) !important;border:0 !important;border-radius:12px;box-shadow:none !important}
html.m2 #page-review .review-hub-tabs .today-hub-tab{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 4px;font-size:13px;border:0;border-radius:9px;background:transparent;color:var(--m2-t2);box-shadow:none;white-space:nowrap}
html.m2 #page-review .review-hub-tabs .today-hub-tab.active{background:var(--m2-s);color:var(--m2-t);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}
html.m2 #page-review .review-hub-tabs .today-hub-tab svg{width:15px;height:15px}
html.m2 #page-review .review-date-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;padding:0 !important;background:transparent !important;border:0 !important;box-shadow:none !important}
html.m2 #page-review .review-date-bar .btn{padding:7px 12px;font-size:13px;border-radius:10px}
html.m2 #page-review .review-date-label{font-size:14px;font-weight:600}
html.m2 #page-review .review-layout{display:block !important}
html.m2 #page-review .review-col{width:auto !important;min-width:0}
html.m2 #page-review .review-panel{background:var(--m2-s) !important;border:0 !important;box-shadow:none !important;border-radius:14px !important;margin:0 0 10px !important;padding:14px 16px !important}
html.m2 #page-review .review-panel::before,html.m2 #page-review .review-panel::after{display:none !important}
html.m2 #page-review .review-panel-title-wrap{margin:0 0 10px;padding:0 0 8px;border-bottom:1px solid var(--m2-line) !important}
html.m2 #page-review .review-panel-title-wrap::after,html.m2 #page-review .review-panel-title::after{display:none !important}
html.m2 #page-review .review-panel-title{font-size:15px !important;font-weight:600;color:var(--m2-t);background:none !important;-webkit-text-fill-color:currentColor}
html.m2 #page-review .review-panel *{box-shadow:none !important}
html.m2 #page-review .review-panel [class*="card"],html.m2 #page-review .review-panel [class*="-item"]{border-color:var(--m2-line)}
/* 顶部总览：不再套一层外框，5 张数字卡两列排 */
html.m2 #page-review #reviewOverviewMount,html.m2 #page-review #reviewOverviewMount .review-overview-shell{background:transparent !important;border:0 !important;box-shadow:none !important;padding:0 !important;margin:0 0 10px}
html.m2 #page-review #reviewOverviewMount .review-overview-head{margin:0 0 8px;padding:0 4px;border:0}
html.m2 #page-review #reviewOverviewMount .review-overview-title{font-size:15px;font-weight:600;text-align:left}
html.m2 #page-review #reviewOverviewMount .review-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
html.m2 #page-review #reviewOverviewMount .review-overview-card{background:var(--m2-s) !important;border:0 !important;border-radius:14px !important;padding:12px 14px !important;box-shadow:none !important;min-width:0}
html.m2 #page-review #reviewOverviewMount .review-overview-card::before{display:none !important}
html.m2 #page-review #reviewOverviewMount .review-overview-card-label{font-size:12px;color:var(--m2-t3)}
html.m2 #page-review #reviewOverviewMount .review-overview-card-value{font-size:26px;font-weight:700;margin:2px 0}
html.m2 #page-review #reviewOverviewMount .review-overview-card-meta{font-size:11px;color:var(--m2-t3);line-height:1.35}
html.m2 #page-review .review-emotion-title-wrap{margin:18px 0 10px !important;padding:12px 0 8px !important;border:0 !important;border-top:1px solid var(--m2-line) !important;border-bottom:1px solid var(--m2-line) !important;background:none !important;display:flex;align-items:center;justify-content:space-between}
html.m2 #page-review .review-emotion-title-wrap::before,html.m2 #page-review .review-emotion-title-wrap::after{display:none !important}
html.m2 #page-review .review-energy-block{background:transparent !important;border:0 !important;border-radius:0 !important;padding:0 !important;margin:0 !important}
html.m2 #page-review .review-energy-block *{background-image:none}
html.m2 #page-review #reviewReportText:empty{display:none !important}
html.m2 #page-review .note-action-bar{background:transparent !important;border:0 !important;box-shadow:none !important;padding:0 !important;margin:0}
html.m2 #page-review .review-report-actions{display:flex;flex-wrap:wrap;gap:8px}
html.m2 #page-review #reviewGenerateBtn{flex:1 1 100%;justify-content:center;min-height:46px;border-radius:12px;font-size:15px}
html.m2 #page-review #reviewCopyBtn,html.m2 #page-review #reviewConvertBtn{flex:1 1 calc(50% - 4px);min-height:42px;border-radius:12px;justify-content:center;font-size:14px}
html.m2 #page-review .review-personal-textarea{border-radius:12px;font-size:15px}

/* ═══════════════ 设置页（手机新界面）═══════════════
   一组设置 = 一张白卡，行与行之间一条细线；去掉电脑端左边的彩色竖条和阴影。 */
html.m2 #page-settings .settings-section{background:var(--m2-s) !important;border:0 !important;border-left:0 !important;border-radius:14px !important;box-shadow:none !important;margin:0 0 14px !important;padding:0 !important;overflow:hidden}
html.m2 #page-settings .settings-section::before,html.m2 #page-settings .settings-section::after{display:none !important}
html.m2 #page-settings .settings-section-header{padding:14px 16px 8px !important;background:transparent !important;border:0 !important;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--m2-t2);text-transform:none}
html.m2 #page-settings .settings-section-real-icon,html.m2 #page-settings .settings-section-header svg{width:18px;height:18px;flex:0 0 auto}
html.m2 #page-settings .settings-item{padding:13px 16px !important;border:0 !important;border-top:1px solid var(--m2-line) !important;background:transparent !important;box-shadow:none !important;min-height:48px;display:flex;align-items:center;gap:12px}
html.m2 #page-settings .settings-section-header+.settings-item{border-top:0 !important}
html.m2 #page-settings .settings-item-title{font-size:16px;color:var(--m2-t)}
html.m2 #page-settings .settings-item-desc{font-size:12px;color:var(--m2-t3);line-height:1.4;margin-top:2px}
html.m2 #page-settings .settings-item .btn{border-radius:10px}
html.m2 #page-settings .settings-item{flex-wrap:wrap;justify-content:space-between;text-align:left}
html.m2 #page-settings .settings-item-info{flex:1 1 60%;min-width:0;text-align:left !important}
html.m2 #page-settings .settings-item>.settings-toggle{margin-left:auto;flex:0 0 auto}
html.m2 #page-settings .settings-item>.btn,html.m2 #page-settings .settings-item>div:not(.settings-item-info):not(.settings-toggle){margin-left:0}
html.m2 #page-settings .settings-item svg.chev,html.m2 #page-settings .settings-item>svg{margin-left:auto}
html.m2 #page-settings .settings-item{flex-direction:row !important;align-items:center !important}
html.m2 #page-settings .settings-item-info{align-items:flex-start !important}
html.m2 #page-settings .settings-item>.btn-group,html.m2 #page-settings .settings-item>.settings-btns{flex:1 1 100%}

/* ═══════════════ 个人SOP / 各追踪板块的列表页（手机新界面）═══════════════
   页签用分段条；每条一行（图标 + 名字 + 右侧小字），不再是又高又厚的卡片。 */
html.m2 #page-sop>div>.today-hub-tabs,html.m2 #page-project>div>.today-hub-tabs,html.m2 #page-task>div>.today-hub-tabs,html.m2 #page-issue>div>.today-hub-tabs,html.m2 #page-team>div>.today-hub-tabs,html.m2 #page-productmgmt>div>.today-hub-tabs,html.m2 #page-market>div>.today-hub-tabs{display:flex;gap:2px;padding:4px;margin:8px 0 12px;background:var(--m2-s2) !important;border:0 !important;border-radius:12px;box-shadow:none !important}
html.m2 #page-sop .today-hub-tab,html.m2 #page-project .today-hub-tab,html.m2 #page-task .today-hub-tab,html.m2 #page-issue .today-hub-tab,html.m2 #page-team .today-hub-tab,html.m2 #page-productmgmt .today-hub-tab,html.m2 #page-market .today-hub-tab{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 4px;font-size:13px;border:0;border-radius:9px;background:transparent;color:var(--m2-t2);box-shadow:none;white-space:nowrap}
html.m2 #page-sop .today-hub-tab.active,html.m2 #page-project .today-hub-tab.active,html.m2 #page-task .today-hub-tab.active,html.m2 #page-issue .today-hub-tab.active,html.m2 #page-team .today-hub-tab.active,html.m2 #page-productmgmt .today-hub-tab.active,html.m2 #page-market .today-hub-tab.active{background:var(--m2-s);color:var(--m2-t);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}
html.m2 .sop-card{display:block;margin:0 0 8px !important;padding:0 !important;background:var(--m2-s) !important;border:0 !important;border-radius:14px !important;box-shadow:none !important;min-height:0 !important}
html.m2 .sop-card::before,html.m2 .sop-card::after{display:none !important}
html.m2 .sop-card-body{padding:12px 14px !important}
html.m2 .sop-card-header-row{display:flex;align-items:center;gap:12px}
html.m2 .sop-card-icon{flex:0 0 38px;width:38px !important;height:38px !important;border-radius:11px !important}
html.m2 .sop-card-icon svg{width:22px;height:22px}
html.m2 #page-sop .today-hub-tabs,html.m2 #page-project .today-hub-tabs,html.m2 #page-task .today-hub-tabs,html.m2 #page-issue .today-hub-tabs,html.m2 #page-team .today-hub-tabs,html.m2 #page-productmgmt .today-hub-tabs,html.m2 #page-market .today-hub-tabs{margin-bottom:16px !important}
/* 习惯卡片：长按不选中文字、上下可滑（原 mobile-menu.js 里的样式） */
html.m2 #page-habits .habit-card[data-pi]{touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* ═══════════════ 个人SOP 详情页（手机新界面）═══════════════
   平时只读：分组是一张白卡，步骤一行一条，没有铅笔、垃圾桶和输入框；右上角点「编辑」才出现。 */
html.m2 #page-sop-detail .sop-back-btn{display:none}
html.m2 #page-sop-detail .sop-detail-header{position:relative;display:flex;align-items:center;gap:14px;padding:4px 0 12px;margin:0}
html.m2 #page-sop-detail .sop-detail-icon{flex:0 0 56px;width:56px !important;height:56px !important;border-radius:16px !important;display:grid;place-items:center}
html.m2 #page-sop-detail .sop-detail-title{font-size:20px;font-weight:700;color:var(--m2-t)}
html.m2 #page-sop-detail .sop-detail-subtitle{font-size:13px;color:var(--m2-t3);margin-top:2px}
html.m2 #page-sop-detail .m2-sop-edit{position:absolute;right:0;top:8px;padding:7px 16px;border-radius:16px;background:var(--m2-s2);color:var(--m2-gold);font-size:14px;font-weight:600;cursor:pointer}
html.m2 #page-sop-detail .m2-sop-edit.on{background:var(--m2-gold);color:#fff}
html.m2 #page-sop-detail .sop-section{background:var(--m2-s) !important;border:0 !important;border-radius:14px !important;box-shadow:none !important;margin:0 0 10px !important;padding:0 !important;overflow:hidden}
html.m2 #page-sop-detail .sop-section-header{display:flex;align-items:center;gap:8px;padding:14px 16px !important;min-height:48px;background:transparent !important;border:0 !important}
html.m2 #page-sop-detail .sop-section-title{flex:1;min-width:0;font-size:16px;font-weight:600;color:var(--m2-t)}
html.m2 #page-sop-detail .drag-handle{display:none !important}
html.m2 #page-sop-detail .sop-section-actions,html.m2 #page-sop-detail .sop-task-actions{display:none !important}
html.m2 #page-sop-detail .sop-section-body{padding:0 !important}
html.m2 #page-sop-detail .sop-task{display:flex;align-items:center;gap:10px;padding:13px 16px !important;margin:0 !important;border:0 !important;border-top:1px solid var(--m2-line) !important;border-radius:0 !important;background:transparent !important;box-shadow:none !important}
html.m2 #page-sop-detail .sop-task-text{flex:1;min-width:0;font-size:16px;line-height:1.4;color:var(--m2-t)}
html.m2 #page-sop-detail .sop-add-item{display:none !important}
html.m2 #sopDetailContent>div:nth-last-child(2):not([class]){display:none}
html.m2 #page-sop-detail #sopDetailContent>div:last-child:not([class]){margin-top:8px !important;padding-top:0 !important;border:0 !important}
/* 编辑状态：露出每行的改名 / 删除、添加输入框、新分组 */
html.m2 #page-sop-detail.m2-sop-editing .sop-section-actions,html.m2 #page-sop-detail.m2-sop-editing .sop-task-actions{display:flex !important;gap:2px;align-items:center}
html.m2 #page-sop-detail.m2-sop-editing .sop-add-item{display:flex !important;gap:8px;padding:10px 16px 14px;border-top:1px solid var(--m2-line)}
html.m2 #page-sop-detail.m2-sop-editing #sopDetailContent>div:nth-last-child(2):not([class]){display:block}
html.m2 #page-sop-detail .sop-task-btn{width:36px;height:36px;display:grid;place-items:center;border:0;background:transparent;border-radius:10px}

/* ═══════════════ App 里的「手机提醒」分组（native-bridge.js 生成）═══════════════ */
#htNativeNotifyPanel .ht-note{padding:0 16px 8px;font-size:12px;color:var(--text-muted)}
#htNativeNotifyPanel .ht-warn{margin-left:8px;font-size:11px;font-weight:500;color:#fff;background:var(--accent-red,#E85C5C);border-radius:10px;padding:1px 8px}
#htNativeNotifyPanel .ht-perm-r{display:flex;align-items:center;gap:8px;flex:0 0 auto}
#htNativeNotifyPanel .ht-perm{font-size:13px;color:var(--accent-green,#4AAE70)}
#htNativeNotifyPanel input.ht-switch{-webkit-appearance:none;appearance:none;flex:0 0 auto;width:48px;height:29px;margin:0;border:0;border-radius:15px;background:var(--border,#ddd);position:relative;cursor:pointer;transition:background .2s}
#htNativeNotifyPanel input.ht-switch::after{content:"";position:absolute;top:2px;left:2px;width:25px;height:25px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s}
#htNativeNotifyPanel input.ht-switch:checked{background:var(--accent-green,#4AAE70)}
#htNativeNotifyPanel input.ht-switch:checked::after{left:21px}
#htNativeNotifyPanel input.ht-time{flex:0 0 auto;border:0;border-radius:10px;padding:8px 10px;font-size:15px;background:var(--bg-hover,#eee);color:var(--text-primary)}
#htNativeNotifyPanel .ht-quiet{display:flex;align-items:center;gap:6px;color:var(--text-muted);flex:0 0 auto}

/* ═══════════════ 追踪板块详情（任务 / 笔记）═══════════════
   一行统计 + 新建按钮；「进行中」是大标题，下面按日期分组；任务名可以折成两行，日期不再重复写在右边。 */
html.m2 .tkb-head{align-items:center;gap:10px;margin:2px 0 4px}
html.m2 .tkb-stat{font-size:13px;white-space:nowrap}
html.m2 .tkb-stat em{display:none}
html.m2 .tkb-ch{padding:14px 4px 0 !important;font-size:17px;font-weight:700;color:var(--m2-t)}
html.m2 .tkb-ch .n{font-size:15px}
html.m2 .tkb-ch .r{display:none}
html.m2 #tkbOpenList .m2-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
html.m2 #tkbOpenList .m2-row{min-height:54px}
html.m2 .tkb-empty{padding:14px 16px;font-size:14px;color:var(--m2-t3);line-height:1.5}
html.m2 .tkb-day{font-size:12px;color:var(--m2-t3);padding:8px 0 4px}
#htNativeNotifyPanel .settings-item{flex-wrap:nowrap !important}
#htNativeNotifyPanel .settings-item-info{flex:1 1 auto !important;min-width:0}
#htNativeNotifyPanel .settings-item.ht-wrap{flex-wrap:wrap !important}
#htNativeNotifyPanel .settings-item.ht-wrap .ht-quiet{flex:1 1 100%;justify-content:space-between}
#htNativeNotifyPanel .settings-item.ht-wrap .ht-quiet input{flex:1 1 0;min-width:0}

/* ═══════════════ 四象限任务的长按菜单（底部面板）═══════════════
   以前这个面板一直没有样式，长按过一次后，它的文字会一直露在页面最下面。现在平时是隐藏的，长按才从底部升起。 */
html.m2 #todayMobileQuadrantSheetV5818{display:none;position:fixed;left:0;right:0;top:0;bottom:0;z-index:var(--z-panel)}
html.m2 #todayMobileQuadrantSheetV5818.show{display:block}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-backdrop-v5817{position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.32)}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-panel-v5817{position:absolute;left:0;right:0;bottom:0;max-width:680px;margin:0 auto;box-sizing:border-box;background:var(--m2-s);border-radius:20px 20px 0 0;padding:10px 16px calc(16px + var(--m2-safe-b));max-height:80vh;overflow-y:auto}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-title-v5817{display:flex;flex-direction:column;gap:2px;padding:8px 4px 12px;text-align:center}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-title-v5817 span{font-size:12px;color:var(--m2-t3)}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-title-v5817 b{font-size:16px;color:var(--m2-t);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-actions-v5817{display:flex;flex-direction:column;background:var(--m2-s2);border-radius:14px;overflow:hidden}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-btn-v5817{display:block;width:100%;border:0;background:transparent;padding:15px 16px;font-size:16px;color:var(--m2-t);text-align:center;cursor:pointer}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-btn-v5817+.tm-sheet-btn-v5817{border-top:1px solid var(--m2-line)}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-btn-v5817.danger{color:var(--m2-red)}
html.m2 #todayMobileQuadrantSheetV5818 .tm-sheet-cancel-v5817{display:block;width:100%;margin-top:10px;border:0;border-radius:14px;background:var(--m2-s2);padding:15px 16px;font-size:16px;font-weight:600;color:var(--m2-t);cursor:pointer}
/* 系统权限开关：只显示状态，点一下去系统设置里改（App 自己改不了） */
#htNativeNotifyPanel .ht-sys-sw{flex:0 0 auto;display:inline-block;width:48px;height:29px;border-radius:15px;background:var(--border,#ddd);position:relative;cursor:pointer;transition:background .2s}
#htNativeNotifyPanel .ht-sys-sw::after{content:"";position:absolute;top:2px;left:2px;width:25px;height:25px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s}
#htNativeNotifyPanel .ht-sys-sw.on{background:var(--accent-green,#4AAE70)}
#htNativeNotifyPanel .ht-sys-sw.on::after{left:21px}

/* 板块和笔记页的标题、页签降低层级，正文保持原有可读大小。 */
html.m2 #m2Ov-mods .m2-title{font-size:20px;line-height:28px;font-weight:600}
html.m2 #m2Ov-mods .m2-scope div{font-size:13px;font-weight:500;padding:6px 0}
html.m2 #m2Ov-mods .m2-sec{font-size:12px;font-weight:500;padding-top:14px}

/* 完成圆圈只有 19px，手指点偏一点就点到整行（打开详情）或没反应：用透明伪元素把可点区域放大到约 44px，圆圈本身大小不变 */
html.m2 .m2-chk[data-m2chk]{position:relative}
html.m2 .m2-chk[data-m2chk]::before{content:"";position:absolute;top:-13px;bottom:-13px;left:-14px;right:-10px}

/* 设置→高级主题：手机上是真正的子页面，标题和返回箭头用页面顶栏（同其他子页面），页内原来的返回/标题条只留「重置」 */
html.m2 #page-theme .theme-settings-page{max-width:none;padding:0 0 calc(var(--m2-tabh,56px) + 24px)}
html.m2 #page-theme .ts-nav{position:static;padding:0 0 4px;border-bottom:0;background:transparent;justify-content:flex-end}
html.m2 #page-theme .ts-nav>.ts-nav-back,html.m2 #page-theme .ts-nav>div:not(.ts-nav-right){display:none}
html.m2 #page-theme .ts-nav-right{margin-left:0}
