/* =============================================================================
   安澜心理工作台 V1 · 咨询师端原型
   C4 日程表 / C5 咨询工作台 / C6 咨询督导与纪录
   加载顺序：assets/tokens.css → assets/app.css → assets/session.css
   约束：仅使用共享 CSS 变量；无硬编码色值（#fff / #000 除外）；无 emoji；
        禁用弹跳缓动；支持 prefers-reduced-motion；焦点可见；可点区 ≥44px。
   ============================================================================= */

:root{
  --s-hour: 60px;                 /* 周/日视图 1 小时行高 */
  --s-gutter: 64px;               /* 时间轴槽宽 */
  --s-gold-ink: color-mix(in srgb, var(--anlan-gold) 60%, var(--ink-900));
  --s-slate: color-mix(in srgb, var(--anlan-blue) 38%, var(--ink-300));
  --s-soft: color-mix(in srgb, var(--anlan-blue) 6%, var(--surface));
  --s-soft-2: color-mix(in srgb, var(--ink-500) 5%, var(--surface));
  --s-hair: color-mix(in srgb, var(--line) 55%, var(--surface));
  --s-ease: cubic-bezier(.2, 0, 0, 1);
  --s-ease-out: cubic-bezier(.4, 0, .2, 1);
}

/* ------------------------------ 通用小工具 ------------------------------ */
.s-hide{ display:none !important; }
.s-sr{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.s-stack{ display:grid; gap:16px; align-content:start; }
.s-muted{ color:var(--ink-500); }
.s-meta{ font-size:12px; color:var(--ink-500); }
.s-mono{ font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1; }
.s-nowrap{ white-space:nowrap; }
.s-right{ text-align:right; }

.s-layout{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
.s-layout--wide{ grid-template-columns:minmax(0,1fr) 340px; }

.s-main{ display:flex; flex-direction:column; min-width:0; flex:1 1 auto; }
.s-crumb{ display:inline-flex; align-items:center; gap:6px; min-height:44px; font-size:14px; color:var(--ink-500); text-decoration:none; }
.s-crumb:hover{ color:var(--anlan-blue); }

/* ------------------------------ 顶栏内部 ------------------------------ */
.s-top-right{ display:flex; align-items:center; gap:8px; margin-left:auto; }
.s-iconbtn{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--surface); color:var(--ink-700); cursor:pointer;
  transition:background 200ms var(--s-ease), border-color 200ms var(--s-ease), color 200ms var(--s-ease);
}
.s-iconbtn:hover{ background:var(--anlan-blue-50); border-color:var(--anlan-blue-100); color:var(--anlan-blue); }
.s-dot{
  position:absolute; top:9px; right:10px; width:8px; height:8px; border-radius:50%;
  background:var(--risk); box-shadow:0 0 0 2px var(--surface);
}
.s-user{ display:flex; align-items:center; gap:10px; padding-left:8px; }
.s-avatar{
  width:36px; height:36px; border-radius:50%; background:var(--anlan-blue); color:#fff;
  display:inline-flex; align-items:center; justify-content:center; font-size:15px; font-weight:500;
}
.s-user__name{ font-size:14px; font-weight:500; color:var(--ink-900); line-height:1.3; }
.s-user__role{ font-size:12px; color:var(--ink-500); line-height:1.3; }

/* ------------------------------ 徽标 / 状态片 ------------------------------ */
.s-chip{
  display:inline-flex; align-items:center; gap:5px; min-height:22px; padding:2px 10px;
  border-radius:999px; font-size:12px; font-weight:500; line-height:1.5; white-space:nowrap;
  border:1px solid transparent;
}
.s-chip--pending{ color:var(--anlan-blue); background:var(--anlan-blue-50); border-color:var(--anlan-blue-100); }
.s-chip--confirmed{ color:var(--ok); background:color-mix(in srgb, var(--ok) 10%, var(--surface)); border-color:color-mix(in srgb, var(--ok) 26%, var(--surface)); }
.s-chip--declined{ color:var(--ink-700); background:var(--s-soft-2); border-color:var(--line); }
.s-chip--done{ color:var(--ink-500); background:var(--s-soft-2); border-color:var(--line); }
.s-chip--idle{ color:var(--ink-500); background:var(--s-soft-2); border-color:var(--line); }
.s-chip--running{ color:var(--anlan-blue); background:var(--anlan-blue-50); border-color:var(--anlan-blue-100); }
.s-chip--ok{ color:var(--ok); background:color-mix(in srgb, var(--ok) 10%, var(--surface)); border-color:color-mix(in srgb, var(--ok) 26%, var(--surface)); }
.s-chip::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }

.s-tag{
  display:inline-flex; align-items:center; min-height:26px; padding:2px 10px; border-radius:var(--radius);
  font-size:13px; color:var(--ink-700); background:var(--s-soft); border:1px solid var(--s-hair);
}

/* =============================================================================
   C4 — 日程表
   ============================================================================= */
.s-sched{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }

.s-calbar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.s-calbar__range{ font-size:18px; font-weight:500; color:var(--ink-900); }
.s-calbar__spacer{ flex:1 1 auto; }

.s-legend{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; font-size:13px; color:var(--ink-700); }
.s-legend__i{ display:inline-flex; align-items:center; gap:6px; }
.s-swatch{ width:12px; height:12px; border-radius:3px; display:inline-block; border:1px solid color-mix(in srgb, var(--ink-500) 25%, var(--surface)); }

/* 周视图 ------------------------------------------------------------------ */
.wk{ display:grid; grid-template-columns:var(--s-gutter) repeat(7, minmax(0,1fr)); border-top:1px solid var(--line); }
.wk__corner{ border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface); }
.wk__dh{
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:8px 10px; background:var(--surface); text-align:left;
}
.wk__dh:last-child{ border-right:0; }
.wk__dow{ font-size:13px; color:var(--ink-500); }
.wk__day{ font-size:18px; font-weight:500; color:var(--ink-900); font-variant-numeric:tabular-nums; }
.wk__count{ font-size:12px; color:var(--ink-500); }
.wk__dh.is-today{ background:var(--anlan-blue-50); }
.wk__dh.is-today .wk__day{ color:var(--anlan-blue); }
.wk__dh.is-today .wk__day::after{
  content:"今天"; margin-left:6px; font-size:12px; font-weight:500; color:var(--anlan-blue);
  background:var(--surface); border:1px solid var(--anlan-blue-100); border-radius:999px; padding:1px 6px;
}

.wk__body{ display:grid; grid-template-columns:var(--s-gutter) repeat(7, minmax(0,1fr)); }
.wk__gutter{ border-right:1px solid var(--line); background:var(--surface); }
.wk__hour{
  height:var(--s-hour); border-bottom:1px solid var(--s-hair);
  font-size:12px; color:var(--ink-500); padding:2px 8px 0 0; text-align:right;
  font-variant-numeric:tabular-nums;
}
.wk__col{ position:relative; border-right:1px solid var(--line); min-height:calc(var(--s-hour) * 14); }
.wk__col:last-child{ border-right:0; }
.wk__col.is-weekend{ background:color-mix(in srgb, var(--ink-500) 3%, var(--surface)); }
.wk__slot{ position:absolute; left:0; right:0; top:calc(var(--s-hour) * var(--t, 0) / 60); height:var(--s-hour); border-bottom:1px solid var(--s-hair); }
.wk__now{ position:absolute; left:0; right:0; top:calc(var(--s-hour) * var(--t, 0) / 60); height:2px; background:var(--warn); z-index:3; }
.wk__now::before{ content:""; position:absolute; left:-4px; top:-3px; width:8px; height:8px; border-radius:50%; background:var(--warn); }

/* 全天条 */
.wk__allday{ display:grid; grid-template-columns:var(--s-gutter) repeat(7, minmax(0,1fr)); border-bottom:1px solid var(--line); }
.wk__allday .wk__corner, .wk__allday .wk__cell{ border-bottom:0; }
.wk__allday .wk__corner{ font-size:12px; color:var(--ink-500); padding:10px 8px; }
.wk__cell{ border-right:1px solid var(--line); padding:6px; min-height:44px; display:flex; flex-direction:column; gap:4px; }
.wk__cell:last-child{ border-right:0; }
.wk__cell.is-weekend{ background:color-mix(in srgb, var(--ink-500) 3%, var(--surface)); }

/* 事件块 */
.ev{
  --ev-a: var(--anlan-blue);
  position:absolute; left:4px; right:4px;
  top:calc(var(--s-hour) * var(--t, 0) / 60);
  height:calc(var(--s-hour) * var(--d, 60) / 60);
  min-height:44px; overflow:hidden;
  padding:6px 8px; border-radius:var(--radius); cursor:pointer; text-align:left;
  background:color-mix(in srgb, var(--ev-a) 9%, var(--surface));
  border:1px solid color-mix(in srgb, var(--ev-a) 26%, var(--surface));
  border-left:3px solid var(--ev-a);
  transition:box-shadow 200ms var(--s-ease), transform 120ms var(--s-ease), background 200ms var(--s-ease);
}
.ev:hover{ box-shadow:var(--shadow-sm); background:color-mix(in srgb, var(--ev-a) 14%, var(--surface)); }
.ev:active{ transform:translateY(1px); }
.ev__t{ display:flex; align-items:baseline; gap:6px; font-size:13px; font-weight:500; color:var(--ink-900); }
.ev__code{ font-variant-numeric:tabular-nums; }
.ev__m{ font-size:12px; color:var(--ink-500); margin-top:1px; }
.ev__foot{ margin-top:4px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.ev.is-current{ box-shadow:0 0 0 2px var(--anlan-blue); }

.ev--session{ --ev-a: var(--anlan-blue); }
.ev--personal{ --ev-a: var(--s-slate); }
.ev--training{ --ev-a: var(--s-gold-ink); }
.ev--supervision{ --ev-a: var(--ok); }
.ev--leave{ --ev-a: var(--ink-300); }
.ev--leave .ev__t{ color:var(--ink-700); }

.ev{ text-decoration:none; color:inherit; font-size:13px; line-height:1.45; }
.ev--allday{ position:static; display:block; top:auto; height:auto; left:auto; right:auto; min-height:32px; padding:4px 8px; }

/* 月视图 */
.mth{ display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.mth__dh{ padding:8px 10px; font-size:13px; color:var(--ink-500); border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface); }
.mth__cell{ border-right:1px solid var(--line); border-bottom:1px solid var(--line); min-height:104px; padding:6px; display:flex; flex-direction:column; gap:4px; background:var(--surface); }
.mth__cell.is-out{ background:var(--s-soft-2); }
.mth__cell.is-today{ box-shadow:inset 0 0 0 2px var(--anlan-blue); }
.mth__num{ font-size:13px; font-weight:500; color:var(--ink-900); font-variant-numeric:tabular-nums; }
.mth__cell.is-out .mth__num{ color:var(--ink-500); font-weight:400; }
.mth__pill{
  --ev-a: var(--anlan-blue);
  display:block; width:100%; min-height:24px; padding:2px 6px; border-radius:6px; text-align:left;
  font-size:12px; line-height:1.5; color:var(--ink-700); cursor:pointer;
  background:color-mix(in srgb, var(--ev-a) 12%, var(--surface));
  border-left:3px solid var(--ev-a);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* 日视图 */
.day{ display:grid; grid-template-columns:var(--s-gutter) minmax(0,1fr); border-top:1px solid var(--line); }
.day__gutter{ border-right:1px solid var(--line); background:var(--surface); }
.day__col{ position:relative; border-right:1px solid var(--line); min-height:calc(var(--s-hour) * 14); }

/* 新建时间块面板 */
.s-create{ margin-top:16px; border-top:1px dashed var(--line); padding-top:16px; }
.s-formgrid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; }
.s-formgrid .field{ display:grid; gap:6px; }
.s-formgrid label{ font-size:13px; font-weight:500; color:var(--ink-700); }

/* 右侧栏 */
.s-aside__list{ display:grid; gap:2px; }
.s-aside__row{
  display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 0;
  border-bottom:1px solid var(--s-hair); font-size:14px; color:var(--ink-900);
}
.s-aside__row:last-child{ border-bottom:0; }
.s-aside__row .s-meta{ margin-left:auto; }
.s-bar{ display:flex; align-items:flex-end; gap:4px; height:36px; }
.s-bar span{ flex:1; background:var(--anlan-blue-100); border-radius:2px 2px 0 0; }
.s-bar span.is-cur{ background:var(--anlan-blue); }

/* =============================================================================
   C5 — 咨询工作台
   ============================================================================= */
.ws-head{ display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.ws-title{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ws-title__code{
  display:inline-flex; align-items:center; justify-content:center; min-width:52px; height:36px;
  padding:0 10px; border-radius:var(--radius); background:var(--anlan-blue); color:#fff;
  font-size:16px; font-weight:500; letter-spacing:1.5px;
}
.ws-meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:13px; color:var(--ink-500); }
.ws-meta__sep{ width:1px; height:12px; background:var(--line); }

/* 分段控件 */
.s-seg{
  display:inline-flex; padding:4px; gap:4px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--s-soft-2);
}
.s-seg__btn{
  display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 18px;
  border:0; border-radius:calc(var(--radius) - 3px); background:transparent; cursor:pointer;
  font-family:inherit; font-size:14px; font-weight:500; color:var(--ink-700);
  transition:background 200ms var(--s-ease), color 200ms var(--s-ease), box-shadow 200ms var(--s-ease);
}
.s-seg__btn:hover{ color:var(--anlan-blue); }
.s-seg__btn.is-active{ background:var(--surface); color:var(--anlan-blue); box-shadow:var(--shadow-sm); font-weight:500; }
.s-seg__btn.is-done .s-seg__idx{ background:var(--ok); color:#fff; border-color:transparent; }
.s-seg__idx{
  width:20px; height:20px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:500; border:1px solid var(--line); color:var(--ink-500); background:var(--surface);
}
.s-seg__btn.is-active .s-seg__idx{ background:var(--anlan-blue); color:#fff; border-color:transparent; }

/* 卡片分区 */
.s-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); }
.s-card__hd{ display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--s-hair); }
.s-card__hd h3{ margin:0; font-size:15px; font-weight:500; color:var(--ink-900); }
.s-card__hd .s-meta{ margin-left:auto; }
.s-card__bd{ padding:16px; }
.s-card__bd--tight{ padding:12px 16px; }
.s-card__ft{ padding:12px 16px; border-top:1px solid var(--s-hair); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

.s-iconlead{ display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:8px; background:var(--anlan-blue-50); color:var(--anlan-blue); }

/* 键值表 */
.s-kv{ display:grid; grid-template-columns:auto 1fr; gap:10px 16px; margin:0; font-size:14px; }
.s-kv dt{ color:var(--ink-500); white-space:nowrap; }
.s-kv dd{ margin:0; color:var(--ink-900); }

/* 迷你表 */
.s-mini{ width:100%; border-collapse:collapse; font-size:13px; }
.s-mini th{
  text-align:left; font-weight:500; color:var(--ink-500); font-size:12px;
  padding:8px 10px; border-bottom:1px solid var(--line); background:var(--s-soft-2);
}
.s-mini td{ padding:10px; border-bottom:1px solid var(--s-hair); color:var(--ink-900); vertical-align:top; }
.s-mini tr:last-child td{ border-bottom:0; }
.s-mini td:first-child{ font-weight:500; }
.s-mini .num{ font-variant-numeric:tabular-nums; }

/* 有序要点 */
.s-points{ margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.s-points li{ display:grid; grid-template-columns:22px 1fr; gap:10px; font-size:14px; color:var(--ink-900); line-height:1.65; }
.s-points li::before{
  content:attr(data-i); display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:6px; background:var(--anlan-blue-50); color:var(--anlan-blue);
  font-size:12px; font-weight:500;
}
.s-bullets{ margin:0; padding-left:18px; display:grid; gap:6px; font-size:14px; color:var(--ink-700); line-height:1.65; }

/* 风险卡 */
.s-risk{ display:flex; align-items:flex-end; gap:12px; }
.s-risk__num{ font-size:40px; font-weight:500; line-height:1; color:var(--ink-900); font-variant-numeric:tabular-nums; }
.s-risk__unit{ font-size:14px; color:var(--ink-500); padding-bottom:4px; }
.s-risk__delta{ margin-left:auto; font-size:13px; color:var(--ink-500); padding-bottom:6px; }
.s-trend{ display:flex; align-items:flex-end; gap:6px; height:56px; margin-top:12px; }
.s-trend__bar{ flex:1; border-radius:3px 3px 0 0; background:var(--anlan-blue-100); position:relative; }
.s-trend__bar.is-cur{ background:var(--anlan-blue); }
.s-trend__lbl{ display:flex; justify-content:space-between; margin-top:6px; font-size:12px; color:var(--ink-500); }

/* AI 卡（深蓝头 + 沙金点，沙金仅用于深蓝底） */
.s-ai{ border:1px solid var(--anlan-blue-100); border-radius:var(--radius-lg); overflow:hidden; background:var(--surface); }
.s-ai__hd{
  display:flex; align-items:center; gap:8px; padding:12px 16px;
  background:var(--anlan-blue); color:#fff;
}
.s-ai__hd h3{ margin:0; font-size:14px; font-weight:500; letter-spacing:.5px; }
.s-ai__dot{ width:8px; height:8px; border-radius:50%; background:var(--anlan-gold); }
.s-ai__hd .s-ai__hint{ margin-left:auto; font-size:12px; color:color-mix(in srgb, #fff 78%, var(--anlan-blue)); }
.s-ai__bd{ padding:14px 16px; background:var(--anlan-blue-50); }
.s-ai__ft{ padding:10px 16px; border-top:1px solid var(--s-hair); background:var(--surface); }

/* 计时器 */
.s-timer{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.s-timer__num{ font-size:44px; font-weight:500; line-height:1; color:var(--ink-900); font-variant-numeric:tabular-nums; letter-spacing:.5px; }
.s-timer__side{ display:grid; gap:4px; }
.s-timer__ops{ display:flex; gap:8px; margin-left:auto; flex-wrap:wrap; }

/* 录音 / 连接状态 */
.s-conn{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.s-conn__state{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--ink-700); min-height:24px; }
.s-conn__led{ width:10px; height:10px; border-radius:50%; background:var(--ink-300); }
.s-conn.is-live .s-conn__led{ background:var(--ok); }
.s-conn.is-linking .s-conn__led{ background:var(--warn); }
.s-conn.is-live .s-conn__state{ color:var(--ok); }
.s-led-ring{ position:relative; }
.s-conn.is-live .s-conn__led{ box-shadow:0 0 0 4px color-mix(in srgb, var(--ok) 18%, var(--surface)); }

/* 上传区 */
.s-drop{
  display:grid; place-items:center; gap:8px; min-height:150px; padding:20px; text-align:center;
  border:1px dashed var(--line); border-radius:var(--radius-lg); background:var(--anlan-blue-50);
  transition:border-color 200ms var(--s-ease), background 200ms var(--s-ease);
}
.s-drop.is-over{ border-color:var(--anlan-blue); background:var(--anlan-blue-100); }
.s-drop__ico{ color:var(--anlan-blue); }
.s-drop__t{ font-size:14px; color:var(--ink-900); }
.s-drop__h{ font-size:13px; color:var(--ink-500); }

/* 文件行 */
.s-file{ display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.s-file__ico{ color:var(--anlan-blue); flex:none; }
.s-file__body{ min-width:0; flex:1; }
.s-file__name{ font-size:14px; color:var(--ink-900); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.s-file__meta{ font-size:12px; color:var(--ink-500); }

/* 进度条 */
.s-prog{ height:6px; border-radius:999px; background:var(--anlan-blue-100); overflow:hidden; }
.s-prog__bar{ height:100%; width:0; border-radius:999px; background:var(--anlan-blue); transition:width 300ms var(--s-ease-out); }
.s-prog__bar.is-busy{
  background-image:linear-gradient(90deg, var(--anlan-blue) 0 40%, var(--anlan-blue-600) 40% 100%);
  background-size:24px 100%; animation:s-stripe 900ms linear infinite;
}
@keyframes s-stripe{ from{ background-position:0 0; } to{ background-position:24px 0; } }

/* 生成卡 */
.s-gen{ display:grid; gap:12px; }
.s-gen__hd{ display:flex; align-items:center; gap:10px; }
.s-gen__ttl{ font-size:15px; font-weight:500; color:var(--ink-900); }
.s-gen__ops{ margin-left:auto; display:flex; gap:8px; }
.s-gen__body{ font-size:14px; color:var(--ink-500); }
.s-result{ margin-top:4px; }
.s-result textarea{ min-height:190px; }

/* 回访设置 */
.s-formrow{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
.s-check{ display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; color:var(--ink-900); }
.s-check input{ width:18px; height:18px; accent-color:var(--anlan-blue); }

/* 底部操作条 */
.s-foot{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:4px;
  padding:14px 16px; border:1px solid var(--line); border-radius:var(--radius-lg);
  background:var(--s-soft-2);
}
.s-foot__hint{ font-size:13px; color:var(--ink-500); }
.s-foot__ops{ margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }

/* 自动保存提示 */
.s-save{ font-size:12px; color:var(--ink-500); display:inline-flex; align-items:center; gap:6px; min-height:20px; }

/* =============================================================================
   C6 — 咨询督导与纪录
   ============================================================================= */
.s-stats{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; }
.s-filters{ display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.s-filters .field{ display:grid; gap:6px; min-width:150px; }
.s-filters label{ font-size:13px; font-weight:500; color:var(--ink-700); }
.s-filters .btn{ height:44px; }
.s-rowlink{ cursor:pointer; }
.s-rowlink:hover{ background:var(--anlan-blue-50); }
.s-ops{ display:flex; gap:6px; justify-content:flex-end; }
.s-yes{ color:var(--ok); font-weight:500; }
.s-no{ color:var(--ink-500); }
.s-riskmark{ display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--ink-700); }

/* 表格内代号 */
.s-code{
  display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:28px; padding:0 8px;
  border-radius:6px; background:var(--anlan-blue-50); color:var(--anlan-blue);
  font-size:13px; font-weight:500; letter-spacing:1.5px;
}

/* 表格内工具条提示 */
.s-tablehint{ display:flex; align-items:center; gap:8px; font-size:12px; color:var(--ink-500); }

/* =============================================================================
   焦点 / 动效 / 响应式
   ============================================================================= */
.s-seg__btn:focus-visible,
.s-iconbtn:focus-visible,
.ev:focus-visible,
.mth__pill:focus-visible,
.s-rowlink:focus-visible,
.s-crumb:focus-visible{
  outline:2px solid var(--anlan-blue); outline-offset:2px; border-radius:var(--radius);
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

@media (max-width: 1240px){
  .s-layout, .s-layout--wide, .s-sched{ grid-template-columns:minmax(0,1fr); }
  .s-formgrid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .s-stats{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 720px){
  .s-formgrid, .s-formrow, .s-stats{ grid-template-columns:minmax(0,1fr); }
  .wk, .wk__body, .wk__allday{ grid-template-columns:48px repeat(7, minmax(76px,1fr)); }
  .mth{ grid-template-columns:repeat(7, minmax(64px,1fr)); }
}
