/* ═══════════════════════════════════════════════════════════════
 * app-mobile.css v3 — 原生级手机端
 * 
 * 设计系统：
 *   字号 — 17px 标题 / 15px 正文 / 13px 副文 / 11px 辅助
 *   圆角 — var(--radius) 卡片 / var(--radius-sm) 按钮 / var(--radius-xs) 标签
 *   间距 — var(--sp-sm)~var(--sp-lg) 统一节奏
 *   边框 — 0.5px hairline + var(--border)，卡片用 var(--glass-border)
 *   颜色 — 全部 CSS 变量，零硬编码
 *   对齐 — 内容左对齐，操作右对齐
 * ═══════════════════════════════════════════════════════════════ */

@media(min-width:600px)and(max-width:768px){
  .quadrant-grid{grid-template-columns:1fr 1fr;}
  .sop-overview{grid-template-columns:repeat(2,1fr);}
  .stats-bar{flex-wrap:nowrap;}
  .habit-cards{justify-content:center;}
}

@media(max-width:768px) and (pointer:coarse){

/* 0. 原生基底 */
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",
    "Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:15px;line-height:1.47;letter-spacing:-0.01em;
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
  -webkit-text-size-adjust:100%;
  touch-action:manipulation;
  overscroll-behavior-y:contain;
}
*{-webkit-tap-highlight-color:transparent;}
.main-body,.modal-body,.sidebar-nav{
  scroll-behavior:smooth;-webkit-overflow-scrolling:touch;}

/* 1. 骨架 */
.app-container{position:relative;overflow-x:hidden;}
.sidebar{position:absolute !important;left:0;top:0;bottom:0;z-index:10;
  transform:translateX(-100%);width:300px !important;min-width:300px !important;
  transition:transform 0.42s cubic-bezier(.32,.72,.24,1);
  box-shadow:none;border-right:none !important;}
.sidebar.mob-open{transform:translateX(0);
  box-shadow:0 0 0 100vw rgba(0,0,0,0.32),12px 0 40px rgba(0,0,0,0.15);}
.sidebar-toggle{display:none;}
.sidebar-resize{display:none;}
.sidebar-nav{padding:var(--sp-sm);padding-bottom:80px;}
.sidebar-overlay{z-index:9 !important;}
.nav-item{padding:12px 14px;font-size:15px;font-weight:400;
  border-radius:var(--radius-sm);margin:1px 0;transition:background 0.15s;}
.nav-item:active{background:var(--bg-hover);}
.nav-item.active{font-weight:600;}
.nav-badge{font-size:10px;min-width:18px;height:18px;border-radius:9px;font-weight:600;}
.mobile-tab-bar{display:block !important;
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  background:var(--glass-bg) !important;
  border-top:0.5px solid var(--glass-border) !important;}
.mobile-tab-bar-inner{padding:6px 0 2px;}
.mob-tab{padding:2px 0;gap:2px;min-width:48px;
  transition:transform 0.15s cubic-bezier(.32,.72,.24,1);}
.mob-tab:active{transform:scale(0.82);}
.mob-tab .mob-icon{font-size:22px;}
.mob-tab .mob-icon svg{width:22px;height:22px;}
.mob-tab .mob-label{font-size:10px;font-weight:500;}
.mob-tab.active .mob-icon{transform:scale(1.06);}
.main-content{flex:1 !important;min-width:0 !important;width:0 !important;max-width:100% !important;}
.main-body{
  padding:0 0 calc(64px + constant(safe-area-inset-bottom));
  padding:0 0 calc(64px + env(safe-area-inset-bottom));
  padding-bottom:max(calc(64px + env(safe-area-inset-bottom,0px)),72px);
}

/* 2. Header */
.main-header{padding:10px 10px;gap:var(--sp-sm);min-height:44px;
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  background:var(--glass-bg) !important;
  border-bottom:0.5px solid var(--glass-border);
  position:sticky;top:0;z-index:15;
  flex-wrap:nowrap !important;}
.main-header .header-actions .btn:not(.btn-primary){display:none;}
.main-header .header-actions{flex-shrink:0;}
.main-title{font-size:17px;font-weight:600;letter-spacing:-0.02em;
  display:flex;align-items:center;gap:var(--sp-sm);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;}
.main-title .pt-svg{width:20px;height:20px;flex-shrink:0;}
.header-actions .btn-primary{white-space:nowrap;padding:7px 14px;font-size:13px;
  min-height:32px;border-radius:var(--radius-pill);font-weight:600;}
.global-search-wrapper{display:none !important;}

/* 3. 溢出防护 */
.main-content,.main-body{overflow-x:hidden !important;}
.page{padding:0 var(--sp-sm);max-width:100vw;box-sizing:border-box;}
.plan-item,.settings-item,.sop-card,.habit-card,.kanban-card,
.goal-chip,.stat-pill{max-width:100%;box-sizing:border-box;}
.modal-body{overflow-x:hidden;}
.plan-info{min-width:0;}
.sop-guide-inline,.sop-guide-step{max-width:100%;overflow:hidden;}
.pi-tags{max-width:100%;}

/* 4. 字号：17/15/13/11 四级 */
.quadrant-header h2{font-size:17px;font-weight:600;letter-spacing:-0.02em;}
.sop-detail-title{font-size:17px;font-weight:600;letter-spacing:-0.02em;}
.settings-section-header{font-size:13px;font-weight:600;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:0.03em;}
.form-label{font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:var(--sp-xs);}

/* 5. 待办条目 */
.plan-name{font-size:15px !important;font-weight:400 !important;letter-spacing:-0.01em;}
.plan-source{font-size:13px !important;color:var(--text-secondary);}
.plan-check{width:22px !important;height:22px !important;min-width:22px;
  border-width:1.5px !important;border-radius:50% !important;
  transition:transform 0.2s var(--ease-spring),background 0.15s,border-color 0.15s;}
.plan-check:active{transform:scale(0.8);}
.plan-check.done{animation:checkBounce 0.3s var(--ease-spring);}
.plan-item{padding:12px 0 !important;gap:10px !important;
  border-bottom:0.5px solid var(--border) !important;}
.plan-item:last-child{border-bottom:none !important;}
.plan-dot{width:6px;height:6px;margin-top:7px;border-radius:50%;}
.pi-tags{display:flex;flex-wrap:wrap;gap:var(--sp-xs);margin-top:var(--sp-xs);}
.tag-badge,.sop-link-badge{font-size:11px;padding:2px 6px;border-radius:var(--radius-xs);font-weight:500;}
.pi-badge{font-size:11px;padding:2px 6px;border-radius:var(--radius-xs);}
.priority-tag{font-size:11px;padding:2px 8px;white-space:nowrap;flex-shrink:0;
  border-radius:var(--radius-xs);font-weight:500;}
.grp-done-sep{margin:var(--sp-md) 0 var(--sp-sm);}
.grp-done-label{font-size:11px;font-weight:500;color:var(--text-muted);}
.grp-done-line{background:var(--border);}
.swipe-bg{border-radius:var(--radius-xs);}

/* 6. 按钮 */
.btn{padding:10px var(--sp-md);font-size:15px;border-radius:var(--radius-sm);
  min-height:44px;font-weight:500;
  transition:transform 0.12s var(--ease-spring),opacity 0.15s;}
.btn:active{transform:scale(0.97);opacity:0.88;}
.btn-sm{padding:6px 12px;font-size:13px;min-height:32px;border-radius:var(--radius-xs);}
.btn-sm:active{transform:scale(0.96);}
.btn-icon{width:34px;height:34px;font-size:14px;min-width:34px;border-radius:var(--radius-xs);}
.btn-icon:active{transform:scale(0.88);}
.top3-star{width:20px;height:20px;font-size:13px;transition:transform 0.2s var(--ease-spring);}
.top3-star:active{transform:scale(1.3);}
.pie-drift{width:18px !important;height:18px !important;font-size:10px !important;border-radius:50% !important;}

/* 7. 表单 */
.form-input,.form-select,.form-textarea{
  font-size:15px !important;padding:11px var(--sp-md) !important;
  border-radius:var(--radius-sm) !important;min-height:44px;
  border:0.5px solid var(--border) !important;
  transition:border-color 0.2s,box-shadow 0.2s;}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  border-color:var(--accent) !important;
  box-shadow:0 0 0 3px var(--accent-glow) !important;}
.form-group{margin-bottom:var(--sp-md);}

/* 8. 筛选标签 */
.filter-chip{padding:6px 14px;font-size:13px;border-radius:var(--radius-pill);
  min-height:32px;font-weight:500;transition:transform 0.12s,background 0.15s;}
.filter-chip:active{transform:scale(0.95);}
.cal-side-filter,.today-filter,.filter-bar{
  display:flex;flex-wrap:nowrap;overflow-x:auto;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
  gap:var(--sp-sm);padding:var(--sp-sm) 0;}
.cal-side-filter::-webkit-scrollbar,.today-filter::-webkit-scrollbar,
.filter-bar::-webkit-scrollbar{display:none;}
.filter-bar .filter-chip{flex-shrink:0;}
.csf-chip{flex-shrink:0;font-size:11px;padding:4px 10px;border-radius:var(--radius-pill);}
.filter-bar{display:none !important;}

/* 9. 工具栏 — 手机端左对齐 + 允许换行防重叠 */
.todo-toolbar{gap:var(--sp-sm) !important;margin-bottom:var(--sp-sm) !important;
  justify-content:flex-start !important;flex-wrap:wrap !important;}
.todo-toolbar-inner{gap:var(--sp-sm) !important;flex:none !important;flex-wrap:wrap !important;}
/* 工具栏内所有按钮/切换器防挤压 */
.todo-toolbar .hide-done-toggle,
.todo-toolbar .btn-sm,
.todo-toolbar .btn-ghost{flex-shrink:0;white-space:nowrap;}
/* 进度条独占一行 */
.todo-toolbar .today-progress{flex-basis:100%;order:99;}
.hide-done-toggle{font-size:13px;padding:6px 10px;border-radius:var(--radius-xs);
  gap:var(--sp-xs);font-weight:400;border:0.5px solid var(--border);
  transition:transform 0.12s,background 0.15s;}
.hide-done-toggle:active{transform:scale(0.96);}
.hide-done-toggle.active{border-color:rgba(37,99,235,0.2);}
.quadrant-controls{gap:var(--sp-sm);flex-wrap:wrap;align-items:center;}
.quadrant-controls .hide-done-toggle,
.quadrant-controls .btn-habit-match{min-height:34px;padding:6px 12px;font-size:13px;
  flex-shrink:0;white-space:nowrap;}

/* 10. 进度条 */
.today-progress{margin:0 !important;padding:6px 0;gap:var(--sp-sm);flex:1;min-width:70px;}
.today-progress-stat{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;
  color:var(--accent-orange);}
.today-progress-stat b{font-size:15px;}
.today-progress-bar{height:5px;border-radius:3px;}
.today-progress-fill{border-radius:3px;}
.today-progress-top3{font-size:11px;font-weight:600;color:var(--accent-orange);}

/* 11. 快速添加 */
.quick-add-bar{flex-wrap:nowrap;gap:var(--sp-sm);padding:8px 10px;
  margin-bottom:var(--sp-sm);border-radius:var(--radius) !important;
  border:0.5px solid var(--glass-border) !important;box-shadow:var(--shadow-card);}
.quick-add-bar>span:first-child{font-size:16px !important;flex-shrink:0;}
.quick-add-input{flex:1;min-width:0;font-size:15px;padding:4px 0;}
.quick-add-btn{flex-shrink:0;padding:7px 14px;font-size:13px;font-weight:600;
  border-radius:var(--radius-xs);}
.quick-add-btn:active{transform:scale(0.95);}
.quick-add-expand{flex-shrink:0;font-size:11px;padding:5px 10px;border-radius:var(--radius-xs);}

/* 12. 日期导航 — 防箭头和文字重叠 */
.today-date-nav,.date-nav,.tds-nav{display:flex;align-items:center;gap:var(--sp-sm);
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding:var(--sp-sm) 0;font-size:15px;font-weight:500;flex-wrap:nowrap;}
.today-date-nav::-webkit-scrollbar,.date-nav::-webkit-scrollbar,
.tds-nav::-webkit-scrollbar{display:none;}
.today-date-nav>*,.date-nav>*,.tds-nav>*{flex-shrink:0;}
.tds-today-badge{font-size:11px;padding:3px 8px;border-radius:var(--radius-xs);font-weight:600;}
.calendar-today-btn{padding:5px 12px;border-radius:var(--radius-xs);font-size:11px;font-weight:600;}

/* 13. TOP3 */
.top3-section{border-radius:var(--radius) !important;padding:12px 14px;}
.top3-section-header{flex-wrap:wrap;gap:var(--sp-sm);}
.top3-section-hint{font-size:11px;color:var(--text-muted);}
.top3-suggest-slot,.top3-empty-slot{font-size:11px;padding:8px 10px;border-radius:var(--radius-xs);}

/* 14. 分类·SOP引导·Tracker 详情 — 飞书/钉钉风格精简 */
.sop-section-header{overflow:hidden;gap:var(--sp-sm);}
.sop-section-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-width:0;font-weight:600;font-size:15px;}
.sop-guide-panel{border-radius:var(--radius-xs) !important;padding:var(--sp-sm) 10px;}
.sop-guide-chip{font-size:11px;padding:3px 8px;border-radius:var(--radius-xs);}
.sop-guide-step-text{font-size:13px;}
.sop-guide-toggle{font-size:11px;padding:4px 8px;border-radius:var(--radius-xs);}
.sop-banner{border-radius:var(--radius) !important;overflow:hidden;}
/* ── 手机端隐藏副标题（防竖排文字） ── */
.sop-detail-subtitle{display:none !important;}
.sop-task-hint{display:none !important;}
.sop-detail-desc-toggle{display:none !important;}
/* ── 隐藏拖拽手柄（触屏无用） ── */
.drag-handle{display:none !important;}
/* ── SOP 添加区紧凑 ── */
.sop-add-item{padding:var(--sp-sm) !important;gap:var(--sp-xs) !important;}
.sop-add-input{font-size:13px !important;padding:8px 10px !important;
  border-radius:var(--radius-xs) !important;min-height:36px;}
/* ── 条目操作：只保留编辑+删除，隐藏 +计划 -计划 ── */
.sop-task-btn.add{display:none !important;}
.sop-task-btn.remove:not(:last-child){display:none !important;}
/* ── 条目操作栏紧凑排列 ── */
.sop-task-actions{gap:var(--sp-xs) !important;flex-shrink:0;}
.sop-task-btn{font-size:11px !important;padding:4px 8px !important;
  border-radius:var(--radius-xs) !important;min-height:28px !important;white-space:nowrap;}
/* ── 分区 header 紧凑 ── */
.sop-section-header{padding:8px 8px !important;gap:var(--sp-sm) !important;}
.sop-section-actions{gap:2px !important;flex-shrink:0;}
.sop-section-actions .btn-icon{width:28px !important;height:28px !important;
  min-width:28px !important;font-size:12px !important;}
/* ── 条目行紧凑 ── */
.sop-task{padding:6px 8px !important;gap:var(--sp-sm) !important;}
.sop-task-text{font-size:13px;min-width:0;flex:1;
  overflow:hidden;text-overflow:ellipsis;}
/* ── 类型/状态标签 ── */
.sop-type-badge,.sop-out-badge,.sop-sec-type-badge{font-size:10px !important;
  padding:1px 6px !important;border-radius:var(--radius-xs) !important;}
/* ── Tracker 内嵌计划列表 ── */
.tk-item-plans .plan-item{padding:6px 0 !important;}
.tk-item-plans .plan-name{font-size:13px !important;}
.tk-item-plans .plan-source{font-size:11px !important;}
/* ── Tracker 计划概览 ── */
.tk-plan-overview{flex-wrap:wrap;gap:var(--sp-sm);font-size:13px;}
.tk-plan-stat{font-size:13px;}

/* 15. 周视图·日分组 */
.week-view-btn{font-size:13px;padding:6px 14px;border-radius:var(--radius-xs);
  font-weight:500;white-space:nowrap;flex-shrink:0;}
.week-view-btn:active{transform:scale(0.96);}
.week-view-toggle{flex-shrink:0;}
.wk-card{max-width:100%;box-sizing:border-box;overflow:hidden;border-radius:var(--radius) !important;}
.wk-cap-metrics{flex-wrap:wrap;gap:var(--sp-sm);}
.wk-dash-row{flex-wrap:wrap;gap:var(--sp-sm);}
.wk-dash-row .wk-card{flex:1 1 100%;max-width:100%;}
.week-push-item{flex-wrap:wrap;gap:var(--sp-sm);border-radius:var(--radius-xs) !important;
  padding:10px 12px !important;border:0.5px solid var(--glass-border) !important;}
.week-push-actions{flex-basis:100%;display:flex;gap:var(--sp-sm);}
.week-push-btn{border-radius:var(--radius-xs) !important;padding:5px 12px;font-size:11px;}
.week-push-panel{border-radius:var(--radius) !important;
  border:0.5px solid var(--glass-border) !important;}
.day-group-section{border-radius:var(--radius) !important;margin-bottom:var(--sp-sm);
  overflow:hidden;border:0.5px solid var(--glass-border) !important;}
.day-group-header{padding:10px 10px;font-size:15px;font-weight:600;
  border-bottom:0.5px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-sm);}
.day-group-title{font-size:15px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;flex:1;}
.day-group-title .day-is-today{font-size:11px;padding:2px 8px;border-radius:var(--radius-xs);font-weight:600;}
.day-group-stat{font-size:13px;color:var(--text-muted);}
.day-group-body{padding:0 10px var(--sp-sm);}
.week-view-toggle{margin-top:var(--sp-xs);}

/* 16. 四象限·习惯·时间分组 */
.quadrant-grid{grid-template-columns:1fr;gap:var(--sp-sm);}
.q-task{padding:10px 0;font-size:15px;}
.habit-card{min-width:100px;max-width:140px;padding:12px;border-radius:var(--radius) !important;}
.habit-card:active{transform:scale(0.97);}
.habit-card-name{font-size:13px;font-weight:500;}
.habit-grid{gap:var(--sp-sm);padding:0 var(--sp-xs);}
.time-group{border-radius:var(--radius) !important;margin-bottom:var(--sp-sm);
  overflow:hidden;border:0.5px solid var(--glass-border) !important;}
.time-group-header{padding:10px 10px;gap:var(--sp-sm);
  border-bottom:0.5px solid var(--border);}
.time-group-title{font-size:15px;font-weight:600;}
.time-group-count{font-size:11px;color:var(--text-muted);}

/* 17. 日历 */
.calendar-day{min-height:52px;border-radius:var(--radius-xs);}
.day-events{display:none;}.day-lunar{font-size:8px;}
.day-all-done-mark{width:14px;height:14px;top:3px;right:3px;}
.day-all-done-mark svg{width:8px;height:8px;}
.calendar-side{grid-template-columns:1fr;}
.calendar-toolbar{flex-wrap:wrap;gap:var(--sp-sm);padding:10px 10px;}
.calendar-nav{flex-wrap:wrap;gap:var(--sp-sm);justify-content:center;}
.calendar-toggles{flex-wrap:wrap;gap:var(--sp-sm);}
.calendar-nav-btn{width:34px;height:34px;border-radius:var(--radius-xs);}
.calendar-nav-btn:active{transform:scale(0.9);}

/* 18. SOP·看板·目标 */
.sop-overview{grid-template-columns:1fr;gap:var(--sp-sm);}
.sop-card{padding:14px;border-radius:var(--radius) !important;}
.sop-card-title{font-size:15px;font-weight:600;}
.sop-task-btn{min-height:32px;padding:6px 12px;font-size:13px;border-radius:var(--radius-xs);}
.kanban-col{flex:0 0 85vw;}
.kanban-card{padding:12px 14px;font-size:13px;border-radius:var(--radius-sm) !important;}
.kanban-card:active{transform:scale(0.98);}
.kanban-card-name{font-size:15px;font-weight:500;}
.kanban-card-meta{font-size:11px;color:var(--text-muted);}
.goal-chip{padding:10px 14px;font-size:15px;border-radius:var(--radius-sm);font-weight:500;}
.sop-detail{padding:0 var(--sp-sm);}
.sop-detail-actions{gap:var(--sp-sm);flex-wrap:wrap;}

/* 19. 统计 */
.stats-bar{flex-wrap:wrap;}
.stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-sm);}
.stat-pill{min-width:45%;padding:14px;border-radius:var(--radius) !important;}
.stat-number{font-size:22px;font-weight:700;letter-spacing:-0.02em;}
.stat-label{font-size:11px;font-weight:500;color:var(--text-muted);
  letter-spacing:0.02em;text-transform:uppercase;}

/* 20. 设置 — iOS 分组列表 */
.settings-section{border-radius:var(--radius);margin-bottom:var(--sp-md);
  overflow:hidden;border:0.5px solid var(--glass-border);}
.settings-item{padding:12px 12px;min-height:44px;flex-wrap:wrap;
  border-bottom:0.5px solid var(--border);}
.settings-item:last-child{border-bottom:none;}
.settings-item-title{font-size:15px;font-weight:400;}
.settings-item-desc{font-size:13px;color:var(--text-muted);line-height:1.4;}
.settings-hint{padding:var(--sp-sm) 12px;font-size:13px;color:var(--text-muted);}
.settings-page-header{font-size:17px;font-weight:600;padding:var(--sp-md) 0 var(--sp-sm);
  letter-spacing:-0.02em;}
.settings-quick-nav{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;gap:var(--sp-sm);padding-bottom:var(--sp-sm);}
.settings-quick-nav::-webkit-scrollbar{display:none;}
.settings-quick-nav-item{padding:6px 14px;font-size:13px;flex-shrink:0;
  border-radius:var(--radius-xs);font-weight:500;}
.settings-toggle{width:48px;height:28px;border-radius:14px;}

/* 21. 弹窗 */
.modal-overlay{align-items:flex-end;background:rgba(0,0,0,0.35) !important;
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
.modal{max-width:100vw;width:100vw;max-height:92vh;
  border-radius:var(--radius) var(--radius) 0 0;
  margin-top:auto;animation:slideFromBottom 0.4s cubic-bezier(.32,.72,.24,1);
  border:none !important;box-shadow:var(--shadow-float);}
.modal::before{content:'';display:block;width:36px;height:5px;
  background:var(--text-muted);opacity:0.3;border-radius:3px;
  margin:var(--sp-sm) auto var(--sp-xs);flex-shrink:0;}
.modal-close{width:34px;height:34px;font-size:15px;border-radius:50%;
  background:var(--bg-hover) !important;border:none !important;}
.modal-close:active{transform:scale(0.9);}
.modal-header{padding:var(--sp-md) 16px 12px;}
.modal-title{font-size:17px;font-weight:600;letter-spacing:-0.02em;}
.modal-body{padding:0 16px var(--sp-md);}
.modal-footer{padding:12px 16px 20px;}
.side-panel-body{padding:12px 10px;}
.empty-state{padding:48px var(--sp-lg);}
.empty-icon{font-size:48px;margin-bottom:var(--sp-md);}
.custom-dialog-overlay{align-items:flex-end;}
.custom-dialog{border-radius:var(--radius) var(--radius) 0 0;
  max-width:100vw;width:100vw;padding-bottom:max(24px, env(safe-area-inset-bottom));}
.form-row,.form-row-3{grid-template-columns:1fr;}
#overdueCleanupModal .modal-body{max-height:65vh !important;overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;}

/* 22. 逾期·处置 */
.overdue-banner{padding:10px 10px;gap:var(--sp-sm);margin-bottom:var(--sp-sm);
  border-radius:var(--radius) !important;}
.overdue-banner-icon{font-size:20px;}
.overdue-banner-title{font-size:13px;font-weight:600;}
.overdue-banner-sub{font-size:11px;color:var(--text-muted);}
.overdue-banner-btn{border-radius:var(--radius-xs);padding:7px 14px;font-size:13px;font-weight:600;}
.overdue-task-card{border-radius:var(--radius-sm) !important;padding:14px;
  border:0.5px solid var(--glass-border) !important;}
.overdue-task-card .otc-name{font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.overdue-task-card .otc-date{font-size:11px;flex-shrink:0;}
.overdue-task-card .otc-actions{gap:var(--sp-sm);flex-wrap:wrap;}
.overdue-task-card .otc-action-btn{padding:7px 14px;border-radius:var(--radius-xs);
  font-size:13px;min-height:32px;white-space:nowrap;flex-shrink:0;}
.overdue-task-card .otc-action-btn:active{transform:scale(0.96);}
.disposal-options{gap:var(--sp-sm);}
.disposal-opt{border-radius:var(--radius-sm) !important;padding:14px;
  border:0.5px solid var(--glass-border) !important;}
.disposal-opt:active{transform:scale(0.98);}
.disposal-opt-title{font-size:15px;font-weight:600;}
.disposal-opt-desc{font-size:13px;color:var(--text-secondary);}

/* 23. Toast·FAB */
.toast-container{top:env(safe-area-inset-top,12px);left:var(--sp-md);right:var(--sp-md);align-items:center;}
.toast{border-radius:var(--radius-sm) !important;backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);font-size:13px;}
.fab-add{bottom:calc(64px + constant(safe-area-inset-bottom));
  bottom:calc(64px + env(safe-area-inset-bottom));
  bottom:max(calc(64px + env(safe-area-inset-bottom,0px)),72px);
  box-shadow:var(--shadow-lg);border-radius:50% !important;}
.fab-add:active{transform:scale(0.9);}
.fab-quicknote-wrap{bottom:calc(64px + env(safe-area-inset-bottom));right:20px;}
.batch-bar{bottom:calc(56px + constant(safe-area-inset-bottom) + 10px);
  bottom:calc(56px + env(safe-area-inset-bottom) + 10px);
  bottom:max(calc(56px + env(safe-area-inset-bottom,0px) + 10px),68px);
  border-radius:var(--radius) !important;margin:0 var(--sp-md);}
.pwa-install-banner{bottom:calc(64px + constant(safe-area-inset-bottom));
  bottom:calc(64px + env(safe-area-inset-bottom));
  bottom:max(calc(64px + env(safe-area-inset-bottom,0px)),72px);
  left:var(--sp-md);right:var(--sp-md);transform:none;min-width:0;border-radius:var(--radius) !important;}
.undo-bar{bottom:calc(64px + constant(safe-area-inset-bottom));
  bottom:calc(64px + env(safe-area-inset-bottom));
  bottom:max(calc(64px + env(safe-area-inset-bottom,0px)),72px);
  left:var(--sp-md);right:var(--sp-md);transform:none;border-radius:var(--radius) !important;}

/* 24. 协作 */
.search-filters{grid-template-columns:1fr;}
.collab-card-v2{border-radius:var(--radius) !important;padding:14px !important;
  border:0.5px solid var(--glass-border) !important;}
.collab-card-title{font-size:15px;font-weight:600;}
.collab-card-meta{font-size:13px;color:var(--text-secondary);}
.collab-card-actions{gap:var(--sp-sm);flex-wrap:wrap;}
.collab-status-badge{font-size:11px;padding:3px 8px;border-radius:var(--radius-xs);font-weight:600;}
.collab-negotiate-modal{border-radius:var(--radius) var(--radius) 0 0 !important;}

/* 25. Hub Tab — 横向滚动防重叠 */
.today-hub-tabs{margin-bottom:var(--sp-sm);padding:3px;gap:2px;border-radius:var(--radius-sm);
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;}
.today-hub-tabs::-webkit-scrollbar{display:none;}
.today-hub-tab{padding:8px 10px;font-size:13px;gap:var(--sp-xs);
  border-radius:var(--radius-xs);font-weight:500;transition:background 0.2s,color 0.2s;
  flex-shrink:0;white-space:nowrap;}
.today-hub-tab:active{transform:scale(0.97);}
.today-hub-tab svg{width:15px;height:15px;}
.review-hub-tabs{border-radius:var(--radius-sm);}

/* 26. 复盘 */
.review-layout{flex-direction:column !important;}
.review-panel{border-radius:var(--radius) !important;margin-bottom:var(--sp-sm);
  border:0.5px solid var(--glass-border) !important;}
.review-panel-title{font-size:15px;font-weight:600;}
.review-date-btn{border-radius:var(--radius-xs);font-size:13px;padding:5px 12px;}
.review-gap{border-radius:var(--radius-sm) !important;}
.review-note-item{border-radius:var(--radius-sm) !important;padding:12px 14px;}

/* 27. SOP弹窗 */
.sdt-modal{flex-direction:column;height:92vh;max-height:92vh;width:96vw;
  border-radius:var(--radius) var(--radius) 0 0;}
.sdt-sidebar{width:100%;min-width:0;flex-direction:row;overflow-x:auto;
  padding:12px;gap:var(--sp-xs);border-right:none;border-bottom:0.5px solid var(--border);}
.sdt-modal-title{display:none;}
.sdt-tab{padding:8px 14px;white-space:nowrap;font-size:13px;
  border-radius:var(--radius-xs);font-weight:500;}
.sdt-tab .sdt-tab-icon{display:none;}
.sdt-tab.sdt-tab-danger{margin-top:0;margin-left:auto;}
.sdt-content{padding:16px 10px;}
.tqn-item-ops{opacity:1 !important;}
.tqn-convert-modal{max-width:100%;max-height:80vh;border-radius:var(--radius) var(--radius) 0 0;}
.tqn-convert-row-fields{flex-direction:column;}
.tqn-convert-row-fields label{max-width:100%;}

/* 28. 登录 */
.login-card{border-radius:var(--radius) !important;padding:28px var(--sp-lg) !important;
  margin:0 var(--sp-md);box-shadow:var(--shadow-lg);}
.login-title{font-size:22px;font-weight:700;letter-spacing:-0.03em;}
.login-sub{font-size:15px;color:var(--text-secondary);}
.login-field{border-radius:var(--radius-sm);min-height:48px;font-size:15px;
  padding:12px var(--sp-md);border:0.5px solid var(--border);}
.login-btn{border-radius:var(--radius-sm) !important;min-height:48px !important;
  font-size:15px !important;font-weight:600 !important;}
.login-btn:active{transform:scale(0.97);}
.login-footer{font-size:13px;color:var(--text-muted);}

/* 29. 归档·管理 */
.archive-panel{border-radius:var(--radius) !important;}
.archive-table-container{border-radius:var(--radius-sm);overflow-x:auto;-webkit-overflow-scrolling:touch;}
.admin-user-card{border-radius:var(--radius) !important;padding:14px !important;
  border:0.5px solid var(--glass-border) !important;}
.admin-tabs{border-radius:var(--radius-sm);gap:2px;padding:3px;}
.admin-tab{border-radius:var(--radius-xs);font-size:13px;padding:8px 12px;}

/* 30. 触摸安全 + 全局防重叠 */
.custom-bg-layer,.custom-bg-overlay,.scroll-indicator,
#confettiContainer,#driftPopup:empty{pointer-events:none !important;}
/* 所有操作按钮组允许换行 */
.otc-actions,.collab-card-actions,.disposal-options,
.sop-detail-actions,.review-date-bar,.archive-edit-actions,
.dp-actions{flex-wrap:wrap !important;gap:var(--sp-sm) !important;}
/* 所有按钮不被挤压 */
.otc-action-btn,.disposal-opt,.week-push-btn,.review-date-btn,
.sop-task-btn,.overdue-banner-btn,.calendar-today-btn{
  flex-shrink:0;white-space:nowrap;}

/* 31. 暗色毛玻璃 */
html.theme-dark .main-header{background:rgba(20,20,28,0.75) !important;}
html.theme-dark .mobile-tab-bar{background:rgba(20,20,28,0.72) !important;}
html.theme-dark .modal-overlay{background:rgba(0,0,0,0.5) !important;}

/* 32. 完成动画 */
.done-retro-emoji{font-size:48px;}

}/* end @media */

@media(max-width:768px) and (pointer:coarse){.wk-dash-row{grid-template-columns:1fr;}}
@media(max-width:768px) and (pointer:coarse){.global-search-wrapper{display:none !important;}}
