/* =========================================================
   jiil.work UI 修改（2026-09-24）
   1. 摘要區（待安排／遇到問題／待驗收）可伸縮＋毛玻璃卡片
   2. 階段名稱框改成網站的毛玻璃膠囊風格
   3. 連接圓點 16px → 10px
   依賴既有 class：.route-summary、#routeLanes、.stage-header、
   .stage-name、.stage-grip、.route-port
   ========================================================= */

/* ---------- 1. 摘要區可伸縮 ---------- */
.route-summary { align-items: start; }

.route-summary > section {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 8px;
  background: linear-gradient(145deg, rgba(245, 248, 253, .87), rgba(228, 234, 245, .72));
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 15px;
  box-shadow:
    rgba(42, 60, 100, .08) 0 6px 18px,
    rgba(255, 255, 255, .8) 0 1px 0 inset,
    rgba(92, 112, 150, .14) 0 0 0 1px;
}
.route-summary > section > h3 { margin: 0; grid-column: 1; }
.route-summary > section > :not(h3):not(.jw-toggle) { grid-column: 1 / -1; }
.route-summary > section > :nth-child(3) { margin-top: 8px; }

/* 收起時：只留標題列 */
.route-summary > section:not(.jw-open) > :not(h3):not(.jw-toggle) { display: none; }

.route-summary > section > button.jw-toggle {
  grid-column: 2;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  width: auto;
  min-height: 0;
  height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  color: rgb(96, 69, 221);
  background:
    radial-gradient(at 18% 7%, #fff, transparent 52%),
    linear-gradient(135deg, #fff, rgba(247, 248, 252, .9));
  border: 1px solid rgba(184, 194, 211, .58);
  box-shadow: rgba(255, 255, 255, .9) 0 1px 0 inset, rgba(42, 60, 100, .1) 0 3px 8px;
  cursor: pointer;
}
.route-summary > section > button.jw-toggle:hover { border-color: rgba(147, 133, 255, .55); }
.route-summary > section > button.jw-toggle:focus-visible {
  outline: none;
  box-shadow: rgba(96, 69, 221, .22) 0 0 0 3px;
}
.route-summary .jw-chev { display: inline-block; transition: transform .2s; }
.route-summary > section.jw-open .jw-chev { transform: rotate(180deg); }

/* ---------- 2. 階段名稱框 ---------- */
#routeLanes .stage-header {
  background: transparent !important;
  box-shadow: none !important;
}
#routeLanes .stage-name {
  color: rgb(32, 43, 64);
  font-weight: 800;
  letter-spacing: .04em;
  border: 1px solid rgba(184, 194, 211, .58);
  border-radius: 15px;
  background:
    radial-gradient(at 18% 7%, #fff, transparent 52%),
    radial-gradient(at 88% 92%, rgba(206, 159, 255, .16), transparent 62%),
    linear-gradient(135deg, rgba(255, 255, 255, .95), rgba(240, 243, 250, .85));
  box-shadow:
    rgba(255, 255, 255, .9) 0 1px 0 inset,
    rgba(42, 60, 100, .12) 0 5px 14px,
    rgba(92, 112, 150, .1) 0 0 0 1px;
  outline: none;
  transition: box-shadow .15s, border-color .15s;
}
#routeLanes .stage-name:hover { border-color: rgba(147, 133, 255, .55); }
#routeLanes .stage-name:focus {
  border-color: rgb(147, 133, 255);
  box-shadow:
    rgba(255, 255, 255, .9) 0 1px 0 inset,
    rgba(96, 69, 221, .22) 0 0 0 3px,
    rgba(96, 69, 221, .18) 0 6px 16px;
}
#routeLanes .stage-grip { color: rgba(92, 112, 150, .7); }

/* ---------- 3. 連接圓點 10px（外圈 30px 點擊範圍不變） ---------- */
#routeLanes .route-port::after {
  width: 10px;
  height: 10px;
}

/* 白色外圈縮成 12px：按鈕本身透明、維持 30px 點擊範圍，
   改由 ::before 畫出看得到的白圈（紫點 ::after 疊在上面） */
#routeLanes .route-controls .route-port {
  background: transparent;
  border: 0;
  box-shadow: none;
}
#routeLanes .route-port::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 12px;
  transform: translate(-50%, -50%);
  box-sizing: border-box;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgb(185, 190, 209);
  pointer-events: none;
}
#routeLanes .route-controls .route-port.selected::before {
  background: rgb(73, 55, 174);
}

@media (prefers-reduced-motion: reduce) {
  .route-summary .jw-chev { transition: none; }
}

/* ---------- 4. 圖片設定視窗：內容可捲動，按鈕固定在底部 ----------
   #identityForm 沒有 .dialog-shell 外框，原本整個表單被裁切，
   「儲存圖片」按鈕會掉到視窗外面看不到。 */
#identityDialog > #identityForm {
  display: flex;
  flex-direction: column;
  max-height: inherit;
  min-height: 0;
}
#identityForm > .dialog-head { flex: 0 0 auto; }
#identityForm > .dialog-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
#identityForm > .dialog-foot {
  flex: 0 0 auto;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 24px;
  background: linear-gradient(135deg, rgba(245, 248, 253, .78), rgba(221, 230, 243, .7));
  border-top: 1px solid rgba(255, 255, 255, .74);
}

/* ---------- 4. 多 AI（Codex / Claude / Grok）與帳號池（2026-09-25） ---------- */
.ai-pool {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0 0 12px;
}
.ai-pool[hidden] { display: none; }
.ai-pool-bridge,
.ai-pool-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 11px;
  border-radius: 999px;
  font-size: 12px;
  color: #3a4560;
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(92, 112, 150, .18);
}
.ai-pool-chip b { font-weight: 600; color: #1f2a44; }
.ai-pool-bridge::before,
.ai-pool-chip::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #1e8a5a;
}
.ai-pool-bridge[data-online="false"]::before { background: #d63b30; }
.ai-pool-chip[data-state="running"]::before { background: #6a5ae0; }
.ai-pool-chip[data-state="rate_limited"] { color: #b3261e; background: #fdeeed; border-color: #f6c9c5; }
.ai-pool-chip[data-state="rate_limited"]::before,
.ai-pool-chip[data-state="disabled"]::before { background: #d63b30; }
.ai-pool-chip[data-state="disabled"] { color: #8a4b12; background: #fff4e8; border-color: #f7d7b5; }

.ai-agent-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 11px;
  color: #4b3fb8;
  background: #eeebfc;
}
.ai-agent-badge[data-agent="codex"] { color: #1e7a52; background: #e4f5ec; }
.ai-agent-badge[data-agent="claude"] { color: #9a4526; background: #f8e9e2; }
.ai-agent-badge[data-agent="grok"] { color: #2a3350; background: #e8ebf2; }

.agent-picker { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }

/* Multi-AI pipeline: step list and approvals in the task dialog */
.ai-agent-badge[data-agent="auto"] { color: #4b3fb8; background: #eeebfc; }
.ai-step-count { font-size: 11px; font-weight: 600; color: #4b3fb8; background: #f4f2fe; border: 1px solid #ddd7fb; border-radius: 6px; padding: 1px 7px; }
.ai-pipeline { display: grid; gap: 10px; margin: 10px 0; padding: 14px; border: 1px solid #ddd7fb; border-radius: 12px; background: #faf9ff; }
.ai-pipeline[hidden] { display: none; }
.ai-pipeline-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; }
.ai-pipeline-head strong { color: #3d3399; font-size: 14px; }
.ai-pipeline-head span { color: #2b2b3a; }
.ai-pipeline-head small { color: #6b6b85; margin-left: auto; }
.ai-pipeline-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ai-pipeline-steps li { padding: 9px 11px; border-radius: 10px; background: #fff; border: 1px solid #ebe8f8; border-left: 3px solid #cfc8f5; display: grid; gap: 4px; }
.ai-pipeline-steps li[data-status="done"] { border-left-color: #1e8a5a; }
.ai-pipeline-steps li[data-status="running"] { border-left-color: #6a5ae0; }
.ai-pipeline-steps li[data-status="review"], .ai-pipeline-steps li[data-status="blocked"] { border-left-color: #e08a1e; background: #fffaf2; }
.ai-pipeline-steps li[data-status="failed"] { border-left-color: #d63b30; }
.ai-pipeline-steps li p { margin: 0; color: #3a3a4d; font-size: 13px; }
.ai-pipeline-steps li small { color: #6b6b85; font-size: 12px; overflow-wrap: anywhere; }
.ai-pipeline-step-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ai-pipeline-step-top b { font-size: 13px; color: #2b2b3a; margin-right: 2px; }
.ai-step-review, .ai-step-status { font-size: 11px; padding: 1px 7px; border-radius: 6px; background: #f1f0f6; color: #55556b; }
.ai-step-review[data-review="human"] { background: #fff1e0; color: #9a5a0f; }
.ai-step-review[data-review="sample"] { background: #eef3ff; color: #2f4f9a; }
.ai-step-status { margin-left: auto; }
.ai-pipeline-decision { display: grid; gap: 6px; padding: 12px; border-radius: 10px; background: #fff; border: 1px solid #cfc8f5; }
.ai-pipeline-decision strong { color: #3d3399; }
.ai-pipeline-decision p { margin: 0; font-size: 13px; color: #4a4a5e; }
.ai-pipeline-decision label { font-size: 12px; color: #6b6b85; }
.ai-pipeline-decision textarea { min-height: 64px; }
.ai-pipeline-decision .dialog-actions { justify-content: flex-end; }

/* Work route: "add stage" and "show completed" stay stacked beside the last stage */
#routeLanes .route-extra-actions { display: flex; flex-direction: column; gap: 10px; flex: 0 0 auto; align-self: flex-start; position: relative; z-index: 3; }
#routeLanes .route-extra-actions .btn { white-space: nowrap; }
#routeLanes #toggleRouteDone[aria-pressed="true"] { color: #4b3fb8; background: #eeebfc; border-color: #ddd7fb; }

/* ===== Sidebar: AI 工作流 on top, collapsible menus, collapsible sidebar ===== */
.sidebar .brand{position:relative}
.sidebar-collapse{position:absolute;top:6px;right:0;width:32px;height:32px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:inherit;font-size:15px;cursor:pointer;display:grid;place-items:center}
.sidebar-collapse:hover{background:rgba(255,255,255,.16)}
.sidebar-collapse:focus-visible,.side-group-toggle:focus-visible{outline:3px solid #8f7cf5;outline-offset:2px}
.side-link-row{position:relative}
.side-link-row>.page-heading{padding-right:44px}
.side-group-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:10px;border:0;background:rgba(255,255,255,.1);color:inherit;cursor:pointer;font-size:13px;transition:transform .2s}
.side-group-toggle[aria-expanded="false"]{transform:translateY(-50%) rotate(-90deg)}
#aiWorkflowPageLink{position:relative}
.nav-ai-attention{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#fff;color:#4b3fb8;font-size:12px;font-weight:700;display:inline-grid;place-items:center}
@media(min-width:901px){
  body.sidebar-collapsed .app{grid-template-columns:88px minmax(0,1fr)!important} /* 收合側邊欄寬 72px（欄寬 88px − 外距 16px） */
  body.sidebar-collapsed .sidebar{padding-inline:10px;overflow-x:hidden}
  body.sidebar-collapsed .sidebar .navigation-copy,body.sidebar-collapsed .sidebar .profile-copy,body.sidebar-collapsed .sidebar #boardNav,body.sidebar-collapsed .sidebar .side-group-toggle,body.sidebar-collapsed .sidebar #projectEntries,body.sidebar-collapsed .sidebar .project-list-arrow,body.sidebar-collapsed .sidebar #planningProjects,body.sidebar-collapsed .sidebar .people-heading,body.sidebar-collapsed .sidebar #peopleList,body.sidebar-collapsed .sidebar #addCollaboratorSide,body.sidebar-collapsed .sidebar .side-foot,body.sidebar-collapsed .sidebar .nav-ai-attention{display:none!important}
  body.sidebar-collapsed .sidebar .page-heading{justify-content:center;padding-inline:6px}
  body.sidebar-collapsed .sidebar .side-link-row>.page-heading{padding-right:6px}
  body.sidebar-collapsed .sidebar .brand{display:flex;flex-direction:column;align-items:center;gap:8px}
  body.sidebar-collapsed .sidebar-collapse{position:static}
}

/* ===== AI 工作流 ===== */
.aiw-conns{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}
.aiw-conns[hidden]{display:none!important}
.aiw-pc,.aiw-conn{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#fff;border:1px solid #e3e1f3;font-size:12.5px;white-space:nowrap;color:#222841}
.aiw-pc{padding:5px 10px}
.aiw-conn{padding:4px 10px 4px 4px;min-height:34px;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.aiw-conn:hover{border-color:#7467e9;box-shadow:0 4px 12px rgba(106,90,224,.16)}
.aiw-conn:focus-visible{outline:3px solid #7467e9;outline-offset:2px}
.aiw-conn img,.aiw-conn .aiw-mono{width:24px;height:24px;border-radius:50%;object-fit:cover}
.aiw-conn small{color:#606a83;font-size:11px}
.aiw-light{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none;background:#1e9e63}
[data-light="ok"]>.aiw-light,.aiw-light[data-light="ok"]{background:#1e9e63;box-shadow:0 0 0 3px rgba(30,158,99,.18)}
[data-light="low"]>.aiw-light,.aiw-light[data-light="low"]{background:#e0a100;box-shadow:0 0 0 3px rgba(224,161,0,.2)}
[data-light="off"]>.aiw-light,.aiw-light[data-light="off"]{background:#d63b30;box-shadow:0 0 0 3px rgba(214,59,48,.18)}
.aiw-legend{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#606a83;margin-left:4px;white-space:nowrap}
.aiw-legend .aiw-light{width:7px;height:7px;box-shadow:none!important;margin-left:4px}
.aiw-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0}
.aiw-stat{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid rgba(221,215,251,.9);box-shadow:0 6px 18px rgba(84,72,180,.06)}
.aiw-stat img{width:34px;height:34px;object-fit:contain;flex:none}
.aiw-stat small{display:block;color:#606a83;font-size:12px}.aiw-stat b{font-size:21px;color:#222841}
.aiw-layout{--aiw-detail:clamp(330px,30vw,420px);display:grid;grid-template-columns:minmax(0,1fr) 5px var(--aiw-detail);align-items:start;min-height:560px}
.aiw-layout #aiWorkflowLanes{display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);grid-template-columns:none!important;gap:10px;overflow-x:auto;padding:0 0 6px!important;margin-right:6px;align-items:start}
.aiw-lane{container-type:inline-size;min-width:0;background:rgba(255,255,255,.55)!important;border:1px solid #e7e9f1;border-radius:18px;padding:10px!important;display:flex;flex-direction:column;gap:10px}
.aiw-lane-head{display:flex!important;align-items:center;gap:8px;flex-wrap:wrap;padding:2px 4px!important}
.aiw-lane-head strong{font-size:15px;color:#222841}
.aiw-lane-head small{flex-basis:100%;font-size:11px;color:#606a83;font-weight:400}
.aiw-lane .ai-workflow-cards{display:grid;gap:10px}
.aiw-card{all:unset;box-sizing:border-box;width:100%;display:grid!important;gap:8px;padding:14px!important;border-radius:16px!important;background:#fff!important;border:1px solid #e7e9f1!important;cursor:pointer;color:#222841;overflow:visible!important;animation:none!important;transition:border-color .15s,box-shadow .15s;font:inherit}
.aiw-card::before{display:none!important}
.aiw-card:hover{border-color:#7467e9!important;box-shadow:0 8px 22px rgba(106,90,224,.14)}
.aiw-card:focus-visible{outline:3px solid #7467e9;outline-offset:2px}
.aiw-card.selected{border:2px solid #7467e9!important;padding:13px!important;box-shadow:0 10px 26px rgba(106,90,224,.2)}
.aiw-proj{font-size:11px;color:#606a83}
.aiw-title{font-size:15px;line-height:1.35}
.aiw-desc{font-size:12.5px;color:#606a83;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aiw-tags{display:flex;flex-wrap:wrap;gap:5px}
.aiw-bar{display:block;height:6px;border-radius:99px;background:#eef0f6;overflow:hidden}.aiw-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#8a7cf2,#6a5ae0)}
.aiw-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#606a83}
.aiw-who{width:22px;height:22px;border-radius:50%;background:#8f7cf5;color:#fff;font-size:10px;display:grid;place-items:center}
.aiw-meta .aiw-st{margin-left:auto}
@container (max-width:250px){.aiw-card{padding:11px!important;gap:6px}.aiw-card.selected{padding:10px!important}.aiw-desc{-webkit-line-clamp:1}}
@container (max-width:195px){.aiw-card .aiw-nm{display:none}.aiw-card .aiw-badge{padding:2px}}
.aiw-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:2px 9px 2px 2px;font-size:12px;font-weight:700;background:#f4f3fb;border:1px solid #e3e1f3;color:#2b2f45;white-space:nowrap;max-width:100%}
.aiw-badge img,.aiw-badge .aiw-mono{width:20px;height:20px;border-radius:50%;object-fit:cover;flex:none}
.aiw-badge small{font-weight:400;color:#606a83;overflow:hidden;text-overflow:ellipsis}
/* 所有 AI 標示同寬：名稱欄至少是「Claude」的寬度，文字靠左；LOGO 與間距不變 */
.aiw-badge{justify-content:flex-start}
.aiw-badge .aiw-nm{display:inline-flex;flex-direction:column;text-align:left}
.aiw-badge .aiw-nm::after{content:"Claude";height:0;overflow:hidden;visibility:hidden;pointer-events:none}
.aiw-badge[data-agent="auto"]{background:#eeebfc;color:#4b3fb8;border-color:#ddd7fb}
.aiw-mono{display:grid;place-items:center;background:#7467e9;color:#fff;font-size:10px;font-weight:800}
.aiw-st{white-space:nowrap;font-weight:700;border-radius:7px;padding:2px 8px;font-size:11px;background:#f1f2f7;color:#4f586d}
.aiw-st[data-status="working"],.aiw-st[data-status="running"]{background:#eaf1ff;color:#2f63c4}
.aiw-st[data-status="waiting_input"],.aiw-st[data-status="step_review"],.aiw-st[data-status="completed"],.aiw-st[data-status="review"],.aiw-st[data-status="blocked"]{background:#fff3df;color:#8a5a0e}
.aiw-st[data-status="accepted"],.aiw-st[data-status="done"]{background:#e4f5ec;color:#1e6b49}
.aiw-st[data-status="failed"],.aiw-st[data-status="changes_requested"]{background:#fdecef;color:#b3344f}
.aiw-resizer{position:relative;align-self:stretch;width:5px;cursor:col-resize;touch-action:none;z-index:3}
.aiw-resizer::before{content:"";position:absolute;top:0;bottom:0;left:1.5px;width:2px;border-radius:2px;background:transparent;transition:background .15s}
.aiw-resizer:hover::before,.aiw-resizer.dragging::before{background:#ddd7fb}
.aiw-grip{position:absolute;left:50%;top:min(50%,320px);transform:translate(-50%,-50%);width:14px;height:44px;border-radius:999px;background:#fff;border:1px solid #ddd7fb;box-shadow:0 3px 10px rgba(84,72,180,.16);display:grid;place-content:center;gap:3px}
.aiw-grip i{display:block;width:4px;height:4px;border-radius:50%;background:#9a90e6}
.aiw-resizer:hover .aiw-grip,.aiw-resizer.dragging .aiw-grip{border-color:#7467e9}
.aiw-resizer:focus-visible .aiw-grip{outline:3px solid #7467e9;outline-offset:2px}
.aiw-detail{container-type:inline-size;position:sticky;top:12px;margin-left:6px;max-height:calc(100vh - 40px);overflow:auto;display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:22px;background:rgba(255,255,255,.86);border:1px solid rgba(221,215,251,.95);box-shadow:0 10px 30px rgba(84,72,180,.08);color:#222841}
.aiw-detail h3{margin:0;font-size:19px;line-height:1.35;flex:1;min-width:150px}
.aiw-detail h4{margin:0 0 8px;font-size:13px;display:flex;align-items:baseline;gap:8px}
.aiw-detail h4 small{font-weight:400;color:#606a83;font-size:12px}
.aiw-d-top{display:flex;align-items:center;justify-content:space-between;color:#606a83;font-size:13px}
.aiw-d-title{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.aiw-d-desc{margin:0;font-size:13px;color:#606a83;line-height:1.6}
.aiw-team{display:flex;flex-wrap:wrap;gap:6px}
.aiw-steps{list-style:none;margin:0;padding:0;display:grid}
.aiw-step{display:grid;grid-template-columns:26px 1fr;gap:10px;position:relative;padding-bottom:14px}
.aiw-step:not(:last-child)::before{content:"";position:absolute;left:12px;top:28px;bottom:2px;width:2px;background:#ddd7fb}
.aiw-num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:#eceef4;color:#737b90;position:relative;z-index:1}
.aiw-num[data-mark="done"]{background:#1e8a5a;color:#fff}.aiw-num[data-mark="now"]{background:#7467e9;color:#fff;box-shadow:0 0 0 4px #eeebfc}
.aiw-step-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.aiw-step-head b{flex:1;min-width:120px;font-size:14px}
.aiw-step-body{margin-top:6px;border:1px solid #e7e9f1;border-radius:12px;padding:9px 10px;background:#fff;display:grid;gap:7px;font-size:12px}
.aiw-step-body>div{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}
.aiw-step-body>div>span:first-child{flex:none;width:34px;color:#606a83;padding-top:3px}
.aiw-step-body p{margin:0;color:#4a5068;line-height:1.55}
.aiw-lvl{font-size:11px;border-radius:7px;padding:2px 8px;background:#f1f2f7;color:#4f586d;white-space:nowrap}
.aiw-lvl[data-level="human"]{background:#fff3df;color:#8a5a0e}
.aiw-check{font-size:11.5px;color:#1e6b49}.aiw-check[data-pass="false"]{color:#b3344f}
.aiw-res{display:inline-flex;border-radius:7px;padding:1px 7px;font-size:11.5px;border:1px solid #e3e5ec;background:#f7f8fa;color:#4f586d;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aiw-res[data-kind="skill"]{border-color:#ddd7fb;background:#f7f6fe;color:#4b3fb8}
.aiw-res[data-kind="api"]{border-color:#cfe0f7;background:#f3f8ff;color:#27518f}
.aiw-feed{display:grid;gap:10px}
.aiw-msg{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:start}
.aiw-msg>div{background:#f7f6fe;border:1px solid #ddd7fb;border-radius:4px 14px 14px 14px;padding:8px 11px;min-width:0}
.aiw-msg[data-kind="sys"]>div{background:#fafbfc;border-color:#e7e9f1}
.aiw-msg[data-kind="me"]>div{background:#fff;border-color:#e7e9f1}
.aiw-msg[data-kind="err"]>div{background:#fdf3f5;border-color:#f6c9d2}
.aiw-msg small{display:block;color:#606a83;font-size:11px;margin-bottom:2px}
.aiw-msg p{margin:0;font-size:12.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.aiw-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:#e9ebf2;color:#5b6378;object-fit:cover}
.aiw-avatar[data-kind="me"]{background:#8f7cf5;color:#fff}
.aiw-result{border:1px solid #e7e9f1;border-radius:14px;padding:10px 12px;background:#fff;font-size:12.5px;line-height:1.6;white-space:pre-wrap;max-height:220px;overflow:auto}
.aiw-muted{margin:6px 0 0;color:#606a83;font-size:12px}
.aiw-act{display:grid;gap:8px;position:sticky;bottom:-18px;background:rgba(255,255,255,.96);padding:10px 0 4px;border-top:1px solid #eeecf8}
.aiw-hint{margin:0;font-size:12.5px;color:#4b3fb8}
.aiw-hint:empty{display:none}
.aiw-act textarea{width:100%;box-sizing:border-box;border:1px solid #ddd7fb;border-radius:12px;padding:9px 11px;font:inherit;font-size:13px;resize:vertical;min-height:44px}
.aiw-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.aiw-buttons .aiw-wide{grid-column:1/-1}.aiw-buttons .btn{min-height:44px}
@container (max-width:340px){.aiw-buttons{grid-template-columns:1fr}}
.aiw-empty-detail{padding:24px 6px;text-align:center;color:#606a83}.aiw-empty-detail p{font-size:13px}
@media(max-width:1100px){
  .aiw-layout{grid-template-columns:minmax(0,1fr)}
  .aiw-resizer{display:none}
  .aiw-detail{position:static;max-height:none;margin:12px 0 0}
  .aiw-layout #aiWorkflowLanes{margin-right:0}
}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media(min-width:901px){body.sidebar-collapsed .sidebar .profile-button{padding:6px;justify-content:center;min-width:0}body.sidebar-collapsed .sidebar .brand{overflow:visible}}

/* 流程看板：右側顯示全部工作數，整顆按鈕可收合下方選單 */
#boardNav[hidden]{display:none!important}
.side-group-toggle{width:auto;min-width:32px;padding:0 8px;display:inline-flex;align-items:center;gap:5px;transform:translateY(-50%)!important;font-weight:700}
.side-group-toggle .side-total{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.85);color:#3c4257;font-size:12px;display:inline-grid;place-items:center}
.side-group-toggle .side-chev{font-size:11px;transition:transform .2s}
.side-group-toggle[aria-expanded="false"] .side-chev{transform:rotate(-90deg)}
.side-link-row>.page-heading{padding-right:78px}

/* 專案查看：標題直接看所有專案，右側數量＋箭頭收合清單 */
.board-project-group .side-link-row>.project-list-toggle{padding-right:78px}
#projectAllLink.active{background:linear-gradient(135deg,#8f7cf5,#6a5ae0);color:#fff}
/* AI 工作流頂部精簡：只留連線狀態與專案篩選 */
.aiw-head{align-items:end}
.aiw-head .aiw-conns{margin-top:0}
.ai-workflow-filter{gap:8px!important;position:relative}
.fsel{position:relative}
.fsel-native{position:absolute!important;opacity:0;pointer-events:none;width:1px!important;height:1px;overflow:hidden}
.fsel-btn{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border-radius:14px;border:1px solid #ddd7fb;background:rgba(255,255,255,.9);box-shadow:0 4px 14px rgba(84,72,180,.08);font:inherit;font-size:14px;font-weight:600;color:#222841;cursor:pointer;text-align:left}
.fsel-btn:hover{border-color:#b9aef6}
.fsel-btn:focus-visible{outline:3px solid #7467e9;outline-offset:2px}
.fsel-btn i{font-style:normal;font-size:12px;color:#7467e9;transition:transform .15s}
.fsel.open .fsel-btn i{transform:rotate(180deg)}
.fsel-list{position:absolute;z-index:40;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;border-radius:16px;background:#fff;border:1px solid #e3e1f3;box-shadow:0 16px 40px rgba(60,50,150,.18);max-height:320px;overflow:auto}
.fsel-list li{padding:10px 12px;border-radius:10px;font-size:14px;font-weight:500;color:#222841;cursor:pointer;min-height:40px;display:flex;align-items:center}
.fsel-list li:hover,.fsel-list li:focus{background:#f4f2fe;outline:none}
.fsel-list li[aria-selected="true"]{background:#eeebfc;color:#4b3fb8;font-weight:700}
.fsel-list li[aria-selected="true"]::after{content:"✓";margin-left:auto}

/* 全局設定彈窗 */
dialog.gsm{padding:0;border:0;border-radius:24px;width:min(1180px,calc(100vw - 32px));height:min(820px,calc(100vh - 32px));max-width:none;max-height:none;box-shadow:0 30px 80px rgba(40,30,120,.3);overflow:hidden;background:#fff;color:#222841}
dialog.gsm::backdrop{background:rgba(34,30,80,.28);backdrop-filter:blur(3px)}
.gsm-shell{display:grid;grid-template-columns:230px minmax(0,1fr);height:100%}
.gsm-nav{background:#f7f6fe;border-right:1px solid #e7e9f1;padding:20px 14px;display:flex;flex-direction:column;gap:4px;overflow:auto}
.gsm-nav h2{margin:0 8px 12px;font-size:18px;color:#222841}
.gsm-nav button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;font:inherit;font-size:14px;color:#222841;padding:11px 12px;border-radius:12px;text-align:left;cursor:pointer;min-height:44px}
.gsm-nav button:hover{background:#efedfb}
.gsm-nav button:focus-visible{outline:3px solid #7467e9;outline-offset:2px}
.gsm-nav button[aria-current="page"]{background:#fff;color:#4b3fb8;font-weight:700;box-shadow:0 2px 8px rgba(84,72,180,.12)}
.gsm-nav .sep{height:1px;background:#e7e9f1;margin:8px 6px}
.gsm-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.gsm-head{display:flex;align-items:center;gap:12px;padding:20px 24px 14px;border-bottom:1px solid #e7e9f1}
.gsm-head h3{margin:0;font-size:20px;color:#222841}.gsm-head p{margin:2px 0 0;color:#606a83;font-size:13px}
.gsm-x{margin-left:auto;flex:none;width:40px;height:40px;border-radius:12px;border:0;background:#f3f4f8;color:#222841;font-size:20px;cursor:pointer}
.gsm-x:hover{background:#e9e7f7}
.gsm-body{flex:1;min-height:0;background:#fafafe}
.gsm-body iframe{display:block;width:100%;height:100%;border:0;background:transparent}
@media(max-width:760px){dialog.gsm{width:100vw;height:100dvh;border-radius:0}.gsm-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.gsm-nav{flex-direction:row;overflow-x:auto;padding:10px;border-right:0;border-bottom:1px solid #e7e9f1}.gsm-nav h2,.gsm-nav .sep{display:none}.gsm-nav button{width:auto;white-space:nowrap}.gsm-head{padding:14px 16px 10px}}

/* ===== 側邊欄細修：統一高度、數字不加箭頭、玻璃收合按鈕、收合後方形圖示＋名稱提示 ===== */
.sidebar>.page-heading,.sidebar .side-link-row>.page-heading,.sidebar .board-project-group>.page-heading{min-height:68px;box-sizing:border-box}
#projectAllLink.active small{color:rgba(255,255,255,.82)}
#projectAllLink .navigation-copy{display:flex;flex-direction:column}
.side-group-toggle{background:none!important;box-shadow:none!important;padding:0 4px!important;min-width:0!important}
.side-group-toggle:hover .side-total{background:#fff}
.side-link-row>.page-heading{padding-right:56px}
#planningProjects[hidden],#projectEntries[hidden]{display:none!important}
#railGlobalSettings{display:flex!important;align-items:center;justify-content:center;gap:6px;width:100%;flex-shrink:0;text-align:center;text-decoration:none}
#railGlobalSettings .navigation-copy{display:inline}
.sidebar-collapse{width:34px!important;height:34px!important;border-radius:12px!important;border:1px solid rgba(255,255,255,.75)!important;background:rgba(255,255,255,.55)!important;backdrop-filter:blur(12px) saturate(1.4);-webkit-backdrop-filter:blur(12px) saturate(1.4);box-shadow:0 4px 14px rgba(84,72,180,.14),inset 0 1px 0 rgba(255,255,255,.9)!important;color:#4b3fb8!important;display:grid!important;place-items:center;padding:0;transition:background .15s,box-shadow .15s,transform .2s}
.sidebar-collapse:hover{background:rgba(255,255,255,.8)!important;box-shadow:0 6px 18px rgba(84,72,180,.2),inset 0 1px 0 #fff!important}
.sidebar-collapse svg{transition:transform .2s}
body.sidebar-collapsed .sidebar-collapse svg{transform:rotate(180deg)}
.side-tip{position:fixed;z-index:1000;transform:translateY(-50%);padding:7px 12px;border-radius:10px;background:rgba(34,40,65,.92);color:#fff;font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px rgba(20,20,60,.25)}
.side-tip::before{content:"";position:absolute;left:-5px;top:50%;margin-top:-5px;border:5px solid transparent;border-left:0;border-right-color:rgba(34,40,65,.92)}
.side-tip[hidden]{display:none}
@media(min-width:901px){
  body.sidebar-collapsed .sidebar{display:flex!important;flex-direction:column;align-items:center}
  body.sidebar-collapsed .sidebar>*{flex-shrink:0}
  body.sidebar-collapsed .sidebar .page-heading,body.sidebar-collapsed .sidebar .side-link-row>.page-heading{width:56px!important;height:56px!important;min-height:56px!important;padding:0!important;margin-inline:auto;justify-content:center!important;align-items:center}
  body.sidebar-collapsed .sidebar .side-link-row{width:56px;margin-inline:auto}
  body.sidebar-collapsed .sidebar .board-project-group{width:100%;display:flex;flex-direction:column;align-items:center}
  body.sidebar-collapsed .sidebar .board-project-group>.page-heading{margin:0}
  body.sidebar-collapsed .sidebar .brand{width:100%}
  body.sidebar-collapsed .sidebar #railGlobalSettings{display:flex!important;width:56px;height:56px;min-height:56px;padding:0;margin-top:auto;border-radius:16px;font-size:20px}
  body.sidebar-collapsed .sidebar #railGlobalSettings .navigation-copy{display:none!important}
}
/* ===== 工作路線細修：放置區延伸到欄位底部並淡化、拖曳把手改三點淡灰、連接點恢復白色底 ===== */
#routeLanes{align-items:stretch!important}
#routeLanes>.route-stage{align-self:stretch!important;display:flex;flex-direction:column}
#routeLanes .stage-drop{flex:1 1 auto!important;min-height:120px!important;place-items:start center!important;padding-top:28px!important;background:rgba(244,247,252,.32)!important;border-color:rgba(92,112,150,.12)!important;color:rgba(119,127,149,.62)!important;box-shadow:none!important}
#routeLanes .route-stage:has(.stage-drop:hover) .stage-drop,#routeLanes .route-stage.drop-target .stage-drop{background:rgba(238,235,252,.55)!important;border-color:rgba(116,103,233,.35)!important;color:#6a5ae0!important}
#routeLanes .route-move{grid-template-columns:repeat(3,4px)!important;gap:5px!important}
#routeLanes .route-move span{background:#c6ccd8!important}
#routeLanes .route-move span:nth-child(n+4){display:none!important}
#routeLanes .route-move:hover span{background:#9aa3b5!important}
#routeLanes .route-port::before{width:16px!important;height:16px!important;background:#fff!important;border:1px solid rgba(185,190,209,.9)!important;box-shadow:0 2px 6px rgba(42,60,100,.14)!important}
/* ===== 一體式側欄拉柄（取代收合按鈕）：與側欄外緣連成一體，突出 28px、高 64px，上下各 12px 曲線銜接 ===== */
#sidebarCollapse.side-handle{--sh-root:rgb(232,238,250);--sh-fill:rgb(216,224,244);--sh-edge:rgba(255,255,255,.86);--sh-shadow:drop-shadow(0 6px 14px rgba(42,60,100,.12));--sh-tone:brightness(1);
  position:fixed!important;z-index:70;top:0;left:0;width:28px!important;height:64px!important;min-width:0!important;padding:0!important;margin:0!important;border:0!important;border-radius:0 12px 12px 0!important;background:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;color:#77708F!important;display:grid!important;place-items:center;cursor:pointer;touch-action:none;transform:none!important}
#sidebarCollapse.side-handle[hidden]{display:none!important}
#sidebarCollapse.side-handle .side-handle-shape{position:absolute;left:-2.85px;top:-12px;width:32px;height:88px;overflow:visible;pointer-events:none;filter:var(--sh-tone) var(--sh-shadow);transform:none!important;transition:filter .15s ease-out}
#sidebarCollapse.side-handle .sh-fill{fill:url(#sideHandleFill);transition:fill .15s ease-out}
#sidebarCollapse.side-handle .sh-edge{fill:none;stroke:var(--sh-edge);stroke-width:1.2;stroke-linecap:round;transition:stroke .15s ease-out}
#sidebarCollapse.side-handle .side-handle-arrow{position:relative;overflow:visible;filter:drop-shadow(0 1px 1.2px rgba(70,58,140,.35)) drop-shadow(0 0 .5px rgba(255,255,255,.9));transition:transform .2s ease-out,filter .15s ease-out}
#sidebarCollapse.side-handle:hover .side-handle-arrow{filter:drop-shadow(0 1.5px 2px rgba(70,58,140,.42)) drop-shadow(0 0 .6px #fff)}
#sidebarCollapse.side-handle:active .side-handle-arrow{filter:drop-shadow(0 .5px .6px rgba(70,58,140,.3))}
body.sidebar-collapsed #sidebarCollapse.side-handle .side-handle-arrow{transform:rotate(180deg)}
#sidebarCollapse.side-handle:hover{--sh-tone:brightness(1.025);--sh-edge:#fff;--sh-shadow:drop-shadow(0 6px 16px rgba(42,60,100,.16));color:#5F557C!important}
#sidebarCollapse.side-handle:active{--sh-tone:brightness(.975);--sh-shadow:drop-shadow(0 1px 3px rgba(88,75,150,.16));color:#6847CE!important}
#sidebarCollapse.side-handle.dragging{--sh-tone:brightness(1.015);--sh-edge:#fff;--sh-shadow:drop-shadow(0 6px 18px rgba(88,75,150,.22));color:#6847CE!important;cursor:grabbing}
#sidebarCollapse.side-handle:focus-visible{outline:2px solid #6847CE;outline-offset:3px}
@media(min-width:901px){.app>main{padding-left:max(40px,var(--main-pad-left,40px))!important}.app{transition:grid-template-columns .2s ease-out}}
@media(prefers-reduced-motion:reduce){.app,#sidebarCollapse.side-handle *{transition:none!important}}
@media(max-width:900px){#sidebarCollapse.side-handle{display:none!important}}

/* ===== 側欄子選單：內凹托盤包覆子項目；子項目與下一個大標題統一間距 ===== */
/* 內凹托盤從大標題中線往下延伸（標題本身不被包住），包覆底下的子項目 */
.sidebar .side-group{position:relative;margin:0}
.sidebar .side-group>.side-link-row,.sidebar .side-group>.page-heading{position:relative;z-index:1}
.sidebar .side-group:has(> #boardNav:not([hidden])),.sidebar .side-group:has(> #projectEntries:not([hidden]):not(:empty)),.sidebar .side-group:has(> #planningProjects:not([hidden]):not(:empty)){padding:0 0 8px;margin-bottom:24px}
.sidebar .side-group:has(> #boardNav:not([hidden]))::before,.sidebar .side-group:has(> #projectEntries:not([hidden]):not(:empty))::before,.sidebar .side-group:has(> #planningProjects:not([hidden]):not(:empty))::before{content:"";position:absolute;left:0;right:0;top:60px;bottom:0;z-index:0;border-radius:0 0 20px 20px;background:rgba(226,230,244,.42);box-shadow:inset 0 5px 8px -3px rgba(88,75,150,.16),inset 0 -1px 0 rgba(255,255,255,.7);pointer-events:none}
.sidebar .side-group>#boardNav,.sidebar .side-group>#projectEntries,.sidebar .side-group>#planningProjects{position:relative;z-index:1}
.sidebar #boardNav,.sidebar #projectEntries,.sidebar #planningProjects{margin:8px 8px 0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
.sidebar #planningProjects:empty{display:none}
/* 收合狀態：圖示置中（隱藏側欄捲動條）、頭像不加底框、設定齒輪放大無底框 */
@media(min-width:901px){
  body.sidebar-collapsed .sidebar{scrollbar-width:none!important;padding-left:0!important;padding-right:0!important}
  body.sidebar-collapsed .sidebar>.side-fade{margin-left:0;margin-right:0}
  body.sidebar-collapsed .sidebar::-webkit-scrollbar{display:none!important;width:0!important}
  body.sidebar-collapsed .sidebar .side-group{background:none!important;box-shadow:none!important;padding:0!important;margin:0!important;width:100%;display:flex;flex-direction:column;align-items:center}
  body.sidebar-collapsed .sidebar .profile-button{background:none!important;border:0!important;box-shadow:none!important;padding:0!important}
  body.sidebar-collapsed .sidebar .brand{background:none!important;border:0!important;box-shadow:none!important}
  body.sidebar-collapsed .sidebar #railGlobalSettings{background:none!important;border:0!important;box-shadow:none!important;font-size:28px!important}
  body.sidebar-collapsed .sidebar #railGlobalSettings:hover{background:rgba(255,255,255,.45)!important}
}
/* 側欄捲動時上下漸進模糊 */
.sidebar>.side-fade{position:sticky;display:block;flex:0 0 92px;height:92px;align-self:stretch;z-index:6;pointer-events:none}
/* 漸進模糊（參考 React Bits Gradual Blur）：高 92px、強度 0.75、7 層、linear、指數；每層模糊與遮罩由程式產生。前後負邊距抵銷高度，不影響版面 */
.sidebar>.side-fade-top{top:-16px;margin:-16px -14px -76px}
.sidebar>.side-fade-bottom{bottom:-18px;margin:-92px -14px 0}
.side-fade>i{position:absolute;inset:0;display:block}
/* 標題旁的數字：圓形、數字置中（三位數時自動變成膠囊） */
.side-group-toggle .side-total,.nav-ai-attention{box-sizing:border-box;min-width:24px!important;height:24px!important;padding:0 5px!important;border-radius:12px!important;display:inline-flex!important;align-items:center;justify-content:center;line-height:1!important;font-size:12px!important;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}
.nav-ai-attention[hidden]{display:none!important}
/* ===== AI 工作流：電腦卡片與 AI 卡片同尺寸；上方統計卡可點擊聚焦 ===== */
.aiw-pc{min-height:34px;padding:4px 12px 4px 10px!important}
button.aiw-stat{font:inherit;text-align:left;color:inherit;cursor:pointer;transition:border-color .15s ease-out,box-shadow .15s ease-out,background .15s ease-out}
button.aiw-stat:hover{border-color:rgba(116,103,233,.45);box-shadow:0 8px 20px rgba(84,72,180,.12)}
button.aiw-stat[aria-pressed="true"]{border-color:#7467e9;background:rgba(246,244,255,.95);box-shadow:0 0 0 3px rgba(116,103,233,.16),0 8px 20px rgba(84,72,180,.12)}
button.aiw-stat:focus-visible{outline:3px solid #7467e9;outline-offset:2px}
.aiw-layout #aiWorkflowLanes.aiw-focused{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:minmax(0,1fr)!important;overflow-x:visible}
#aiWorkflowLanes.aiw-focused .aiw-lane .ai-workflow-cards{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}
/* ===== AI 工作流：欄位標題加狀態圖示、卡片顏色與流程看板一致；執行中卡片套用 AI 工作特效 ===== */
.aiw-lane-head strong{display:inline-flex;align-items:center;gap:8px}
.aiw-lane-icon{width:24px;height:24px;object-fit:contain;flex:none}
.aiw-card .avatar{width:26px;height:26px;min-width:26px;font-size:11px}
.aiw-lane[data-ai-stage="defined"] .aiw-card{border-color:color-mix(in srgb,#477fe9 50%,white)!important;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(240,245,255,.8))!important}
.aiw-lane[data-ai-stage="review"] .aiw-card{border-color:#e2bd4f!important;background:linear-gradient(to top left,#fff3bd,#fff 72%)!important}
.aiw-lane[data-ai-stage="accepted"] .aiw-card{border-color:rgba(121,135,158,.38)!important;background:linear-gradient(145deg,rgba(244,247,251,.86),rgba(222,228,237,.72))!important}
.aiw-lane[data-ai-stage="accepted"] .aiw-title{color:#667180}
.aiw-card.selected{border-color:#7467e9!important}
/* 執行中：與流程看板的 AI 執行卡相同——彩色光暈持續旋轉漸變，卡片為半透明玻璃，標題白色 */
.aiw-card.ai-working-card{position:relative;isolation:isolate;border-color:#8a7dff!important;background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(255,255,255,.12))!important;animation:ai-card-orbit 2.8s linear infinite!important}
#aiWorkflowLanes .aiw-card.ai-working-card::before{display:block!important;position:absolute;z-index:-1;inset:-4px!important;content:"";border-radius:inherit;background:conic-gradient(from var(--ai-orbit,0deg),#4eb5ff,#8064ff,#c07aff,#4eb5ff)!important;filter:blur(7px)!important;opacity:.7!important;transform:none!important;animation:ai-orbit 2.8s linear infinite!important}
.ai-working-card h3,.aiw-card.ai-working-card .aiw-title{color:#fff!important;text-shadow:0 1px 6px rgba(52,36,140,.35)}
@media(prefers-reduced-motion:reduce){.aiw-card.ai-working-card,.aiw-card.ai-working-card::before{animation:none!important}}
.approval-panel[hidden],.deliverables-stack[hidden]{display:none!important}
.acceptance-master{margin:4px 0 0}
/* ===== AI 工作流：詳情可拉寬到只剩一欄，欄位自動往下排；已完成固定放在最下面整列 ===== */
.aiw-layout #aiWorkflowLanes{display:flex!important;flex-wrap:wrap;align-items:flex-start;overflow-x:visible}
#aiWorkflowLanes>.aiw-lane{flex:1 1 220px;min-width:0}
#aiWorkflowLanes>.aiw-lane[data-ai-stage="accepted"]{flex-basis:100%}
#aiWorkflowLanes>.aiw-lane[data-ai-stage="accepted"] .ai-workflow-cards{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}
/* 工作詳情：「詳細內容」勾選 */
.task-details[hidden]{display:none!important}
.task-details>.form-grid{margin:0}
.detail-toggle{margin:2px 0}
/* ===== 按鈕顏色淡化 28%（紫、橘、棕；紅色刪除不變） ===== */
:root{--btn-lift:28%}
.btn.primary{background:radial-gradient(at 18% 6%,rgba(255,255,255,.37),transparent 51%),radial-gradient(at 86% 90%,rgba(206,159,255,.55),transparent 62%),linear-gradient(135deg,color-mix(in srgb,#9385ff,white var(--btn-lift)),color-mix(in srgb,#7460f2,white var(--btn-lift)) 55%,color-mix(in srgb,#6045dd,white var(--btn-lift)))!important}
.btn.project-create{background:radial-gradient(at 18% 6%,rgba(255,255,255,.38),transparent 51%),radial-gradient(at 86% 90%,rgba(255,205,130,.55),transparent 62%),linear-gradient(135deg,color-mix(in srgb,#ffad58,white var(--btn-lift)),color-mix(in srgb,#ee7a16,white var(--btn-lift)) 57%,color-mix(in srgb,#c65108,white var(--btn-lift)))!important}
#openMeeting{background:radial-gradient(at 18% 6%,rgba(255,255,255,.38),transparent 51%),radial-gradient(at 86% 90%,rgba(255,225,151,.5),transparent 62%),linear-gradient(135deg,color-mix(in srgb,#dfae55,white var(--btn-lift)),color-mix(in srgb,#bb892e,white var(--btn-lift)) 58%,color-mix(in srgb,#96651c,white var(--btn-lift)))!important}
.btn.primary,.btn.project-create,#openMeeting{text-shadow:0 1px 2px rgba(40,30,90,.28)}
.sidebar .page-heading[aria-current=page],.sidebar .page-heading[aria-current=page]:hover,.sidebar #projectAllLink.active{background:linear-gradient(135deg,color-mix(in srgb,#9385ff,white var(--btn-lift)),color-mix(in srgb,#6045dd,white var(--btn-lift)))!important}

/* ===== 按鈕邊緣高光（參考 React Bits Specular Button）：亮度 0.7、光帶 36°、線條 0.9px、感應 80px ===== */
:root{--sb-i:.7;--sb-w:36deg;--sb-th:.9px}
.sb-rel{position:relative}
.sb-host{isolation:isolate;--sb-line:124,106,245}
.btn.primary,.btn.project-create,.btn.danger,#openMeeting,.sidebar .page-heading[aria-current=page],.sidebar #projectAllLink.active{--sb-line:255,255,255}
.sb-edge,.sb-glow{position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;z-index:2;padding:var(--sb-th);
  background:conic-gradient(from var(--sb-a,315deg),rgba(var(--sb-line),1) 0deg,rgba(var(--sb-line),0) var(--sb-w),rgba(var(--sb-line),0) calc(180deg - var(--sb-w)),rgba(var(--sb-line),1) 180deg,rgba(var(--sb-line),0) calc(180deg + var(--sb-w)),rgba(var(--sb-line),0) calc(360deg - var(--sb-w)),rgba(var(--sb-line),1) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  opacity:calc(var(--sb-b,0) * var(--sb-i));transition:opacity .25s ease-out}
.sb-glow{padding:calc(var(--sb-th) + 2.5px);filter:blur(3px);opacity:calc(var(--sb-b,0) * var(--sb-i) * .55)}
.sb-host:active>.sb-edge{--sb-th:1.4px}
.sb-host:disabled>.sb-edge,.sb-host:disabled>.sb-glow{opacity:0}

/* ===== 卡片邊框光（參考 React Bits Border Glow）：範圍 100°、外光 15px、邊框 1px、亮度 0.85、靈敏 5；漸變 #d9b3ff → #ff94cb → #86dafe =====
   三層：熱點（最靠近游標的一小段外框亮成暖白細線＋貼身光暈）、彩色外框（往兩側延伸並漸變成三色後淡出）、內側染色（卡片內緣淡淡透色） */
:root{--bg-cone:50deg;--bg-glow:15px;--bg-ringw:1px;--bg-int:.85;--bg-c1:217,179,255;--bg-c2:255,148,203;--bg-c3:134,218,254;--bg-hot:255,244,222;
  --bg-cone-wide:calc(var(--bg-cone) * 1.4);--bg-cone-core:calc(var(--bg-cone) * .55);--bg-pad:calc(var(--bg-glow) * 2.4)}
.bg-host{isolation:isolate}
.bg-fx,.bg-core{position:absolute;inset:calc(var(--bg-pad) * -1);pointer-events:none;z-index:3;opacity:0;transition:opacity .75s ease-out}
.bg-fx{-webkit-mask:conic-gradient(from var(--bg-ca,0deg),#000 0deg,transparent var(--bg-cone-wide),transparent calc(360deg - var(--bg-cone-wide)),#000 360deg);mask:conic-gradient(from var(--bg-ca,0deg),#000 0deg,transparent var(--bg-cone-wide),transparent calc(360deg - var(--bg-cone-wide)),#000 360deg)}
.bg-core{-webkit-mask:conic-gradient(from var(--bg-ca,0deg),#000 0deg,transparent var(--bg-cone-core),transparent calc(360deg - var(--bg-cone-core)),#000 360deg);mask:conic-gradient(from var(--bg-ca,0deg),#000 0deg,transparent var(--bg-cone-core),transparent calc(360deg - var(--bg-cone-core)),#000 360deg)}
.bg-host.bg-hover>.bg-fx{opacity:calc(var(--bg-epc,0) * var(--bg-int) * 1.6);transition:opacity .25s ease-out}
.bg-host.bg-hover>.bg-core{opacity:calc(var(--bg-ep,0) * var(--bg-int) * 1.8);transition:opacity .25s ease-out}
.bg-ring,.bg-fill,.bg-core-line{position:absolute;inset:var(--bg-pad);border-radius:var(--bg-r,18px)}
.bg-ring{padding:var(--bg-ringw);background:conic-gradient(from calc(var(--bg-ca,0deg) - var(--bg-cone-wide)),rgb(var(--bg-c3)) 0deg,rgb(var(--bg-c2)) calc(var(--bg-cone-wide) * .5),rgb(var(--bg-c1)) var(--bg-cone-wide),rgb(var(--bg-c2)) calc(var(--bg-cone-wide) * 1.5),rgb(var(--bg-c3)) calc(var(--bg-cone-wide) * 2),rgb(var(--bg-c3)) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.bg-fill{background:radial-gradient(60% 50% at 0% 0%,rgba(var(--bg-c1),.55),transparent),radial-gradient(60% 50% at 100% 0%,rgba(var(--bg-c2),.5),transparent),radial-gradient(60% 50% at 100% 100%,rgba(var(--bg-c3),.5),transparent),radial-gradient(60% 50% at 0% 100%,rgba(var(--bg-c2),.45),transparent);
  opacity:.5;-webkit-mask:radial-gradient(farthest-side,transparent 62%,#000 100%);mask:radial-gradient(farthest-side,transparent 62%,#000 100%)}
.bg-core-line{border:var(--bg-ringw) solid rgb(var(--bg-hot));box-shadow:0 0 2px rgba(var(--bg-hot),.95),0 0 7px rgba(var(--bg-hot),.75),0 0 calc(var(--bg-glow) * .8) rgba(var(--bg-c2),.35),inset 0 0 5px rgba(var(--bg-hot),.55)}
/* 呼吸燈卡片：滑過時呼吸停在當下、由邊框光接手；AI 執行中的旋轉光維持 */
.bg-host.bg-hover:not(.ai-working-card){animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.sb-edge,.sb-glow,.bg-fx{transition:none}}
/* 看板篩選列的圓角下拉 */
.filters .fsel{min-width:132px;flex:0 1 auto}
.filters .fsel-btn{min-height:42px;padding:0 12px;gap:8px}
/* ===== 受阻原因：紅色電流邊框（參考 React Bits Electric Border） ===== */
.eb-host{position:relative;overflow:visible!important}
.eb-canvas{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);pointer-events:none;z-index:2}
/* ===== 週期性工作 ===== */
.voice-task .voice-recurrence-button{border:1px solid #c3baf1!important;color:#4e48a2!important;background:linear-gradient(125deg,rgba(255,255,255,.85),rgba(238,235,252,.8))!important}
.voice-task .voice-recurrence-button.is-on{background:linear-gradient(125deg,rgba(177,155,249,.32),rgba(143,193,249,.3))!important;border-color:#9f92ee!important}
.recurrence-panel{display:grid;gap:10px;padding:14px 16px;border-radius:16px;background:rgba(246,244,255,.8);border:1px solid rgba(116,103,233,.22)}
.recurrence-panel[hidden]{display:none!important}
.recurrence-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.recurrence-presets{display:flex;gap:8px;flex-wrap:wrap}
.recurrence-preset[aria-pressed="true"]{color:#fff!important;background:linear-gradient(135deg,color-mix(in srgb,#9385ff,white var(--btn-lift,28%)),color-mix(in srgb,#6045dd,white var(--btn-lift,28%)))!important;border-color:transparent!important}
.recurrence-custom input[type=number]{width:72px;min-height:38px;border-radius:12px;border:1px solid #ddd7fb;padding:0 10px;font:inherit;background:#fff}
.recurrence-custom .fsel{min-width:96px}.recurrence-custom .fsel-btn{min-height:38px}
.recurrence-custom select{min-height:38px}
.recurrence-start input[type=date]{min-height:38px;border-radius:12px;border:1px solid #ddd7fb;padding:0 10px;font:inherit;background:#fff;color:#27364c}.recurrence-start small{color:#6b7a90;font-size:12px}
.recurrence-panel .help{margin:0}
.recurrence-field{display:grid;gap:10px}
.chip.recurrence-badge{background:rgba(238,235,252,.9);color:#4b3fb8;border:1px solid rgba(116,103,233,.25)}
.task-footer-due .recur-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;background:rgba(238,235,252,.9);color:#4b3fb8;border:1px solid rgba(116,103,233,.25);font-size:12px;font-weight:850;line-height:1.4;white-space:nowrap}
.task-footer-due .recur-tag::before{content:'↻';font-size:12px;font-weight:900}
.task-footer-due .recur-due{gap:6px}
/* 週／月週期：期間＋倒數較長，改成獨立一列，不擠壓執行人 */
.task-footer-grid:has(.recur-due .recur-period){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.task-footer-grid.no-approval:has(.recur-due .recur-period){grid-template-columns:minmax(0,1fr)}
.task-footer-due:has(.recur-period){grid-column:1/-1;justify-content:flex-end;margin-top:10px;padding:10px 0 0;border-top:1px solid rgba(92,112,150,.12)}
/* ===== 必填提示：只用網站自己的提示（不再出現瀏覽器泡泡），框線改在欄位本身 ===== */
.field-missing{outline:none!important;background:none!important;animation:none!important}
.field-missing :is(input,textarea,select,.fsel-btn),:is(input,textarea,select)[aria-invalid="true"]{border-color:#e0536a!important;box-shadow:0 0 0 3px rgba(224,83,106,.16)!important;background:#fffafb!important}
.missing-hint{display:inline-flex!important;align-items:center;gap:6px;margin-top:6px!important;font-size:12.5px!important;font-weight:700;color:#c72035!important}
.missing-hint::before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#e0536a;color:#fff;font-size:11px;font-weight:900}
/* ===== AI 工作詳情：目前狀態置頂、步驟可展開、執行與使用同一列、底部回覆框 ===== */
.aiw-plan-summary{margin:4px 0 10px;font-size:12.5px;color:#606a83;line-height:1.6}
#aiwDetail h4{display:block}
.aiw-now{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:12px 14px;margin:0 0 12px;border-radius:16px;background:linear-gradient(135deg,rgba(246,244,255,.95),rgba(236,245,255,.9));border:1px solid rgba(116,103,233,.3);box-shadow:0 6px 18px rgba(84,72,180,.08)}
.aiw-now small{grid-column:1/-1;font-size:11.5px;color:#6a5ae0;font-weight:800;letter-spacing:.04em}
.aiw-now b{font-size:15px;color:#222841}
.aiw-now p{grid-column:1/-1;margin:2px 0 0;font-size:12.5px;color:#606a83}
.aiw-steps>.aiw-step,.aiw-steps .aiw-steps>.aiw-step{display:block;grid-template-columns:none}
.aiw-steps .aiw-step details{width:100%}
.aiw-steps .aiw-step summary .aiw-step-head b{min-width:0;flex:1 1 auto}
.aiw-steps .aiw-step summary .aiw-st{flex:none;white-space:nowrap}
.aiw-steps .aiw-step:not(:last-child)::before{left:12px;top:30px}
.aiw-steps .aiw-step summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}
.aiw-steps .aiw-step summary::-webkit-details-marker{display:none}
.aiw-steps .aiw-step summary .aiw-step-head{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.aiw-steps .aiw-step summary::after{content:"▾";color:#7467e9;font-size:12px;transition:transform .15s}
.aiw-steps .aiw-step details[open]>summary::after{transform:rotate(180deg)}
.aiw-steps .aiw-step .aiw-step-body{margin:8px 0 4px 36px;display:grid;gap:6px}
.aiw-steps .aiw-step-body>.aiw-row>span:first-child{width:auto;padding-top:0}
.aiw-later{list-style:none}
.aiw-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px}
.aiw-row>span:first-child{color:#606a83;font-weight:700}
.aiw-row-meta .aiw-sep{width:1px;height:16px;background:#e3e1f3;margin:0 2px}
.aiw-did{margin:0;font-size:13px;line-height:1.6;color:#343c55;white-space:pre-wrap}
.aiw-later>details>summary{cursor:pointer;font-size:13px;font-weight:800;color:#6a5ae0;padding:6px 0}
.aiw-later .aiw-steps{margin-top:6px;opacity:.85}
.aiw-act{display:grid;gap:8px}
.aiw-composer{border-radius:20px;background:rgba(255,255,255,.92);border:1px solid #ddd7fb;box-shadow:0 8px 24px rgba(84,72,180,.1),inset 0 1px 0 #fff;padding:10px 12px 8px;transition:border-color .15s,box-shadow .15s}
.aiw-composer:focus-within{border-color:#9f92ee;box-shadow:0 0 0 3px rgba(116,103,233,.14),0 8px 24px rgba(84,72,180,.12)}
.aiw-composer textarea{width:100%;min-height:64px;max-height:220px;resize:none;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:4px 2px!important;font:inherit;font-size:14px;line-height:1.6;color:#222841}
.aiw-composer-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:6px;border-top:1px solid rgba(221,215,251,.7)}
.aiw-composer-count{font-size:11.5px;color:#8a90a6;font-variant-numeric:tabular-nums}
.aiw-composer .aiw-buttons{display:flex;gap:8px;margin:0}
.aiw-composer .aiw-buttons .btn{min-height:36px;padding:6px 14px;font-size:13px}
/* ===== 卡片圖片左右箭頭：改用線條箭頭，確保正中 ===== */
.gallery-arrow{font-size:0!important;line-height:0!important}
.gallery-arrow::before{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border:solid #fff;border-width:0 0 2.5px 2.5px;border-radius:1px;display:block}
.gallery-prev::before{transform:translateX(2px) rotate(45deg)}
.gallery-next::before{transform:translateX(-2px) rotate(-135deg)}
/* ===== 霧面玻璃捲動條（無箭頭）：桌面滑鼠裝置套用；手機維持原生觸控捲動 =====
   控制區 32px＝距邊 8＋感應 24；軌道 14px（距邊 13px、上下各留 20px）；滑塊 8px（hover 10px，中心線不動）。 */
@media (hover:hover) and (pointer:fine){
  @supports selector(::-webkit-scrollbar){
    *:not(.inspiration-left-toolbar):not(.settings-nav){scrollbar-width:auto!important;scrollbar-color:auto!important}
    ::-webkit-scrollbar{width:32px!important;height:32px!important;background:transparent!important}
    ::-webkit-scrollbar-button,::-webkit-scrollbar-button:single-button,::-webkit-scrollbar-button:double-button{display:none!important;width:0!important;height:0!important;background:none!important}
    ::-webkit-scrollbar-corner{background:transparent!important}
    ::-webkit-scrollbar-track{background:rgba(227,234,241,.5) padding-box!important;border:solid transparent!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)!important}
    ::-webkit-scrollbar-track:vertical{border-width:0 13px 0 5px!important;margin-block:20px!important;border-radius:12px 20px 20px 12px/7px!important}
    ::-webkit-scrollbar-track:horizontal{border-width:5px 0 13px 0!important;margin-inline:20px!important;border-radius:7px/12px 12px 20px 20px!important}
    ::-webkit-scrollbar-thumb{border:solid transparent!important;background-clip:padding-box!important;box-shadow:inset 1px 0 1px rgba(255,255,255,.7)!important}
    ::-webkit-scrollbar-thumb:vertical{min-height:40px;border-width:0 16px 0 8px!important;border-radius:12px 20px 20px 12px/4px!important;background-image:linear-gradient(90deg,#D1DCE7,#A7B8C9)!important}
    ::-webkit-scrollbar-thumb:horizontal{min-width:40px;border-width:8px 0 16px 0!important;border-radius:4px/12px 12px 20px 20px!important;background-image:linear-gradient(180deg,#D1DCE7,#A7B8C9)!important}
    ::-webkit-scrollbar-thumb:vertical:hover{border-width:0 15px 0 7px!important;border-radius:12px 20px 20px 12px/5px!important;background-image:linear-gradient(90deg,#BDCDDC,#8FA6BC)!important}
    ::-webkit-scrollbar-thumb:horizontal:hover{border-width:7px 0 15px 0!important;border-radius:5px/12px 12px 20px 20px!important;background-image:linear-gradient(180deg,#BDCDDC,#8FA6BC)!important}
    ::-webkit-scrollbar-thumb:vertical:active{border-width:0 15px 0 7px!important;border-radius:12px 20px 20px 12px/5px!important;background-image:linear-gradient(90deg,#A9BFD2,#7894AD)!important}
    ::-webkit-scrollbar-thumb:horizontal:active{border-width:7px 0 15px 0!important;border-radius:5px/12px 12px 20px 20px!important;background-image:linear-gradient(180deg,#A9BFD2,#7894AD)!important}
  }
  @supports not selector(::-webkit-scrollbar){
    *:not(.inspiration-left-toolbar):not(.settings-nav){scrollbar-color:#A7B8C9 rgba(227,234,241,.5)}
  }
}

/* ===== 第 10 輪：工作詳情高度、勾選對齊、AI 產出查閱、Skill 庫 ===== */
/* 工作詳細資訊：上下各留 50px，其餘高度都給內容 */
@media(min-width:721px){
  #taskDialog[open]{height:calc(100dvh - 100px)!important;max-height:calc(100dvh - 100px)!important;margin-block:auto}
  #taskDialog .dialog-shell{height:100%!important;max-height:100%!important}
}
/* 週期性工作與「需要驗收」同一張卡片樣式、同一條垂直線 */
#taskDialog .recurrence-field{display:grid;gap:10px;padding:0;margin-inline:8px;background:none;border:0;box-shadow:none}
#taskDialog .recurrence-field>.approval-check{margin:0}
#taskDialog .recurrence-field .recurrence-panel{margin:0}
/* 工作詳情裡的多 AI 流程：每一步可點開查看做了什麼與產出 */
.ai-pipeline-steps li{padding:0!important;display:block!important}
.ai-pipeline-steps li>details>summary{list-style:none;cursor:pointer;padding:9px 11px;border-radius:10px}
.ai-pipeline-steps li>details>summary::-webkit-details-marker{display:none}
.ai-pipeline-steps li>details>summary .ai-step-status{margin-left:auto}
.ai-pipeline-steps li>details>summary::after{content:"";margin-left:6px;width:7px;height:7px;border-right:2px solid #8f88b8;border-bottom:2px solid #8f88b8;transform:rotate(-45deg);transition:transform .2s;flex:none}
.ai-pipeline-steps li>details[open]>summary::after{transform:rotate(45deg)}
.ai-pipeline-steps li>details>summary:hover{background:rgba(116,103,233,.06)}
.ai-pipeline-step-body{display:grid;gap:6px;padding:0 12px 11px}
.ai-pipeline-step-body p{white-space:pre-wrap}
.ai-step-empty{color:#8a90a3!important}
.ai-step-files{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:#6b6b85}
/* 產出檔名：可點擊 */
.aiw-res.aiw-file{cursor:pointer;gap:5px;align-items:center;border-color:#cde7da;background:#f1faf5;color:#1d6b47;font:inherit;font-size:12px;padding:3px 9px;min-height:26px;border-radius:8px}
.aiw-res.aiw-file:hover{background:#e2f5ea;border-color:#9fd6b9}
.aiw-res.aiw-file:focus-visible{outline:3px solid #7467e9;outline-offset:2px}
/* 產出查閱視窗 */
dialog.ai-output-dialog{padding:0;border:0;border-radius:22px;width:min(980px,calc(100vw - 32px));height:calc(100dvh - 100px);max-height:none;max-width:none;overflow:hidden;background:#fbfbfe;box-shadow:0 30px 80px rgba(40,30,120,.3)}
dialog.ai-output-dialog::backdrop{background:rgba(34,30,80,.28);backdrop-filter:blur(3px)}
.aio-shell{display:flex;flex-direction:column;height:100%;min-height:0}
.aio-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid #e7e9f1;background:#fff}
.aio-head>div:first-child{min-width:0;flex:1}
.aio-head small{display:block;color:#6b7590;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aio-head h3{margin:2px 0 0;font-size:18px;color:#222841;overflow-wrap:anywhere}
.aio-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.aio-tools .gsm-x{margin-left:4px}
.aio-body{flex:1;min-height:0;overflow:auto;padding:22px clamp(16px,4vw,40px)}
.aio-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 20px;border-top:1px solid #e7e9f1;background:#fff;font-size:12px;color:#6b7590}
.aio-loading{color:#6b7590}
.aio-empty{display:grid;gap:6px;place-items:center;text-align:center;padding:60px 20px;color:#4f586d}
.aio-empty strong{font-size:16px;color:#222841}
.aio-note{padding:10px 14px;border-radius:12px;background:#fff7e8;color:#8a5a00;font-size:13px;margin-bottom:14px}
.aio-figure{margin:0;display:grid;place-items:center;min-height:100%}
.aio-figure img{max-width:100%;max-height:calc(100dvh - 260px);border-radius:12px;box-shadow:0 10px 30px rgba(40,30,120,.15);background:#fff}
.aio-media{width:100%;max-height:calc(100dvh - 260px);border-radius:12px;background:#000}
.aio-html{display:grid;gap:10px;height:100%}
.aio-html iframe{width:100%;min-height:60vh;border:1px solid #e3e5ec;border-radius:12px;background:#fff}
/* Markdown 閱讀樣式（AI 產出、Skill 庫共用） */
.md-view{max-width:820px;margin:0 auto;color:#27364c;font-size:15px;line-height:1.75;overflow-wrap:anywhere}
.md-view h1,.md-view h2,.md-view h3,.md-view h4{color:#222841;line-height:1.35;margin:1.3em 0 .5em}
.md-view h1{font-size:24px}.md-view h2{font-size:20px;padding-bottom:6px;border-bottom:1px solid #e7e9f1}.md-view h3{font-size:17px}.md-view h4{font-size:15px}
.md-view>:first-child{margin-top:0}
.md-view p,.md-view ul,.md-view ol,.md-view blockquote,.md-view pre,.md-view .md-table,.md-view dl{margin:0 0 1em}
.md-view ul,.md-view ol{padding-left:1.4em}
.md-view li{margin:.2em 0}
.md-view li.md-task{list-style:none;margin-left:-1.2em}
.md-view code{background:#eeecf9;border-radius:6px;padding:1px 5px;font-size:.9em}
.md-view a{color:#4b3fb8}
.md-view blockquote{padding:8px 14px;border-left:4px solid #b9b0f0;background:#f7f5ff;border-radius:0 10px 10px 0}
.md-view hr{border:0;border-top:1px solid #e3e5ec;margin:1.5em 0}
.md-code{margin:0;overflow:auto;background:#1f2433;color:#e8eaf3;padding:14px 16px;border-radius:12px;font-size:13px;line-height:1.55}
.md-code code{background:none!important;padding:0!important;color:inherit;white-space:pre}
.md-table{overflow:auto;border-radius:12px;border:1px solid #e3e5ec;background:#fff}
.md-table table{border-collapse:collapse;width:100%;font-size:14px}
.md-table th,.md-table td{border-bottom:1px solid #eceef4;padding:8px 10px;text-align:left;vertical-align:top}
.md-table th{background:#f3f1fd;color:#2e2a5c;font-weight:700;position:sticky;top:0}
.md-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;padding:12px 16px;border-radius:12px;background:#f3f1fd;font-size:13.5px}
.md-meta dt{font-weight:700;color:#4b3fb8}.md-meta dd{margin:0}
/* Skill 庫 */
dialog.skills-lib{height:calc(100dvh - 100px)}
.skills-nav h2{display:flex;align-items:baseline;gap:8px}
.skills-nav h2 small{font-size:12px;color:#6b7590;font-weight:600}
.skills-nav input[type=search]{min-height:40px;border-radius:12px;border:1px solid #ddd7fb;padding:0 12px;font:inherit;font-size:14px;background:#fff;margin:0 2px 6px}
.skills-nav #skillsNew{margin:0 2px 8px}
.skills-nav{overflow:hidden!important}
.skills-list{display:block;flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding-right:4px}
.skills-list button{display:flex!important;align-items:center;margin:1px 0}
.skills-group{display:flex;justify-content:space-between;margin:12px 10px 4px;font-size:12px;font-weight:800;color:#6b7590;letter-spacing:.02em}
.skills-group span{font-weight:700;color:#9aa1b4}
.skills-list button{min-height:38px!important;padding:8px 12px!important;font-size:13.5px!important;justify-content:space-between}
.skills-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skills-badge{flex:none;font-size:11px;padding:1px 7px;border-radius:999px;background:#eef1f7;color:#5f6f86}
.skills-empty-nav{color:#6b7590;font-size:13px;margin:12px 10px}
.skills-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.skills-actions+.gsm-x{margin-left:0}
.skills-body{overflow:auto;padding:24px clamp(16px,4vw,40px)}
.skills-overview{max-width:760px;color:#3a4458;line-height:1.75}
.skills-overview li{margin:.35em 0}
.skills-editor{display:grid;gap:8px;height:100%;grid-template-rows:auto auto auto minmax(0,1fr)}
.skills-editor label{font-weight:700;font-size:13px;color:#3a4458}
.skills-editor input{min-height:40px;border-radius:12px;border:1px solid #ddd7fb;padding:0 12px;font:inherit;background:#fff}
.skills-editor input[readonly]{background:#f3f4f8;color:#5f6f86}
.skills-editor textarea{min-height:360px;height:100%;border-radius:12px;border:1px solid #ddd7fb;padding:12px 14px;font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;background:#fff;resize:vertical}
@media(max-width:760px){dialog.ai-output-dialog,dialog.skills-lib{width:100vw;height:100dvh;border-radius:0}.aio-head{flex-wrap:wrap}.skills-nav input[type=search],.skills-nav #skillsNew{min-width:180px}.skills-list{display:flex}.skills-group{display:none}}
/* 左側選單最下方：Skill 庫（在全局設定上面） */
.sidebar #railSkills{display:flex!important;align-items:center;justify-content:center;gap:6px;width:100%;flex-shrink:0;text-align:center;text-decoration:none;margin-top:20px;color:#43536a;background:linear-gradient(135deg,rgba(247,250,254,.9),rgba(215,225,239,.86));border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 5px 14px rgba(42,60,100,.1)}
.sidebar #railSkills:hover{color:#26364f;background:rgba(255,255,255,.78);border-color:#fff}
.sidebar #railSkills .navigation-copy{display:inline}
.sidebar #railSkills+#railGlobalSettings{margin-top:8px!important}
@media(min-width:901px){
  body.sidebar-collapsed .sidebar #railSkills{width:56px;height:56px;min-height:56px;padding:0;margin-top:auto;border-radius:16px;font-size:24px;background:none!important;border:0!important;box-shadow:none!important}
  body.sidebar-collapsed .sidebar #railSkills:hover{background:rgba(255,255,255,.45)!important}
  body.sidebar-collapsed .sidebar #railSkills .navigation-copy{display:none!important}
  body.sidebar-collapsed .sidebar #railSkills+#railGlobalSettings{margin-top:2px!important}
}

/* 待審核鎖定：「詳細內容」開關與詳細區塊外框不鎖（裡面的欄位各自鎖定，工作驗收區可操作） */
.approval-locked .form-grid>.detail-toggle,.approval-locked .form-grid>#taskDetails{pointer-events:auto!important;opacity:1!important;filter:none!important}
.approval-locked .form-grid>.detail-toggle::after,.approval-locked .form-grid>#taskDetails::after,.approval-locked .form-grid>.approval-lock-note::after,.approval-locked .form-grid>.recurrence-field::after{content:none!important;display:none!important}
.approval-locked .form-grid>.approval-lock-note{pointer-events:auto!important;opacity:1!important;filter:none!important}
.approval-lock-note{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#fff8e8,#fff1d6);border:1px solid #f2d59b;color:#6b4d12}
.approval-lock-note>div:first-child{flex:1;min-width:220px}
.approval-lock-note strong{display:block;font-size:14px;color:#5a3e05}
.approval-lock-note p{margin:3px 0 0;font-size:12.5px;line-height:1.5}
.approval-lock-actions{display:flex;gap:8px;flex-wrap:wrap}
/* 流程看板：各欄高度一致（跟最長的一欄一樣），放置區延伸到欄位底部，捲到哪裡都能拖放（參考工作路線） */
#board.board,#board .board{align-items:stretch!important}
#board .column{display:flex!important;flex-direction:column}
#board .column>.task-list{flex:1 1 auto}
/* 待審核時「工作驗收」區要能操作：驗收證據與「完成驗收／退回驗收」按鈕不鎖（核准者與驗收條件維持鎖定） */
.approval-locked #approvalPanel .form-grid>*{pointer-events:auto!important;opacity:1!important;filter:none!important}
.approval-locked #approvalPanel .form-grid>*::after{content:none!important;display:none!important}
.approval-locked .form-grid>.approval-check::after{content:none!important;display:none!important}
/* 左側選單固定寬度：內容不會左右捲動 */
.sidebar{overflow-x:hidden!important}
/* 主要範圍上下漸進模糊：固定在畫面上下（不用透明度切換，避免捲動時閃一下） */
.main-fade{position:fixed;z-index:4;height:108px;pointer-events:none;visibility:hidden}
.main-fade>i{position:absolute;inset:0;display:block}
.main-fade-tint{position:absolute;inset:0;display:block;opacity:calc(var(--fade-k,1) * .5)}
.main-fade-top .main-fade-tint{background:linear-gradient(to bottom,rgb(236,241,250),transparent)}
.main-fade-bottom .main-fade-tint{background:linear-gradient(to top,rgb(236,241,250),transparent)}
@media(max-width:900px){.main-fade{display:none}}
/* ===== SKILL 技能庫頁面 ===== */
body.skills-mode .top{display:none!important}
.skills-page{display:grid;gap:18px;padding:4px 2px 40px}
.skp-hero{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 24px;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(238,242,252,.62));border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 10px 30px rgba(42,60,100,.08)}
.skp-hero img{filter:drop-shadow(0 8px 16px rgba(80,70,180,.18))}
.skp-hero-copy{flex:1;min-width:220px}
.skp-hero h2{margin:0;font-size:26px;letter-spacing:.02em;color:#222841}
.skp-hero p{margin:6px 0 0;color:#5f6f86;font-size:14px}
.skp-actions{display:flex;gap:10px;flex-wrap:wrap}
.skp-actions .btn{min-height:42px;padding:0 18px;border-radius:14px;font-weight:800}
.skp-actions #skpManage[aria-pressed="true"]{background:#222841;color:#fff;border-color:#222841}
.skp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.skp-tabs{display:flex;gap:8px}
.skp-tabs button{min-height:40px;padding:0 16px;border-radius:14px;border:1px solid rgba(92,112,150,.16);background:rgba(255,255,255,.85);font:inherit;font-weight:800;color:#27364c;cursor:pointer}
.skp-tabs button[aria-pressed="true"]{background:#222841;color:#fff;border-color:#222841}
.skp-count{color:#6b7590;font-size:13px;font-weight:700}
#skpSearch{margin-left:auto;min-width:220px;min-height:40px;border-radius:14px;border:1px solid rgba(92,112,150,.18);background:rgba(255,255,255,.88);padding:0 14px;font:inherit}
.skp-views{display:flex;padding:3px;border-radius:14px;background:rgba(255,255,255,.7);border:1px solid rgba(92,112,150,.14)}
.skp-views button{display:flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border:0;border-radius:11px;background:none;font:inherit;font-size:13px;font-weight:700;color:#5f6f86;cursor:pointer}
.skp-views button svg{width:16px;height:16px;fill:currentColor}
.skp-views button[aria-pressed="true"]{background:#fff;color:#4b3fb8;box-shadow:0 2px 8px rgba(84,72,180,.14)}
.skp-bulk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:14px;background:#fff7e8;border:1px solid #f2d59b;color:#6b4d12;font-size:13px;font-weight:700}
.skp-bulk small{font-weight:600;color:#8a6a2a}
.skp-empty{display:grid;place-items:center;gap:6px;text-align:center;padding:60px 20px;color:#5f6f86;border-radius:22px;background:rgba(255,255,255,.55)}
.skp-empty strong{font-size:16px;color:#222841}
/* 分類 */
.skp-group{display:grid;gap:12px;margin-bottom:10px}
.skp-group>header{display:flex;align-items:center;gap:12px}
.skp-group>header h3{margin:0;display:flex;align-items:center;gap:8px;font-size:18px;color:#222841}
.skp-group>header h3 span{font-size:12px;min-width:24px;height:22px;padding:0 7px;border-radius:11px;display:inline-grid;place-items:center;background:rgba(116,103,233,.12);color:#4b3fb8}
.skp-group>header p{margin:2px 0 0;font-size:13px;color:#6b7590}
.skp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.skp-card{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:12px;padding:18px 20px;border-radius:22px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);box-shadow:0 8px 24px rgba(42,60,100,.07);cursor:pointer;transition:transform .18s,box-shadow .18s}
.skp-card:hover,.skp-card:focus-visible{transform:translateY(-2px);box-shadow:0 14px 32px rgba(42,60,100,.12);outline:none}
.skp-card-top{display:flex;align-items:center;gap:12px}
.skp-card-top>div{flex:1;min-width:0}
.skp-card-top small{display:block;font-size:12px;color:#6b7590;font-weight:700}
.skp-card-top h4{margin:2px 0 0;font-size:17px;color:#222841;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skp-card p{margin:0;color:#4f5c72;font-size:14px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.skp-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#6b7590}
.skp-go{font-weight:700;color:#4f5c72;white-space:nowrap}
.skp-src{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.skp-src[data-src="builtin"]::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#9aa6bd;margin-right:6px;vertical-align:1px}
.skp-src[data-src="server"]::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#34b27b;margin-right:6px;vertical-align:1px}
.skp-star{border:0;background:none;font-size:20px;line-height:1;color:#c6ccd8;cursor:pointer;padding:4px;border-radius:8px}
.skp-star[aria-pressed="true"]{color:#f0b429}
.skp-star:hover{background:rgba(240,180,41,.12)}
.skp-manage{display:flex;gap:6px}
.skp-check{position:absolute;top:12px;left:12px;z-index:2}
.skp-check input{width:18px;height:18px;accent-color:#7467e9}
.skp-card:has(.skp-check){padding-left:40px}
/* 清單 */
.skp-table{display:grid;border-radius:18px;overflow:hidden;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);box-shadow:0 8px 24px rgba(42,60,100,.06)}
.skp-row{display:grid;grid-template-columns:minmax(220px,2fr) 1fr 70px 110px 70px 120px;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid #eef0f5;font-size:13.5px;color:#3a4458;cursor:pointer}
.skp-row:has(.skp-check){grid-template-columns:28px minmax(220px,2fr) 1fr 70px 110px 70px 120px}
.skp-row .skp-check{position:static}
.skp-row:hover{background:#f7f6fe}
.skp-row-head{border-top:0;background:#f3f1fd;font-weight:800;color:#4b3fb8;cursor:default;font-size:12.5px}
.skp-row-head:hover{background:#f3f1fd}
.skp-name{display:flex;align-items:center;gap:10px;font-weight:700;color:#222841;min-width:0}
.skp-name small{font-weight:500;color:#8a93a8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skp-row>span:last-child{display:flex;justify-content:flex-end}
/* 小圖示 */
.skp-icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.skp-tile{position:relative;display:grid;justify-items:center;gap:8px;padding:14px 8px 12px;border-radius:16px;border:1px solid transparent;background:rgba(255,255,255,.6);font:inherit;font-size:12.5px;font-weight:700;color:#27364c;cursor:pointer;text-align:center}
.skp-tile:hover,.skp-tile:focus-visible{background:#fff;border-color:#ddd7fb;box-shadow:0 6px 16px rgba(84,72,180,.12);outline:none}
.skp-tile span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.skp-tile .skp-check{top:6px;left:6px}
/* 內容 */
.skp-content{display:grid;gap:10px}
.skp-line{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 18px;border-radius:18px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);cursor:pointer}
.skp-line:has(.skp-check){grid-template-columns:24px auto minmax(0,1fr) auto}
.skp-line .skp-check{position:static}
.skp-line:hover{box-shadow:0 8px 22px rgba(42,60,100,.1)}
.skp-line h4{margin:0;font-size:16px;color:#222841;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.skp-line h4 small{font-size:12px;color:#8a93a8;font-weight:500}
.skp-line p{margin:4px 0 0;font-size:13.5px;color:#4f5c72;line-height:1.6}
.skp-line-meta{display:grid;justify-items:end;gap:4px;font-size:12px;color:#6b7590;white-space:nowrap}
/* 閱讀／編輯／上傳視窗 */
dialog.skills-dialog{width:min(1040px,calc(100vw - 32px))}
.skp-reader-icon{flex:none}
.aio-tools .skp-src{font-size:12px;color:#6b7590;max-width:260px}
.ske-row{display:grid;grid-template-columns:220px 1fr;gap:12px}
.ske-row label{display:grid;gap:6px;font-weight:700;font-size:13px;color:#3a4458}
.ske-row select{min-height:40px;border-radius:12px;border:1px solid #ddd7fb;padding:0 10px;font:inherit;background:#fff}
.ske-ai{margin:0;padding:10px 14px;border-radius:12px;background:#f3f1fd;color:#4b3fb8;font-size:13px;font-weight:700}
.skills-editor{grid-template-rows:auto auto auto minmax(0,1fr)!important}
.sku-drop{display:grid;gap:6px;place-items:center;text-align:center;padding:34px 20px;border:2px dashed #cfc8f5;border-radius:18px;background:#faf9ff;color:#5f6f86;cursor:pointer}
.sku-drop strong{font-size:16px;color:#4b3fb8}
.sku-drop.over{background:#f0edff;border-color:#7467e9}
.sku-list{display:grid;gap:8px;margin-top:14px}
.sku-item{display:grid;grid-template-columns:32px minmax(0,1fr) 170px auto auto;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:#fff;border:1px solid #eceef4}
.sku-item input,.sku-item select{min-height:36px;border-radius:10px;border:1px solid #ddd7fb;padding:0 10px;font:inherit;background:#fff;min-width:0}
.sku-item small{color:#8a93a8;white-space:nowrap}
.sidebar #railSkills .rail-skill-icon{width:22px;height:22px;flex:none}
@media(min-width:901px){body.sidebar-collapsed .sidebar #railSkills .rail-skill-icon{width:30px;height:30px}}
@media(max-width:760px){.skp-row,.skp-row:has(.skp-check){grid-template-columns:minmax(0,1fr) auto}.skp-row>span:nth-child(n+3):not(:last-child){display:none}.skp-row-head{display:none}.ske-row{grid-template-columns:1fr}.sku-item{grid-template-columns:32px 1fr}.skp-views button span{display:none}#skpSearch{min-width:0;flex:1 1 100%}}
/* 分類檢視：各分類並排成多欄，分類內的技能往下排 */
.skp-view[data-view="group"]{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:22px 18px;align-items:start}
.skp-view[data-view="group"] .skp-cards{grid-template-columns:1fr}
.skp-view[data-view="group"] .skp-group{margin:0;padding:14px;border-radius:24px;background:rgba(255,255,255,.38);border:1px solid rgba(255,255,255,.7)}
/* SKILL 技能庫：12＋1 個分類資料夾（通用 SKILL 在最前面）；點資料夾進入該分類 */
.skp-views{gap:6px;padding:4px}
.skp-views button{padding:0 14px;gap:7px}
.skp-bar{gap:14px}
.skp-crumb{display:flex;align-items:center;gap:10px;min-height:40px;font-size:15px;color:#3a4458}
.skp-crumb img{flex:none}
.skp-back{width:36px;height:36px;border-radius:12px;border:1px solid rgba(92,112,150,.18);background:rgba(255,255,255,.9);font-size:22px;line-height:1;color:#4b3fb8;cursor:pointer}
.skp-crumb-link{border:0;background:none;font:inherit;font-weight:700;color:#4b3fb8;cursor:pointer;padding:4px 6px;border-radius:8px}
.skp-crumb-link:hover{background:rgba(116,103,233,.1)}
.skp-crumb-sep{color:#9aa1b4}
.skp-crumb-now{font-weight:800;color:#222841}
.skp-crumb-count{margin-left:4px;font-size:13px;color:#6b7590;font-weight:600}
.skp-view[data-view="group"]{display:block}
.skp-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.skp-folder{display:flex;gap:16px;align-items:flex-start;padding:20px 22px;border-radius:22px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);box-shadow:0 8px 24px rgba(42,60,100,.07);cursor:pointer;transition:transform .18s,box-shadow .18s}
.skp-folder:hover,.skp-folder:focus-visible{transform:translateY(-2px);box-shadow:0 14px 32px rgba(42,60,100,.12);outline:none}
.skp-folder img{flex:none;filter:drop-shadow(0 6px 12px rgba(40,50,90,.15))}
.skp-folder>div{min-width:0}
.skp-folder h4{margin:4px 0 0;display:flex;align-items:center;gap:8px;font-size:17px;color:#222841}
.skp-folder h4 span{font-size:12px;min-width:24px;height:22px;padding:0 7px;border-radius:11px;display:inline-grid;place-items:center;background:rgba(116,103,233,.12);color:#4b3fb8}
.skp-folder p{margin:6px 0 0;font-size:13.5px;color:#4f5c72;line-height:1.6}
.skp-folder small{display:block;margin-top:8px;font-size:12px;color:#8a93a8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skp-folder[data-empty="true"]{background:rgba(255,255,255,.6)}
.skp-folder[data-empty="true"] h4 span{background:#eef1f7;color:#8a93a8}
.skp-icons{gap:14px;grid-template-columns:repeat(auto-fill,minmax(124px,1fr))}
.skp-tile{padding:16px 10px 14px;gap:10px}
.skp-tile em{position:absolute;top:8px;right:10px;font-style:normal;font-size:11px;font-weight:800;color:#4b3fb8;background:rgba(116,103,233,.12);border-radius:9px;padding:0 6px;line-height:18px}
.skp-cards{gap:18px}
.skp-content{gap:12px}
.skp-row.skp-row-folder{grid-template-columns:minmax(200px,1fr) 2fr 80px}
@media(max-width:760px){.skp-row.skp-row-folder{grid-template-columns:1fr auto}.skp-row.skp-row-folder>span:nth-child(2){display:none}}
/* ===== 第 12 輪 ===== */
/* SKILL：自訂資料夾與建立資料夾 */
.skp-newfolder{min-height:40px;padding:0 16px;border-radius:14px;border:1px dashed rgba(116,103,233,.55);background:rgba(255,255,255,.7);font:inherit;font-weight:800;color:#4b3fb8;cursor:pointer}
.skp-newfolder:hover{background:#fff;border-style:solid}
.skp-subfolders{margin-bottom:18px}
.skp-subfolder{position:relative;align-items:center}
.skp-subfolder img{border-radius:14px;object-fit:cover}
.skp-folder-edit{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:10px;border:1px solid rgba(92,112,150,.16);background:rgba(255,255,255,.9);color:#4b3fb8;cursor:pointer;opacity:0;transition:opacity .15s}
.skp-subfolder:hover .skp-folder-edit,.skp-subfolder:focus-within .skp-folder-edit{opacity:1}
@media(hover:none){.skp-folder-edit{opacity:1}}
.skp-crumb-link{display:inline-flex;align-items:center;gap:6px}
dialog.skills-dialog:has(.skf-shell){width:min(620px,calc(100vw - 32px));height:auto;max-height:calc(100dvh - 100px)}
.skf-form{display:grid;gap:14px}
.skf-preview{display:flex;align-items:center;gap:16px}
.skf-preview img{border-radius:16px;background:#f3f1fd;object-fit:cover}
.skf-preview>div{flex:1;display:grid;gap:6px}
.skf-preview label,.skf-label{font-weight:700;font-size:13px;color:#3a4458;margin:0}
.skf-preview input{min-height:42px;border-radius:12px;border:1px solid #ddd7fb;padding:0 12px;font:inherit;background:#fff}
.skf-icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:8px}
.skf-icon{display:grid;place-items:center;height:60px;border-radius:14px;border:1px solid #eceef4;background:#fff;cursor:pointer}
.skf-icon[aria-pressed="true"]{border-color:#7467e9;box-shadow:0 0 0 3px rgba(116,103,233,.2)}
.skf-upload span{display:grid;place-items:center;font-size:20px;color:#4b3fb8;line-height:1}
.skf-upload small{font-size:11px;font-weight:700}
.skf-hint{margin:0;font-size:12px;color:#6b7590}
/* AI 工作流：連線說明放在本機連線下方，與右側專案篩選同一列 */
.aiw-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"conns filter";align-items:center!important;column-gap:16px}
.aiw-head .aiw-head-conns{grid-area:conns;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.aiw-head .aiw-legend{margin-left:4px}
.aiw-head .aiw-head-conns>.aiw-conns{margin:0!important}
@media (max-width:640px){.aiw-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"conns" "filter";row-gap:12px}.aiw-head>.ai-workflow-filter{justify-self:stretch}}
.aiw-head>.ai-workflow-filter{grid-area:filter;align-self:center}
/* 等你驗收：改用圖示（步驟清單只顯示圖示，文字放在 title） */
.aiw-st[data-status="step_review"],.aiw-st[data-status="review"]{display:inline-flex;align-items:center;gap:4px;padding-left:4px}
.aiw-st[data-status="step_review"]::before,.aiw-st[data-status="review"]::before{content:"";width:18px;height:18px;flex:none;background:url(/skill-icons/await-review.webp) center/contain no-repeat}
.aiw-steps .aiw-st:is([data-status="review"],[data-status="step_review"],[data-status="completed"]){font-size:0;width:30px;height:30px;padding:0;justify-content:center;display:inline-flex;align-items:center;background:#fff7e0;border:1px solid #f3dc9c;border-radius:10px}
.aiw-steps .aiw-st:is([data-status="review"],[data-status="step_review"],[data-status="completed"])::before{content:"";width:22px;height:22px;background:url(/skill-icons/await-review.webp) center/contain no-repeat}
/* 執行／使用與 AI 工具同一水平 */
.aiw-row-meta{align-items:center}
.aiw-row-meta>span:not(.aiw-badge):not(.aiw-res):not(.aiw-lvl){display:inline-flex;align-items:center;min-height:26px}
.aiw-row-meta .aiw-badge{align-self:center}
/* 語音新增工作：可以拖移 */
#quickCreateTask{touch-action:none;cursor:grab}
#quickCreateTask.dragging{cursor:grabbing;opacity:.92;transition:none}
/* ===== AI 回覆框：紫藍磨砂玻璃，浮在工作詳情下方 ===== */
.aiwc{position:fixed;z-index:45;left:0;bottom:16px;width:360px;margin:0;padding:0 14px 14px;box-sizing:border-box;display:grid;gap:8px;color:#25263b;pointer-events:none}
.aiwc>*{pointer-events:auto;position:relative}
/* 整個回覆區的霧面底：上緣漸淡，蓋住底下的內容，與詳情內容分開 */
.aiwc::before{content:"";position:absolute;left:0;right:0;top:-30px;bottom:0;border-radius:0 0 var(--aiwc-r,22px) var(--aiwc-r,22px);background:linear-gradient(to bottom,rgba(248,247,255,0),rgba(248,247,255,.9) 38px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 38px);mask-image:linear-gradient(to bottom,transparent,#000 38px);pointer-events:auto}
.aiwc[hidden],.aiwc [hidden]{display:none!important}
.aiwc textarea#aiwNote:disabled{cursor:not-allowed}
.aiwc .aiwc-tb:disabled{opacity:.4;cursor:not-allowed}
.aiwc-status{display:inline-flex;align-items:center;gap:7px;justify-self:start;max-width:100%;min-height:28px;padding:4px 12px 4px 10px;border-radius:999px;font-size:12.5px;color:#626578;background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 0 0 1px rgba(220,223,241,.8)}
.aiwc-status svg{width:15px;height:15px;flex:none;color:#8a72e0}
.aiwc-status span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.aiwc-status b{font-weight:600;color:#25263b}
.aiwc-status.busy svg{animation:aiwc-twinkle 1.4s ease-in-out infinite}
.aiwc-status.rec svg{color:#e5484d}
@keyframes aiwc-twinkle{50%{opacity:.35;transform:scale(.8) rotate(20deg)}}
.aiwc-glass{position:relative;display:flex;flex-direction:column;min-height:118px;padding:14px 10px 8px 16px;border-radius:24px;border:1px solid #dcdff1;background:linear-gradient(135deg,rgba(157,127,238,.12),rgba(104,159,237,.12)),rgba(250,251,255,.8);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);box-shadow:0 14px 36px rgba(88,76,150,.14),0 3px 10px rgba(88,76,150,.07),inset 0 1px 0 rgba(255,255,255,.95);transition:box-shadow .2s,border-color .2s}
.aiwc-glass:focus-within{border-color:#cbc6ee;box-shadow:0 16px 40px rgba(88,76,150,.18),0 0 0 4px rgba(128,103,215,.10),inset 0 1px 0 #fff}
.aiwc-glass.drag{border-color:#8067d7;box-shadow:0 0 0 3px rgba(128,103,215,.35)}
.aiwc-glass.nudge{animation:aiwc-shake .35s ease;border-color:#f0b4b4}
.aiwc-files{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.aiwc-files:empty{display:none}
.aiwc-file-chip{display:flex;align-items:center;gap:6px;padding:4px 4px 4px 4px;border-radius:12px;background:rgba(255,255,255,.8);border:1px solid #e3e3f2;max-width:180px}
.aiwc-file-chip img{width:32px;height:32px;border-radius:8px;object-fit:cover;flex:none}
.aiwc-file-chip span{font-size:11.5px;color:#44465c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.aiwc-file-chip button{width:24px;height:24px;border-radius:50%;border:0;background:transparent;color:#7a7d92;cursor:pointer;flex:none;font-size:14px;padding:0}
.aiwc-file-chip button:hover{background:#eeecf8}
.aiwc textarea#aiwNote{flex:1;display:block;width:100%;border:0!important;outline:0;background:transparent!important;box-shadow:none!important;resize:none;font:inherit;font-size:15px;line-height:1.6;color:#25263b;padding:0!important;margin:0;min-height:48px;max-height:34vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(128,103,215,.35) transparent}
.aiwc textarea#aiwNote::placeholder{color:#73768c}
.aiwc textarea#aiwNote::-webkit-scrollbar{width:6px}.aiwc textarea#aiwNote::-webkit-scrollbar-thumb{background:rgba(128,103,215,.35);border-radius:3px}.aiwc textarea#aiwNote::-webkit-scrollbar-button{display:none;height:0}
.aiwc-bar{display:flex;align-items:center;gap:4px;margin-top:8px}
.aiwc-grow{flex:1}
.aiwc-tb{height:40px;min-width:40px;border-radius:20px;border:0;background:transparent;color:#4f5268;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;cursor:pointer;transition:background .15s,color .15s,transform .12s}
.aiwc-tb:hover{background:rgba(128,103,215,.09);color:#25263b}
.aiwc-tb:active{transform:scale(.92)}
.aiwc-tb svg{width:19px;height:19px;flex:none}
.aiwc-attach{margin-left:-8px;padding:0}.aiwc-attach svg{width:22px;height:22px}
.aiwc-mic[aria-pressed="true"]{background:#e5484d;color:#fff;animation:aiwc-rec 1.4s ease-out infinite}
.aiwc-mic[aria-pressed="true"]:hover{background:#d93d42;color:#fff}
@keyframes aiwc-rec{0%{box-shadow:0 0 0 0 rgba(229,72,77,.45)}100%{box-shadow:0 0 0 12px rgba(229,72,77,0)}}
.aiwc-ai img,.aiwc-opt img{width:26px;height:26px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #fff,0 2px 6px rgba(60,50,120,.18)}
.aiwc-mono{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;background:#ece8ff;color:#5b4fc4;font-size:11px;font-weight:800}
.aiwc-chev{font-size:11px;color:#8a72e0;transition:transform .15s}
.aiwc-ai[aria-expanded="true"] .aiwc-chev{transform:rotate(180deg)}
.aiwc-pick{position:relative}
.aiwc-menu{position:absolute;right:0;bottom:48px;min-width:230px;padding:6px;border-radius:16px;border:1px solid #dcdff1;background:rgba(252,252,255,.95);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 18px 40px rgba(70,60,140,.18);z-index:10}
.aiwc-menu[hidden]{display:none}
.aiwc-mh{font-size:12px;color:#626578;padding:6px 10px 4px}
.aiwc-opt{width:100%;display:flex;align-items:center;gap:9px;min-height:42px;padding:0 10px;border:0;border-radius:12px;background:transparent;font:inherit;font-size:13.5px;color:#25263b;cursor:pointer;text-align:left}
.aiwc-opt:hover:not(:disabled),.aiwc-opt:focus-visible{background:#f0eefb}
.aiwc-opt[aria-selected="true"]{background:#ece9fb}
.aiwc-opt:disabled{opacity:.45;cursor:not-allowed}
.aiwc-nm{flex:1;font-weight:600}
.aiwc-def{font-size:10.5px;font-weight:700;color:#534393;background:#efedf9;border-radius:6px;padding:1px 6px;white-space:nowrap}
.aiwc-send{width:40px;height:40px;border-radius:50%;border:0;display:grid;place-items:center;color:#fff;cursor:pointer;flex:none;background:linear-gradient(135deg,#8067d7,#567ed0);box-shadow:0 8px 18px rgba(96,104,210,.35);transition:transform .12s,opacity .15s,box-shadow .15s,filter .15s}
.aiwc-send svg{width:19px;height:19px}
.aiwc-send:disabled{opacity:.32;box-shadow:none;cursor:not-allowed}
.aiwc-send:not(:disabled):hover{transform:translateY(-2px) scale(1.06);box-shadow:0 12px 24px rgba(96,104,210,.45);filter:brightness(1.08)}
.aiwc-send:not(:disabled):hover svg{animation:aiwc-nudge .6s ease}
.aiwc-send:not(:disabled):active{transform:scale(.92)}
.aiwc-send.sent svg{animation:aiwc-fly .45s ease-in}
@keyframes aiwc-nudge{40%{transform:translateY(-3px)}}
@keyframes aiwc-fly{60%{transform:translateY(-18px);opacity:0}61%{transform:translateY(14px);opacity:0}100%{transform:none;opacity:1}}
.aiwc-decide{display:flex;justify-content:center;gap:10px}
.aiwc-d{position:relative;overflow:hidden;flex:1;max-width:300px;height:44px;border-radius:15px;border:0;font:inherit;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,transform .12s}
.aiwc-d:hover{transform:translateY(-1px)}.aiwc-d:active{transform:scale(.96)}
.aiwc-back{background:#fdeeee;color:#b83d3d;box-shadow:inset 0 0 0 1px #f5d3d3}.aiwc-back:hover{background:#fae2e2}
.aiwc-ok{background:#e8f6ee;color:#1d7a4f;box-shadow:inset 0 0 0 1px #cdebd9}.aiwc-ok:hover{background:#dcf1e5}
.aiwc-d:disabled{opacity:.55;cursor:not-allowed}
.aiwc-rip{position:absolute;border-radius:50%;transform:scale(0);animation:aiwc-ripple .55s ease-out forwards;pointer-events:none;background:currentColor;opacity:.22}
@keyframes aiwc-ripple{to{transform:scale(1);opacity:0}}
.aiwc-d.shake{animation:aiwc-shake .35s ease}
@keyframes aiwc-shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media (prefers-reduced-motion:reduce){.aiwc *{animation:none!important;transition:none!important}}
/* 有 AI 回覆框時，「語音新增工作」預設位置移到詳情欄左側，避免蓋住同意／退回（拖移過的位置不受影響） */
/* 「語音新增工作」改為只有麥克風圖示的圓形按鈕 */
#quickCreateTask{width:56px!important;height:56px!important;min-height:56px!important;min-width:0!important;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center;gap:0!important}
#quickCreateTask svg{width:24px;height:24px;display:block}
body:has(.aiwc:not([hidden])) #quickCreateTask:not(.placed){right:var(--aiwc-right,20px)!important}
/* AI 工作流步驟：執行／產出／意見的標題與內容水平置中（蓋過上方 .aiw-step-body>div 的靠上對齊）；互審內容較長，維持靠上 */
.aiw-step-body>.aiw-row{align-items:center}
.aiw-step-body>.aiw-row>span:first-child{display:inline-flex;align-items:center;min-height:26px;padding-top:0}
.aiw-step-body>.aiw-row>.aiw-muted{margin:0}
.aiw-step-body>.aiw-row:has(>.aiw-check){align-items:flex-start}
.aiw-step-body>.aiw-row:has(>.aiw-check)>span:first-child{min-height:0}
