/* ========== 设计系统 ========== */
:root{
  --bg:#f3f6fb; --panel:#ffffff; --panel2:#f7f9fc; --text:#18243a; --muted:#66748b;
  --line:#e2e8f0; --brand:#3b82f6; --brand2:#2563eb; --brand-soft:#dbeafe; --accent:#f97316;
  --ok:#10b981; --warn:#f59e0b; --danger:#ef4444; --danger-soft:#fef2f2; --warn-soft:#fffbeb;
  --shadow:0 1px 2px rgba(20,35,70,.05),0 7px 20px rgba(20,35,70,.04);
  --shadow-lg:0 10px 30px rgba(15,23,42,.12);
  --r:12px; --r-sm:8px; --sidebar:236px;
}
[data-theme="dark"]{
  --bg:#0f141d; --panel:#171e2b; --panel2:#1c2433; --text:#e6ebf5; --muted:#8a94ab;
  --line:#26304a; --brand:#3b82f6; --brand2:#60a5fa; --brand-soft:#1a2b4a; --accent:#fb923c;
  --danger-soft:#3a1d22; --warn-soft:#3a2d12;
  --shadow:0 1px 3px rgba(0,0,0,.4); --shadow-lg:0 10px 30px rgba(0,0,0,.5);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  background:var(--bg); color:var(--text); font-size:14px; line-height:1.6; -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(circle at 82% 0,rgba(53,109,243,.055),transparent 28rem);
}
.hidden{display:none!important}
.muted{color:var(--muted);font-size:12px}
h3{font-size:14px;font-weight:600}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{
  font-family:inherit;font-size:14px;color:var(--text);
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:8px 10px;outline:none;transition:border-color .15s, box-shadow .15s;
}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
textarea{resize:vertical}
/* 统一 SVG 图标 + 键盘焦点可见 */
.ico{width:18px;height:18px;flex-shrink:0;display:inline-block;vertical-align:middle}
a,button,.task-card,[role="button"]{cursor:pointer}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}
.dot-red{background:var(--danger)}
.dot-orange{background:var(--warn)}
.dot-blue{background:var(--brand)}
.dot-gray{background:#cbd5e1}
.dot-green{background:var(--ok)}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

/* ========== 布局 ========== */
#app{display:flex;min-height:100vh}
.sidebar{
  width:var(--sidebar);flex-shrink:0;background:#101c36;border-right:0;color:#fff;
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:18px 14px;
}
.logo{display:flex;gap:10px;align-items:center;padding:4px 8px 18px}
.logo-mark{
  width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#2563eb);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;
}
.logo-title{font-weight:700;font-size:15px}
.logo-sub{font-size:11px;color:#92a3c4}
.nav{display:flex;flex-direction:column;gap:4px;flex:1}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);
  color:#aab7cf;font-size:14px;text-align:left;transition:all .15s;
}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-item.active{background:linear-gradient(90deg,rgba(80,130,255,.28),rgba(80,130,255,.12));color:#fff;font-weight:600;box-shadow:inset 3px 0 #6d98ff}
.nav-item .ico{width:18px;height:18px}
.side-foot{display:flex;gap:8px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}
.side-foot .ghost{display:inline-flex;align-items:center;gap:6px}
.side-foot .ghost{color:#9fadc8}.side-foot .ghost:hover{color:#fff;background:rgba(255,255,255,.07)}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  display:flex;align-items:center;gap:14px;padding:15px clamp(18px,3vw,38px);
  background:rgba(255,255,255,.9);border-bottom:1px solid rgba(223,230,240,.85);position:sticky;top:0;z-index:5;backdrop-filter:blur(14px);
}
.hamb{display:none;font-size:20px;padding:4px 8px}
.crumb{font-size:18px;font-weight:750;letter-spacing:-.02em;flex:1}
.top-right{display:flex;align-items:center;gap:12px}
.avatar{
  width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#60a5fa);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;
}
.view{display:none;width:100%;max-width:1480px;margin:0 auto;padding:26px clamp(18px,3vw,38px) 48px;animation:fade .2s ease}
.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1}}

/* ========== 按钮 ========== */
.primary{
  background:var(--brand);color:#fff;padding:9px 16px;border-radius:var(--r-sm);
  font-weight:600;transition:background .15s;display:inline-flex;align-items:center;gap:6px;
}
.primary .ico{width:16px;height:16px}
.primary:hover{background:var(--brand2)}
.primary:disabled{opacity:.6;cursor:not-allowed}
.primary.sm{padding:7px 12px;font-size:13px}
.primary.block{width:100%;padding:11px}
.ghost{color:var(--muted);padding:7px 10px;border-radius:var(--r-sm);font-size:13px;display:inline-flex;align-items:center;gap:5px}
.ghost .ico{width:15px;height:15px}
.ghost:hover{background:var(--panel2);color:var(--text)}
.ghost.sm{padding:4px 8px;font-size:12px}
.link{color:var(--brand);font-size:13px;padding:4px 6px;border-radius:6px}
.link:hover{background:var(--brand-soft)}
.danger{color:var(--danger);font-size:13px;padding:4px 6px;border-radius:6px;display:inline-flex;align-items:center;gap:5px}
.danger .ico{width:15px;height:15px}
.danger:hover{background:var(--danger-soft)}
.danger:disabled,.token-rotate:disabled{cursor:not-allowed;opacity:.55;background:var(--danger-soft);box-shadow:none}
.danger:disabled:hover,.token-rotate:disabled:hover{background:var(--danger-soft);box-shadow:none}

/* ========== 面板/卡片 ========== */
.panel{background:var(--panel);border:1px solid rgba(223,230,240,.9);border-radius:var(--r);padding:19px 20px;margin-bottom:18px;box-shadow:var(--shadow)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.row{display:flex;gap:8px;align-items:center}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow)}

/* ========== 工作台统计 ========== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:18px}
.stat{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  position:relative;overflow:hidden;padding:18px 20px;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;
}
.stat::after{content:'';position:absolute;right:-16px;top:-18px;width:72px;height:72px;border-radius:50%;background:currentColor;opacity:.045}
.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.stat .num{font-size:28px;font-weight:700;line-height:1.1}
.stat .lbl{font-size:12px;color:var(--muted);margin-top:4px}
.stat.c-brand .num{color:var(--brand)}
.stat.c-ok .num{color:var(--ok)}
.stat.c-warn .num{color:var(--warn)}
.stat.c-danger .num{color:var(--danger)}

/* ========== 工作台进度面板 ========== */
.progress-overview{
  display:flex;gap:28px;align-items:center;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:20px 24px;margin-bottom:18px;box-shadow:var(--shadow);
}
.donut-wrap{position:relative;width:120px;height:120px;flex-shrink:0}
.donut{width:120px;height:120px;display:block}
.donut circle{fill:none}
.donut-bg{stroke:var(--panel2);stroke-width:11}
.donut-fg{stroke:var(--brand);stroke-width:11;stroke-linecap:round;transition:stroke-dasharray .6s ease}
.donut-fg.is-full{stroke:var(--ok)}
.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut-num{font-size:26px;font-weight:800;line-height:1}
.donut-lbl{font-size:11px;color:var(--muted);margin-top:5px}
.progress-side{flex:1;display:flex;flex-direction:column;gap:12px;min-width:0}
.progress-legend{display:flex;gap:20px;flex-wrap:wrap}
.lg{display:inline-flex;align-items:center;font-size:13px;color:var(--muted)}
.lg b{color:var(--text);margin-left:3px;font-size:15px}
.seg-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--panel2);border:1px solid var(--line)}
.seg{height:100%;transition:width .5s ease}
.seg-done{background:var(--ok)}
.seg-doing{background:var(--brand)}
.seg-overdue{background:var(--danger)}
.progress-sum{font-size:13px;color:var(--muted)}
.progress-sum b{color:var(--text)}
.project-progress{display:flex;flex-direction:column;gap:8px}
.pp-row{display:flex;align-items:center;gap:12px}
.pp-name{width:104px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.pp-bar{flex:1;height:6px;background:var(--panel2);border:1px solid var(--line);border-radius:99px;overflow:hidden}
.pp-fill{height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));border-radius:99px;transition:width .4s ease}
.pp-num{font-size:12px;color:var(--muted);min-width:64px;text-align:right;white-space:nowrap}
@media (max-width:520px){.progress-overview{flex-direction:column;align-items:flex-start;gap:16px}}
@media (max-width:560px){
  .person-picker-head{align-items:stretch;flex-direction:column}.person-picker-head input{width:100%;min-height:44px}
  .person-option{align-items:flex-start;flex-wrap:wrap}.person-primary{margin-left:45px;min-height:36px}
  .assignee-summary>div{grid-template-columns:1fr}.ai-subtask-title-line{align-items:flex-start;flex-wrap:wrap}
  .ai-subtask-title{flex-basis:100%}.sub-actions>*{min-height:40px}
}

/* ========== 工具条 ========== */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:12px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);backdrop-filter:blur(8px)}
.toolbar .search{flex:1;min-width:180px}
.toolbar select{min-width:110px}
.toolbar input,.toolbar select{background:var(--panel);min-height:40px}
.toolbar .search{padding-left:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2366748b' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px center}

/* ========== 任务卡 ========== */
.task-list{display:flex;flex-direction:column;gap:10px}
.task-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  position:relative;padding:15px 17px 15px 20px;box-shadow:var(--shadow);cursor:pointer;transition:all .15s;
}
.task-card::before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--brand);opacity:.7}
.task-card:hover{border-color:#c8d6ef;box-shadow:0 12px 28px rgba(30,54,94,.09);transform:translateY(-2px)}
.task-card .title{font-weight:600;font-size:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.task-card .meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted);margin-top:6px;align-items:center}
.task-card .meta span{display:inline-flex;align-items:center;gap:4px}
.task-card .meta .ico{width:13px;height:13px}
.task-card .desc{margin-top:8px;font-size:13px;color:var(--muted);line-height:1.5}
.task-card.done{opacity:.62}
.task-card.done .title{text-decoration:line-through}
.badge{
  display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;
  background:var(--panel2);border:1px solid var(--line);color:var(--muted);
}
.badge.p4{background:var(--danger-soft);color:var(--danger);border-color:transparent;font-weight:600}
.badge.p3{background:var(--warn-soft);color:var(--warn);border-color:transparent;font-weight:600}
.badge.p2{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.badge.p1{background:var(--panel2)}
.badge.c02-level{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.badge.c02-difficulty{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.badge.c02-pending{background:var(--panel2);color:var(--muted);border-style:dashed}
.badge.c02-excluded{background:var(--panel2);color:var(--muted)}
.badge.role-admin{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.due.overdue{color:var(--danger);font-weight:600}
.due.near{color:var(--warn);font-weight:600}
.empty{text-align:center;color:var(--muted);padding:48px 16px;font-size:13px}
.empty::before{content:'✓';display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin:0 auto 10px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:18px;font-weight:700}

/* ========== 看板 ========== */
.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;align-items:start}
.board-col{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.board-col h4{font-size:13px;font-weight:600;color:var(--muted);padding:2px 4px 10px;display:flex;justify-content:space-between}
.board-col .count{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:0 8px;font-size:11px}
.board-col .task-card{margin-bottom:8px;padding:12px}

/* ========== 抽屉 ========== */
.drawer{position:fixed;inset:0;z-index:40}
.drawer-mask{position:absolute;inset:0;background:rgba(10,15,25,.45);backdrop-filter:blur(2px)}
.drawer-body{
  position:absolute;top:0;right:0;bottom:0;width:min(480px,94vw);
  background:var(--panel);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;
  animation:slide .22s ease;
}
@keyframes slide{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}
.drawer-title{font-size:16px;font-weight:700}
.drawer-content{flex:1;overflow-y:auto;padding:18px 20px}
.d-section{margin-bottom:20px}
.d-section .lbl{font-size:12px;color:var(--muted);margin-bottom:6px}
.d-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.task-assignee-editor{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:12px}
.task-assignee-editor .muted{font-size:11px;line-height:1.6}
.assignee-overview{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}.assignee-overview>button{min-height:44px}
@media (max-width:560px){.assignee-overview{grid-template-columns:1fr}.assignee-overview>button{width:100%}}
.assignee-summary{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel2)}
.assignee-summary>div{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:8px;min-height:28px}
.role-kicker{font-size:11px;color:var(--muted);font-weight:650}
.person-picker{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.person-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid var(--line);background:var(--panel2)}
.person-picker-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.person-picker-head strong{font-size:13px}.person-picker-head small{font-size:11px;color:var(--muted)}
.person-picker-head input{width:150px;min-height:40px;font-size:13px}
.person-picker-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}
.person-picker-bulk button{min-height:44px}.person-picker-count{margin-left:auto;color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}
.person-list{display:flex;flex-direction:column;max-height:280px;overflow-y:auto;padding:6px}
.person-option{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:6px 8px;border-radius:9px}
.person-option:hover{background:var(--panel2)}
.person-member{display:flex;align-items:center;gap:9px;min-width:0;flex:1;cursor:pointer}
.person-member input,.person-primary input{width:18px;height:18px;accent-color:var(--brand);flex:none}
.person-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:750;flex:none}
.person-copy{display:flex;flex-direction:column;min-width:0}.person-copy strong{font-size:13px}.person-copy small{font-size:10px;color:var(--muted)}
.person-primary{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:44px;padding:0 4px;color:var(--muted);font-size:11px;cursor:pointer;white-space:nowrap}
.person-primary:has(input:checked){color:var(--brand);font-weight:700}
.picker-actions{display:flex;justify-content:flex-end}.picker-actions .primary{min-height:40px}
@media (max-width:560px){.person-picker-bulk button{flex:1 1 150px}.person-picker-count{width:100%;margin-left:0;text-align:right}}
.primary-tag{display:inline-flex;align-items:center;min-height:26px;padding:3px 8px;margin-right:5px;border-radius:999px;background:#fff5db;color:#8a5200;border:1px solid #f6d58a;font-size:11px;font-weight:700;white-space:nowrap}
.internal-link-row a{display:block;color:var(--brand);font-size:12px;overflow-wrap:anywhere;text-decoration:none}.internal-link-row a:hover{text-decoration:underline}
.link-button{text-decoration:none;border:1px solid transparent}.aitable-link{color:#0f7b5b;background:#eafaf4}
.audit-timeline{display:flex;flex-direction:column;gap:0}.audit-item{position:relative;display:flex;gap:10px;padding:8px 0 8px 4px;font-size:12px;line-height:1.5}
.audit-item:not(:last-child)::after{content:'';position:absolute;left:8px;top:24px;bottom:-2px;width:1px;background:var(--line)}
.audit-dot{position:relative;z-index:1;width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);flex:none}
.audit-item small{display:block;color:var(--muted);font-size:10px}.empty.compact{padding:18px 8px}.empty.compact::before{display:none}
.comment{
  display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);
}
.comment:last-child{border-bottom:none}
.comment .c-avatar{
  width:30px;height:30px;border-radius:50%;background:var(--brand-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;
}
.avatar img,.member-avatar img,.person-avatar img,.comment .c-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block}
.comment .c-body{flex:1;font-size:13px;line-height:1.5}
.comment-text{white-space:pre-wrap;overflow-wrap:anywhere}
.comment-source{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:4px 8px;border-radius:7px;background:var(--brand-soft);color:var(--muted);font-size:11px}
.comment-source a{color:var(--brand);font-weight:700;text-decoration:none;overflow-wrap:anywhere}.comment-source a:hover{text-decoration:underline}
.comment .c-meta{font-size:11px;color:var(--muted);margin-top:2px}
.comment-form{display:flex;gap:8px;margin-top:14px}
.comment-form input{flex:1}
.comment-composer{display:grid;gap:8px}.comment-source-panel{display:grid;grid-template-columns:1fr 1.35fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.comment-source-panel label{display:grid;gap:5px;color:var(--muted);font-size:11px}.comment-source-panel input{width:100%}

/* ========== 弹窗 ========== */
.modal{position:fixed;inset:0;z-index:50;background:rgba(10,15,25,.45);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:16px}
.modal-card{
  background:var(--panel);border-radius:14px;box-shadow:var(--shadow-lg);
  width:min(520px,100%);max-height:90vh;overflow-y:auto;padding:20px 22px;animation:fade .18s ease;
}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.modal-title{font-size:16px;font-weight:700}

/* ========== 表单 ========== */
.form{display:flex;flex-direction:column;gap:14px}
.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.form label>input,.form label>select,.form label>textarea{color:var(--text)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ========== 富文本编辑器 ========== */
.rte{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--panel);transition:border-color .15s,box-shadow .15s}
.rte:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.rte-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--panel2)}
.rte-btn{min-width:28px;height:28px;padding:0 8px;border-radius:6px;font-size:12px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.rte-btn:hover{background:var(--brand-soft);color:var(--brand)}
.rte-sep{width:1px;height:18px;background:var(--line);margin:0 2px;align-self:center}
.rte-content{min-height:80px;max-height:260px;overflow-y:auto;padding:10px 12px;font-size:14px;line-height:1.7;outline:none;word-break:break-word}
.rte-content:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}
.rte-content a{color:var(--brand)}
.rte-content img{max-width:100%;border-radius:6px}
.desc-html{line-height:1.7;font-size:14px;word-break:break-word}
.desc-html a{color:var(--brand)}
.desc-html img{max-width:100%;border-radius:6px}
.desc-html ul,.desc-html ol{padding-left:20px;margin:6px 0}

/* ========== 管理页 ========== */
.admin-list{display:flex;flex-direction:column;gap:8px}
.admin-item{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);
}
.admin-item .info{display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-item .name{font-weight:600;font-size:13px}
.admin-item .sub{font-size:11px;color:var(--muted)}
.owner-picker-host{min-width:220px}
.owner-picker{position:relative;width:260px;min-width:220px;color:var(--text);font-size:12px}
.owner-picker>summary{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);cursor:pointer;list-style:none;transition:border-color .15s,box-shadow .15s}
.owner-picker>summary::-webkit-details-marker{display:none}.owner-picker>summary::marker{content:''}
.owner-picker>summary:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line))}.owner-picker[open]>summary{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.owner-picker>summary>.ico{width:16px;height:16px;color:var(--muted);transition:transform .15s}.owner-picker[open]>summary>.ico{transform:rotate(180deg)}
.owner-picker-placeholder{color:var(--muted)}.owner-picker-tags{display:flex;min-width:0;align-items:center;gap:4px;overflow:hidden}.owner-picker-tag,.owner-picker-more{display:inline-flex;max-width:105px;min-height:24px;align-items:center;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.owner-picker-more{flex:none;background:var(--panel2);color:var(--muted)}
.owner-picker-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:max(100%,290px);padding:8px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:var(--shadow-lg)}
.owner-picker-search{width:100%;min-height:40px;margin-bottom:6px;font-size:13px}.owner-picker-options{display:flex;max-height:260px;flex-direction:column;gap:2px;overflow-y:auto;overscroll-behavior:contain}.owner-picker-option{display:grid;min-height:46px;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px;padding:6px 8px;border-radius:8px;cursor:pointer}.owner-picker-option:hover{background:var(--panel2)}.owner-picker-option.is-disabled{cursor:not-allowed;opacity:.58}.owner-picker-option>input[type="checkbox"]{width:18px;min-width:18px;height:18px;min-height:18px;padding:0;accent-color:var(--brand)}.owner-picker-option>span{display:flex;min-width:0;flex-direction:column}.owner-picker-option strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.owner-picker-option small{color:var(--muted);font-size:10px;line-height:1.35}.owner-picker-empty{padding:22px 10px;color:var(--muted);text-align:center}.owner-picker-footer{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;padding:5px 3px 0;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.owner-picker-footer button:disabled{cursor:not-allowed;opacity:.5}
@media (max-width:700px){
  .project-admin-head{align-items:stretch;flex-direction:column}.project-create-row{width:100%;flex-wrap:wrap}#newProjName,#newProjOwners,#addProjBtn{flex:1 1 100%;width:100%;max-width:100%}#addProjBtn{min-height:44px;justify-content:center}
  #projAdmin .admin-item{align-items:stretch;flex-wrap:wrap}#projAdmin .admin-item .info,#projAdmin .admin-item .owner-picker{flex:1 1 100%;width:100%;max-width:none}#projAdmin .admin-item>button{min-height:44px}#projAdmin [data-save-proj-owners]{flex:1;justify-content:center}
  #view-admin .owner-picker{width:100%;max-width:none}.owner-picker-menu{position:fixed;top:auto;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));display:flex;width:auto;max-height:68dvh;min-width:0;flex-direction:column;padding:12px;z-index:80}.owner-picker-options{min-height:0;max-height:none;flex:1}.owner-picker-option{min-height:48px}
}

/* ========== 系统配置面板 ========== */
.cfg-sections{display:flex;flex-direction:column;gap:16px}
.cfg-group{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px}
.cfg-group-title{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:12px}
.cfg-group .form{display:flex;flex-direction:column;gap:12px}
.cfg-group label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}
.cfg-group label input{color:var(--text);font-size:13px}
.cfg-test-result{margin-top:14px;padding:12px 14px;border-radius:var(--r-sm);font-size:13px;line-height:1.7;border:1px solid var(--line)}
.cfg-test-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0}
.cfg-test-item + .cfg-test-item{border-top:1px dashed var(--line)}
.cfg-test-tag{flex:none;padding:1px 8px;border-radius:20px;font-size:11px;font-weight:700;color:#fff}
.cfg-test-tag.ok{background:var(--ok)}
.cfg-test-tag.fail{background:var(--danger)}
.cfg-test-tag.run{background:var(--muted)}
.cfg-test-body{flex:1;word-break:break-all}

/* ========== 催办列表 ========== */
.urge-list{display:flex;flex-direction:column;gap:8px}
.urge-item{
  display:flex;justify-content:space-between;gap:10px;font-size:12px;
  padding:8px 10px;background:var(--panel2);border-radius:var(--r-sm);border:1px solid var(--line);
}

/* ========== 登录 ========== */
.login-mask{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 18% 15%,rgba(91,139,255,.22),transparent 27rem),radial-gradient(circle at 86% 86%,rgba(56,189,248,.14),transparent 24rem),linear-gradient(145deg,#eef4ff,#f8faff 55%,#edf3fb);padding:16px;
}
.login-card{
  background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.9);border-radius:20px;box-shadow:0 28px 80px rgba(39,64,112,.17);
  width:min(410px,100%);padding:38px 38px 28px;display:flex;flex-direction:column;gap:14px;backdrop-filter:blur(18px);
}

@media (max-width:600px){
  .comment-form{display:grid;grid-template-columns:auto minmax(0,1fr)}.comment-form>button{width:100%}.comment-source-panel,.manual-subtask-panel .grid2,.assignment-review-form{grid-template-columns:1fr}.section-title-row{align-items:flex-start}.section-title-row .ghost{flex:none}
  .topbar{padding:11px 13px}.crumb{font-size:16px}.avatar{width:32px;height:32px}
  .top-right{gap:8px}.top-right .primary.sm{padding:8px 10px}.top-right .primary.sm span{display:none}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:15px}.stat .num{font-size:24px}
  .toolbar{padding:10px;gap:8px}.toolbar .search{flex-basis:100%}.toolbar select{flex:1;min-width:calc(50% - 4px)}
  .toolbar #weeklyReportBtn{width:100%;justify-content:center;min-height:40px}
  .panel{padding:16px}.panel-head{align-items:flex-start;flex-wrap:wrap}
  .task-card{padding:14px 14px 14px 18px}.login-card{padding:30px 24px 24px}
}

/* ===== 全局搜索、任务快捷操作与新建任务手动子任务 ===== */
.task-card-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.task-card-title-button{min-width:0;min-height:36px;padding:0;color:inherit;text-align:left}.task-card-title-button:focus-visible{border-radius:6px;outline:2px solid var(--brand);outline-offset:3px}
.task-quick-actions{display:flex;align-items:center;gap:6px}
.task-quick-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:12px;font-weight:750;white-space:nowrap}
.task-quick-actions .ico{width:14px;height:14px}
.task-quick-subtask{color:var(--brand)}.task-quick-subtask:hover{border-color:color-mix(in srgb,var(--brand) 42%,var(--line));background:var(--brand-soft)}
.task-quick-finish{color:#087a55}.task-quick-finish:hover{border-color:#9ad9bf;background:#edf9f3}
.task-quick-delete{color:var(--danger)}.task-quick-delete:hover{border-color:color-mix(in srgb,var(--danger) 42%,var(--line));background:var(--danger-soft)}
.global-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}
.global-search-form input{min-height:48px;padding-left:44px;background-color:var(--panel2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%2366748b' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:15px center}
.global-search-form button{min-width:96px}.search-meta{min-height:34px;padding:12px 3px 6px;font-size:12px}
.global-search-results{display:flex;flex-direction:column;gap:9px}
.search-result-card{display:block;width:100%;min-height:112px;padding:15px 17px;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);color:var(--text);text-align:left;transition:border-color var(--fast),background-color var(--fast),box-shadow var(--fast)}
.search-result-card.subtask{margin-left:24px;width:calc(100% - 24px);border-left-color:#8b5cf6}
.search-result-card:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:color-mix(in srgb,var(--brand-soft) 26%,var(--panel));box-shadow:0 6px 18px rgba(15,23,42,.08)}
.search-result-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.search-result-card>strong{display:block;font-size:15px;line-height:1.45}
.search-type-chip,.search-status{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:10px;font-weight:800}.subtask .search-type-chip{background:color-mix(in srgb,#8b5cf6 12%,var(--panel));color:#6d3fd1}.search-status{margin-left:auto;background:var(--panel2);color:var(--muted)}.search-status.done{background:#edf9f3;color:#087a55}
.search-path{display:flex;align-items:center;gap:7px;margin-top:7px;color:var(--muted);font-size:11px}.search-path i{font-style:normal;color:var(--brand)}.search-result-card p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.55}
.search-empty{display:flex;flex-direction:column;gap:6px}.search-empty strong{color:var(--text);font-size:14px}.search-empty span{font-size:12px}
#subtaskPreview.rte-analysis-panel{padding:12px;background:var(--panel2)}
#subtaskPreview .subtask-preview-item{display:block;padding:11px 12px;border-color:var(--line);background:var(--panel)}
#subtaskPreview .subtask-preview-main{display:flex;align-items:center;gap:8px}
.subtask-source-chip{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:10px;font-weight:800;white-space:nowrap}
.subtask-preview-item.ai .subtask-source-chip{background:color-mix(in srgb,#8b5cf6 12%,var(--panel));color:#6d3fd1}
.subtask-preview-field{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px;margin:0;color:var(--muted);font-size:10px}.subtask-preview-field.full{margin:9px 0 0 60px}.subtask-preview-field input,.subtask-preview-field textarea{width:100%;background:var(--panel2);color:var(--text);font-size:13px}.subtask-preview-field input{min-height:40px}.subtask-preview-field textarea{min-height:68px;resize:vertical}.subtask-preview-remove{flex:none;color:var(--danger)!important}.subtask-preview-note{margin:7px 0 0 60px;font-size:11px}
.subtask-card.search-target{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft);animation:search-target-pulse .55s ease 2}
@keyframes search-target-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--brand) 16%,transparent)}}
[data-theme="dark"] .task-quick-finish:hover,[data-theme="dark"] .search-status.done{border-color:#286b52;background:#15382c;color:#8be0ba}
[data-theme="dark"] .subtask .search-type-chip,[data-theme="dark"] .subtask-preview-item.ai .subtask-source-chip{color:#c4b5fd}

@media (max-width:600px){
  .task-card .title-line{align-items:stretch}.task-card-tools{align-items:flex-start;justify-content:space-between}.task-quick-actions{width:100%}.task-quick-actions button{min-height:44px;flex:1}
  .global-search-form{grid-template-columns:1fr}.global-search-form button{min-height:44px}.search-result-card.subtask{width:100%;margin-left:0}.search-result-card{min-height:104px;padding:14px}
  #subtaskPreview .subtask-preview-main{align-items:flex-start;flex-wrap:wrap}.subtask-preview-field{flex-basis:calc(100% - 88px)}.subtask-preview-remove{margin-left:auto}.subtask-preview-field.full,.subtask-preview-note{margin-left:0}.subtask-preview-field input,.subtask-preview-field textarea{font-size:16px}
}

@media (prefers-reduced-motion:reduce){.subtask-card.search-target{animation:none}}

/* 最终审查：部门激活率与挑战参与范围 */
.department-activation{grid-column:1/-1;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:var(--shadow)}
.department-activation-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.department-activation-head small{color:var(--muted)}
.department-rate-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.department-rate{display:grid;grid-template-columns:minmax(80px,140px) minmax(80px,1fr) 44px 36px;gap:8px;align-items:center;min-height:32px;font-size:11px}.department-rate>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.department-rate>small{color:var(--muted);text-align:right}.department-rate-track{height:7px;overflow:hidden;border-radius:99px;background:var(--line)}.department-rate-track i{display:block;height:100%;border-radius:inherit;background:var(--brand)}
.challenge-admin-item{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,.8fr);gap:14px;align-items:start}.challenge-scope{display:block;margin-top:5px;color:var(--brand2);font-size:11px}.challenge-completion{display:flex;flex-direction:column;align-items:stretch;gap:7px}.challenge-completion>label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11px}.challenge-completion select{width:100%;min-height:92px}.challenge-completion button{min-height:44px;justify-content:center}
@media (max-width:760px){.department-rate-list{grid-template-columns:1fr}.challenge-admin-item{grid-template-columns:1fr}}
@media (max-width:600px){.department-activation{padding:12px}.department-rate{grid-template-columns:minmax(72px,1fr) minmax(72px,1.2fr) 40px}.department-rate>small{display:none}}

/* ===== 今日工作台 / 模板 / 积分中心 ===== */
.page-intro,.workspace-hero,.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}
.page-intro h1,.workspace-hero h1{margin:2px 0 6px;font-size:clamp(22px,3vw,30px);line-height:1.2;letter-spacing:-.02em}
.section-head h2{margin:0 0 4px;font-size:18px}
.eyebrow{margin:0;color:var(--brand);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.today-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.today-metric{display:flex;align-items:center;gap:12px;min-height:92px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}
.today-metric .metric-num{font-size:28px;font-weight:800;line-height:1;color:var(--text)}
.today-metric .metric-copy{display:flex;flex-direction:column;gap:2px}.today-metric .metric-copy strong{font-size:13px}.today-metric .metric-copy span{color:var(--muted);font-size:12px}
.today-metric.danger{border-color:color-mix(in srgb,var(--danger) 36%,var(--line));background:color-mix(in srgb,var(--danger) 6%,var(--panel))}
.today-metric.warn{border-color:#f1c77a;background:color-mix(in srgb,#f59e0b 7%,var(--panel))}
.today-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
.today-group{min-width:0;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}
.today-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.today-group-head h2{margin:0;font-size:15px}.today-group-head span{color:var(--muted);font-size:12px}
.state-box{grid-column:1/-1;padding:28px 18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:color-mix(in srgb,var(--panel) 86%,var(--bg));text-align:center}
.state-box.compact{padding:16px}.state-box.error{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger)}
.scope-notice{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;margin-bottom:14px;border:1px solid color-mix(in srgb,var(--brand) 36%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--brand) 7%,var(--panel));color:var(--text)}.scope-notice .ico{flex:0 0 auto;margin-top:1px;color:var(--brand)}.scope-notice div{display:grid;gap:3px}.scope-notice strong{font-size:13px}.scope-notice span{font-size:12px;color:var(--muted);line-height:1.5}.scope-chip{display:inline-flex;align-items:center;padding:2px 7px;margin-left:5px;border-radius:999px;background:color-mix(in srgb,var(--brand) 10%,var(--panel));color:var(--brand);font-size:10px;font-weight:700;vertical-align:middle}
.inline-feedback{padding:12px 14px;margin-bottom:14px;border:1px solid color-mix(in srgb,var(--danger) 42%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--danger) 7%,var(--panel));color:var(--danger);font-size:13px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.template-grid,.prize-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.template-card,.prize-card{display:flex;min-width:0;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}
.template-card h2,.prize-card h2{margin:0;font-size:16px}.template-meta,.prize-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px}.template-card .desc,.prize-card .desc{min-height:40px;color:var(--muted);font-size:13px;line-height:1.55}
.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.card-actions>*{min-height:40px}
.cycle-chip,.workflow-chip,.status-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}
.workflow-chip.pending_review,.status-chip.pending{border-color:#f2c66d;background:#fff7df;color:#8a5a00}.workflow-chip.rejected,.status-chip.rejected{border-color:#f5b8b8;background:#fff0f0;color:#b42318}.workflow-chip.approved,.status-chip.approved,.status-chip.verified,.status-chip.redeemed{border-color:#a7dfc2;background:#ecfdf3;color:#067647}.status-chip.partially_redeemed{border-color:#a8c7ef;background:#eef6ff;color:#175cd3}
[data-theme="dark"] .workflow-chip.pending_review,[data-theme="dark"] .status-chip.pending{background:#42310c;color:#fbd38d}[data-theme="dark"] .workflow-chip.rejected,[data-theme="dark"] .status-chip.rejected{background:#421c1c;color:#fca5a5}[data-theme="dark"] .workflow-chip.approved,[data-theme="dark"] .status-chip.approved,[data-theme="dark"] .status-chip.verified,[data-theme="dark"] .status-chip.redeemed{background:#123524;color:#86efac}
.review-panel{padding:14px;border:1px solid #f1c77a;border-radius:12px;background:color-mix(in srgb,#f59e0b 7%,var(--panel))}.review-panel textarea{width:100%;margin:10px 0}.review-actions{display:flex;flex-wrap:wrap;gap:8px}
.reward-account{display:grid;grid-template-columns:1.4fr repeat(2,1fr);gap:12px;margin-bottom:24px}.balance-card,.reward-stat{padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--panel);box-shadow:var(--shadow)}
.balance-card{background:linear-gradient(135deg,var(--brand2),#4f46e5);color:#fff}.balance-card .muted{color:rgba(255,255,255,.78)}.balance-value{margin:8px 0 4px;font-size:38px;font-weight:850;line-height:1}.balance-unit{font-size:13px;font-weight:650}
.reward-stat strong{display:block;margin-top:8px;font-size:25px}.prize-cost{font-size:22px;font-weight:800;color:var(--brand)}.prize-stock{font-size:12px;color:var(--muted)}
.reward-columns,.reward-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.ledger-list,.redemption-list,.admin-data-list{display:flex;flex-direction:column;gap:8px}.ledger-item,.redemption-item,.admin-data-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.ledger-copy,.redemption-copy,.admin-data-copy{min-width:0}.ledger-copy strong,.redemption-copy strong,.admin-data-copy strong{display:block;font-size:13px}.ledger-copy small,.redemption-copy small,.admin-data-copy small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.points-plus{color:#067647;font-weight:800}.points-minus{color:var(--danger);font-weight:800}
.admin-tabs{display:flex;gap:6px;margin-bottom:18px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--panel);width:max-content;max-width:100%}.admin-tab{min-height:40px;padding:8px 14px;border-radius:8px;color:var(--muted);font-weight:700}.admin-tab.active{background:var(--brand);color:#fff}
.inline-editor{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;align-items:end;padding:12px;margin-bottom:10px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}.inline-editor label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:11px}.inline-editor input,.inline-editor select{width:100%;min-width:0}
.adjustment-form{display:grid;grid-template-columns:1fr .7fr 1.5fr auto;gap:10px;align-items:end}.adjustment-form label{display:flex;min-width:0;flex-direction:column;gap:6px;color:var(--muted);font-size:12px}.adjustment-form input,.adjustment-form select{width:100%;min-width:0}.adjustment-form button{min-height:44px}
.task-card[role="button"]:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.task-card .title-line{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.task-card .title-line .title{min-width:0}
.stage-track{display:flex;align-items:flex-start;margin-top:12px;overflow:hidden}.stage-node{display:flex;min-width:42px;flex-direction:column;align-items:center;gap:4px;color:var(--muted);font-size:10px;white-space:nowrap}.stage-dot{width:9px;height:9px;border:2px solid var(--line);border-radius:50%;background:var(--panel)}.stage-node.on,.stage-node.cur{color:var(--brand);font-weight:700}.stage-node.on .stage-dot,.stage-node.cur .stage-dot{border-color:var(--brand);background:var(--brand)}.stage-node.done .stage-dot{border-color:#12b76a;background:#12b76a}.stage-line{height:2px;min-width:10px;flex:1;margin-top:4px;background:var(--line)}.stage-line.on{background:var(--brand)}
.template-card button,.prize-card button,.today-group button,.admin-tab,.review-actions button,.inline-editor button{min-height:44px}

@media (max-width:1100px){.template-grid,.prize-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.today-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.page-intro,.workspace-hero,.section-head{align-items:stretch;flex-direction:column}.today-groups,.reward-columns,.reward-admin-grid{grid-template-columns:1fr}.reward-account{grid-template-columns:1fr 1fr}.balance-card{grid-column:1/-1}.grid3{grid-template-columns:1fr}.inline-editor{grid-template-columns:1fr 1fr}.inline-editor .primary{grid-column:1/-1}.adjustment-form{grid-template-columns:1fr 1fr}.adjustment-form label:nth-child(3){grid-column:1/-1}}
@media (max-width:520px){.today-summary,.template-grid,.prize-grid,.reward-account{grid-template-columns:1fr}.balance-card{grid-column:auto}.today-metric{min-height:78px}.admin-tabs{width:100%}.admin-tab{flex:1}.card-actions>*{flex:1;justify-content:center}.inline-editor,.adjustment-form{grid-template-columns:1fr}.adjustment-form label:nth-child(3){grid-column:auto}}
@media (max-width:420px){.stage-node{min-width:34px;font-size:9px}.task-card .title-line{flex-direction:column}.task-card .workflow-chip{align-self:flex-start}}

/* ========== UI UX Pro Max · 2026 全站视觉系统 ========== */
:root{
  --bg:#f6f8fc;--panel:#ffffff;--panel2:#f8fafc;--text:#0f172a;--muted:#526077;
  --line:#dfe5ee;--brand:#2563eb;--brand2:#1d4ed8;--brand-soft:#eaf1ff;
  --accent:#16a34a;--ok:#15803d;--warn:#b45309;--danger:#dc2626;
  --shadow:0 1px 2px rgba(15,23,42,.04);--shadow-lg:0 18px 48px rgba(15,23,42,.16);
  --r:14px;--r-sm:10px;--sidebar:248px;
  --ease:cubic-bezier(.2,.8,.2,1);--fast:160ms;--normal:220ms;
}
[data-theme="dark"]{
  --bg:#0b1120;--panel:#121a2b;--panel2:#182235;--text:#f1f5f9;--muted:#a8b3c7;
  --line:#2a3850;--brand:#60a5fa;--brand2:#93c5fd;--brand-soft:#1b3154;
  --accent:#4ade80;--ok:#4ade80;--warn:#fbbf24;--danger:#f87171;
  --shadow:0 1px 2px rgba(0,0,0,.25);--shadow-lg:0 24px 60px rgba(0,0,0,.45);
}
html{scroll-padding-top:76px}
body{font-size:15px;line-height:1.6;background:var(--bg);background-image:none;overflow-wrap:anywhere}
button,input,select,textarea{touch-action:manipulation}
button{transition:color var(--fast) var(--ease),background-color var(--fast) var(--ease),border-color var(--fast) var(--ease),opacity var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}
input,select,textarea{min-height:42px;border-color:var(--line);border-radius:10px;background:var(--panel);transition:border-color var(--fast),box-shadow var(--fast),background-color var(--fast)}
input:hover,select:hover,textarea:hover{border-color:#b8c3d3}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}
.main:focus{outline:none}
.skip-link{position:fixed;left:16px;top:12px;z-index:10000;padding:10px 14px;border-radius:8px;background:var(--text);color:var(--panel);font-weight:700;transform:translateY(-160%);transition:transform var(--fast)}
.skip-link:focus{transform:none}

.sidebar{background:#0f172a;border-right:1px solid rgba(255,255,255,.06);padding:20px 16px}
.logo{gap:12px;padding:2px 8px 22px}
.logo-mark,.login-logo,.avatar,.member-avatar{background:var(--brand);box-shadow:none}
.logo-mark{width:40px;height:40px;border-radius:11px}
.logo-title{font-size:16px;letter-spacing:.01em}.logo-sub{color:#94a3b8}
.nav{gap:6px}.nav-item{min-height:44px;padding:10px 12px;border-radius:10px;color:#b9c4d6}
.nav-item:hover{background:#1e293b;color:#fff}
.nav-item.active{background:#1e40af;color:#fff;box-shadow:none;font-weight:650}
.nav-item.active::after{content:'';width:6px;height:6px;margin-left:auto;border-radius:50%;background:#93c5fd}
.side-foot{gap:6px}.side-foot .ghost{min-height:40px;justify-content:center}
.topbar{min-height:68px;padding:12px clamp(20px,3vw,40px);background:color-mix(in srgb,var(--panel) 94%,transparent);border-color:var(--line);backdrop-filter:blur(16px)}
.crumb{font-size:20px;font-weight:750}.top-right{gap:10px}.avatar{width:38px;height:38px}
.view{max-width:1520px;padding:24px clamp(20px,3vw,40px) 56px;animation:ui-enter var(--normal) var(--ease)}
@keyframes ui-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.primary{min-height:40px;border:1px solid transparent;border-radius:10px;background:var(--brand);box-shadow:none}
.primary:hover{background:var(--brand2);box-shadow:0 4px 12px color-mix(in srgb,var(--brand) 24%,transparent)}
.primary:active{background:color-mix(in srgb,var(--brand2) 86%,#000)}
.ghost{min-height:36px;border:1px solid transparent}.ghost:hover{border-color:var(--line);background:var(--panel2)}
.link:hover,.danger:hover{box-shadow:inset 0 0 0 1px currentColor}

.panel,.card,.stat,.progress-overview,.task-card{border-color:var(--line);box-shadow:var(--shadow)}
.panel{padding:20px 22px;margin-bottom:16px}.panel-head{margin-bottom:16px}.panel-head h3{font-size:15px;font-weight:750}
.stat-grid{grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;margin-bottom:16px}
.stat{min-height:112px;padding:18px 20px;border-radius:14px;transition:border-color var(--fast),background-color var(--fast)}
.stat::after{right:-18px;top:-20px;width:84px;height:84px;opacity:.055}
.stat:hover{transform:none;border-color:color-mix(in srgb,currentColor 35%,var(--line));box-shadow:var(--shadow)}
.stat .num{font-size:30px;font-variant-numeric:tabular-nums}.stat .lbl{font-size:13px;margin-top:7px}
.progress-overview{padding:22px 24px}.donut-num,.pp-num,.progress-txt{font-variant-numeric:tabular-nums}

.toolbar{gap:8px;padding:10px;margin-bottom:14px;background:var(--panel);border-color:var(--line);box-shadow:var(--shadow);backdrop-filter:none}
.toolbar input,.toolbar select{min-height:42px}.toolbar .search{min-width:260px}
.task-list{gap:8px}.task-card{padding:16px 18px 16px 22px;border-radius:12px;transition:border-color var(--fast),background-color var(--fast),box-shadow var(--fast)}
.task-card::before{top:14px;bottom:14px;width:4px;opacity:1}
.task-card:hover{transform:none;border-color:#a8b8cf;background:color-mix(in srgb,var(--brand-soft) 24%,var(--panel));box-shadow:0 4px 14px rgba(15,23,42,.07)}
.task-card .title{font-size:15px;font-weight:700}.task-card .meta{gap:12px;margin-top:8px}.task-card .desc{line-height:1.65}
.badge,.assignee-tag{padding:3px 9px;font-weight:650;white-space:nowrap}
.empty{padding:56px 16px}.empty::before{width:44px;height:44px}

.board{grid-template-columns:repeat(3,minmax(260px,1fr));gap:12px}
.board-col{padding:12px;border-radius:14px;background:var(--panel2)}
.board-col h4{min-height:38px;align-items:center;color:var(--text)}
.board-col .task-card{background:var(--panel)}

.member-list,.admin-list,.cfg-sections{gap:10px}
.member-item,.admin-item,.cfg-group,.urge-item,.subtask-card,.completion-item{border-radius:11px;background:var(--panel);border-color:var(--line)}
.member-item{min-height:68px;padding:12px 14px}.member-item:hover{border-color:#b7c4d6;background:var(--panel2)}
.member-item.member-active{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:var(--brand-soft)}
.member-avatar{width:40px;height:40px}.member-item .sub{font-size:12px}
.cfg-group{padding:16px}.cfg-group-title{font-size:13px;color:var(--text)}

.drawer-mask,.modal{background:rgba(2,6,23,.56);backdrop-filter:blur(4px)}
.drawer-body{width:min(560px,96vw);border-left:1px solid var(--line);box-shadow:var(--shadow-lg)}
.drawer-head{min-height:68px;padding:14px 22px}.drawer-title,.modal-title{font-size:18px;font-weight:750}
.drawer-content{padding:22px}.d-section{margin-bottom:24px}
.modal-card{width:min(620px,100%);max-height:92dvh;padding:24px 26px;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg)}
.modal-head{margin-bottom:20px}.form{gap:16px}.form label{font-size:13px;font-weight:600;color:var(--text)}
.rte{border-radius:12px}.rte-toolbar{gap:5px;padding:8px}.rte-btn{min-width:32px;height:32px}.rte-content{min-height:112px;padding:14px;line-height:1.75}
.rte-status{padding:7px 12px}.ai-progress{padding:10px 14px}

.login-mask{background:linear-gradient(145deg,#edf3ff,#f8fafc 52%,#eef2f7)}
.login-card{width:min(430px,100%);padding:40px;border:1px solid #dfe5ee;border-radius:20px;box-shadow:0 24px 60px rgba(15,23,42,.14);backdrop-filter:none}
.login-logo{width:56px;height:56px}.login-title{font-size:22px}.login-field input{min-height:48px;background:#f8fafc}
.login-primary{min-height:48px;border-radius:10px;background:var(--brand)}
.login-primary:hover{background:var(--brand2)}
[data-theme="dark"] .login-mask{background:#0b1120}
[data-theme="dark"] .login-card{background:var(--panel);border-color:var(--line)}
[data-theme="dark"] input:hover,[data-theme="dark"] select:hover,[data-theme="dark"] textarea:hover{border-color:#49617f}
[data-theme="dark"] .task-card:hover{border-color:#49617f;box-shadow:none}

.toast{bottom:max(28px,env(safe-area-inset-bottom));padding:11px 18px;border-radius:10px}
@media (prefers-reduced-motion:reduce){.view{animation:none}.skip-link{transition:none}}

@media (max-width:1100px){
  .stat-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}
  .board{grid-template-columns:repeat(2,minmax(260px,1fr))}
}
@media (max-width:860px){
  .sidebar{width:min(82vw,304px);padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}
  .topbar{min-height:62px}.view{padding:18px 16px calc(72px + env(safe-area-inset-bottom))}
  .drawer-content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
}
@media (max-width:600px){
  body{font-size:16px;overscroll-behavior:contain}
  input,select,textarea{min-height:44px;font-size:16px}
  .topbar{padding:10px 12px}.crumb{font-size:18px}.hamb{min-width:44px;min-height:44px}
  .top-right .primary.sm{min-width:44px;min-height:44px}.avatar{width:40px;height:40px}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{min-height:104px;padding:15px}.stat .num{font-size:26px}
  .stat-grid .stat:last-child:nth-child(odd){grid-column:1/-1}
  .toolbar{gap:8px}.toolbar .search{min-width:100%;flex-basis:100%}.toolbar select{min-width:calc(50% - 4px)}
  .task-card{padding:15px 14px 15px 19px}.task-card .title{font-size:15px}
  .board{grid-template-columns:1fr}.panel{padding:16px;margin-bottom:12px}.progress-overview{padding:18px}
  .member-item{align-items:flex-start}.member-side{width:100%;padding-left:52px;align-items:flex-start}
  .modal{align-items:flex-end;padding:0}.modal-card{width:100%;max-height:94dvh;border-radius:20px 20px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom));animation:sheet-in var(--normal) var(--ease)}
  @keyframes sheet-in{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
  .rte-btn{min-width:38px;height:38px}.rte-toolbar{gap:6px}
  .login-card{padding:30px 22px}.login-title{font-size:20px}
  .side-foot .ghost,.nav-item{min-height:48px}
}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.login-logo{
  width:54px;height:54px;border-radius:14px;flex:none;
  background:linear-gradient(135deg,#3b82f6,#60a5fa);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;
  box-shadow:0 6px 16px rgba(64,158,255,.3);
}
.login-brand-txt{display:flex;flex-direction:column;gap:3px}
.login-title{font-size:20px;font-weight:700;color:var(--text)}
.login-sub{font-size:12px;color:var(--muted)}
.login-msg{min-height:18px;font-size:12px;color:var(--danger);text-align:center}
.login-field{position:relative;display:flex;align-items:center}
.login-field-icon{
  position:absolute;left:13px;color:var(--muted);display:flex;align-items:center;
  width:16px;height:16px;pointer-events:none;
}
.login-field-icon svg{width:16px;height:16px}
.login-field input{
  width:100%;padding:11px 12px 11px 40px;border-radius:var(--r-sm);
  border:1px solid var(--line);background:var(--panel2);font-size:14px;
}
.login-field input:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px var(--brand-soft)}
.login-primary{
  width:100%;padding:12px;border-radius:var(--r-sm);border:0;cursor:pointer;
  background:var(--brand);color:#fff;font-size:15px;font-weight:600;letter-spacing:2px;
  transition:background .15s;
}
.login-primary:hover{background:var(--brand2)}
.login-primary:disabled{opacity:.6;cursor:not-allowed}
.login-agree{text-align:center;font-size:12px;color:var(--muted)}
.login-divider{display:flex;align-items:center;gap:12px;margin:4px 0;color:var(--muted);font-size:12px}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:var(--line)}
.login-third{display:flex;justify-content:center}
.ding-qr-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 22px;border-radius:24px;border:1px solid var(--line);cursor:pointer;
  background:var(--panel);color:var(--text);font-size:14px;font-weight:600;
  transition:all .15s;
}
.ding-qr-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.ding-qr-btn svg{width:18px;height:18px;flex:none}
.login-footer{
  margin-top:8px;padding-top:14px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;gap:4px;
  font-size:11px;color:var(--muted);
}

/* ========== Toast ========== */
.toast{
  position:fixed;left:50%;bottom:40px;transform:translateX(-50%);
  background:#111827;color:#fff;padding:10px 18px;border-radius:10px;
  font-size:13px;z-index:200;box-shadow:var(--shadow-lg);max-width:86vw;text-align:center;
}
[data-theme="dark"] .toast{background:#e6ebf5;color:#111827}

/* ========== 子任务进度 / 附件 ========== */
.progress-row{display:flex;align-items:center;gap:10px;margin:6px 0}
.progress{flex:1;height:6px;background:var(--panel2);border:1px solid var(--line);border-radius:99px;overflow:hidden}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));border-radius:99px;transition:width .3s ease}
.progress-txt{font-size:11px;color:var(--muted);white-space:nowrap;min-width:44px;text-align:right}
.subtask-item{
  display:flex;align-items:center;gap:8px;padding:8px 10px;margin-top:6px;
  background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:13px;cursor:pointer;transition:background .15s;
}
.subtask-item:hover{background:var(--brand-soft)}
.subtask-item.done span{text-decoration:line-through;color:var(--muted)}
.subtask-item input{width:16px;height:16px;accent-color:var(--brand);cursor:pointer;flex:none}
.attach-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;margin-top:6px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px}
.attach-item a,.attach-item button.link{color:var(--brand);text-decoration:none;word-break:break-all;text-align:left}
.attach-item a:hover,.attach-item button.link:hover{text-decoration:underline}
.attach-upload{display:flex;align-items:center;gap:8px;margin-top:10px}
.attach-upload input[type="file"]{flex:1;font-size:12px;padding:6px}
.ai-split-row{display:flex;align-items:center;gap:10px;margin:2px 0 4px}
.ai-split-row .ghost{border:1px dashed var(--brand);color:var(--brand);padding:6px 12px}
#subtaskPreview{margin-top:4px}
.subtask-preview-item{
  display:flex;align-items:center;gap:8px;padding:6px 10px;margin-top:6px;
  background:var(--brand-soft);border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px;
}
.subtask-preview-idx{
  flex:none;width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;
}
.subtask-preview-title{flex:1;word-break:break-all}
.subtask-preview-item .ghost{flex:none;padding:2px 6px;color:var(--muted)}
.subtask-preview-item .ghost:hover{color:var(--danger)}

/* ========== 移动端 ========== */
@media (max-width:860px){
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;z-index:60;transform:translateX(-100%);
    transition:transform .22s ease;box-shadow:var(--shadow-lg);
  }
  body.side-open .sidebar{transform:none}
  body.side-open::after{
    content:'';position:fixed;inset:0;z-index:55;background:rgba(10,15,25,.4);
  }
  .hamb{display:block}
  .view{padding:16px 14px 80px}
  .topbar{padding:12px 14px}
  .grid2{grid-template-columns:1fr}
  .drawer-body{width:100vw}
  .member-side{align-items:flex-start}
  .member-item{flex-wrap:wrap}
}

/* ========== 负责人特殊颜色标记 ========== */
.assignee-tag{
  display:inline-flex;align-items:center;gap:3px;
  padding:1px 8px;border-radius:20px;font-size:11px;font-weight:600;
  background:var(--brand-soft);color:var(--brand2);
}

/* ========== 成员管理页 ========== */
.member-list{display:flex;flex-direction:column;gap:8px}
.member-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);
  transition:all .15s;
}
.member-item.member-active{border-color:var(--brand);background:var(--brand-soft)}
.member-avatar{
  width:38px;height:38px;border-radius:50%;flex:none;
  background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;
}
.member-item .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.member-item .name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.member-item .sub{font-size:11px;color:var(--muted);word-break:break-all}
.member-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.member-task-count{font-size:11px;color:var(--muted);white-space:nowrap}
.member-task-count.on{color:var(--brand);font-weight:700}

/* ========== 子任务卡片 ========== */
.subtask-card{
  margin-top:8px;padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);
}
.subtask-card.done{opacity:.68}
.subtask-card.done .sub-title{text-decoration:line-through;color:var(--muted)}
.subtask-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sub-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;flex:1;min-width:0}
.sub-check input{width:16px;height:16px;accent-color:var(--brand);flex:none;cursor:pointer}
.sub-title{font-weight:600;word-break:break-word}
.sub-assignee{flex:none}
.sub-desc{margin-top:8px;font-size:12px;color:var(--muted);line-height:1.6}
.sub-desc pre{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px;overflow-x:auto;font-size:12px}
.sub-result{margin-top:8px;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:6px}
.sub-result-head{font-size:11px;color:var(--ok);font-weight:600;margin-bottom:4px}
.sub-result-body{font-size:12px;line-height:1.6;word-break:break-word;white-space:pre-wrap}
.sub-atts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sub-atts a,.sub-atts button.link{font-size:12px;color:var(--brand);text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.sub-atts a:hover,.sub-atts button.link:hover{text-decoration:underline}
.sub-actions{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.sub-assign-panel{margin-top:10px;padding:10px;border:1px solid #c9d9ff;border-radius:10px;background:var(--panel)}
.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.section-title-row .lbl{margin-bottom:0}
.manual-subtask-panel,.sub-assignment-request-panel{display:grid;gap:11px;margin:8px 0 12px;padding:14px;border:1px solid color-mix(in srgb,var(--brand) 32%,var(--line));border-radius:12px;background:var(--panel)}
.manual-subtask-panel label,.sub-assignment-request-panel>label{display:grid;gap:5px;color:var(--muted);font-size:11px}.manual-subtask-panel input,.manual-subtask-panel textarea,.sub-assignment-request-panel select,.sub-assignment-request-panel textarea{width:100%}
.panel-kicker{color:var(--brand2);font-size:12px;font-weight:800;letter-spacing:.02em}
.request-person-picker .person-list{max-height:220px}.request-person-option{cursor:pointer}.request-person-option .person-member{pointer-events:none}
.assignment-request-list{display:grid;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.assignment-request-item{display:grid;gap:5px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.assignment-request-item.pending{border-color:#f2c66d;background:color-mix(in srgb,#f59e0b 5%,var(--panel))}.assignment-request-item.approved{border-color:#a7dfc2}.assignment-request-item.rejected{border-color:#f5b8b8}
.assignment-request-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.assignment-request-item p{margin:0;font-size:12px;line-height:1.55}.review-reason{padding:7px 9px;border-radius:7px;background:var(--panel2);color:var(--text)}
.assignment-review-form{display:grid;grid-template-columns:minmax(170px,1fr) auto auto;gap:7px;margin-top:4px}.assignment-review-form input{min-width:0}
.sub-edit-panel{margin-top:10px;padding:12px;border:1px solid #c9d9ff;border-radius:8px;background:var(--panel)}
.sub-edit-panel>label{display:block;margin:0 0 7px;font-size:12px;color:var(--muted)}
.sub-edit-panel>label input{width:100%;margin-top:5px}
.sub-rte{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.sub-rte-toolbar{display:flex;align-items:center;gap:4px;padding:6px 7px;border-bottom:1px solid var(--line);background:var(--panel2);flex-wrap:wrap}
.sub-rte-toolbar button{height:27px;padding:3px 8px;border-radius:5px;color:var(--muted);font-size:12px}
.sub-rte-toolbar button:hover{background:var(--brand-soft);color:var(--brand)}
.sub-rte-content{min-height:130px;padding:11px 12px;outline:none;font-size:13px;line-height:1.7;color:var(--text)}
.sub-rte-content:focus{box-shadow:inset 0 0 0 2px rgba(59,130,246,.12)}
.sub-rte-content:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}
.sub-rte-content pre{margin:8px 0;padding:9px 10px;border-radius:6px;background:#111827;color:#e5e7eb;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap}
.sub-edit-file-label{margin-top:9px!important}
.sub-edit-file-label input{font-size:12px;padding:6px;background:var(--panel2)}
.sub-edit-actions{display:flex;justify-content:flex-end;margin-top:9px}
.sub-fill{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.sub-fill-input{width:100%;min-height:70px;font-size:13px;line-height:1.6;resize:vertical}
.sub-fill-actions{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.sub-fill-file{flex:1;min-width:120px;font-size:12px;padding:6px}

/* ========== 代码块 & 运行 ========== */
.desc-html pre{
  background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:10px 12px;overflow-x:auto;font-size:12px;line-height:1.6;margin:8px 0;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.desc-html code{font-family:inherit}
.code-block{position:relative;margin:8px 0}
.code-block pre{margin:0;border-top-left-radius:0;border-top-right-radius:0}
.code-toolbar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:4px 8px;background:var(--panel2);border:1px solid var(--line);
  border-bottom:none;border-radius:var(--r-sm) var(--r-sm) 0 0;
}
.code-run-btn{
  padding:3px 10px;border-radius:6px;background:var(--brand);color:#fff;
  font-size:12px;font-weight:600;border:none;cursor:pointer;
}
.code-run-btn:hover{background:var(--brand2)}
.code-run-btn:disabled{opacity:.6;cursor:not-allowed}
.code-net{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);cursor:pointer;user-select:none}
.code-net input{margin:0;cursor:pointer}
.code-output{
  margin-top:6px;padding:8px 10px;background:#0f172a;color:#e2e8f0;border-radius:6px;
  font-size:12px;line-height:1.6;font-family:ui-monospace,Menlo,Consolas,monospace;
  white-space:pre-wrap;word-break:break-word;overflow-x:auto;
}
.code-output.err{color:#fca5a5}

/* ========== 完成记录 ========== */
.completion-item{padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:8px}
.completion-meta{font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:600}
.completion-item .desc-html{font-size:13px;line-height:1.7;word-break:break-word}
.completion-item .desc-html:empty{display:none}

/* ========== 周报弹窗 ========== */
.report-card{width:min(720px,100%)}
.report-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:10px 12px;margin-bottom:12px;background:var(--panel2);
  border:1px solid var(--line);border-radius:var(--r-sm);
}
.report-toolbar .muted{font-size:12px}
.report-body{
  max-height:60vh;overflow-y:auto;padding:16px 18px;line-height:1.8;font-size:14px;
  background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);
}
.report-body h1{font-size:20px;margin:4px 0 14px;padding-bottom:10px;border-bottom:2px solid var(--brand)}
.report-body h2{font-size:16px;margin:18px 0 8px;color:var(--brand2)}
.report-body h3{font-size:14px;margin:14px 0 6px}
.report-body h4,.report-body h5,.report-body h6{font-size:13px;margin:12px 0 6px}
.report-body p{margin:6px 0}
.report-body ul,.report-body ol{padding-left:22px;margin:6px 0}
.report-body li{margin:3px 0}
.report-body code{
  background:var(--panel);border:1px solid var(--line);border-radius:4px;
  padding:1px 5px;font-size:12px;font-family:ui-monospace,Menlo,Consolas,monospace;
}
.report-body strong{color:var(--text);font-weight:700}
.report-body .empty{padding:40px 0}

/* ========== 新建任务增强编辑器 ========== */
.rte-format{height:28px;min-width:72px;padding:2px 7px;border-radius:6px;background:var(--panel);font-size:12px;color:var(--muted)}
.rte-spacer{flex:1}
.rte-expand-btn{border:1px solid var(--line);background:var(--panel);white-space:nowrap}
.rte-clear-btn{border:1px solid #fecaca;background:#fff7f7;color:var(--danger);white-space:nowrap}
.rte-ai-btn{border:1px solid #bfd1ff;background:var(--brand-soft);color:var(--brand);font-weight:700;white-space:nowrap}
.rte-ai-btn:disabled{opacity:.6;cursor:wait}
.ai-progress{padding:9px 12px 10px;border-top:1px solid var(--line);background:var(--panel2)}
.ai-progress-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:var(--brand2);font-size:12px;font-weight:700}
.ai-progress-track{height:7px;overflow:hidden;border-radius:999px;background:#dbe6ff}
.ai-progress-bar{width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),#7c3aed,#38bdf8);background-size:180% 100%;transition:width .55s ease;animation:ai-progress-flow 1.4s linear infinite}
.ai-progress-note{margin-top:5px;color:var(--muted);font-size:10px}
.ai-progress.is-error .ai-progress-head{color:var(--danger)}
.ai-progress.is-error .ai-progress-bar{background:var(--danger);animation:none}
@keyframes ai-progress-flow{to{background-position:-180% 0}}
.rte-content blockquote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--brand);background:var(--brand-soft);color:var(--muted)}
.rte-content h2{margin:10px 0 6px;font-size:18px;line-height:1.4}
.rte-content pre{margin:8px 0;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#111827;color:#e5e7eb;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap}
.rte-content [data-ai-analysis]{margin:14px 0 4px;padding:14px 16px;border:1px solid #c9d9ff;border-left:4px solid var(--brand);border-radius:9px;background:linear-gradient(135deg,#f3f7ff,#fff);color:var(--text)}
.rte-content [data-ai-analysis] hr{margin:-2px 0 14px;border:0;border-top:1px solid var(--line)}
.rte-content [data-ai-analysis] h2{margin:0 0 5px;color:var(--brand2);font-size:16px}
.rte-content [data-ai-analysis] p{margin:0 0 8px;color:var(--muted);font-size:12px}
.rte-content [data-ai-analysis] ol{margin:0;padding-left:22px}
.rte-content [data-ai-analysis] li{padding:4px 3px;border-radius:4px}
.rte-content [data-ai-analysis] li:focus{background:var(--brand-soft);outline:none}
.ai-subtask-title-line{display:flex;align-items:center;gap:8px;min-height:34px}
.ai-subtask-title{flex:1;min-width:120px;font-weight:600;outline:none}
.ai-subtask-title:focus{box-shadow:inset 0 -2px var(--brand)}
.assign-later,.collection-needed{display:inline-flex;align-items:center;min-height:28px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:650;white-space:nowrap}
.assign-later{color:var(--muted);background:var(--panel2);border:1px solid var(--line)}
.collection-needed{color:#0f7b5b;background:#eafaf4;border:1px solid #b6ead9}
.ai-subtask-edit-btn{flex:none;padding:4px 8px;border-radius:6px;color:var(--brand);font-size:12px}
.ai-subtask-edit-btn:hover{background:var(--brand-soft)}
.pending-subtask-editor{margin:6px 0 8px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}
.pending-subtask-toolbar{display:flex;align-items:center;gap:4px;padding:5px 7px;border-bottom:1px solid var(--line);background:var(--panel2)}
.pending-subtask-toolbar button{height:26px;padding:2px 8px;border-radius:5px;color:var(--muted);font-size:12px}
.pending-subtask-toolbar button:hover{background:var(--brand-soft);color:var(--brand)}
.pending-subtask-content{min-height:90px;padding:10px 12px;outline:none;font-size:13px;line-height:1.7}
.pending-subtask-content:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}
.rte-status{display:flex;justify-content:space-between;gap:12px;padding:5px 10px;border-top:1px solid var(--line);background:var(--panel2);font-size:11px;color:var(--muted)}
.rte.rte-expanded{position:fixed;inset:18px;z-index:120;display:flex;flex-direction:column;border-radius:14px;box-shadow:0 24px 80px rgba(10,20,40,.28);background:var(--panel)}
.rte.rte-expanded::before{content:'任务描述';padding:15px 16px 8px;font-size:16px;font-weight:700;background:var(--panel)}
.rte.rte-expanded .rte-toolbar{position:sticky;top:0;z-index:2;padding:9px 12px}
.rte.rte-expanded .rte-content{flex:1;min-height:0;max-height:none;padding:20px clamp(18px,4vw,64px);font-size:15px}
body.rte-open{overflow:hidden}
.new-attachment-box{padding:12px;border:1px dashed var(--line);border-radius:var(--r-sm);background:var(--panel2)}
.new-attachment-box label{margin:0}.new-attachment-box input[type=file]{background:var(--panel)}
.new-attachment-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.new-attachment-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--panel);font-size:12px}
.new-attachment-item .file-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.new-attachment-item button{flex:none;color:var(--danger);padding:2px 6px}
.rte-analysis-panel{max-height:390px;overflow-y:auto;padding:10px;border-top:1px solid var(--line);background:#f8fbff}
.rte-analysis-empty{padding:8px 10px;text-align:center;color:var(--muted);font-size:12px}
.rte-analysis-head,.rte-attachment-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;color:var(--muted)}
.rte-analysis-head strong,.rte-attachment-head strong{color:var(--text);font-size:13px}
.rte-attachment-panel{padding:0 10px;background:var(--panel2)}
.rte-attachment-panel .new-attachment-list{padding:10px 0;margin:0;border-top:1px solid var(--line)}
.subtask-preview-item{flex-direction:column;align-items:stretch}
.subtask-preview-main{display:flex;align-items:center;gap:8px;width:100%}
.subtask-code-editor{display:grid;grid-template-columns:130px 1fr;gap:8px;padding:10px;margin-top:4px;border-top:1px dashed var(--line)}
.subtask-code-editor textarea{grid-column:1/-1;min-height:130px;resize:vertical;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.subtask-code-editor .muted{grid-column:1/-1}
.sub-desc .code-block{margin-top:10px}.sub-desc .code-toolbar{background:var(--panel)}
.rte.rte-expanded .rte-analysis-panel{max-height:35vh;flex:none}

@media (max-width:600px){
  .rte.rte-expanded{inset:0;border:0;border-radius:0}
  .rte.rte-expanded::before{padding:12px 14px 7px}
  .rte.rte-expanded .rte-content{padding:16px}
  .rte-status{flex-direction:column;gap:1px}
  .subtask-preview-main{flex-wrap:wrap}.subtask-preview-title{min-width:calc(100% - 40px)}
  .subtask-code-editor{grid-template-columns:1fr}
  .ai-subtask-title-line{flex-wrap:wrap}.ai-subtask-title{flex-basis:100%}
  .assign-later,.collection-needed{white-space:normal}
  .admin-item{align-items:stretch;flex-wrap:wrap}.admin-item .info{flex-basis:100%}.owner-picker{max-width:none;flex:1}
}

/* 最终级联：让后置业务组件统一继承新版设计系统 */
.login-mask{background:linear-gradient(145deg,#edf3ff,#f8fafc 52%,#eef2f7)}
.login-card{width:min(430px,100%);padding:40px;border:1px solid #dfe5ee;border-radius:20px;background:#fff;box-shadow:0 24px 60px rgba(15,23,42,.14);backdrop-filter:none}
.login-logo{width:56px;height:56px;border-radius:14px;background:var(--brand);box-shadow:none}
.login-title{font-size:22px}.login-field input{min-height:48px;border-radius:10px;background:#f8fafc}
.login-primary{min-height:48px;border-radius:10px;background:var(--brand)}.login-primary:hover{background:var(--brand2)}
.ding-qr-btn{min-height:44px;border-radius:10px}.ding-qr-btn:hover{background:var(--brand-soft)}
.member-item,.admin-item,.cfg-group,.urge-item,.subtask-card,.completion-item{border-radius:11px;background:var(--panel);border-color:var(--line)}
.member-item{min-height:68px;padding:12px 14px}.member-item:hover{border-color:#b7c4d6;background:var(--panel2)}
.member-item.member-active{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:var(--brand-soft)}
.member-avatar{width:40px;height:40px;background:var(--brand);box-shadow:none}.member-item .sub{font-size:12px}
.cfg-group{padding:16px}.cfg-group-title{font-size:13px;color:var(--text)}
.rte{border-radius:12px}.rte-toolbar{gap:5px;padding:8px}.rte-btn{min-width:32px;height:32px}.rte-content{min-height:112px;padding:14px;line-height:1.75}
.rte-status{padding:7px 12px}.ai-progress{padding:10px 14px}
.rte-clear-btn{background:var(--panel);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}
.rte-analysis-panel{background:var(--panel2)}
.rte-content [data-ai-analysis]{border-color:color-mix(in srgb,var(--brand) 34%,var(--line));background:var(--brand-soft)}
.pending-subtask-editor,.pending-subtask-content,.rte-attachment-panel{background:var(--panel)}
[data-theme="dark"] .login-mask{background:#0b1120}
[data-theme="dark"] .login-card{background:var(--panel);border-color:var(--line)}
[data-theme="dark"] .login-field input{background:var(--panel2)}
[data-theme="dark"] .member-item:hover{border-color:#49617f}
[data-theme="dark"] .rte-content [data-ai-analysis]{background:#172a49}

@media (max-width:600px){
  body{font-size:16px;overscroll-behavior:contain}
  input,select,textarea{min-height:44px;font-size:16px}
  .modal{align-items:flex-end;padding:0}.modal-card{width:100%;max-height:94dvh;border-radius:20px 20px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom));animation:sheet-in var(--normal) var(--ease)}
  .rte-btn{min-width:38px;height:38px}.rte-toolbar{gap:6px}
  .login-card{padding:30px 22px}.login-title{font-size:20px}
  .member-item{align-items:flex-start}.member-side{width:100%;padding-left:52px;align-items:flex-start}
  #view-admin .panel-head .row{width:100%;flex-wrap:wrap}
  #view-admin .panel-head .row input,#view-admin .panel-head .row select,#view-admin .panel-head .row .owner-picker-host{flex:1 1 100%;width:100%;max-width:100%}
  #view-admin .owner-picker{width:100%;max-width:none}.owner-picker-menu{min-width:0}.owner-picker-option{min-height:48px}
  #view-admin .panel-head .row button{flex:1 1 auto;justify-content:center}
}

/* ===== 工作空间二期：协作、排期、目标与自动化 ===== */
.today-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.nav{min-height:0;overflow-y:auto;scrollbar-width:thin}.nav-badge{min-width:22px;margin-left:auto;padding:2px 6px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;text-align:center}.nav-item.active .nav-badge{background:#fff;color:var(--brand2)}
.field-help{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:400;line-height:1.45}.field-title{margin-bottom:8px;font-size:13px;font-weight:700}.template-people,.template-subtasks{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.template-subtask-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;margin-bottom:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.template-subtask-index{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:800}.template-subtask-fields{display:flex;min-width:0;flex-direction:column;gap:10px}.template-subtask-fields label,.key-result-editor label{display:flex;min-width:0;flex-direction:column;gap:5px}
.workspace-tabs{display:flex;width:max-content;max-width:100%;gap:5px;margin-bottom:16px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.workspace-tab{min-height:44px;padding:8px 16px;border-radius:8px;color:var(--muted);font-weight:700}.workspace-tab.active{background:var(--brand);color:#fff}.collab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.compact-form{gap:12px}
.notification-list{display:flex;flex-direction:column;gap:8px}.notification-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:72px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.notification-item[role="button"]{cursor:pointer}.notification-item.is-unread{border-color:color-mix(in srgb,var(--brand) 40%,var(--line));background:color-mix(in srgb,var(--brand-soft) 42%,var(--panel))}.notification-item.is-read{opacity:.76}.notification-dot{width:8px;height:8px;border-radius:50%;background:var(--line)}.notification-item.is-unread .notification-dot{background:var(--brand)}.notification-copy{min-width:0}.notification-copy strong{display:block;margin:5px 0;font-size:14px}.notification-copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.notification-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.notification-top time{color:var(--muted);font-size:11px;white-space:nowrap}
.sync-list{display:flex;flex-direction:column;gap:8px}.sync-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.sync-item strong,.sync-item small{display:block}.sync-item small{margin-top:2px;color:var(--muted)}.sync-indicator{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--muted)}.sync-indicator.ok{background:#12b76a}.sync-indicator.fail{background:var(--danger)}
.workload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.workload-card{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:var(--shadow)}.workload-card.is-overloaded{border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.workload-person{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center}.workload-person h2{margin:0;font-size:15px}.workload-person p{margin:3px 0 0;color:var(--muted);font-size:12px}.workload-person>strong{font-size:18px}.load-track{height:8px;margin:14px 0 8px;overflow:hidden;border-radius:99px;background:var(--line)}.load-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--brand2))}.is-overloaded .load-track span{background:var(--danger)}.conflict-list{display:flex;flex-direction:column;gap:8px}.conflict-item{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:52px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);text-align:left}.conflict-item strong,.conflict-item small{display:block}.conflict-item small,.conflict-item>span{color:var(--muted);font-size:12px}
.goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.goal-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}.goal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.goal-head h2{margin:8px 0 4px;font-size:17px}.goal-head p{margin:0;color:var(--muted);font-size:13px}.goal-head>strong{color:var(--brand);font-size:25px}.goal-results{display:flex;flex-direction:column;gap:6px;margin-top:12px}.goal-results>div{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:8px;background:var(--panel2);font-size:12px}.key-result-editor{display:flex;flex-direction:column;gap:10px;padding:13px;margin-bottom:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
.automation-builder{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:12px;align-items:center}.automation-builder fieldset{display:flex;min-width:0;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px}.automation-builder legend{padding:0 6px;font-weight:800}.automation-arrow{text-align:center;color:var(--brand);font-size:24px;font-weight:800}.toggle-row{display:flex!important;align-items:center;flex-direction:row!important;gap:10px!important;min-height:44px}.toggle-row input{width:20px;height:20px;accent-color:var(--brand)}.automation-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.automation-card{padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:var(--shadow)}.automation-card.is-disabled{opacity:.7}.automation-card h2{margin:12px 0;font-size:16px}.automation-status{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.automation-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}.automation-flow span{padding:9px;border-radius:8px;background:var(--panel2);font-size:12px;text-align:center}.automation-flow b{color:var(--brand)}
.relation-form{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:10px}.relation-form label{display:flex;min-width:0;flex-direction:column;gap:5px;color:var(--muted);font-size:11px}.relation-list{display:flex;flex-direction:column;gap:6px}.relation-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.relation-item>button:first-child{display:flex;min-width:0;align-items:center;gap:8px;text-align:left}.relation-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.d-actions .is-active{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:var(--brand-soft);color:var(--brand)}.mention-helper select{min-width:105px}.comment-form{align-items:center}
.estimate-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.estimate-row label{margin:0}.estimate-row input{width:110px;min-height:40px}
.due-editor{display:grid;gap:10px}.due-overview{display:flex;align-items:center;justify-content:space-between;gap:10px}.due-overview>button{min-height:44px}.due-editor-panel{display:grid;gap:10px}.due-editor-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.due-field{display:grid;gap:5px;margin:0;color:var(--muted);font-size:11px}.due-field input{width:210px;min-height:44px}.due-editor .inline-feedback{margin:0}
@media (max-width:560px){.due-overview{align-items:stretch;flex-direction:column}.due-overview>button{width:100%}}
.notification-item button,.workspace-tab,.workload-card button,.conflict-item,.goal-card button,.automation-card button,.relation-form button,.relation-item button,.template-subtask-row button{min-height:44px}.notification-item[role="button"]:focus-visible,.conflict-item:focus-visible,.relation-item>button:first-child:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

@media (max-width:1100px){.workload-grid,.automation-list{grid-template-columns:repeat(2,minmax(0,1fr))}.today-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:780px){.collab-grid,.goal-grid{grid-template-columns:1fr}.automation-builder{grid-template-columns:1fr}.automation-arrow{transform:rotate(90deg)}.relation-form{grid-template-columns:1fr 1fr}.relation-form button{grid-column:1/-1}.template-subtask-row{grid-template-columns:28px minmax(0,1fr)}.template-subtask-row>.danger{grid-column:2}}
@media (max-width:600px){.workload-grid,.automation-list,.today-summary{grid-template-columns:1fr}.workspace-tabs{width:100%}.workspace-tab{min-width:0;flex:1;padding-inline:8px}.notification-item{grid-template-columns:8px minmax(0,1fr)}.notification-item>button{grid-column:2;justify-self:start}.notification-top{align-items:flex-start;flex-direction:column;gap:4px}.sync-item{grid-template-columns:9px minmax(0,1fr)}.sync-item>span:last-child{grid-column:2}.relation-form{grid-template-columns:1fr}.relation-form button{grid-column:auto}.comment-form{align-items:stretch;flex-direction:column}.comment-form>*{width:100%}.mention-helper select{width:100%}.goal-results>div{align-items:flex-start;flex-direction:column}.template-subtask-row{grid-template-columns:1fr}.template-subtask-index,.template-subtask-row>.danger{grid-column:auto}}
@media (prefers-reduced-motion:reduce){.load-track span{transition:none}.automation-arrow{transform:none}}

/* ===== 员工激活、新手引导、积分玩法与影视权益 ===== */
.onboarding-card{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr) auto;gap:20px;align-items:center;margin-bottom:18px;padding:20px;border:1px solid color-mix(in srgb,var(--brand) 34%,var(--line));border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand-soft) 72%,var(--panel)),var(--panel));box-shadow:var(--shadow)}
.onboarding-kicker{margin-bottom:4px;color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.08em}.onboarding-copy h2{margin:0 0 5px;font-size:19px}.onboarding-copy p{margin:0;color:var(--muted);font-size:12px}.onboarding-progress{margin-top:14px}.progress-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;color:var(--muted);font-size:12px}.progress-label strong{color:var(--brand)}
.progress-track{height:9px;overflow:hidden;border-radius:999px;background:var(--line)}.progress-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--brand2));transition:width .25s ease}
.onboarding-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;list-style:none}.onboarding-steps li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;min-width:0;padding:7px;border-radius:9px;color:var(--muted)}.onboarding-steps li.is-current{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.onboarding-steps li.is-complete{color:#087a55}.step-index{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;background:var(--panel);font-size:11px;font-weight:800}.step-index .ico{width:14px;height:14px}.onboarding-steps .is-current .step-index{border-color:var(--brand);background:var(--brand);color:#fff}.onboarding-steps .is-complete .step-index{border-color:#9ad9bf;background:#eaf9f2}.onboarding-steps strong,.onboarding-steps small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onboarding-steps strong{font-size:12px}.onboarding-steps small{font-size:10px;color:var(--muted)}.onboarding-actions{display:flex;flex-direction:column;gap:8px}.onboarding-actions>*{min-height:44px;justify-content:center}
.activation-summary{display:grid;grid-template-columns:1.25fr repeat(4,1fr);gap:12px;margin-bottom:18px}.activation-stat{display:flex;min-height:94px;flex-direction:column;align-items:flex-start;justify-content:center;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:var(--shadow);text-align:left}.activation-stat:not(.primary-stat):hover{border-color:color-mix(in srgb,var(--brand) 40%,var(--line));background:var(--brand-soft)}.activation-stat span,.activation-stat small{color:var(--muted);font-size:11px}.activation-stat strong{font-size:26px;line-height:1.25}.activation-stat.primary-stat{background:linear-gradient(135deg,var(--brand2),#4f46e5);color:#fff}.activation-stat.primary-stat span,.activation-stat.primary-stat small{color:rgba(255,255,255,.8)}
.member-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,.36fr) minmax(150px,.36fr);gap:10px;margin-bottom:12px}.member-toolbar>*{min-height:44px}.member-selectbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.member-selectbar label{display:flex;align-items:center;gap:8px;min-height:32px;cursor:pointer}.member-selectbar input,.member-select input{width:18px;height:18px;accent-color:var(--brand)}.member-select{display:flex;align-items:center;justify-content:center;min-width:32px;min-height:44px}.member-item.member-unavailable{background:color-mix(in srgb,var(--panel2) 78%,var(--panel));border-style:dashed}.member-item.member-unavailable .member-avatar{filter:saturate(.3);opacity:.72}.member-invite-meta{margin-top:3px;color:var(--muted);font-size:10px}.member-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.member-actions button{min-height:38px}.activation-chip{display:inline-flex;align-items:center;min-height:23px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);color:var(--muted);font-size:10px;font-weight:750;white-space:nowrap}.activation-chip.activated{border-color:#9ad9bf;background:#eaf9f2;color:#087a55}.activation-chip.invited{border-color:#f3cf83;background:#fff8e8;color:#8a5a00}.activation-chip.disabled,.activation-chip.offboarded{border-color:#d8dee8;background:#eef1f5;color:#59677d}.invite-result.success{border-color:#9ad9bf;background:#eaf9f2;color:#087a55}
.person-option.is-disabled{background:var(--panel2);opacity:.74}.person-option.is-disabled:hover{background:var(--panel2)}.person-option input:disabled{cursor:not-allowed}.person-option.is-disabled label{cursor:not-allowed}.person-copy strong{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.accept-task{border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));background:var(--brand-soft);color:var(--brand2);font-weight:700}
[data-theme="dark"] .activation-chip.activated,[data-theme="dark"] .achievement-item.is-complete,[data-theme="dark"] .ai-reward-item.is-complete,[data-theme="dark"] .invite-result.success{border-color:#286b52;background:#15382c;color:#8be0ba}[data-theme="dark"] .activation-chip.invited{border-color:#72531c;background:#3a2d12;color:#fbd38d}[data-theme="dark"] .activation-chip.disabled,[data-theme="dark"] .activation-chip.offboarded{border-color:#3c475c;background:#222b3a;color:#aab7cf}
.reward-growth-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.reward-growth-grid .panel{min-width:0}.reward-level{grid-column:1/-1;display:grid;grid-template-columns:minmax(160px,.45fr) 1fr;gap:18px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}.reward-level strong,.reward-level small{display:block}.reward-level strong{margin:3px 0;font-size:20px}.reward-level small{color:var(--muted);font-size:11px}.achievement-list,.leaderboard-list{display:flex;flex-direction:column;gap:7px}.achievement-item{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.achievement-item.is-complete{border-color:#a9dfc8;background:#edf9f3}.achievement-mark{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--brand-soft);color:var(--brand)}.achievement-mark .ico{width:16px;height:16px}.achievement-item strong,.achievement-item small{display:block}.achievement-item small{margin-top:2px;color:var(--muted);font-size:11px}.challenge-brief{display:flex;flex-direction:column;gap:4px;margin-top:3px;padding:10px 12px;border-left:3px solid var(--brand);background:var(--brand-soft);font-size:11px}.leaderboard-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:39px;padding:6px 9px;border-radius:9px;background:var(--panel2);font-size:12px}.leaderboard-row.is-me{background:var(--brand-soft);color:var(--brand2)}.leaderboard-row .rank{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:50%;background:var(--panel);font-weight:800}.leaderboard-divider{padding:6px 0 2px;border-top:1px dashed var(--line);color:var(--muted);font-size:10px}.thanks-form{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(240px,1.4fr) auto;gap:10px;align-items:end}.thanks-form label{display:flex;min-width:0;flex-direction:column;gap:5px;color:var(--muted);font-size:11px}.thanks-form>*{min-height:44px}.reward-filters{display:flex;gap:8px}.reward-filters select{min-height:44px}.platform-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:11px;font-weight:800}.redemption-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.entitlement-box{margin-top:8px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:9px;background:var(--brand-soft)}.entitlement-code{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.entitlement-code code{padding:5px 7px;border-radius:6px;background:var(--panel);font-weight:800;letter-spacing:.06em}
.ai-reward-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.ai-reward-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:76px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:var(--shadow)}.ai-reward-item.is-complete{border-color:#9ad9bf;background:#edf9f3}.ai-reward-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:var(--brand-soft);color:var(--brand)}.ai-reward-icon .ico{width:19px;height:19px}.ai-reward-item strong,.ai-reward-item small{display:block}.ai-reward-item small{margin-top:3px;color:var(--muted);font-size:11px}.token-balance{margin-bottom:8px;font-size:12px}.token-balance.is-unavailable{padding:9px 11px;border:1px solid color-mix(in srgb,var(--warn) 42%,var(--line));border-radius:9px;background:var(--warn-soft);color:#8a5a00}.token-key-row{display:flex;align-items:stretch;gap:8px}.token-key-row code{flex:1;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);word-break:break-all;font-size:12px;line-height:1.6}.one-time-key-note,.security-note{margin-bottom:9px;padding:10px 12px;border:1px solid #f1c77a;border-radius:9px;background:var(--warn-soft);color:#8a5a00;font-size:12px}.security-note{display:flex;align-items:flex-start;gap:7px;margin:14px 0 0}.security-note .ico{width:15px;height:15px;margin-top:2px}.token-rotate{min-height:44px;margin-top:12px}.token-action-feedback{margin:12px 0 0;text-align:left;line-height:1.6}.token-load-state{margin-bottom:10px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--warn) 42%,var(--line));border-radius:9px;background:var(--warn-soft);color:#8a5a00;font-size:12px}
.reward-admin-tabs{display:flex;gap:5px;margin-bottom:16px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow-x:auto;scrollbar-width:thin}.reward-admin-tab{flex:0 0 auto;min-height:44px;padding:8px 14px;border-radius:8px;color:var(--muted);font-weight:750}.reward-admin-tab.active{background:var(--brand);color:#fff}.reward-config-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.reward-config-form>label:not(.toggle-row){display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:11px}.reward-config-form input,.reward-config-form select{width:100%}.reward-config-form .switch-row{position:relative;min-height:58px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.reward-config-form .switch-row:hover{border-color:color-mix(in srgb,var(--brand) 42%,var(--line));background:var(--panel)}.reward-config-form .switch-row>input[type="checkbox"]{position:absolute;width:1px!important;min-width:1px!important;height:1px!important;min-height:1px!important;padding:0!important;opacity:0;pointer-events:none}.switch-track{position:relative;width:46px;height:26px;flex:0 0 46px;border:1px solid var(--line);border-radius:999px;background:#cbd5e1;box-shadow:inset 0 1px 2px rgba(15,23,42,.08);transition:background .18s,border-color .18s}.switch-track::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.28);transition:transform .18s}.switch-row>input:checked+.switch-track{border-color:var(--brand);background:var(--brand)}.switch-row>input:checked+.switch-track::after{transform:translateX(20px)}.switch-row>input:focus-visible+.switch-track{outline:2px solid var(--brand);outline-offset:3px}.switch-copy{display:flex;min-width:0;flex-direction:column;gap:1px}.switch-copy>span{font-size:12px;font-weight:700}.switch-state{color:var(--muted);font-size:10px}.switch-state::after{content:'已关闭'}.switch-row>input:checked~.switch-copy .switch-state::after{content:'已开启';color:var(--brand)}.editor-wide{grid-column:1/-1}.prize-editor,.rule-editor{grid-template-columns:repeat(4,minmax(120px,1fr))}.challenge-editor{grid-template-columns:repeat(3,minmax(130px,1fr))}.admin-data-item.prize-admin-item{display:grid;grid-template-columns:minmax(0,1fr) auto}.prize-code-list,.rule-version-list{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;width:100%;padding-top:8px;border-top:1px dashed var(--line)}.masked-code-row,.rule-version-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:8px;background:var(--panel2);color:var(--muted);font-size:11px}.masked-code-row code{color:var(--text)}.config-version-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.config-version-title{margin-right:4px;color:var(--muted);font-size:11px;font-weight:700}

@media (max-width:1100px){.onboarding-card{grid-template-columns:1fr 1.2fr}.onboarding-actions{grid-column:1/-1;flex-direction:row}.activation-summary{grid-template-columns:repeat(3,1fr)}.activation-stat.primary-stat{grid-column:span 2}.reward-config-form,.prize-editor,.rule-editor{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.onboarding-card,.reward-growth-grid{grid-template-columns:1fr}.onboarding-steps{grid-template-columns:1fr}.activation-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.activation-stat.primary-stat{grid-column:1/-1}.member-toolbar{grid-template-columns:1fr}.reward-level,.thanks-form,.ai-reward-progress{grid-template-columns:1fr}.reward-filters{width:100%}.reward-filters label{flex:1}.reward-filters select{width:100%}.ai-reward-item{grid-template-columns:40px minmax(0,1fr) auto}.challenge-editor{grid-template-columns:1fr 1fr}}
@media (max-width:600px){
  html{scroll-padding-top:calc(70px + env(safe-area-inset-top))}.topbar{padding-top:calc(11px + env(safe-area-inset-top));padding-left:max(13px,env(safe-area-inset-left));padding-right:max(13px,env(safe-area-inset-right))}.view{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  button,.primary,.ghost,.link,.danger,.nav-item,.admin-tab{min-height:44px}.nav{overscroll-behavior:contain;padding-bottom:8px}.onboarding-card{padding:16px}.onboarding-actions{flex-direction:column}.activation-summary{grid-template-columns:1fr 1fr}.activation-stat{min-height:82px}.member-selectbar{align-items:flex-start;flex-direction:column}.member-item{display:grid;grid-template-columns:36px 40px minmax(0,1fr)}.member-select{grid-column:1}.member-avatar{grid-column:2}.member-item .info{grid-column:3}.member-side{grid-column:2/-1;width:100%;padding-left:0}.member-actions{justify-content:flex-start}.member-actions button{min-height:44px}.reward-account{grid-template-columns:1fr}.reward-level{grid-template-columns:1fr}.thanks-form,.reward-config-form,.prize-editor,.rule-editor,.challenge-editor{grid-template-columns:1fr}.editor-wide{grid-column:auto}.token-key-row{flex-direction:column}.token-key-row button{width:100%;justify-content:center}.admin-data-item.prize-admin-item{grid-template-columns:1fr}.masked-code-row,.rule-version-item{align-items:flex-start;flex-direction:column}.redemption-item{align-items:flex-start;flex-direction:column}.redemption-actions{justify-content:flex-start}.reward-admin-tabs{margin-inline:-4px}.reward-admin-tab{padding-inline:12px}
}
.person-picker .person-member input[type="checkbox"],.person-picker .person-primary input[type="radio"]{width:18px;min-width:18px;height:18px;min-height:18px;padding:0;flex:none}
.person-picker label.person-member,.person-picker label.person-primary{flex-direction:row;align-items:center;margin:0}
.person-picker label.person-member{justify-content:flex-start;gap:10px;min-width:0}
.person-picker .person-copy{min-width:0;text-align:left;overflow-wrap:anywhere}
.person-picker label.person-primary{flex:0 0 auto;gap:6px}

/* ===== 角色、AI 额度与权限弹窗 ===== */
.badge.role-subadmin{border-color:transparent;background:#f3e8ff;color:#7e22ce}.access-locked{color:var(--muted);font-size:11px;white-space:nowrap}
.quota-head>div:first-child{display:flex;flex-direction:column;gap:3px}.quota-head-actions{display:flex;align-items:center;gap:10px}.quota-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.quota-toolbar input{width:min(380px,100%);padding-left:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2366748b' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px center}
.quota-list{display:flex;flex-direction:column;gap:9px}.quota-item{display:grid;grid-template-columns:minmax(210px,1.7fr) repeat(3,minmax(105px,.8fr)) minmax(110px,auto);align-items:center;gap:14px;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}.quota-item.has-error{border-color:color-mix(in srgb,var(--danger) 42%,var(--line))}
.quota-person{display:flex;align-items:center;gap:10px;min-width:0}.quota-avatar{display:flex;width:38px;height:38px;align-items:center;justify-content:center;flex:none;border-radius:50%;background:var(--brand);color:#fff;font-weight:750}.quota-person-copy{display:flex;min-width:0;flex:1;flex-direction:column}.quota-person-copy strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.quota-person-copy span{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.quota-status{padding:2px 7px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}.quota-status.opened{background:#ecfdf5;color:var(--ok)}.quota-status.unopened{border:1px solid var(--line);background:var(--panel2);color:var(--muted)}.quota-status.disabled{background:#eef1f5;color:#59677d}.quota-status.error{background:var(--danger-soft);color:var(--danger)}
.quota-metric{display:flex;min-width:0;flex-direction:column;gap:2px}.quota-metric>span,.quota-metric>small{color:var(--muted);font-size:10px}.quota-metric>strong{font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.quota-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.quota-error{color:var(--danger);font-size:11px}
.compact-modal{width:min(500px,100%)}.access-modal{width:min(760px,100%)}.modal-person{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.modal-person>div:last-child{display:flex;min-width:0;flex-direction:column}.modal-person strong{font-size:14px}.modal-person span{color:var(--muted);font-size:11px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:2px}
.permission-heading{margin-bottom:8px;font-size:13px;font-weight:700}.permission-groups{display:grid;max-height:390px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow-y:auto;transition:opacity .15s}.permission-groups.is-disabled{opacity:.55}.permission-group{min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.permission-group legend{padding:0 5px;color:var(--text);font-size:12px;font-weight:750}.permission-option{display:flex!important;align-items:flex-start!important;flex-direction:row!important;gap:9px!important;padding:8px;border-radius:8px;color:var(--text)!important;font-weight:400!important;cursor:pointer}.permission-option:hover{background:var(--brand-soft)}.permission-option input{width:18px;height:18px;min-height:0;margin-top:2px;flex:none;accent-color:var(--brand)}.permission-option>span{display:flex;min-width:0;flex-direction:column}.permission-option strong{font-size:12px}.permission-option small{color:var(--muted);font-size:10px;line-height:1.45}.permission-note{margin-top:8px;line-height:1.5}
[data-theme="dark"] .badge.role-subadmin{background:#312044;color:#d8b4fe}[data-theme="dark"] .quota-status.opened{background:#14352b;color:#6ee7b7}[data-theme="dark"] .quota-status.disabled{background:#222b3a;color:#aab7cf}
@media (max-width:1100px){.quota-item{grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(100px,1fr))}.quota-actions{grid-column:1/-1}}
@media (max-width:760px){.quota-head{align-items:flex-start;flex-direction:column}.quota-head-actions{width:100%;justify-content:space-between}.quota-toolbar{align-items:stretch;flex-direction:column}.quota-toolbar input{width:100%}.quota-item{grid-template-columns:1fr 1fr;gap:12px}.quota-person,.quota-actions{grid-column:1/-1}.quota-item .quota-metric:nth-child(4){grid-column:1/-1}.quota-actions{justify-content:stretch}.quota-actions .primary{flex:1;justify-content:center}.permission-groups{max-height:46vh;grid-template-columns:1fr}}
@media (max-width:480px){.quota-item{grid-template-columns:1fr}.quota-person,.quota-actions,.quota-item .quota-metric:nth-child(4){grid-column:auto}.form-actions>*{flex:1;justify-content:center}}
@media (max-width:600px){.member-item.member-readonly{grid-template-columns:40px minmax(0,1fr)}.member-item.member-readonly .member-avatar{grid-column:1}.member-item.member-readonly .info{grid-column:2}.member-item.member-readonly .member-side{grid-column:1/-1}}

/* ===== 一句话快捷建任务与子管理员独立入口 ===== */
.quick-task-form{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(260px,1.7fr) minmax(160px,.65fr) auto;gap:10px;align-items:center;margin-bottom:14px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--brand) 34%,var(--line));border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand-soft) 62%,var(--panel)),var(--panel));box-shadow:var(--shadow)}
.quick-task-copy{display:flex;min-width:0;flex-direction:column;gap:3px}.quick-task-copy .eyebrow{font-size:10px}.quick-task-copy strong{font-size:15px}.quick-task-copy small{color:var(--muted);font-size:10px;line-height:1.45}.quick-task-form>input,.quick-task-form>select,.quick-task-form>button{min-height:46px}.quick-task-form>input{min-width:0}.quick-task-form>select{min-width:150px}.quick-task-form>button{white-space:nowrap}.quick-task-feedback{grid-column:2/-1;margin:0}
.subadmin-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.subadmin-summary>div{display:flex;min-height:94px;flex-direction:column;justify-content:center;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:var(--shadow)}.subadmin-summary span,.subadmin-summary small{color:var(--muted);font-size:11px}.subadmin-summary strong{margin:3px 0;font-size:22px}.subadmin-search{width:min(430px,100%);min-height:44px;margin-bottom:12px;padding-left:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2366748b' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px center}.subadmin-item .member-side{min-width:170px}.subadmin-item .member-actions{justify-content:flex-end}.subadmin-item .member-actions button{min-width:132px}
@media (max-width:1000px){.quick-task-form{grid-template-columns:minmax(0,1fr) minmax(160px,.55fr) auto}.quick-task-copy{grid-column:1/-1}.quick-task-feedback{grid-column:1/-1}}
@media (max-width:700px){.subadmin-summary{grid-template-columns:1fr}.quick-task-form{grid-template-columns:1fr}.quick-task-copy,.quick-task-feedback{grid-column:auto}.quick-task-form>button{width:100%;justify-content:center}.subadmin-search{width:100%}.subadmin-item{grid-template-columns:40px minmax(0,1fr)}.subadmin-item .member-avatar{grid-column:1}.subadmin-item .info{grid-column:2}.subadmin-item .member-side{grid-column:1/-1;min-width:0}.subadmin-item .member-actions{justify-content:flex-start}.subadmin-item .member-actions button{width:100%}}

/* ===== AI 问答式创建与超管代登录 ===== */
.impersonation-banner{position:sticky;top:0;z-index:8;display:flex;min-height:56px;align-items:center;justify-content:space-between;gap:16px;padding:9px clamp(18px,3vw,38px);background:#7c2d12;color:#fff;box-shadow:0 4px 14px rgba(74,29,8,.22)}
.impersonation-banner>div{display:flex;min-width:0;align-items:center;gap:10px}.impersonation-banner strong{white-space:nowrap}.impersonation-banner span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffedd5;font-size:12px}.impersonation-return{min-height:38px;flex:none;padding:7px 12px;border:1px solid rgba(255,255,255,.45);border-radius:8px;background:#fff;color:#7c2d12;font-weight:800}.impersonation-return:hover{background:#ffedd5}.impersonation-return:disabled{cursor:not-allowed;opacity:.65}
body.is-impersonating .topbar{top:56px}
.quick-task-assistant-card{width:min(720px,100%)}
.quick-assistant-conversation{display:flex;max-height:260px;min-height:96px;flex-direction:column;gap:9px;overflow-y:auto;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.quick-assistant-message{max-width:88%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow-wrap:anywhere;line-height:1.6}.quick-assistant-message.user{align-self:flex-end;border-color:color-mix(in srgb,var(--brand) 38%,var(--line));background:var(--brand-soft)}.quick-assistant-message.assistant{align-self:flex-start}.quick-assistant-message.is-thinking{color:var(--muted);font-style:italic}.quick-assistant-message>span{display:block;margin-bottom:3px;color:var(--muted);font-size:10px;font-style:normal;font-weight:800}.quick-assistant-message>p{margin:0;white-space:normal}
.quick-assistant-questions{margin-top:12px;padding:12px 14px;border-left:3px solid var(--brand);border-radius:0 10px 10px 0;background:var(--brand-soft)}.quick-assistant-questions strong{display:block;margin-bottom:5px}.quick-assistant-questions ol{padding-left:20px}.quick-assistant-questions li+li{margin-top:4px}
.quick-assistant-draft{margin-top:12px;padding:13px;border:1px solid color-mix(in srgb,var(--ok) 38%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--ok) 7%,var(--panel))}.quick-assistant-draft-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.quick-assistant-draft-head span{color:var(--muted);font-size:11px}.quick-assistant-draft dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.quick-assistant-draft dl>div{min-width:0;padding:8px 10px;border-radius:8px;background:var(--panel)}.quick-assistant-draft dt{color:var(--muted);font-size:10px}.quick-assistant-draft dd{margin:3px 0 0;overflow-wrap:anywhere;font-weight:750}.quick-assistant-draft>p{margin:9px 0;color:var(--muted);font-size:12px;line-height:1.6}.quick-assistant-draft>ol{margin:8px 0 0;padding-left:22px}.quick-assistant-draft li+li{margin-top:7px}.quick-assistant-draft li span{display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.5}
.quick-assistant-answer{margin-top:14px}.quick-assistant-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.quick-assistant-ready{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--ok) 45%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--ok) 8%,var(--panel))}.quick-assistant-ready p{color:var(--muted);font-size:12px}.quick-assistant-ready button{flex:none}.quick-assistant-card .inline-feedback{margin:12px 0 0}
@media (max-width:700px){.impersonation-banner{min-height:72px;align-items:flex-start;padding-block:8px}.impersonation-banner>div{align-items:flex-start;flex-direction:column;gap:0}.impersonation-banner span{max-width:100%;white-space:normal;line-height:1.35}body.is-impersonating .topbar{top:72px}.quick-assistant-conversation{max-height:220px}.quick-assistant-draft dl{grid-template-columns:1fr 1fr}.quick-assistant-actions>*{flex:1;justify-content:center}.quick-assistant-ready{align-items:stretch;flex-direction:column}.quick-assistant-ready button{width:100%;justify-content:center}}

/* ===== 经营看板（超管） ===== */
.biz-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.biz-kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.biz-kpi>span{display:block;font-size:12px;color:var(--muted)}
.biz-kpi>strong{display:block;margin:4px 0 2px;font-size:22px;font-weight:700;letter-spacing:-.4px;line-height:1.25}
.biz-kpi small{display:block;font-size:12px;color:var(--muted)}
.biz-trend-up{color:var(--ok)}
.biz-trend-down{color:var(--warn)}
.biz-chart{margin:8px 0 4px}
.biz-bars{display:flex;align-items:stretch;gap:8px;height:174px;padding:0 2px}
.biz-chart-sm .biz-bars{height:124px}
.biz-bar{flex:1 1 0;min-width:44px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.biz-bar b{font-size:11px;font-weight:600;color:var(--text);white-space:nowrap}
.biz-bar .col{flex:1 1 auto;display:flex;align-items:flex-end;justify-content:center;width:100%;min-height:0}
.biz-bar .col i{display:block;width:64%;max-width:38px;border-radius:5px 5px 0 0;background:var(--brand);opacity:.92}
.biz-bar u{font-size:11px;color:var(--muted);text-decoration:none;white-space:nowrap}
.biz-table-host{margin-top:14px}
.biz-table-scroll{overflow-x:auto}
.channel-profit .biz-kpi>span,.channel-profit .biz-kpi small{font-size:12px}
.channel-profit .channel-profit-note{line-height:1.7;overflow-wrap:anywhere}
.channel-profit details>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
.channel-profit-source a{white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}
.channel-target-progress{display:block;width:100%;height:12px;margin:8px 0 18px;accent-color:var(--brand)}
.dept-goal-actual-title{margin:20px 0 12px;padding-top:16px;border-top:1px solid var(--line);font-size:14px}
.dept-goals>p{margin:0 0 10px;line-height:1.6}
.dept-goals .biz-table tbody th{font-size:13px;color:var(--text);font-weight:500;padding:9px 10px}
.ecommerce-import{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.ecommerce-import h4{font-size:15px;margin:0 0 10px}.ecommerce-import h5{font-size:14px;margin:12px 0 8px}
.ecommerce-import p{line-height:1.65;margin:8px 0}.ecommerce-import label{display:block;font-weight:600;margin:10px 0 6px}
.ecommerce-import input[type=file]{display:block;width:100%;max-width:100%;min-height:44px}
.ecommerce-import-actions{margin:14px 0;flex-wrap:wrap}.ecommerce-import-actions button,#ecommerceUploadOpen{min-height:44px}
.ecommerce-import details>summary,.ecommerce-import-history>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
.ecommerce-import-file{border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 12px;margin:10px 0}
.ecommerce-import-warnings{margin:8px 0;padding-left:20px;color:var(--warn);line-height:1.7}
.ecommerce-sheet{padding:10px 0;border-top:1px solid var(--line)}.ecommerce-sheet .biz-table td{max-width:300px;overflow:hidden;text-overflow:ellipsis}
.ecommerce-import-history{margin-top:16px}.ecommerce-history-list{list-style:none;margin:0;padding:0}
.ecommerce-history-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.ecommerce-history-list button{min-height:44px;flex:none}
.biz-table{width:100%;border-collapse:collapse;font-size:13px}
.biz-table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.biz-table td{padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.biz-table tbody tr:last-child td{border-bottom:none}
.biz-table td>.muted{white-space:normal;min-width:180px;line-height:1.5}
.biz-kpis-compact{grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:10px;margin-bottom:12px}
.biz-kpis-compact .biz-kpi{padding:11px 13px}
.biz-kpis-compact .biz-kpi>span{font-size:11px}
.biz-kpis-compact .biz-kpi>strong{font-size:19px;margin:3px 0 1px}
.biz-kpis-compact .biz-kpi small{font-size:11px}
.biz-cell-input{width:92px;padding:6px 8px;font-size:13px;text-align:right;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);color:var(--text);transition:border-color .15s,box-shadow .15s}
.biz-cell-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 22%,transparent)}
.biz-cell-input::placeholder{color:var(--muted);opacity:.72}
.biz-cell-input::-webkit-outer-spin-button,.biz-cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.biz-cell-input[type=number]{-moz-appearance:textfield;appearance:textfield}
.kpi-evidence{display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;border:1px solid var(--line);background:var(--panel-2,var(--panel));color:var(--muted);vertical-align:middle}
.kpi-evidence.warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--line));color:var(--warn)}
.kpi-history{margin-left:8px;font-size:11px;padding:0;vertical-align:middle}
.biz-form-grid textarea{width:100%;font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);color:var(--text);resize:vertical}
.biz-form-grid select{font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);color:var(--text);width:100%}
.handover-actions{display:flex;gap:10px;flex-wrap:wrap;white-space:nowrap}
.handover-items{margin:12px 0 0;padding-left:22px}
.handover-item{margin:8px 0;line-height:1.6}
.handover-item label{display:flex;align-items:flex-start;gap:8px;cursor:pointer}
.handover-item input[type=checkbox]{margin-top:4px;flex:none}
.biz-ok{color:var(--ok);font-weight:600}
.biz-warn{color:var(--warn);font-weight:600}
.biz-bad{color:var(--danger);font-weight:600}
.biz-weekly-head{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:12px 4px 16px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.biz-gauge{display:flex;flex-direction:column}
.biz-gauge strong{font-size:30px;font-weight:700;letter-spacing:-1px;line-height:1.1}
.biz-gauge span{font-size:12px;color:var(--muted)}
.biz-weekly-stats{display:flex;gap:22px}
.biz-weekly-stats>div{display:flex;flex-direction:column;align-items:center}
.biz-weekly-stats b{font-size:18px;font-weight:600}
.biz-weekly-stats span{font-size:12px;color:var(--muted)}
.biz-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px 16px;margin-bottom:14px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r)}
.biz-form-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}
.biz-form-grid .biz-wide{grid-column:1/-1}
.biz-form-grid input{font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);color:var(--text);width:100%}
.biz-form-actions{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-end}
@media (max-width:900px){.biz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.biz-form-grid{grid-template-columns:1fr 1fr}}
@media (max-width:639px){.biz-kpis{grid-template-columns:1fr}.biz-form-grid{grid-template-columns:1fr}.biz-bar b{font-size:10px}.biz-bars{gap:6px}.biz-weekly-head{gap:12px}.biz-weekly-stats{gap:14px}}

/* 经营看板：窄屏横向滚动兜底（12 个月柱状图与宽表格不撑破页面） */
.admin-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.admin-tabs::-webkit-scrollbar{display:none}
.admin-tab{flex:0 0 auto;white-space:nowrap}
.biz-bars{overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:thin}
.biz-bar{flex:1 0 46px}
.biz-subhead{margin:20px 0 6px;font-size:12px;font-weight:600;color:var(--muted)}
.biz-chart-sm{margin-top:0}

/* 制度与个人绩效，沿用现有面板和表单层级。 */
.people-intro { margin: 12px 0 24px; max-width: 900px; }
.people-intro h2 { margin: 6px 0 12px; }
.people-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 20px; }
.people-stats>div { background: var(--panel, #fff); border: 1px solid var(--line,#ddd); border-radius: 12px; padding: 18px; display: flex; flex-direction: column; gap: 6px; }
.people-stats strong { font-size: 28px; }.people-stats span { font-size: 13px; }
.people-list article { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid var(--line,#ddd); }
.people-list article>div { min-width:0; overflow-wrap:anywhere; }.people-list article button { flex-shrink:0; }
.people-editor, .people-position, .people-score-item { border-top:1px solid var(--line,#ddd); padding:16px 0; }
.people-editor summary,.people-score-item summary,#peopleTask summary { cursor:pointer; min-height:44px; padding:10px 0; font-weight:600; }
.people-form { display:grid; gap:14px; margin:12px 0; }.people-form label { display:flex; flex-direction:column; gap:6px; }
.people-form input,.people-form select,.people-form textarea { min-width:0; width:100%; box-sizing:border-box; min-height:44px; }
.people-form button { justify-self:start; min-height:44px; }.people-form .grid2 { align-items:end; }
.people-detail { margin-top:20px; border-top:2px solid var(--line,#ddd); padding-top:20px; }
.people-policy-text { white-space:pre-wrap; overflow-wrap:anywhere; max-height:440px; overflow:auto; padding:16px; background:var(--bg,#f5f5f5); font:inherit; line-height:1.8; }
.people-hash { display:block; overflow-wrap:anywhere; }.people-score-item summary span { float:right; margin-left:12px; }
.people-preserve { white-space:pre-wrap; overflow-wrap:anywhere; }.people-score-item p { line-height:1.7; }
#peopleAdmin button,#peopleMine button,#peopleTask button { min-height:44px; }[data-template-detail] { max-height:500px; overflow:auto; margin-top:16px; }
@media(max-width:640px){.people-stats { gap:6px; }.people-stats>div {padding:10px;}.people-stats strong{font-size:23px;}.people-list article{align-items:flex-start;}.people-form .grid2{grid-template-columns:1fr;}.people-score-item summary span{float:none;display:block;margin-left:0;}}

.finance-records { min-width: 980px; }
.finance-records small { display:block; margin-top:6px; color:var(--text-muted,#687182); max-width:240px; overflow-wrap:anywhere; }
.finance-review-row td:last-child { color:var(--warning,#92651a); }
.finance-result-counts { display:flex; gap:12px; flex-wrap:wrap; margin:14px 0; }
.finance-result-counts span { padding:8px 12px; border:1px solid var(--line,#ddd); border-radius:8px; }
.finance-checks { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; }
#financeImportPanel { scroll-margin-top:90px; }
#financeImportPanel button,#financeImportPanel input[type=file] { min-height:44px; }
#financeImportPanel .panel-head { flex-wrap:wrap; }
.finance-source-line {display:block; margin-top:6px; font-size:12px; color:var(--muted,#687182); overflow-wrap:anywhere;}
.finance-reason {display:flex; flex-direction:column; gap:8px; margin:20px 0 12px;}
.finance-history-event {padding:16px 0; border-bottom:1px solid var(--line,#ddd);}
#financeApplyPanel,#financeHistoryPanel {scroll-margin-top:90px;}
#view-finance .toolbar {flex-wrap:wrap;}
#view-finance select,#view-finance button,#view-finance input {min-height:44px;}
#view-finance .page-intro a {padding:12px;white-space:nowrap;}

/* ========== 团队 / 个人承接（目标与 KPI） ========== */
.tier-cell{display:flex;flex-direction:column;gap:3px;min-width:150px;font-size:12px}
.tier-cell .status-chip{align-self:flex-start}
.tier-cell small{line-height:1.35}
.tier-cell .link{align-self:flex-start;font-size:12px}
.tier-alloc-list{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto;padding-right:4px}
.tier-alloc-row{display:grid;grid-template-columns:minmax(96px,1fr) minmax(120px,160px);gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel2)}
.tier-alloc-row input{width:100%;min-height:38px}
.tier-alloc-name{display:flex;flex-direction:column;font-weight:600;font-size:13px;line-height:1.35}
.tier-alloc-name small{font-weight:400}
.tier-alloc-summary{display:flex;gap:16px;flex-wrap:wrap;padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px}
.warn-text{color:var(--warn)}
.tier-todo{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.tier-todo h4{font-size:13px;margin-bottom:8px}
.tier-todo-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:8px;flex-wrap:wrap}
.tier-todo-row strong{display:block;font-size:13px}
.tier-card{border:1px solid var(--line);border-radius:var(--r);padding:14px;background:var(--panel);margin-bottom:12px}
.tier-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.tier-head h4{font-size:14px;margin:6px 0 4px}
.tier-personal{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tier-personal-chip{font-size:12px;padding:3px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand2)}
@media (max-width:640px){
  .tier-alloc-row{grid-template-columns:1fr;gap:6px}
  .tier-alloc-summary{flex-direction:column;gap:4px}
}

/* ========== 公司团队空间 / 个人工作空间 ========== */
.space-switcher{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:4px 0 16px}.space-switch{min-width:0;padding:9px 8px;border:1px solid rgba(148,163,184,.28);border-radius:9px;background:rgba(15,23,42,.28);color:#bac7d8;text-align:left;transition:background .15s,border-color .15s}.space-switch span,.space-switch small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.space-switch span{font-size:11px;font-weight:750}.space-switch small{margin-top:2px;color:#8291a8;font-size:9px}.space-switch:hover{border-color:#7aa2df;color:#fff}.space-switch.active{border-color:#739cff;background:#1e3a70;color:#fff}.space-switch.active small{color:#bfd6ff}.space-switch:disabled{cursor:not-allowed;opacity:.55}.top-space-status{max-width:150px;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.personal-task-list,.foundation-list,.grant-list{display:flex;flex-direction:column;gap:9px}.personal-task,.foundation-record,.grant-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.personal-task-main,.foundation-record>div,.grant-row>div{min-width:0}.personal-task-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.personal-task-title strong,.foundation-record strong,.grant-row strong{font-size:14px}.personal-task p,.foundation-record p{margin:6px 0;color:var(--muted);font-size:13px;white-space:pre-wrap}.personal-task small,.foundation-record small,.grant-row small{display:block;margin-top:4px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.personal-task-actions{display:flex;flex:none;gap:7px;flex-wrap:wrap;justify-content:flex-end}.personal-task.is-done{background:var(--panel2);opacity:.78}.personal-task.is-done .personal-task-title strong{text-decoration:line-through}.personal-archive-toggle{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap}.personal-archive-toggle input{width:18px;height:18px;accent-color:var(--brand)}.foundation-kind{display:inline-flex;margin-right:7px;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:10px;font-weight:800}.scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scope-grid fieldset{min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.scope-grid legend{padding:0 5px;font-size:12px;font-weight:700}.scope-option{display:flex!important;align-items:center;flex-direction:row!important;gap:7px;margin:6px 0!important;font-size:12px!important;font-weight:400!important}.scope-option input{width:17px!important;height:17px!important;min-height:0!important;accent-color:var(--brand)}.grant-row{align-items:center}.grant-row button{flex:none}.top-right{gap:12px}@media (max-width:700px){.space-switcher{grid-template-columns:1fr}.top-space-status{display:none}.personal-task,.foundation-record,.grant-row{align-items:stretch;flex-direction:column}.personal-task-actions{justify-content:flex-start}.scope-grid{grid-template-columns:1fr}.space-switch{padding:8px 10px}.space-switch small{display:none}}

/* ========== 屏幕追溯水印与外部数据接入 ========== */
.session-trace-watermark{position:fixed;inset:0;z-index:1000;width:100vw;height:100vh;pointer-events:none;user-select:none;opacity:.025;mix-blend-mode:multiply}.external-source-list,.external-publication-list{display:flex;flex-direction:column;gap:9px}.external-source-row,.external-publication-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.external-source-row>div:first-child,.external-publication-row>div:first-child{min-width:0}.external-source-row strong,.external-publication-row strong{display:block;font-size:14px}.external-source-row small,.external-publication-row small{display:block;margin-top:4px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.external-publication-row .warn-text{color:var(--warn)}.external-audit{margin-top:8px;font-size:11px;color:var(--muted)}.external-audit summary{cursor:pointer}.external-audit ul{margin:7px 0 0;padding-left:18px}.external-audit li+li{margin-top:4px}.external-row-actions{display:flex;flex:none;flex-wrap:wrap;gap:7px;justify-content:flex-end}.external-editor,.external-batch-detail,.external-publication-detail{margin-top:16px}.external-batch-detail,.external-publication-detail{padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}.external-batch-detail pre{max-height:420px;overflow:auto;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.external-secret{border-color:color-mix(in srgb,var(--warn) 45%,var(--line));background:color-mix(in srgb,var(--warn-soft) 45%,var(--panel))}.external-secret code{display:block;max-width:100%;margin:12px 0;padding:10px;overflow:auto;border-radius:8px;background:var(--panel);word-break:break-all}.external-field-picker{min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.external-field-picker legend{padding:0 5px;font-size:12px;font-weight:700}.external-table-scroll{overflow:auto}.external-table-scroll table{min-width:640px;width:100%;border-collapse:collapse}.external-table-scroll th,.external-table-scroll td{padding:10px;border:1px solid var(--line);font-size:12px;text-align:left;vertical-align:top;overflow-wrap:anywhere}.external-table-scroll th{background:var(--panel2)}.face-reserve-card{border-style:dashed}.face-reserve-card button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:700px){.external-source-row,.external-publication-row{align-items:stretch;flex-direction:column}.external-row-actions{justify-content:flex-start}.session-trace-watermark{opacity:.02}}
.nav .personal-space-nav{display:none}
body[data-work-space="personal"] .nav .nav-item:not(.personal-space-nav){display:none!important}
body[data-work-space="personal"] .nav .personal-space-nav{display:flex}

.personal-office-draft{display:flex;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.personal-office-draft>div{min-width:0}.personal-office-draft strong{display:block;font-size:14px}.personal-office-draft small{display:block;color:var(--muted);font-size:11px;line-height:1.5}.personal-office-drafts{margin-top:16px}@media (max-width:700px){.personal-office-draft{align-items:stretch;flex-direction:column}}
.personal-office-form-filter{display:flex;gap:8px;margin:12px 0}.personal-office-form-filter input,.personal-office-form-filter select{min-height:40px}.personal-office-form-filter input{min-width:0;flex:1}.personal-office-checklist,.personal-office-readonly{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:13px;line-height:1.6}.personal-office-checklist ul,.personal-office-readonly ul{margin:7px 0 0;padding-left:20px}.personal-office-readonly h4{margin:0 0 6px}.personal-office-readonly p{white-space:pre-wrap}@media (max-width:700px){.personal-office-form-filter{flex-direction:column}.personal-office-form-filter input,.personal-office-form-filter select{width:100%}}

/* ========== 部门看板 ========== */
.department-legacy{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.department-legacy summary{cursor:pointer;font-size:12px;font-weight:700}.department-legacy article{padding:8px 0;border-top:1px solid var(--line)}.department-legacy strong,.department-legacy small{display:block;font-size:12px}.department-legacy small,.department-adopt-detail{color:var(--muted);font-size:11px;line-height:1.5}.department-adopt-detail{margin:8px 0;padding:8px;border:1px solid var(--line);border-radius:7px}.department-publish-adopt{padding:9px;border:1px solid color-mix(in srgb,var(--warn) 42%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--warn) 8%,var(--panel))}.department-publish-adopt input{width:auto;min-height:0;margin-right:6px}.department-worklist article{display:flex;justify-content:space-between;gap:10px;align-items:center}.department-worklist article button{flex:none}@media (max-width:700px){.department-worklist article{align-items:stretch;flex-direction:column}}
.department-dashboard-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.department-dashboard-controls label{margin:0;font-size:12px;font-weight:700}.department-dashboard-controls select,.department-dashboard-controls input{display:block;min-height:40px;margin-top:5px}.department-widget-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:14px 0}.department-widget{padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.department-widget span,.department-widget small{display:block;color:var(--muted);font-size:11px;line-height:1.5}.department-widget strong{display:block;margin:4px 0;font-size:21px;overflow-wrap:anywhere}.department-panel{margin-top:14px}.department-task-list,.department-kpi-list,.department-worklist{display:flex;flex-direction:column;gap:9px}.department-task-list article,.department-worklist article{padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.department-task-list strong,.department-worklist strong{display:block;font-size:13px}.department-task-list small,.department-worklist small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.department-focus-list{margin:8px 0 0;padding-left:20px;line-height:1.75}.department-kpi-card{padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.department-kpi-head{display:flex;justify-content:space-between;gap:12px}.department-kpi-head h4{margin:5px 0;font-size:15px}.department-kpi-head small{display:block;color:var(--muted);font-size:11px;line-height:1.5}.department-kpi-status{display:inline-flex;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:10px;font-weight:800}.department-kpi-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.department-kpi-card dl>div{min-width:0;padding:9px;border-radius:8px;background:var(--panel2)}.department-kpi-card dt{color:var(--muted);font-size:10px}.department-kpi-card dd{margin:3px 0 0;font-size:14px;font-weight:750;overflow-wrap:anywhere}.department-kpi-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.department-kpi-editor{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.department-kpi-editor form{display:flex;flex-direction:column;gap:10px}.department-kpi-editor label{font-size:12px;font-weight:700}.department-kpi-editor input,.department-kpi-editor select{width:100%;min-height:40px;margin-top:5px}.department-adopt-existing{padding:10px;border:1px solid color-mix(in srgb,var(--warn) 42%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--warn) 8%,var(--panel))}.department-adopt-existing input{width:auto;min-height:0;margin-right:6px}.department-worklist{margin-top:10px}@media (max-width:700px){.department-dashboard-controls{align-items:stretch;flex-direction:column}.department-dashboard-controls select,.department-dashboard-controls input{width:100%}.department-kpi-card dl{grid-template-columns:1fr}.department-kpi-head{flex-direction:column}}

/* ========== 个人办事中心 ========== */
.personal-office{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}.personal-office-welcome{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.personal-office-welcome h1{margin:2px 0 5px;font-size:25px}.personal-office-welcome p{margin:0;max-width:690px;line-height:1.6}.personal-office-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.personal-office-cards article{padding:13px 15px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.personal-office-cards span,.personal-office-cards small{display:block;color:var(--muted);font-size:11px}.personal-office-cards strong{display:block;margin:3px 0;font-size:22px}.personal-office-tabs{display:flex;gap:7px;overflow:auto;border-bottom:1px solid var(--line);padding-bottom:8px}.personal-office-tabs button{min-height:38px;white-space:nowrap;padding:7px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-weight:700}.personal-office-tabs button.active{border-color:color-mix(in srgb,var(--brand) 35%,var(--line));background:var(--brand-soft);color:var(--brand2)}.personal-office-panel{min-width:0}.personal-office-note,.personal-office-intro{padding:13px 15px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);line-height:1.65}.personal-office-intro h2{margin:0 0 5px;font-size:17px}.personal-office-intro p{margin:0;color:var(--muted);font-size:13px}.personal-office-form-list,.personal-office-application-list{display:flex;flex-direction:column;gap:9px;margin-top:12px}.personal-office-form-card,.personal-office-application{display:flex;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.personal-office-form-card>div:first-child,.personal-office-application>div{min-width:0}.personal-office-form-card h3{margin:5px 0;font-size:15px}.personal-office-form-card p{margin:0 0 5px;color:var(--muted);font-size:13px;line-height:1.55}.personal-office-form-card small,.personal-office-application small{display:block;color:var(--muted);font-size:11px;line-height:1.5}.personal-office-kind{display:inline-flex;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:10px;font-weight:800}.personal-office-actions,.personal-office-form-actions,.personal-office-sync{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.personal-office-actions{flex:none;align-self:center}.personal-office-actions a{display:inline-flex;align-items:center;text-decoration:none}.personal-office-fieldset{min-width:0;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.personal-office-fieldset legend{padding:0 5px;font-size:13px;font-weight:750}.personal-office-fieldset>p{margin:0 0 9px;color:var(--muted);font-size:12px;line-height:1.55}.personal-office-row{display:grid;grid-template-columns:130px minmax(110px,1fr) 110px minmax(160px,2fr) auto;gap:8px;align-items:end;margin:8px 0}.personal-office-link-row{grid-template-columns:minmax(120px,1fr) minmax(190px,2fr) auto}.personal-office-row label{margin:0!important;font-size:11px!important}.personal-office-row input{width:100%;min-height:38px}.personal-office-total{margin:10px 0 0!important;color:var(--text)!important}.personal-office-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.personal-office-profile-grid .panel{margin:0}.personal-office-profile-grid h3{margin-top:0;font-size:14px}.personal-office-profile-grid p{font-size:13px;line-height:1.6}.personal-office-profile-grid dl{display:grid;grid-template-columns:70px 1fr;gap:6px;margin:0;font-size:13px}.personal-office-profile-grid dt{color:var(--muted)}.personal-office-profile-grid dd{margin:0;overflow-wrap:anywhere}.personal-office-application{align-items:center}.personal-office-application strong{display:block;font-size:14px}.personal-office-sync{margin:12px 0}.personal-office-sync label{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;font-weight:700}.personal-office-sync select{min-height:40px;max-width:260px}@media (max-width:700px){.personal-office-welcome,.personal-office-form-card,.personal-office-application{align-items:stretch;flex-direction:column}.personal-office-welcome .primary{width:100%}.personal-office-cards,.personal-office-profile-grid{grid-template-columns:1fr}.personal-office-row,.personal-office-link-row{grid-template-columns:1fr}.personal-office-row .ghost{justify-self:start}.personal-office-actions{justify-content:flex-start}.personal-office-sync{align-items:stretch;flex-direction:column}.personal-office-sync label{align-items:stretch;flex-direction:column}.personal-office-sync select{max-width:none}.personal-office-sync button{width:100%}}

/* Personal office: readable labels and touch-sized controls. */
.personal-office small,.personal-office-kind,.personal-office-row label{font-size:12px!important}.personal-office input,.personal-office select,.personal-office button,.personal-office-actions a{min-height:44px}.personal-office-cards article{min-width:0}.personal-office-cards small{overflow-wrap:anywhere}@media(max-width:700px){.personal-office-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.personal-office-cards article{padding:10px}.personal-office-cards strong{font-size:23px}}

/* Browser annotation frontend: personal navigation, sync progress, pickers and automation defaults. */
body:not([data-work-space="personal"]) .nav .personal-space-nav{display:none}
.page-intro-actions{display:flex;flex-wrap:wrap;gap:8px}
.personal-office-sync-all{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}
.personal-office-sync-progress{display:grid;gap:7px}
.personal-office-sync-progress small{margin:0;color:var(--text);line-height:1.55}
.personal-office-sync-errors{display:grid;gap:5px;margin:9px 0 0;padding:0;list-style:none}
.personal-office-sync-errors li{display:flex;flex-wrap:wrap;gap:5px;color:var(--danger);font-size:12px}
.kj-multi-picker{min-width:0}
.kj-multi-picker input[type=search]{width:100%;min-height:40px}
.kj-multi-selected{display:flex;min-height:34px;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}
.kj-multi-selected small{color:var(--muted);font-size:12px}
.member-chip{display:inline-flex;min-height:30px;align-items:center;gap:5px;padding:3px 8px;border:1px solid color-mix(in srgb,var(--brand) 34%,var(--line));border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:12px;font-weight:700}
.kj-multi-options{display:grid;max-height:190px;overflow:auto;gap:4px;margin-top:8px;padding:6px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.kj-multi-option{display:flex;min-height:42px;align-items:center;gap:9px;margin:0;padding:0 9px;border-radius:8px;font-size:12px;color:var(--text);cursor:pointer}
.kj-multi-option:hover{background:var(--brand-soft)}
.kj-multi-option input{width:18px;height:18px;flex:none;accent-color:var(--brand)}
.kj-multi-option.is-disabled{cursor:not-allowed;opacity:.68}
.form .kj-multi-option{flex-direction:row;justify-content:flex-start;align-items:center;color:var(--text);font-size:13px;text-align:left}
.kj-multi-option[hidden]{display:none!important}
.form .kj-multi-option input{width:18px;min-height:18px;height:18px;flex:none;margin:0}
.automation-defaults{grid-column:1/-1;margin-bottom:2px}
.automation-template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.automation-template{display:flex;min-width:0;flex-direction:column;gap:8px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.automation-template strong{font-size:12px;line-height:1.45}
.automation-template .automation-flow span{padding:5px 6px;font-size:10px}
.automation-template+.status-chip{align-self:flex-start}
.grant-editor-grid{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.grant-editor-section{min-width:0;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
.grant-editor-section legend{padding:0 5px;color:var(--muted);font-size:12px;font-weight:750}
.grant-department-picker input[type=search]{width:100%;min-height:40px;margin-bottom:7px}
.grant-editor-wide,.grant-editor-actions{grid-column:1/-1}
.grant-editor-actions{display:flex;flex-wrap:wrap;gap:8px}
[data-grant-form].inline-editor{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px}
[data-grant-form].inline-editor>fieldset{grid-column:1/-1}
[data-grant-form].inline-editor .scope-grid{grid-column:1/-1}
[data-grant-form] .scope-grid>fieldset{grid-column:auto}
[data-grant-form] .scope-option{min-height:36px;padding:4px 7px;border-radius:7px}
[data-grant-form] .scope-option:has(input:checked){background:var(--brand-soft);color:var(--brand2)}
.grant-department-picker .kj-multi-options{grid-template-columns:repeat(2,minmax(0,1fr));background:var(--panel)}
[data-grant-form].inline-editor .scope-grid .grant-scope-choice{border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
[data-grant-form].inline-editor .toggle-row{min-height:44px}
@media(max-width:900px){.automation-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.grant-editor-grid{grid-template-columns:1fr}.personal-office-sync-all button{width:100%}.kj-multi-picker~button{width:100%}}
@media(max-width:520px){.automation-template-grid{grid-template-columns:1fr}}

/* ========== 内部讨论与匿名投诉 ========== */
.internal-discussion{display:flex;flex-direction:column;gap:14px;min-width:0}.discussion-heading{padding:4px 0}.discussion-heading h1{margin:3px 0 6px;font-size:25px}.discussion-heading p{max-width:760px;margin:0;color:var(--muted);line-height:1.65}.discussion-tabs{display:flex;gap:7px;overflow:auto;border-bottom:1px solid var(--line);padding-bottom:8px}.discussion-tabs button{min-height:40px;white-space:nowrap;padding:8px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-weight:700}.discussion-tabs button.active{border-color:color-mix(in srgb,var(--brand) 35%,var(--line));background:var(--brand-soft);color:var(--brand2)}.discussion-post,.complaint-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:15px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.discussion-list,.complaint-list{display:flex;flex-direction:column;gap:9px;margin-top:14px}.discussion-post-copy,.complaint-row>div{min-width:0}.discussion-post h2{margin:5px 0;font-size:16px}.discussion-post p,.discussion-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.discussion-post-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px}.discussion-author{font-weight:750;color:var(--text)}.discussion-anonymous{padding:2px 6px;border-radius:99px;background:var(--brand-soft);color:var(--brand2);font-weight:700}.discussion-post-actions{display:flex;gap:7px;flex:none;flex-wrap:wrap}.discussion-composer,.complaint-composer,.discussion-detail,.complaint-detail{margin-top:14px}.discussion-composer form,.complaint-composer form,.discussion-detail form,.complaint-detail form{display:grid;gap:12px}.discussion-composer label,.complaint-composer label,.discussion-detail label,.complaint-detail label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}.discussion-composer input,.discussion-composer textarea,.complaint-composer input,.complaint-composer textarea,.complaint-composer select,.discussion-detail textarea,.complaint-detail textarea,.complaint-detail select{width:100%;box-sizing:border-box;min-height:42px;font:inherit}.discussion-toggle{flex-direction:row!important;align-items:center;gap:8px!important;font-weight:500!important}.discussion-toggle input{width:18px!important;min-height:18px!important;accent-color:var(--brand)}.discussion-readonly,.discussion-note{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--muted);line-height:1.6}.discussion-comments,.complaint-replies{margin-top:18px}.discussion-comments h3,.complaint-replies h3{margin:0 0 10px;font-size:15px}.discussion-comment{padding:12px 0;border-top:1px solid var(--line)}.discussion-comment>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.discussion-comment small,.complaint-row small{display:block;color:var(--muted);font-size:12px}.discussion-comment p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.complaint-row strong{display:block;margin:5px 0}.complaint-row .status-chip{display:inline-flex}.complaint-composer [name="recipient_query"]{max-width:380px}@media(max-width:700px){.discussion-post,.complaint-row{align-items:stretch;flex-direction:column}.discussion-post-actions{justify-content:flex-start}.discussion-heading h1{font-size:23px}.discussion-composer,.complaint-composer{padding:14px}.discussion-tabs button{min-height:44px}.discussion-post-actions button,.complaint-row button{min-height:44px}}

@media(max-width:520px){.grant-department-picker .kj-multi-options{grid-template-columns:1fr}}

/* 批量导入与外部字段编辑：窄屏局部滚动，表单保持可读。 */
.bulk-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.bulk-mapping{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bulk-mapping label{min-width:0}.external-schema-row{display:grid;grid-template-columns:minmax(140px,2fr) minmax(110px,1fr) auto auto;gap:10px;align-items:end;margin:10px 0}.external-schema-row .schema-required{display:flex;flex-direction:row;align-items:center;gap:6px;padding:10px 0}.external-schema-row input[type=checkbox]{width:18px;height:18px}.external-schema-row button{margin-bottom:2px}.external-rules pre{overflow:auto;white-space:pre;max-width:100%;font-size:12px}.external-rules{min-width:0}.bulk-mapping~button{justify-self:start}@media(max-width:520px){.bulk-mapping{grid-template-columns:1fr}.external-schema-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.external-schema-row .schema-required{grid-column:1}}

#dingCardUsers[hidden]{display:none!important}

.form.inline-editor.bulk-editor{display:flex;flex-direction:column;align-items:stretch;gap:16px;min-width:0}.bulk-editor>form,.bulk-editor>div{min-width:0}.bulk-editor .bulk-actions{display:flex;flex-direction:row;align-items:center}.bulk-editor h3,.bulk-editor h4{margin:0}.bulk-editor td{min-width:64px}.bulk-editor td:last-child{min-width:360px}.bulk-editor .external-table-scroll{max-height:420px}.bulk-actions{flex-shrink:0}
.bulk-row-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:0}.bulk-row-summary>div{min-width:0}.bulk-row-summary dt{color:var(--muted);font-size:11px}.bulk-row-summary dd{margin:2px 0 0;font-size:13px;font-weight:600}
.bulk-guide{display:grid;gap:8px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--brand-soft) 34%,var(--panel));font-size:12px;line-height:1.55}.bulk-guide p{margin:0}.bulk-guide details{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.bulk-guide summary{padding:8px 10px;cursor:pointer;font-weight:700;color:var(--brand2)}.bulk-guide pre{max-width:100%;margin:0;padding:9px 10px;overflow:auto;border-top:1px solid var(--line);background:var(--panel2);font-size:11px;line-height:1.5;white-space:pre}.bulk-guide code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* 基础资料编辑器：字段分组自成行，避免通用 inline-editor 横向列规则挤压。 */
#enterpriseFoundation .form.inline-editor.foundation-editor{display:flex;flex-direction:column;align-items:stretch;gap:16px;min-width:0;width:100%;box-sizing:border-box}
#enterpriseFoundation .foundation-editor>*{min-width:0;max-width:100%;box-sizing:border-box}
#enterpriseFoundation .foundation-editor>[hidden],#enterpriseFoundation .foundation-editor input[type=hidden]{display:none!important}
#enterpriseFoundation .foundation-editor .grid2,#enterpriseFoundation .foundation-editor .grant-editor-grid,#enterpriseFoundation .foundation-editor .scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;min-width:0;align-items:start}
#enterpriseFoundation .foundation-editor label{min-width:0;word-break:normal;overflow-wrap:break-word}
#enterpriseFoundation .foundation-editor input,#enterpriseFoundation .foundation-editor select,#enterpriseFoundation .foundation-editor textarea{max-width:100%;box-sizing:border-box}
.foundation-fieldset{min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.foundation-fieldset legend{padding:0 7px;color:var(--text);font-size:14px;font-weight:700}
.foundation-field-wide{grid-column:1/-1}.foundation-editor-actions{display:flex;gap:10px;flex-wrap:wrap}.foundation-editor-actions button{min-height:44px}
.foundation-editor-actions [data-foundation-form-feedback],.grant-editor-actions [data-foundation-form-feedback]{width:100%;margin:0}.template-historical-assignee{margin:8px 0 0;padding:8px 10px;border-left:3px solid var(--warn);border-radius:0 7px 7px 0;background:var(--warn-soft);line-height:1.55}
.foundation-editor .editor-intro h3{margin:0 0 6px}.foundation-editor .editor-intro p{margin:0;line-height:1.6}
.foundation-platform{display:inline-flex;padding:2px 7px;border-radius:5px;background:var(--panel2);color:var(--brand2);font-size:11px;margin-right:7px}
.foundation-default{display:inline-flex;margin-left:6px;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand2);font-size:11px;font-weight:750;vertical-align:middle}
.entity-preference-list{display:flex;flex-direction:column;gap:8px}.entity-preference-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.entity-preferences-editor .entity-preference-row>label{display:flex;flex-direction:row;min-width:0;align-items:center;gap:7px;margin:0!important;font-size:13px!important}.entity-preference-row input{width:18px;height:18px;min-height:18px;accent-color:var(--brand)}.entity-preference-row>div{display:flex;gap:7px;flex-wrap:wrap}.entity-preference-row button{min-height:38px}.entity-preferences-editor .entity-preference-none{display:flex!important;flex-direction:row;align-items:center;gap:7px;margin-top:10px!important;font-size:13px!important}.entity-preference-none input{width:18px;height:18px;min-height:18px;accent-color:var(--brand)}
#grantEditor .grant-editor .scope-grid>fieldset{min-width:0;width:100%;box-sizing:border-box}
#grantEditor .grant-editor .toggle-row{display:flex;flex-direction:row;align-items:center;gap:8px;line-height:1.6}
#grantEditor .grant-editor .toggle-row input{flex:0 0 18px;width:18px;height:18px;min-height:0}
@media(max-width:700px){#enterpriseFoundation .foundation-editor .grid2,#enterpriseFoundation .foundation-editor .grant-editor-grid,#enterpriseFoundation .foundation-editor .scope-grid{grid-template-columns:minmax(0,1fr)}.foundation-fieldset{padding:12px}}
@media(max-width:520px){.entity-preference-row{align-items:stretch;flex-direction:column}.entity-preference-row>div{width:100%}.entity-preference-row button{flex:1;min-height:44px}}

/* Inline entity editors open directly under the selected record. */
#entityEditor{scroll-margin-top:100px;min-width:0}
#entityEditor .editor-intro h3:focus-visible{outline:2px solid var(--brand);outline-offset:4px}

.foundation-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.foundation-subnav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);text-decoration:none;font-weight:650}.foundation-subnav a[aria-current=page]{color:var(--brand2);background:var(--brand-soft);border-color:var(--brand)}#enterpriseFoundationPanels>section[hidden]{display:none}

/* Navigation remains available when the role-home feature is disabled. */
#page-tabs:not(.hidden){display:flex}

.cw-tab[aria-current="page"]{color:var(--brand2);background:var(--brand-soft);border-color:var(--brand)}

.template-c02-fields{display:flex;flex-direction:column;gap:12px;min-width:0;margin:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.template-c02-fields legend{padding:0 5px;font-size:13px;font-weight:700}.template-c02-fields textarea{min-height:84px;resize:vertical}

/* C-02 task-level summary stays inside the existing task list. */
.c02-weekly-summary{margin:-4px 0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.c02-weekly-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.c02-weekly-head strong,.c02-weekly-head small{display:block}.c02-weekly-head small{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.5}.c02-weekly-head label{display:grid;gap:4px;flex:none;color:var(--muted);font-size:11px}.c02-weekly-head input{min-height:38px}
.c02-weekly-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.c02-weekly-person{display:grid;grid-template-columns:auto auto;gap:2px 6px;min-width:132px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);font-size:12px}.c02-weekly-person b{justify-self:end}.c02-weekly-person small{grid-column:1/-1;color:var(--muted);font-size:11px}.c02-weekly-person.over{border-color:var(--warn);background:var(--warn-soft)}.c02-weekly-person.under{border-style:dashed}
.c02-detail-classification{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.c02-criteria{white-space:pre-wrap;overflow-wrap:anywhere}
@media (max-width:560px){.c02-weekly-head{flex-direction:column}.c02-weekly-head label,.c02-weekly-head input{width:100%}}
