/* ==========================================================================
   可近 · 控件外观收敛层（2026-11-01）
   在线上 ui-system.css 之后加载，只改外观：按钮、选择框、输入框、复选框、页签、空间切换。
   不改任何 HTML 结构、业务事件或 JS；删除本文件及 index.html 中的 <link> 即可完整回退。
   约定：
   - 桌面尺寸写在 min-width:681px 内，移动端沿用原有 44px 触控高度规则，不被本层压低。
   - 输入框不统一 padding（登录框左侧图标依赖 40px 内距），只统一边框、圆角、底色与状态。
   ========================================================================== */
:root{
  --ctl-h:38px;--ctl-h-sm:34px;--ctl-r:8px;
  --ctl-border:#D5D8DD;--ctl-border-hover:#B4BAC3;
  --ctl-ring:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent);
  --btn-shadow:0 1px 1px rgba(31,35,41,.04);
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5l3-3' fill='none' stroke='%23646A73' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
[data-theme="dark"]{
  --ctl-border:#454B54;--ctl-border-hover:#5E6570;
  --btn-shadow:none;
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5l3-3' fill='none' stroke='%23A6AAB2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- 按钮：三种层级 ---------- */
:is(button,a).primary,:is(button,a).ghost,:is(button,a).danger,:is(button,a).link{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border-radius:var(--ctl-r);font-size:13px;font-weight:600;line-height:1.3;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease;
}
/* 主要操作：实色 */
:is(button,a).primary{padding:0 16px;background:var(--brand-btn);border:1px solid var(--brand-btn);color:#fff;box-shadow:var(--btn-shadow)}
:is(button,a).primary:hover{background:var(--brand-btn-hover);border-color:var(--brand-btn-hover)}
:is(button,a).primary:active{background:var(--brand2);border-color:var(--brand2)}
/* 次要操作（原 ghost）：白底细边框，看得出是按钮 */
:is(button,a).ghost{padding:0 12px;background:var(--panel);border:1px solid var(--ctl-border);color:var(--text);box-shadow:var(--btn-shadow)}
:is(button,a).ghost:hover{background:var(--panel2);border-color:var(--ctl-border-hover);color:var(--text)}
:is(button,a).ghost:active{background:var(--line-2)}
:is(button,a).ghost.active,:is(button,a).ghost[aria-pressed="true"]{background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 40%,var(--line));color:var(--brand-text)}
/* 危险操作：浅红描边，悬停加深 */
:is(button,a).danger{padding:0 12px;background:var(--panel);border:1px solid color-mix(in srgb,var(--danger) 32%,var(--line));color:var(--danger-text)}
:is(button,a).danger:hover{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 55%,var(--line))}
:is(button,a).link{padding:0 8px;background:transparent;border:1px solid transparent;color:var(--brand-text)}
:is(button,a).link:hover{background:var(--brand-soft)}
:is(button,a).primary.sm,:is(button,a).ghost.sm,:is(button,a).danger.sm,:is(button,a).link.sm{font-size:12.5px}
:is(button,a).primary.sm{padding:0 12px}:is(button,a).ghost.sm,:is(button,a).danger.sm{padding:0 10px}
/* 禁用：统一灰底灰字，不再是看不清的浅蓝 */
:is(button,a).primary:disabled,:is(button,a).ghost:disabled,:is(button,a).danger:disabled,:is(button,a).link:disabled,
:is(button,a).primary[aria-disabled="true"],:is(button,a).ghost[aria-disabled="true"]{
  background:var(--panel2);border-color:var(--line);color:color-mix(in srgb,var(--muted) 70%,transparent);box-shadow:none;cursor:not-allowed;opacity:1
}
:is(button,a).ghost .ico,:is(button,a).primary .ico{width:15px;height:15px;flex:none}

/* 图标类与侧栏按钮保持无边框（关闭“×”、切换主题、退出等） */
:is(button,a).ghost[aria-label^="关闭"],.modal-head :is(button,a).ghost[aria-label],.drawer-head :is(button,a).ghost[aria-label],
.side-foot :is(button,a).ghost,:is(button,a).ghost[title="切换主题"]{
  background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)
}
:is(button,a).ghost[aria-label^="关闭"]:hover,.modal-head :is(button,a).ghost[aria-label]:hover,.drawer-head :is(button,a).ghost[aria-label]:hover{background:var(--panel2);color:var(--text)}
.side-foot :is(button,a).ghost:hover{background:var(--panel2);color:var(--text)}
/* 子任务预览的移除、AI 拆分等原本特殊处理的按钮维持原样 */
.subtask-preview-item :is(button,a).ghost{border-color:transparent;background:transparent;box-shadow:none}
.ai-split-row :is(button,a).ghost{border:1px dashed var(--brand);color:var(--brand-text);background:transparent}

/* ---------- 输入框与选择框 ---------- */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]),
select,textarea{
  border:1px solid var(--ctl-border);border-radius:var(--ctl-r);background-color:var(--panel);color:var(--text);
  transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):hover,
select:hover,textarea:hover{border-color:var(--ctl-border-hover)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ctl-ring)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}
input:disabled,select:disabled,textarea:disabled,input[readonly]{background-color:var(--panel2);color:var(--muted);cursor:not-allowed}
input[readonly]{cursor:default}
/* 筛选条里的控件改为白底，与搜索框一致 */
.toolbar input,.toolbar select,.report-toolbar input,.report-toolbar select,.member-toolbar input,.member-toolbar select,.quota-toolbar input,.quota-toolbar select{background-color:var(--panel);border-color:var(--ctl-border)}
.cw-workbench input,.cw-workbench select,.cw-workbench textarea{background-color:var(--panel);border-color:var(--ctl-border)}
/* 下拉框：去掉系统箭头，统一为细箭头；多选/列表型保持原生 */
select:not([multiple]):not([size]){
  -webkit-appearance:none;appearance:none;
  padding-top:0;padding-bottom:0;padding-left:11px;padding-right:32px;
  background-image:var(--chevron);background-repeat:no-repeat;background-position:right 11px center;background-size:12px 12px;
  text-overflow:ellipsis;cursor:pointer;line-height:1.4
}
select:not([multiple]):not([size]):disabled{cursor:not-allowed;opacity:.75}
select[multiple],select[size]{padding:4px}
input::placeholder,textarea::placeholder{color:#8F959E;opacity:1}
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{color:#7D828B}
/* 搜索框（带左侧图标）保留原内距 */
input[type="search"]{-webkit-appearance:none;appearance:none}

/* 复选框、单选：统一尺寸与品牌色 */
input[type="checkbox"],input[type="radio"]{accent-color:var(--brand);cursor:pointer}
input[type="checkbox"],input[type="radio"]{width:16px;height:16px;min-height:0;margin:0;flex:none;vertical-align:-3px}
input[type="checkbox"]:disabled,input[type="radio"]:disabled{cursor:not-allowed}
input[type="file"]{font-size:13px;color:var(--muted)}
input[type="file"]::file-selector-button{margin-right:10px;padding:6px 12px;border:1px solid var(--ctl-border);border-radius:var(--ctl-r);background:var(--panel);color:var(--text);font:inherit;font-weight:600;cursor:pointer}
input[type="file"]::file-selector-button:hover{background:var(--panel2);border-color:var(--ctl-border-hover)}

/* ---------- 桌面尺寸：按钮与控件同高，同一行对齐 ---------- */
@media (min-width:681px){
  :is(button,a).primary,:is(button,a).ghost,:is(button,a).danger{min-height:var(--ctl-h)}
  :is(button,a).link{min-height:32px}
  :is(button,a).primary.sm,:is(button,a).ghost.sm,:is(button,a).danger.sm,:is(button,a).link.sm{min-height:var(--ctl-h-sm)}
  .top-right :is(button,a).primary.sm{min-height:36px;padding:0 14px}
  select:not([multiple]):not([size]){min-height:var(--ctl-h)}
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]){min-height:var(--ctl-h)}
}

/* ---------- 页签：统一为浅底选中，不再整块深蓝 ---------- */
.admin-tabs,.workspace-tabs,.reward-admin-tabs{gap:4px}
.admin-tab,.workspace-tab,.reward-admin-tab{border-radius:7px;color:var(--muted);font-weight:600;transition:background-color .14s,color .14s}
.admin-tab:hover,.workspace-tab:hover,.reward-admin-tab:hover{background:var(--panel2);color:var(--text)}
.admin-tab.active,.workspace-tab.active,.reward-admin-tab.active{background:var(--brand-soft);color:var(--brand-text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 30%,transparent)}

/* ---------- 侧栏空间切换：浅色分段控件（原样式为深色侧栏设计，浅色下像禁用） ---------- */
.space-switcher{gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.space-switch{border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);padding:7px 9px}
.space-switch span{font-size:12px;font-weight:650;color:var(--text)}
.space-switch small{color:var(--muted);font-size:10.5px}
.space-switch:hover{background:color-mix(in srgb,var(--panel) 70%,transparent);border-color:transparent;color:var(--text)}
.space-switch.active{background:var(--panel);border-color:var(--line);color:var(--brand-text);box-shadow:0 1px 2px rgba(31,35,41,.08)}
.space-switch.active span{color:var(--brand-text)}
.space-switch.active small{color:var(--muted)}
[data-theme="dark"] .space-switch.active{background:var(--panel)}

/* 顶栏空间标签 */
.top-space-status{border-color:var(--line);background:var(--panel2);color:var(--muted);font-weight:500}

/* 筛选条里的按钮不再被带标题的字段撑成方块（原先透明看不出，加边框后会显形） */
.toolbar>:is(button,a):is(.primary,.ghost,.danger),.report-toolbar>:is(button,a):is(.primary,.ghost,.danger){align-self:end}

/* 筛选条/表单行内的小按钮与输入框同高，避免一行高低不齐 */
@media (min-width:681px){
  .toolbar :is(button,a).sm,.report-toolbar :is(button,a).sm,.member-toolbar :is(button,a).sm,.quota-toolbar :is(button,a).sm{min-height:var(--ctl-h)}
}

/* 手机：恢复 style.css 原定的 44px 触控高度（ui-system.css 的 38px 规则曾把它压低） */
@media (max-width:600px){
  :is(button,a).primary,:is(button,a).ghost,:is(button,a).danger,
  select:not([multiple]):not([size]),
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]){min-height:44px}
  .side-foot :is(button,a).ghost,.ghost[aria-label^="关闭"]{min-height:44px;min-width:44px}
}

/* 面板标题右侧的操作区：按钮文字不折成多行，由旁边的输入框收窄让位 */
.panel-head :is(button,a):is(.primary,.ghost,.danger){white-space:nowrap;flex:none}
.panel-head .row>:is(input,select,.kj-date-field){min-width:0}
