/* ═══ TOKENS:BEGIN ══════════════════════════════════════════════════════════
   助手表面的唯一取值来源。本块之外，面板内不得再新增写死的十六进制色值。
   弹窗都挂在 body 下（不在 .oa-panel 内），所以作用域必须逐个列到根节点；
   用 :where() 是为了零特异性，不参与任何覆盖竞争。
   颜色一律别名到宿主 styles.css:1 的 :root 令牌，只有四处刻意偏离（见下）。
   ══════════════════════════════════════════════════════════════════════════ */
:where(.oa-panel,.oa-procedure-dialog,.oa-agenda-dialog,.oa-finance-dialog,
       .oa-personal-dialog,.oa-review-overview,.oa-image-dialog,.oa-prefill-dialog,
       .ai-assistant-focus,.todo-ai-assisted-chip,.todo-ai-generated-chip){
  /* 后三个是挂在宿主页元素上的（指向高亮 / 待办 AI 标记），不在任何 oa 容器内，
     必须把自身也作为 token 宿主，否则 var() 解析失败会静默丢掉整条声明。 */
  /* 字：11 角标 / 12 次要 / 14 正文 / 18 弹窗标题，只有四档 */
  --oa-font-xs:11px; --oa-font-sm:12px; --oa-font:14px; --oa-font-title:18px;
  --oa-line-height:1.55;
  /* 距：4 / 8 / 12 / 16，只有四档 */
  --oa-space-xs:4px; --oa-space-sm:8px; --oa-space:12px; --oa-space-lg:16px;
  --oa-card-pad:12px;
  /* 角：12 容器 / 8 控件 / 999 徽章，只有三档 */
  --oa-radius:12px; --oa-radius-sm:8px; --oa-radius-pill:999px;
  /* 高：桌面 36（与顶栏 34、页签 34 同一档），≤600px 回 44 保住触屏下限 */
  --oa-control-h:36px;
  --oa-brand:var(--brand,#8d3148);
  --oa-brand-2:var(--brand-2,#b54a60);
  --oa-brand-hover:#76283d;          /* 既有 hover 深酒红，宿主无对应令牌 */
  --oa-brand-soft:#f6e6ec;           /* 徽章底、用户消息底 */
  --oa-line:var(--line,#f0dfdc);     /* 卡内分隔线 */
  --oa-line-strong:#e4cfd7;          /* 卡片/弹窗/折叠头/输入框外框 */
  --oa-text:var(--text,#2d2024);
  --oa-muted:var(--muted,#8e7a80);   /* 只用于纯辅助文字 */
  --oa-muted-strong:#6d5960;         /* 承载信息的灰字：--muted 做 12px 正文仅 3.9:1，不达 AA */
  --oa-surface:var(--panel,#ffffff);
  --oa-soft:var(--soft,#fff8f5);
  --oa-disabled-bg:#f2e8ed;
  --oa-danger:#b42318;               /* --red:#e74449 做正文仅 3.3:1 */
  --oa-danger-bg:#fff1f1; --oa-danger-line:#ecc5ce;
  --oa-warn:#76551e; --oa-warn-bg:#fff8eb;   /* --orange 太亮，做 12px 正文不达 AA */
  --oa-ok:#18794e; --oa-ok-bg:#e9f5ee;       /* --green 同上 */
  --oa-ai-fg:#6750a4; --oa-ai-bg:#eee8ff; --oa-ai-line:#ddd3f5;  /* AI 生成标记，与既有 .todo-ai-chip 同色 */
  --oa-shadow-lg:0 28px 80px rgba(45,21,30,.28);
  --oa-focus-halo:rgba(181,74,96,.10);
}
@media(max-width:600px){
  :where(.oa-panel,.oa-procedure-dialog,.oa-agenda-dialog,.oa-finance-dialog,
       .oa-personal-dialog,.oa-review-overview,.oa-image-dialog,.oa-prefill-dialog,
       .ai-assistant-focus,.todo-ai-assisted-chip,.todo-ai-generated-chip){ --oa-control-h:44px; }
}
/* ═══ TOKENS:END ═══ */

.oa-panel { max-width:calc(100vw - 20px); max-height:calc(100dvh - 24px); z-index:1802!important; }
body:has(#warehouseCenterMount [data-ai-flow-id]) #floatingAiButton,
body:has(#employeeReportDialog:not(.hidden)) #floatingAiButton {z-index:1801;}
.oa-panel #floatingAiMount {height:100%;display:flex;flex-direction:column;min-height:0}
.oa-header {flex:none}.oa-header h2 {font-size:var(--oa-font-title)}.oa-header nav button {min-width:34px;min-height:34px;border-radius:var(--oa-radius-sm)}
.oa-context {display:grid;gap:var(--oa-space-xs);padding:var(--oa-space-sm) var(--oa-space-lg);background:var(--oa-soft);border-bottom:1px solid var(--oa-line);flex:none}
.oa-context span {font-size:var(--oa-font-sm);color:var(--oa-muted-strong)}.oa-context b{font-size:var(--oa-font);font-weight:700;overflow-wrap:anywhere}
.oa-toolbar{display:flex;flex-wrap:wrap;gap:var(--oa-space-sm);padding:var(--oa-space-sm) var(--oa-space);border-bottom:1px solid var(--oa-line);flex:none;align-items:center}
.oa-toolbar label {font-size:var(--oa-font-sm);color:var(--oa-muted-strong);display:flex;gap:var(--oa-space-xs);align-items:center}
.oa-panel button,.oa-panel select{font:inherit}.oa-toolbar button,.oa-card-actions button,.oa-quick button,.oa-composer footer button{border:1px solid var(--oa-line-strong);background:var(--oa-surface);color:var(--oa-brand);border-radius:var(--oa-radius-sm);padding:0 12px;font-size:var(--oa-font);font-weight:700;min-height:var(--oa-control-h);cursor:pointer}
.oa-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:var(--oa-space);scrollbar-gutter:stable}
.oa-message{padding:var(--oa-space-sm) 10px;background:var(--oa-soft);border:1px solid var(--oa-line);border-radius:var(--oa-radius-sm);margin-bottom:var(--oa-space-sm);font-size:var(--oa-font);overflow-wrap:anywhere}
.oa-message.user{background:var(--oa-brand-soft);margin-left:30px}.oa-message p{white-space:pre-wrap;margin:5px 0;line-height:1.55}.oa-message small,.oa-note{font-size:var(--oa-font-sm);color:var(--oa-muted);line-height:1.5}
.oa-empty {padding:var(--oa-space) var(--oa-space-xs);color:var(--oa-muted);font-size:var(--oa-font);line-height:1.6}.oa-empty b{color:var(--oa-text)}
.oa-card{padding:var(--oa-card-pad);border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius);background:var(--oa-surface);margin:var(--oa-space) 0;font-size:var(--oa-font)}
.oa-card header{display:flex;justify-content:space-between;align-items:center;gap:8px}.oa-card header span{background:var(--oa-brand-soft);color:var(--oa-brand);border-radius:var(--oa-radius-pill);padding:3px 9px;font-size:var(--oa-font-sm);font-weight:700}
.oa-card ol{list-style:none;margin:var(--oa-space) 0;padding:0;display:grid;gap:var(--oa-space-sm)}.oa-card li span{margin-right:7px}.oa-card li.done{color:var(--oa-ok)}.oa-card li.partial{color:var(--oa-warn)}
.oa-card h3{font-size:var(--oa-font);line-height:1.4;margin:0 0 var(--oa-space-sm);color:var(--oa-brand)}.oa-card p{line-height:var(--oa-line-height);margin:var(--oa-space-xs) 0;overflow-wrap:anywhere}
.oa-card[data-as-product-review]{display:grid;gap:9px;min-width:0}.oa-card[data-as-product-review] h4{margin:0;color:var(--oa-brand)}.oa-card[data-as-product-review] pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;margin:8px 0}.oa-card[data-as-product-review] label{display:flex;gap:9px;align-items:flex-start;line-height:1.5}.oa-card[data-as-product-review] input{flex:none;margin-top:3px}.oa-card[data-as-product-review] button{min-height:var(--oa-control-h);white-space:normal;border:1px solid var(--oa-brand);border-radius:var(--oa-radius-sm);background:var(--oa-brand);color:#fff;padding:0 12px}
.oa-missing{background:var(--oa-warn-bg);padding:var(--oa-space-sm) 10px;border-radius:var(--oa-radius-sm);color:var(--oa-warn);margin:var(--oa-space-sm) 0}.oa-missing ul{margin:5px 0;padding-left:18px}
.oa-card-actions{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.oa-card details{border-top:1px solid var(--oa-line);padding-top:var(--oa-space-sm);font-size:var(--oa-font-sm);overflow-wrap:anywhere}.oa-card summary{cursor:pointer;color:var(--oa-muted)}
.oa-order-actions button{min-height:var(--oa-control-h);max-width:100%;white-space:normal;padding:0 12px}
.oa-card button[data-og-evidence-read]{min-height:var(--oa-control-h);margin-top:var(--oa-space-sm);padding:0 12px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-brand);font:inherit;font-size:var(--oa-font-sm);font-weight:700;cursor:pointer}
.oa-card[data-gp-form] button{min-height:var(--oa-control-h);max-width:100%;padding:0 12px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-brand);font:inherit;font-size:var(--oa-font-sm);font-weight:700;cursor:pointer}.oa-card[data-gp-form] button:focus-visible{outline:2px solid var(--brand,#8d3148);outline-offset:2px}.oa-card[data-gp-form] li{overflow-wrap:anywhere;margin:8px 0}.oa-card[data-gp-form] li button{margin:4px 0 4px 8px}
.oa-evidence-detail{margin:var(--oa-space-sm) 0;padding:var(--oa-space-sm) 10px;border:1px solid var(--oa-line);border-radius:var(--oa-radius-sm);background:var(--oa-soft);font-size:var(--oa-font-sm);line-height:var(--oa-line-height);overflow-wrap:anywhere}
.oa-evidence-detail ul{margin:0 0 6px;padding-left:18px}.oa-evidence-detail li+li{margin-top:6px}.oa-evidence-detail small{color:var(--oa-muted);overflow-wrap:anywhere}
.oa-composer{padding:var(--oa-space);flex:none;border-top:1px solid var(--oa-line);background:var(--oa-surface)}
.oa-quick{display:flex;flex-wrap:wrap;gap:var(--oa-space-xs);margin-bottom:var(--oa-space-sm)}.oa-input-row{display:flex;gap:var(--oa-space-sm);align-items:stretch}
.oa-input-row textarea{flex:1;min-width:0;resize:vertical;max-height:120px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);padding:var(--oa-space-sm);font-family:inherit;font-size:var(--oa-font);line-height:1.5}
.oa-input-row button{border-radius:var(--oa-radius);padding:0 14px;border:0;background:var(--oa-brand);color:#fff;min-height:var(--oa-control-h);font-weight:700}
.oa-composer footer{display:flex;gap:6px;align-items:center;justify-content:space-between;margin-top:7px}.oa-composer footer small{font-size:var(--oa-font-sm);color:var(--oa-muted);max-width:220px}.oa-file{display:none}
.oa-attachment{display:flex;gap:var(--oa-space-sm);padding:var(--oa-space-sm);background:var(--oa-soft);border-radius:var(--oa-radius-sm);margin-bottom:var(--oa-space-sm);align-items:center;font-size:var(--oa-font-sm)}
.oa-attachment>button{border:0;padding:0;background:none}.oa-attachment img{width:65px;height:55px;object-fit:contain}.oa-attachment div{display:grid;gap:5px}.oa-attachment label{display:flex;gap:4px;align-items:center}
.oa-error{color:var(--oa-danger);background:var(--oa-danger-bg);border:1px solid var(--oa-danger-line);border-radius:var(--oa-radius-sm);padding:var(--oa-space-sm) 10px;font-size:var(--oa-font-sm);line-height:var(--oa-line-height);overflow-wrap:anywhere;margin:var(--oa-space-sm) 0}.oa-error button{display:block;margin-top:6px}.oa-loading{color:var(--oa-brand);font-size:var(--oa-font-sm)}.oa-history{font-size:var(--oa-font-sm)}.oa-history article{display:flex;gap:5px;margin:6px 0}.oa-history button{font-size:var(--oa-font-sm)}.oa-history small{display:block}
.ai-assistant-focus{outline:3px solid var(--oa-brand-2)!important;outline-offset:3px;box-shadow:0 0 0 6px var(--oa-focus-halo)!important}
.oa-panel :focus-visible,.oa-image-dialog :focus-visible{outline:2px solid var(--oa-brand);outline-offset:2px}
.oa-image-dialog{width:min(740px,calc(100vw - 28px));max-height:90dvh;border:1px solid #d9b8c5;border-radius:12px;padding:18px;color:#422a34;background:#fff;overflow:auto}
.oa-image-dialog::backdrop{background:#20121b88}.oa-image-dialog header,.oa-image-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.oa-image-dialog h3{margin:0;font-size:17px}.oa-image-dialog p{font-size:12px;line-height:1.5}
.oa-image-dialog button{border:1px solid #d7b3c3;border-radius:8px;padding:7px 12px;cursor:pointer}.oa-image-stage{position:relative;touch-action:none;user-select:none;line-height:0}.oa-image-stage img{width:100%;max-height:50dvh;object-fit:fill;pointer-events:none}
.oa-crop-box{position:absolute;pointer-events:none;border:2px solid #8d3148;background:#8d314820;box-sizing:border-box}.oa-crop-fields{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.oa-crop-fields label{font-size:12px;display:grid;gap:4px}.oa-crop-fields input{width:70px;border:1px solid #dac3cd;border-radius:5px;padding:5px}
@media(max-width:600px){.oa-panel{right:10px!important;bottom:10px!important;width:calc(100vw - 20px)!important;height:calc(100dvh - 20px)!important;max-height:none!important}.oa-toolbar{gap:4px}.oa-header{padding:12px}.oa-header p{font-size:var(--oa-font-sm)}.oa-scroll{padding:9px}.oa-composer{padding:8px}.oa-composer footer small{max-width:160px}.oa-card header{align-items:flex-start}.oa-image-dialog{padding:12px}}
@media(max-width:600px){.oa-panel .oa-header{flex-wrap:wrap}.oa-panel .oa-header nav{width:100%;justify-content:space-between}.oa-panel .oa-header nav [data-gp-chat]{display:inline-flex}}

.oa-image-dialog{width:min(640px,calc(100vw - 32px));padding:24px;border-radius:8px;border-color:var(--line)}.oa-image-dialog button{min-height:44px;font-size:14px}.oa-image-dialog footer{justify-content:flex-end}.oa-image-dialog .primary-button{background:var(--oa-brand);color:#fff}.oa-panel .primary-button:hover{background:var(--oa-brand-hover)}
@media(max-width:600px){.oa-toolbar{gap:var(--oa-space-xs)}.oa-composer footer{align-items:flex-start}.oa-image-dialog{padding:16px}}
@media(max-width:600px){.oa-panel .oa-header nav button,.oa-panel .oa-composer footer button,.oa-panel .oa-toolbar select{min-height:var(--oa-control-h)}}

/* A2 approved two-column procedure workbench; scope does not affect other modals. */
.oa-procedure-dialog{width:min(1200px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;box-sizing:border-box;color:var(--text);font:14px/1.5 "Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif;overflow:hidden}
.oa-procedure-dialog[open]{display:flex;flex-direction:column;height:min(840px,calc(100dvh - 32px))}
.oa-procedure-dialog::backdrop{background:rgba(64,39,44,.28)}
.oa-procedure-dialog header{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;flex:none;gap:16px}
.oa-procedure-dialog header h3{margin:0;font-size:18px;font-weight:700}.oa-procedure-dialog header p{margin:4px 0 0;color:#6d5960;font-size:14px}.oa-procedure-dialog header button{min-width:44px}
.oa-procedure-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;padding:24px;min-height:0;flex:1;overflow:hidden}
.oa-procedure-editor,.oa-procedure-governance{min-width:0;overflow:auto;scrollbar-gutter:stable}.oa-procedure-governance{border-left:1px solid var(--line);padding-left:24px}
.oa-procedure-dialog h4{font-size:16px;font-weight:600;margin:0 0 16px}.oa-procedure-dialog form{display:grid;gap:16px}.oa-procedure-dialog label{display:grid;gap:8px;font-size:14px}.oa-procedure-meta{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.oa-procedure-meta p{margin:10px 0;overflow-wrap:anywhere}.oa-procedure-meta span{font-size:12px;color:#6d5960}
.oa-procedure-dialog input:not([type=checkbox]),.oa-procedure-dialog textarea{width:100%;box-sizing:border-box;border:1px solid #9d818b;border-radius:8px;padding:10px;font:inherit;background:white;color:var(--text)}.oa-procedure-dialog input:not([type=checkbox]){min-height:44px}.oa-procedure-dialog textarea{resize:vertical}.oa-procedure-steps textarea{min-height:300px;line-height:1.8}.oa-procedure-dialog small{font-size:12px;color:#6d5960}.oa-procedure-dialog button{min-height:44px;border-radius:12px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:600;line-height:1.5;background:white;color:var(--brand);border:1px solid #9d818b;overflow-wrap:anywhere}.oa-procedure-dialog button.primary-button{background:var(--brand);color:white;border-color:var(--brand)}.oa-procedure-dialog button.primary-button:hover{background:#76283d}.oa-procedure-dialog button:disabled{opacity:.55;cursor:wait}.oa-procedure-dialog :focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.oa-procedure-active{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--soft);margin-bottom:24px;position:relative}.oa-procedure-active h4{margin-bottom:8px;padding-right:100px}.oa-procedure-active>.oa-procedure-tag{position:absolute;top:16px;right:16px}.oa-procedure-active>strong{display:block;font-size:18px;overflow-wrap:anywhere}.oa-procedure-active p{margin:4px 0;color:#6d5960;font-size:12px}.oa-procedure-tag{display:inline-block;font-size:12px;font-weight:400;padding:4px 8px;border-radius:8px;background:#f7e9ed;color:var(--brand);white-space:nowrap}.oa-procedure-tag.is-active{background:#e9f5ee;color:#18794e}
.oa-procedure-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:12px 0}.oa-procedure-tabs button{flex:1;border:0;border-radius:0}.oa-procedure-tabs button[aria-selected=true]{border-bottom:2px solid var(--brand)}.oa-procedure-candidate{border:1px solid var(--line);border-radius:8px;margin-top:12px;padding:12px;overflow-wrap:anywhere}.oa-procedure-candidate.is-selected{border-color:#bc7285}.oa-procedure-dialog .oa-procedure-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;text-align:left;border:0;width:100%;padding:0;background:transparent}.oa-procedure-row strong{flex:1;min-width:0;overflow-wrap:anywhere}.oa-procedure-row small{width:100%;font-weight:400}.oa-procedure-dialog details{margin:12px 0}.oa-procedure-dialog summary{cursor:pointer;color:var(--brand);min-height:32px}.oa-procedure-content{white-space:pre-wrap;font-size:14px!important;max-height:240px;overflow:auto;color:var(--text)!important}
.oa-procedure-dialog fieldset{border:0;padding:16px 0 0;margin:12px 0 0;border-top:1px solid var(--line);min-width:0}.oa-procedure-dialog legend{font-size:16px;font-weight:600;overflow-wrap:anywhere}.oa-procedure-dialog fieldset>p{font-size:12px;color:#6d5960}.oa-procedure-check{display:flex!important;align-items:flex-start;margin:12px 0}.oa-procedure-check input{width:24px;height:24px;flex:none;margin:0;accent-color:var(--brand)}.oa-procedure-decisions{display:flex;gap:8px;flex-wrap:wrap}.oa-procedure-decisions button{flex:1}.oa-procedure-dialog .oa-procedure-reject{color:#b42318;background:#fff3f2}
.oa-procedure-error{color:#b42318;padding:0 24px;flex:none;max-height:120px;overflow:auto}.oa-procedure-error:empty{display:none}.oa-procedure-error button{margin:8px}.oa-procedure-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;border-top:1px solid var(--line);flex:none}.oa-procedure-dialog footer p{margin:0;font-size:12px;color:#6d5960}.oa-procedure-dialog footer nav{display:flex;gap:8px;flex:none}.oa-procedure-dialog footer small{color:var(--brand)}
@media(max-width:760px){.oa-procedure-dialog[open]{height:calc(100dvh - 32px)}.oa-procedure-body{display:block;overflow:auto;padding:16px}.oa-procedure-editor,.oa-procedure-governance{overflow:visible;scrollbar-gutter:auto}.oa-procedure-governance{border-left:0;border-top:1px solid var(--line);margin-top:24px;padding:24px 0 0}.oa-procedure-meta{grid-template-columns:1fr 1fr}.oa-procedure-meta label{grid-column:1/-1}.oa-procedure-dialog header{padding:16px}.oa-procedure-dialog footer{padding:12px 16px;display:block}.oa-procedure-dialog footer nav{margin-top:8px;flex-wrap:wrap}.oa-procedure-dialog footer nav button{flex:1;padding:8px}.oa-procedure-error{padding:0 16px}}

.oa-procedure-recovery{margin:0;padding:8px 24px;color:var(--brand);font-size:12px;flex:none}.oa-procedure-recovery:empty{display:none}.oa-procedure-error small{display:block}

.oa-procedure-dialog .oa-procedure-field-error{color:#b42318;font-size:12px;line-height:1.5}.oa-procedure-dialog [aria-invalid=true]{border-color:#b42318}

/* Readable inactive tabs and identifiable controls within the assistant only. */
.oa-panel .data-tab{color:#6d5960}.oa-panel .data-tab[aria-selected=true]{color:var(--brand)}.oa-panel .oa-header p{color:#6d5960}.oa-panel .oa-header nav button,.oa-panel .oa-toolbar select{border:1px solid var(--brand);border-radius:8px}

/* Screenshot preview preserves source proportions and remains usable on mobile. */
.oa-image-dialog:not(.oa-procedure-dialog) .oa-image-stage{width:fit-content;max-width:100%;margin-inline:auto}
.oa-image-dialog:not(.oa-procedure-dialog) .oa-image-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:50dvh;object-fit:contain}
.oa-image-dialog:not(.oa-procedure-dialog) button,.oa-image-dialog:not(.oa-procedure-dialog) input{min-height:44px}
.oa-image-dialog:not(.oa-procedure-dialog) [data-crop-status]{color:#522635;min-height:2.4em}
.oa-image-dialog:not(.oa-procedure-dialog) button:disabled{opacity:.6;cursor:not-allowed}
.oa-image-dialog:not(.oa-procedure-dialog) :focus-visible{outline:2px solid #893249;outline-offset:3px}

.oa-procedure-retained{margin-top:16px;padding:12px;background:var(--soft);border:1px solid #9d818b;border-radius:8px}
.oa-procedure-retained p{color:#6d5960;font-size:12px}
.oa-procedure-retained textarea{min-height:88px}

.oa-panel .data-tab[aria-selected="true"]{box-shadow:inset 0 -2px 0 var(--brand)}

/* 禁用态唯一来源：状态由原生 disabled 属性表达，颜色只此一条 */
.oa-panel button:disabled,.oa-procedure-dialog button:disabled,.oa-procedure-dialog button.primary-button:disabled,.oa-image-dialog:not(.oa-procedure-dialog) button:disabled{opacity:1;background:var(--oa-disabled-bg);color:var(--oa-muted-strong);border-color:var(--oa-line-strong);cursor:not-allowed}

.oa-procedure-dialog .oa-procedure-sources{margin-block:16px;padding:12px;border:1px solid #927780;border-radius:8px;font-size:12px;color:#6d5960}
.oa-procedure-dialog .oa-procedure-sources summary{color:var(--brand);font-size:14px;font-weight:600;cursor:pointer;min-height:44px;display:list-item;align-content:center}
.oa-procedure-dialog .oa-procedure-sources ul{list-style:none;padding:0;margin:8px 0}
.oa-procedure-dialog .oa-procedure-sources li{padding-block:8px;border-bottom:1px solid var(--line);display:grid;gap:4px}
.oa-procedure-dialog .oa-procedure-sources li span{overflow-wrap:anywhere}
.oa-procedure-dialog .oa-procedure-sources strong{font-size:12px;font-weight:600;color:var(--text)}
.oa-procedure-dialog .oa-procedure-sources :focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* Record checks stay inside the existing assistant card. */
.oa-card label:has(>[data-rg-record]){display:grid;gap:6px;margin:10px 0;min-width:0}
.oa-card [data-rg-record]{box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:var(--oa-control-h);border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-text);padding:0 10px;font:inherit;font-size:var(--oa-font-sm)}
.oa-card [data-rg-locate]{min-height:var(--oa-control-h);max-width:100%;white-space:normal;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-brand);padding:0 12px;font:inherit;font-size:var(--oa-font-sm);font-weight:700;cursor:pointer}

/* Page-question controls follow the existing assistant touch target. */
.oa-composer[data-rg-form] button { min-height:var(--oa-control-h); }

.oa-card button[data-rg-return], .oa-card button[data-rg-filters] { min-height:var(--oa-control-h); max-width:100%; white-space:normal; border:1px solid var(--oa-line-strong); border-radius:var(--oa-radius-sm); padding:0 12px; background:var(--oa-surface); color:var(--oa-brand); font:inherit; font-size:var(--oa-font-sm); font-weight:700; }

.oa-card input[data-rg-record-search], .oa-card select[data-rg-size] {box-sizing:border-box; width:100%; min-height:var(--oa-control-h); border:1px solid var(--oa-line-strong); border-radius:var(--oa-radius-sm); padding:0 10px; background:var(--oa-surface); color:var(--oa-text); font:inherit; font-size:var(--oa-font-sm);}
.oa-card button[data-rg-next], .oa-card button[data-rg-prev], .oa-card button[data-rg-first] {min-height:var(--oa-control-h);}
/* 联调核对：与指标卡同一种折叠头；两个动作按钮单独给，不能再用 .oa-readiness button 广域规则 */
.oa-readiness :is([data-oa-readiness-refresh],[data-oa-readiness-login]){min-height:var(--oa-control-h);margin-top:var(--oa-space-sm);padding:0 12px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-brand);font:inherit;font-size:var(--oa-font-sm);font-weight:700;cursor:pointer}
.oa-readiness :is([data-oa-readiness-refresh],[data-oa-readiness-login]):focus-visible{outline:2px solid var(--oa-brand);outline-offset:2px}
.oa-panel .oa-readiness h3{margin:0 0 var(--oa-space-xs);font-size:var(--oa-font);color:var(--oa-text)}
.oa-panel .oa-readiness p{margin:var(--oa-space-xs) 0;color:var(--oa-muted-strong);font-size:var(--oa-font-sm);line-height:var(--oa-line-height)}
.oa-panel .oa-readiness small{display:block;color:var(--oa-muted);font-size:var(--oa-font-xs)}
.oa-panel .oa-readiness ul{padding-left:18px;margin:var(--oa-space-xs) 0;overflow-wrap:anywhere}
.oa-panel .oa-readiness article{border-top:1px solid var(--oa-line);padding-top:var(--oa-space-sm);margin-top:var(--oa-space-sm);overflow-wrap:anywhere}

.oa-error[data-rg-error]:focus {outline:2px solid var(--oa-brand); outline-offset:2px;}

/* 本页规程卡的「尚未审核」从纯文本 h3 变成 pill 徽章：纯 CSS，不改 DOM 结构 */
.oa-card.oa-page-procedure > h3{display:inline-flex;align-items:center;width:fit-content;max-width:100%;min-height:24px;margin:0 0 var(--oa-space-sm);padding:0 10px;border-radius:var(--oa-radius-pill);background:var(--oa-brand-soft);color:var(--oa-brand);font-size:var(--oa-font-sm);font-weight:700;line-height:1.4}
.oa-card.oa-page-procedure.is-draft > h3{background:var(--oa-warn-bg);color:var(--oa-warn)}
.oa-page-procedure ol{list-style:decimal;margin:var(--oa-space-sm) 0;padding-left:20px;line-height:var(--oa-line-height)}
.oa-page-procedure ol li+li{margin-top:var(--oa-space-xs)}
/* 提示块只有一种：左侧 3px 色条。前置条件与指标拒绝理由同规格 */
.oa-prerequisite,.oa-metrics-gate{margin:var(--oa-space-sm) 0;padding:10px 12px;border:0;border-left:3px solid var(--oa-brand);border-radius:0 var(--oa-radius-sm) var(--oa-radius-sm) 0;background:var(--oa-soft)}
.oa-prerequisite h4{margin:0 0 var(--oa-space-xs);font-size:var(--oa-font);font-weight:700;color:var(--oa-brand)}
.oa-prerequisite ul{margin:0;padding-left:18px;list-style:disc;font-size:var(--oa-font);line-height:var(--oa-line-height);color:var(--oa-muted-strong)}
.oa-panel .oa-object-facts { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(0, 1fr); gap: 8px 12px; margin: 16px 0; font-size: 13px; }
.oa-panel .oa-object-facts dt { font-weight: 600; }
.oa-panel .oa-object-facts dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }

.oa-panel .oa-object-question{display:grid;gap:6px;font-size:13px}
.oa-panel [data-og-input]{box-sizing:border-box;width:100%;min-width:0;resize:vertical;max-height:120px;font:inherit;padding:var(--oa-space-sm);border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);color:var(--oa-text);background:var(--oa-surface)}
.oa-panel [data-og-ask],.oa-panel [data-og-detail]{min-height:var(--oa-control-h);max-width:100%;white-space:normal}

.oa-panel [data-og-read],.oa-panel [data-og-detail],.oa-panel [data-og-ask]{border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);padding:0 12px;background:var(--oa-surface);color:var(--oa-brand);font:inherit;font-size:var(--oa-font-sm);font-weight:700;cursor:pointer;margin:var(--oa-space-xs) var(--oa-space-xs) var(--oa-space-xs) 0}
.oa-panel [data-og-ask]{background:var(--oa-brand);color:#fff}
.oa-panel [data-og-ask]:hover:not(:disabled){background:var(--oa-brand-hover)}
.oa-panel [data-og-ask]:disabled,.oa-panel [data-og-detail]:disabled,.oa-panel [data-og-read]:disabled{background:var(--oa-disabled-bg);color:var(--oa-muted-strong);border-color:var(--oa-line-strong);cursor:not-allowed}
.oa-panel [data-og-input]:focus-visible,.oa-panel [data-og-ask]:focus-visible,.oa-panel [data-og-detail]:focus-visible{outline:2px solid var(--brand,#8d3148);outline-offset:2px}
.oa-panel .oa-composer:has([data-og-input])>small{display:block;font-size:var(--oa-font-sm);line-height:1.5;color:var(--oa-muted);margin:var(--oa-space-xs) 0 var(--oa-space-sm)}

/* Yield to the existing profile popover without resetting assistant state. */
.oa-review-overview{box-sizing:border-box;width:min(1120px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;color:var(--text,#2d2024);border:1px solid var(--line,#ecdfe3);border-radius:12px;font-size:14px}
.oa-review-overview>header,.oa-review-overview>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line,#ecdfe3)}
.oa-review-overview>footer{border-bottom:0;border-top:1px solid var(--line,#ecdfe3)}
.oa-review-overview h3{margin:0;font-size:24px}.oa-review-overview p{line-height:1.6;margin:8px 0}.oa-review-overview small{display:block;color:#6d5960;line-height:1.6}
.oa-review-overview .oa-review-body{max-height:calc(100dvh - 240px);overflow:auto;padding:20px 24px}
.oa-review-overview .oa-review-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:16px}.oa-review-overview label{display:grid;gap:8px;font-weight:600}
.oa-review-overview :is(input,select,button){min-width:0;box-sizing:border-box;min-height:44px;font:inherit;border:1px solid #ad7d8e;border-radius:8px;padding:8px 12px;background:#fff;color:var(--text,#2d2024)}
.oa-review-overview button{color:var(--brand,#8d3148);cursor:pointer}.oa-review-overview button:disabled{background:#f2e8ed;color:#6d5960;cursor:not-allowed}.oa-review-overview :is(input,select,button):focus-visible{outline:2px solid var(--brand,#8d3148);outline-offset:2px}
.oa-review-overview [data-overview-list]{overflow:auto}.oa-review-overview table{border-collapse:collapse;width:100%;text-align:left}.oa-review-overview :is(td,th){padding:12px;border-bottom:1px solid var(--line,#ecdfe3);vertical-align:top;overflow-wrap:anywhere}.oa-review-overview th{background:var(--soft,#f9f3f5)}
.oa-review-overview [data-overview-error]{color:#8c2e4a}.oa-review-overview nav{display:flex;gap:8px}.oa-review-overview td>button{white-space:normal}
@media(max-width:600px){.oa-review-overview{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.oa-review-overview>header,.oa-review-overview>footer{padding:12px;align-items:flex-start}.oa-review-overview>footer{flex-wrap:wrap}.oa-review-overview .oa-review-body{padding:12px;max-height:calc(100dvh - 245px)}.oa-review-overview .oa-review-filters{grid-template-columns:minmax(0,1fr)}.oa-review-overview table{min-width:610px}.oa-review-overview h3{font-size:20px}}
body:has(#profilePopover:not(.hidden)) .floating-ai-panel.oa-panel { visibility:hidden; pointer-events:none; }

/* Fixed markup for assistant text; tables scroll inside the reply. */
.oa-panel .oa-reply{min-width:0;line-height:1.55;overflow-wrap:anywhere}
.oa-panel .oa-reply h4{font-size:16px;font-weight:600;margin:16px 0 8px;color:var(--text)}
.oa-panel .oa-reply p{white-space:normal;margin:8px 0}
.oa-panel .oa-reply ul,.oa-panel .oa-reply ol{padding-left:24px;margin:8px 0}
.oa-panel .oa-reply li{margin:4px 0}
.oa-panel .oa-reply code{font-family:Consolas,monospace;font-size:13px;background:var(--soft);padding:2px 4px;border-radius:4px}
.oa-panel .oa-reply pre{max-width:100%;overflow:auto;background:var(--soft);padding:12px;border:1px solid var(--line);border-radius:8px;white-space:pre}
.oa-panel .oa-reply pre code{padding:0;background:transparent}
.oa-panel .oa-reply-table{max-width:100%;overflow:auto;margin:12px 0;border:1px solid var(--line);border-radius:8px}
.oa-panel .oa-reply-table:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.oa-panel .oa-reply table{width:100%;border-collapse:collapse;font-size:13px}
.oa-panel .oa-reply th,.oa-panel .oa-reply td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;min-width:72px}
.oa-panel .oa-reply th{background:var(--soft);font-weight:600}
.oa-panel .oa-reply tr:last-child td{border-bottom:0}
.oa-panel [data-as-search] ul{list-style:none;padding:0;margin:8px 0}
.oa-panel [data-as-search] li+li{margin-top:8px}
.oa-panel [data-as-search] [data-as-open]{display:block;width:100%;min-height:var(--oa-control-h);padding:var(--oa-space-sm) 12px;text-align:left;white-space:normal;overflow-wrap:anywhere;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-text);font:inherit;font-size:var(--oa-font)}
.oa-panel [data-as-search] [data-as-open] small{display:block;margin-top:4px;color:#6d5960;font-size:12px;line-height:1.5}
.oa-panel [data-as-search] [data-as-open]:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
#aiBudgetPanel { font-size:14px; line-height:1.6; }
/* Override the legacy Admin Console's blanket 12px important rule only here. */
#aiBudgetPanel :is(button,input,textarea,label,label span) { font-size:14px !important; }
#aiBudgetPanel > header p { display:block !important; margin:8px 0; font-size:14px !important; color:var(--muted, #6b6670); }
#aiBudgetPanel > header > div { min-width:0; }
#aiBudgetPanel summary { cursor:pointer; min-height:32px; overflow-wrap:anywhere; }
#aiBudgetPanel .compact-button { min-height:32px; padding:4px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--wine, #8d304b); font:inherit; }
#aiBudgetPanel button:disabled { opacity:.55; cursor:default; }
#aiBudgetPanel .system-ai-model-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:16px 0; }
#aiBudgetPanel .field { display:flex; flex-direction:column; gap:8px; min-width:0; font-size:14px; }
#aiBudgetPanel .field.wide { grid-column:1 / -1; }
#aiBudgetPanel input:not([type=checkbox]), #aiBudgetPanel textarea { box-sizing:border-box; width:100%; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; background:#fff; }
#aiBudgetPanel textarea { min-height:96px; resize:vertical; }
#aiBudgetPanel .check-field { display:flex; align-items:center; gap:8px; min-height:44px; font-size:14px; }
#aiBudgetPanel input[type=checkbox] { width:20px; height:20px; accent-color:#8d304b; }
#aiBudgetPanel .primary-button { min-height:44px; padding:8px 16px; border-radius:12px; font-size:14px; }
@media(max-width:600px) { #aiBudgetPanel .system-ai-model-fields { grid-template-columns:1fr; } }

#aiModelProfileForm .ai-token-reservation, #aiModelProfileForm .ai-token-reservation span, #aiModelProfileForm .ai-token-help { font-size:14px !important; color:#6d5960; }
#aiModelTokenReserve { min-height:44px; font-size:14px !important; }
#aiModelProfileForm [data-model-conflict] { font-size:14px; color:#b42318; padding:12px; border:1px solid var(--line); border-radius:8px; }

#aiBudgetPanel .ai-token-review { border-top:1px solid var(--line); margin-top:16px; padding-top:16px; font-size:14px; }
#aiBudgetPanel .ai-token-review input:not([type=checkbox]) { min-height:44px; font-size:14px; }
#aiBudgetPanel .ai-token-review textarea { min-height:88px; font-size:14px; }
#aiBudgetPanel .ai-token-review .field > span { color:#6d5960; }
#aiBudgetPanel .ai-token-review input:not([type=checkbox]), #aiBudgetPanel .ai-token-review textarea { border-color:#ad7d8e; }
#aiBudgetPanel .ai-token-review button:disabled { opacity:1; color:#6d5960; background:#f2e8ed; border:1px solid #927780; }
#aiBudgetPanel .ai-token-review input:focus-visible, #aiBudgetPanel .ai-token-review textarea:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }

/* Source-backed mail drafts stay usable inside the narrow assistant drawer. */
.oa-panel .oa-card:is([data-as-draft],[data-as-source],:has([data-as-prepare])){min-width:0;overflow-wrap:anywhere}
.oa-panel .oa-card:is([data-as-draft],:has([data-as-prepare])) label{display:grid;gap:6px;margin:12px 0;color:var(--text,#2d2024)}
.oa-panel .oa-card:is([data-as-draft],[data-as-source],:has([data-as-prepare])) :is(input,select,textarea){box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-text);font:inherit;font-size:var(--oa-font);padding:0 10px}
.oa-panel .oa-card:is([data-as-draft],[data-as-source],:has([data-as-prepare])) :is(input,select){min-height:var(--oa-control-h)}
.oa-panel .oa-card[data-as-draft] textarea{min-height:160px;line-height:1.5;resize:vertical}
.oa-panel .oa-card:is([data-as-draft],[data-as-source],:has([data-as-prepare])) button{min-height:44px;max-width:100%;margin:8px 8px 0 0;padding:8px 12px;border:1px solid #ad7d8e;border-radius:8px;background:#fff;color:var(--brand,#8d3148);font:inherit;font-size:14px;font-weight:600;white-space:normal;cursor:pointer}
.oa-panel .oa-card:is([data-as-draft],[data-as-source],:has([data-as-prepare])) button:is([type=submit],[data-as-source-apply],[data-as-prepare]){background:var(--brand,#8d3148);color:#fff;border-color:var(--brand,#8d3148)}
.oa-panel .oa-card:is([data-as-draft],[data-as-source],:has([data-as-prepare])) button:disabled{opacity:.6;cursor:not-allowed}
.oa-panel .oa-card:is([data-as-draft],[data-as-source],:has([data-as-prepare])) :is(input,select,textarea,button):focus-visible{outline:2px solid var(--brand,#8d3148);outline-offset:2px}
.oa-panel .oa-card[data-as-source] small,.oa-panel .oa-card[data-as-draft] small{display:block;color:#6d5960;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.oa-panel .oa-card[data-as-search] > small[data-i18n-skip]{display:block;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.oa-panel .oa-card[data-as-search] form[data-as-form]{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;margin:12px 0}
.oa-panel .oa-card[data-as-search] form[data-as-form] label{display:grid;gap:6px;min-width:0;margin:0;font-size:14px;color:var(--text,#2d2024)}
.oa-panel .oa-card[data-as-search] form[data-as-form] :is(input,select,button){box-sizing:border-box;min-width:0;width:100%;min-height:var(--oa-control-h);font:inherit;font-size:var(--oa-font)}
.oa-panel .oa-card[data-as-search] form[data-as-form] :is(input,select){padding:0 10px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-text)}
.oa-panel .oa-card[data-as-search] form[data-as-form] button{margin:0;padding:8px 16px;border:1px solid var(--brand,#8d3148);border-radius:8px;background:var(--brand,#8d3148);color:#fff;font-weight:600;white-space:normal;cursor:pointer}
.oa-panel .oa-card[data-as-search] form[data-as-form] button:disabled{background:#f2e8ed;color:#6d5960;border-color:#927780;cursor:wait}
.oa-panel .oa-card[data-as-search] form[data-as-form] :is(input,select,button):focus-visible{outline:2px solid var(--brand,#8d3148);outline-offset:2px}
.trade-deal-modal .trade-prefill-alert{margin:0 0 14px;padding:12px 14px;border:1px solid #d9a8ad;border-radius:8px;color:#72283a;background:#fff2f3;line-height:1.5}
.trade-deal-modal .trade-prefill-alert p{margin:0 0 8px;overflow-wrap:anywhere}
.trade-deal-modal .trade-prefill-alert button{min-height:36px;padding:6px 12px;border:1px solid #8d2946;border-radius:7px;background:#fff;color:#7d233e;cursor:pointer}
.oa-agenda-dialog { width: min(720px, calc(100vw - 28px)); max-height: min(82vh, 780px); padding: 0; border: 1px solid #ead9dc; border-radius: 14px; color: #30252a; background: #fff; box-shadow: 0 24px 70px #32121f40; }
.oa-panel .oa-header nav { flex-wrap: wrap; justify-content: flex-end; }
.oa-agenda-dialog::backdrop { background: #21181fcc; }
.oa-agenda-head, .oa-agenda-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; }
.oa-agenda-head { border-bottom: 1px solid #efe5e7; }
.oa-agenda-head h2 { margin: 0 0 6px; font-size: 22px; }
.oa-agenda-head p, .oa-agenda-foot { margin: 0; color: #665b61; font-size: 13px; }
.oa-agenda-head button { flex: none; border: 0; background: transparent; font-size: 28px; color: #6e5961; cursor: pointer; }
.oa-agenda-toolbar { padding-block: 12px; background: #fbf6f7; }
.oa-agenda-toolbar label { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.oa-agenda-toolbar select, .oa-agenda-toolbar button, .oa-agenda-body button { min-height: 36px; padding: 6px 12px; border: 1px solid #ad7b88; border-radius: 7px; color: #842a46; background: #fff; cursor: pointer; }
.oa-agenda-body { max-height: min(51vh, 480px); overflow: auto; padding: 16px 22px; }
.oa-agenda-body section + section { margin-top: 20px; }
.oa-agenda-body h3 { margin: 0 0 9px; font-size: 16px; }
.oa-agenda-body ul { list-style: none; margin: 0; padding: 0; }
.oa-agenda-body li { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid #f0e6e8; }
.oa-agenda-body li b, .oa-agenda-body li small { display: block; overflow-wrap: anywhere; }
.oa-agenda-body li small { margin-top: 4px; color: #766b71; }
.oa-agenda-body .oa-error { color: #a12a42; }
.oa-agenda-foot { padding: 12px 22px 18px; border-top: 1px solid #efe5e7; }
.oa-agenda-create { padding: 14px 22px; border-bottom: 1px solid #efe5e7; background: #fffaf8; }
.oa-agenda-create button { min-height: 44px; padding: 8px 16px; border: 1px solid var(--brand, #8d3148); border-radius: 12px; color: var(--brand, #8d3148); background: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.oa-agenda-create button[data-agenda-confirm] { color: #fff; background: var(--brand, #8d3148); }
.oa-agenda-create button[data-agenda-confirm]:hover { background: #76283d; }
.oa-agenda-create button:focus-visible, .oa-agenda-create input:focus-visible, .oa-agenda-create textarea:focus-visible, .oa-agenda-create select:focus-visible { outline: 3px solid #2457a7; outline-offset: 2px; }
.oa-agenda-create button:disabled { opacity: .55; cursor: wait; }
.oa-agenda-create p { margin: 10px 0 0; color: #5e4e55; overflow-wrap: anywhere; }
.oa-agenda-create .oa-error { color: #b42318; }
.oa-agenda-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.oa-agenda-form label { display: grid; gap: 5px; color: #2d2024; font-size: 14px; font-weight: 600; }
.oa-agenda-form label:nth-child(2), .oa-agenda-form label:nth-child(3) { grid-column: 1 / -1; }
.oa-agenda-form input, .oa-agenda-form textarea, .oa-agenda-form select { width: 100%; min-height: 44px; box-sizing: border-box; padding: 8px 10px; border: 1px solid #ad929a; border-radius: 8px; color: #2d2024; background: #fff; font: inherit; font-weight: 400; }
.oa-agenda-form textarea { min-height: 66px; resize: vertical; }
.oa-agenda-form > button { justify-self: start; align-self: end; }
.oa-agenda-preview { margin-top: 14px; }
.oa-agenda-preview h3 { margin: 0 0 8px; font-size: 16px; }
.oa-agenda-preview dl { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 8px; margin: 0; }
.oa-agenda-preview dt { color: #5e4e55; }
.oa-agenda-preview dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.oa-agenda-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
@media (max-width: 560px) { .oa-agenda-form { grid-template-columns: 1fr; } .oa-agenda-form label:nth-child(2), .oa-agenda-form label:nth-child(3) { grid-column: auto; } }
@media (max-width: 560px) { .oa-agenda-head, .oa-agenda-toolbar { align-items: flex-start; } .oa-agenda-toolbar { flex-wrap: wrap; } .oa-agenda-body li { align-items: flex-start; flex-direction: column; } }
.oa-finance-dialog { width: min(800px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid var(--line, #f0dfdc); border-radius: 8px; background: var(--panel, #fff); color: var(--text, #2d2024); box-shadow: 0 24px 70px #32121f40; font: 14px/1.5 "Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif; }
.oa-finance-dialog::backdrop { background: rgba(64,39,44,.28); }
.oa-finance-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--line, #f0dfdc); }
.oa-finance-head h2 { margin: 0 0 4px; font-size: 18px; }
.oa-finance-head p { margin: 0; color: #6d5960; }
.oa-finance-head button { width: 44px; height: 44px; flex: none; border: 0; background: transparent; font: inherit; font-size: 24px; cursor: pointer; }
.oa-finance-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; padding: 16px 24px; background: #fff8f5; }
.oa-finance-form label { display: grid; gap: 6px; font-size: 13px; font-weight: 600; }
.oa-finance-form input, .oa-finance-form select { min-width: 0; height: 44px; padding: 0 10px; border: 1px solid #bbaab0; border-radius: 8px; color: inherit; background: #fff; font: inherit; }
.oa-finance-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.oa-finance-actions button { min-height: 44px; padding: 8px 16px; border: 1px solid var(--brand, #8d3148); border-radius: 12px; background: #fff; color: var(--brand, #8d3148); font: inherit; font-weight: 600; cursor: pointer; }
.oa-finance-actions button[type=submit] { order: 2; background: var(--brand, #8d3148); color: #fff; }
.oa-finance-actions button:disabled { cursor: wait; opacity: .55; }
.oa-finance-body { max-height: min(46dvh, 430px); overflow: auto; padding: 16px 24px 24px; }
.oa-finance-body p { margin: 0 0 12px; }
.oa-finance-body h3 { margin: 0 0 8px; font-size: 16px; }
.oa-finance-body article { padding: 12px 16px; border: 1px solid var(--line, #f0dfdc); border-radius: 8px; margin-bottom: 12px; }
.oa-finance-body strong { color: var(--brand, #8d3148); }
.oa-finance-body details { margin: 12px 0; }
.oa-finance-body summary { cursor: pointer; color: var(--brand, #8d3148); font-weight: 600; }
.oa-finance-body li { padding: 6px 0; overflow-wrap: anywhere; }
.oa-finance-warning { color: #9a6700; }
.oa-finance-body .oa-error { color: #b42318; }
@media (max-width: 600px) { .oa-finance-head { padding: 16px; } .oa-finance-form { grid-template-columns: 1fr; padding: 16px; } .oa-finance-body { max-height: 39dvh; padding: 16px; } }
.oa-personal-dialog { width: min(680px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 1px solid var(--line, #f0dfdc); border-radius: 8px; background: #fff; color: var(--text, #2d2024); box-shadow: 0 24px 70px #32121f40; font: 14px/1.5 "Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif; }
.oa-personal-dialog::backdrop { background: rgba(64,39,44,.28); }
.oa-personal-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--line, #f0dfdc); }
.oa-personal-head h2 { margin: 0; font-size: 18px; }
.oa-personal-head button { width: 44px; height: 44px; border: 0; background: none; font-size: 24px; cursor: pointer; }
.oa-personal-dialog nav { display: flex; gap: 12px; padding: 10px 20px; border-bottom: 1px solid var(--line, #f0dfdc); }
.oa-personal-dialog nav button { min-height: 44px; border: 0; border-bottom: 2px solid transparent; background: none; color: inherit; cursor: pointer; }
.oa-personal-dialog nav button[aria-current=page] { border-bottom-color: var(--brand, #8d3148); color: var(--brand, #8d3148); font-weight: 700; }
.oa-personal-body { max-height: min(62dvh, 550px); overflow: auto; padding: 16px 20px 24px; }
.oa-personal-body label { display: grid; gap: 6px; margin: 10px 0; }
.oa-personal-body label:has(input[type=checkbox]) { display: flex; align-items: center; }
.oa-personal-body input:not([type=checkbox]), .oa-personal-body select, .oa-personal-body textarea { min-width: 0; width: 100%; min-height: 44px; border: 1px solid #bbaab0; border-radius: 8px; padding: 8px; font: inherit; }
.oa-personal-body textarea { min-height: 88px; }
.oa-personal-body button, .oa-personal-actions button { min-height: 44px; padding: 8px 14px; border: 1px solid var(--brand, #8d3148); border-radius: 8px; background: #fff; color: var(--brand, #8d3148); font: inherit; cursor: pointer; }
.oa-personal-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.oa-personal-body details { margin: 16px 0; }
.oa-personal-body li { overflow-wrap: anywhere; padding: 4px 0; }
.oa-personal-rows { overflow-x: auto; max-height: 290px; overflow-y: auto; border: 1px solid var(--line, #f0dfdc); border-radius: 8px; }
.oa-personal-rows table { width: 100%; border-collapse: collapse; min-width: 560px; }
.oa-personal-rows th, .oa-personal-rows td { padding: 8px; border-bottom: 1px solid var(--line, #f0dfdc); text-align: left; vertical-align: top; }
.oa-personal-rows th { position: sticky; top: 0; background: #fff8f5; }
.oa-personal-rows small { display: block; overflow-wrap: anywhere; }
.oa-personal-body code { overflow-wrap: anywhere; }
.oa-personal-dialog [role=alert], .oa-personal-dialog [role=status] { margin: 12px 20px; }
@media (max-width: 600px) { .oa-personal-body { max-height: 56dvh; padding: 12px 16px 20px; } }
/* ── 指标卡：与联调核对共用一套折叠头与密度 ───────────────── */
.oa-metrics{margin:var(--oa-space) 0}
.oa-metrics-controls{display:flex;flex-wrap:wrap;gap:var(--oa-space-sm);margin:var(--oa-space-sm) 0}
.oa-metrics-controls label{display:grid;gap:var(--oa-space-xs);font-size:var(--oa-font-sm);color:var(--oa-muted-strong)}
.oa-metrics-controls input{min-height:var(--oa-control-h);padding:0 8px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-text);font:inherit;font-size:var(--oa-font-sm)}
.oa-metrics-list{list-style:none;margin:var(--oa-space-sm) 0;padding:0}
.oa-metrics-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--oa-space-sm);padding:var(--oa-space-sm) 0;border-bottom:1px solid var(--oa-line)}
.oa-metrics-list li p{grid-column:1 / -1;margin:var(--oa-space-xs) 0 0}
.oa-metrics-list b{overflow-wrap:anywhere;font-weight:600;font-size:var(--oa-font)}
.oa-metrics-list button{min-height:var(--oa-control-h);padding:0 12px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-brand);font:inherit;font-size:var(--oa-font-sm);font-weight:700;cursor:pointer}
.oa-metrics-list span{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:var(--oa-radius-pill);background:var(--oa-warn-bg);color:var(--oa-warn);font-size:var(--oa-font-sm);font-weight:700;white-space:nowrap}
.oa-metrics-list span.oa-metric-ok{background:var(--oa-ok-bg);color:var(--oa-ok)}
.oa-metrics-gate h3{margin:0 0 var(--oa-space-xs);font-size:var(--oa-font);font-weight:700;color:var(--oa-text)}
.oa-metrics-gate p{margin:var(--oa-space-xs) 0}
.oa-metrics-gate ul{margin:var(--oa-space-xs) 0;padding-left:18px}
.oa-metrics-gate li{overflow-wrap:anywhere}
.oa-metrics-gate .oa-error{border:0;background:none;padding:0;margin:var(--oa-space-xs) 0;font-weight:700}
.oa-metrics-gate .oa-error button{margin-top:var(--oa-space-sm)}

/* ── 折叠头：指标卡与联调核对必须逐像素一致（36px + 右侧 CSS 箭头） ── */
.oa-metrics > button,.oa-readiness > button{display:flex;align-items:center;justify-content:space-between;gap:var(--oa-space-sm);width:100%;min-height:var(--oa-control-h);margin:0;padding:0 10px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-sm);background:var(--oa-surface);color:var(--oa-brand);font:inherit;font-size:var(--oa-font);font-weight:700;line-height:1.3;text-align:left;cursor:pointer}
.oa-metrics > button::after,.oa-readiness > button::after{content:"";flex:none;width:7px;height:7px;margin:-2px 2px 0 0;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .15s ease}
.oa-metrics > button[aria-expanded="true"]::after,.oa-readiness > button[aria-expanded="true"]::after{transform:rotate(-135deg)}
.oa-metrics > button:hover,.oa-readiness > button:hover{background:var(--oa-soft);border-color:var(--oa-brand)}
.oa-metrics > button:focus-visible,.oa-readiness > button:focus-visible{outline:2px solid var(--oa-brand);outline-offset:2px}
.oa-metrics > div,.oa-readiness > div{margin-top:var(--oa-space-sm)}
/* ═══ 助手预填弹窗 ══════════════════════════════════════════════════════════
   app.js 的 financePaymentRequestForm / financePurchasePayableForm 专用。
   只加类名与样式，不改 DOM 层级、不改 data-role 契约。
   ══════════════════════════════════════════════════════════════════════════ */
.oa-prefill-dialog{width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;padding:20px 22px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius);background:var(--oa-surface);color:var(--oa-text);box-shadow:var(--oa-shadow-lg);font-family:"Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif;font-size:var(--oa-font);line-height:var(--oa-line-height)}
.oa-prefill-dialog::backdrop{background:rgba(64,39,44,.28)}
.oa-prefill-dialog p{margin:0 0 var(--oa-space-sm)}
.oa-prefill-kicker{display:block;margin:0 0 2px;color:var(--oa-brand);font-size:var(--oa-font-xs);font-weight:800;letter-spacing:.12em}
.oa-prefill-title{margin:0 0 10px;color:var(--oa-text);font-size:var(--oa-font-title);font-weight:700;line-height:1.3}
.oa-prefill-source{padding:var(--oa-space-sm) 10px;border-radius:var(--oa-radius-sm);background:var(--oa-soft);color:var(--oa-muted-strong);font-size:var(--oa-font-sm)}
.oa-prefill-source b{color:var(--oa-text)}
.oa-prefill-figures b{color:var(--oa-brand)}
.oa-prefill-version{color:var(--oa-muted);font-size:var(--oa-font-sm)}
.oa-prefill-alert{margin:0 0 var(--oa-space-sm);padding:var(--oa-space-sm) 10px;border:0;border-left:3px solid var(--oa-danger);border-radius:0 var(--oa-radius-sm) var(--oa-radius-sm) 0;background:var(--oa-danger-bg);color:var(--oa-danger);font-size:var(--oa-font-sm);font-weight:700}
.oa-prefill-note{color:var(--oa-muted);font-size:var(--oa-font-sm)}
.oa-prefill-alert:empty,.oa-prefill-note:empty{display:none}
/* 只有 1~2 个字段时不要把 3 列栅格留空：自动适配，390px 自动降 1 列 */
.oa-prefill-dialog .oa-prefill-fields{grid-template-columns:repeat(auto-fit,minmax(200px,260px));justify-content:start;gap:var(--oa-space) var(--oa-space-sm);margin:var(--oa-space) 0}
.oa-prefill-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:var(--oa-space);padding-top:14px;border-top:1px solid var(--oa-line)}
.oa-prefill-footer :is(.ghost-button,.primary-button){min-height:var(--oa-control-h);padding:0 16px;border-radius:var(--oa-radius-sm);font-size:var(--oa-font);font-weight:700}
.oa-prefill-footer .ghost-button{background:var(--oa-surface);color:var(--oa-brand);border:1px solid var(--oa-line-strong)}
.oa-prefill-footer .primary-button{background:var(--oa-brand);color:#fff;border:1px solid var(--oa-brand)}
.oa-prefill-footer .primary-button:disabled{background:var(--oa-disabled-bg);color:var(--oa-muted-strong);border-color:var(--oa-line-strong);cursor:not-allowed}

/* ═══ 待办里的「AI 辅助创建 · 员工已确认」标记 ═══════════════════════════════
   app.js:28574（详情头 <em>）与 app.js:28628（摘要 <span role=status>）共用。
   放在本文件而不是 styles.css，是为了不碰与另一位开发者共用的那份大样式表。
   ══════════════════════════════════════════════════════════════════════════ */
.todo-ai-assisted-chip{display:inline-flex;align-items:center;flex:none;padding:2px 7px;border:1px solid var(--oa-line-strong);border-radius:var(--oa-radius-pill);background:var(--oa-soft);color:var(--oa-brand);font-size:var(--oa-font-xs);font-style:normal;font-weight:700;line-height:1.4;white-space:nowrap}
.todo-detail-summary .todo-ai-assisted-chip{margin-left:6px}
.todo-ai-generated-chip{display:inline-flex;align-items:center;flex:none;padding:2px 7px;border:1px solid var(--oa-ai-line);border-radius:var(--oa-radius-pill);background:var(--oa-ai-bg);color:var(--oa-ai-fg);font-size:var(--oa-font-xs);font-style:normal;font-weight:700;line-height:1.4;white-space:nowrap}
.todo-detail-summary .todo-ai-generated-chip{margin-left:6px}
