/* ==========================================================
   2.9.15 对话框自适应（UI.dialog，js/core/ui.js fitDialog）
   · 标题和按钮固定，只滚内容；内容滚动时按钮上方出一条细线
   · 电脑 / 平板（≥ 900）：内容比屏幕高就加宽成两栏（.modal-flow + .mflow），不再竖着拉很长
   · 平板竖屏（641–899）：宽对话框按屏幕宽，表单两列
   · 手机（≤ 640）：从底部弹出的面板，按钮铺满一行、手指好点，输入框 16px（iOS 不再自动放大）
   ========================================================== */
.modal{display:flex;flex-direction:column;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px)}
.modal-head,.modal-foot{flex:none}
.modal-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.modal-foot{border-top:1px solid transparent;transition:border-color .2s}
.modal.is-scroll:not(.is-end) .modal-foot{border-top-color:var(--line)}

.modal.wide{width:min(720px,100%)}
.modal.modal-sm{width:min(400px,100%)}
.modal.modal-lg{width:min(880px,100%)}
.modal.modal-xl{width:min(1120px,100%)}
.modal.modal-flow{width:min(1080px,100%)}
.modal.modal-flow.modal-xl{width:min(1120px,100%)}

/* 自动两栏：子元素按顺序先排左栏再排右栏，单个块不拆开 */
.mflow{display:block!important;columns:2 340px;column-gap:36px;column-rule:1px solid var(--line)}
.mflow > *{break-inside:avoid;-webkit-column-break-inside:avoid}
.mflow > *:not(:last-child){margin-bottom:14px}

/* 平板竖屏 */
@media (min-width:641px) and (max-width:899px){
  .modal.modal-lg,.modal.modal-xl,.modal.modal-flow{width:min(820px,100%)}
}

/* 手机：底部弹出 */
@media (max-width:640px){
  .modal-wrap{place-items:end center;padding:12px 0 0}
  .modal,.modal.wide,.modal.modal-sm,.modal.modal-lg,.modal.modal-xl,.modal.modal-flow,.modal.modal-spx{
    width:100%;max-width:100%;max-height:calc(100vh - 12px);max-height:calc(100dvh - 12px);border-radius:18px 18px 0 0}
  .modal::before{content:"";flex:none;width:38px;height:4px;border-radius:2px;background:var(--line);margin:8px auto 0}
  .modal-head{padding:12px 16px 4px}
  .modal-head h2{font-size:18px}
  .modal-body{padding:10px 16px 6px;scrollbar-gutter:auto}
  .modal-foot{flex-wrap:wrap;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}
  .modal-foot .err.grow{flex:1 1 100%;order:-1}
  .modal-foot .err.grow:empty{display:none}
  .modal-foot .btn{flex:1 1 0;min-height:44px;justify-content:center}
  .modal .row-2,.modal .row-3{grid-template-columns:minmax(0,1fr)}
  .modal input.input,.modal select.select,.modal textarea,.modal .textarea{font-size:16px}
  .modal .toggle-row{min-height:44px}
}

/* ---------- 打乱阵营：左手动、右连败自动（宽屏左右两栏） ---------- */
.modal-shf .modal-body{padding-top:10px}
.shf2{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.shf-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.shf-auto{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.shf-auto.skel{padding:14px}
.shf-auto-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 14px;cursor:pointer;list-style:none;font-weight:600;background:var(--sunk)}
.shf-auto-h::-webkit-details-marker{display:none}
.shf-auto-t{display:inline-flex;align-items:center;gap:6px}
.shf-auto-t svg{width:16px;height:16px}
.shf-auto-st{flex:1 1 100%;font-weight:400}
.shf-auto-b{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px}
.shf-auto-b > p{margin:0}
.shf-auto-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.shf-auto-grid .field{margin:0;min-width:0}
.shf-auto-grid label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shf-auto-sw{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));column-gap:16px}
.shf-auto-sw .toggle-row{min-height:34px}
.shf-auto-b .field{margin:0}
.shf-auto-log ul{margin:6px 0 0;padding-left:18px}
.shf-auto-act{display:flex;flex-wrap:wrap;gap:8px}
@media (min-width:900px){
  .shf2{grid-template-columns:minmax(0,1.08fr) minmax(330px,1fr);gap:24px;align-items:start}
  .shf2.no-auto{grid-template-columns:minmax(0,1fr)}
  .shf-auto-col{position:sticky;top:0}
  .shf-auto-h{cursor:default}
}

/* ---------- 安全防护墙 AI 复核结果 ---------- */
.fw-ai{display:grid;gap:14px 30px}
@media (min-width:760px){.fw-ai.two{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}
.fw-ai > div{display:flex;flex-direction:column;gap:10px;min-width:0}
.fw-ai h4{font-size:13px;margin:0;color:var(--muted);font-weight:600}
.fw-ai ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px}
.fw-ai-sum{white-space:pre-wrap;line-height:1.7;margin:0}
.fw-ai-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fw-ai-note{margin-top:14px}

/* 武器中文名：鼠标停上去看全名和原始代码 */
.wpn-zh{cursor:help}
