/* 全社の AI の体制とルール。style.css・flow.css・cm.css の上に重ねる（接頭辞 ao-） */
.ao-h4 { margin: 0 0 8px; font-size: 14px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
.ao-nl { display: block; margin: 6px 0 0; }
.ao-inl { display: inline; margin: 0 0 0 6px; padding: 0; }
.ao-tips { margin-top: 12px; }
.ao-mt { margin-top: 10px; }
.ao-mb8 { margin-bottom: 8px !important; }
.ao-tnote { margin: 8px 0 0; font-size: 12px; color: var(--muted); }
.ao-box { padding: 12px 14px; min-width: 0; }
.ao-tbl { font-size: 12.5px; }
.ao-tbl th, .ao-tbl td { padding: 6px 8px; }
.ao-btns { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.ao-sub { margin: 12px 0 6px; font-size: 12px; font-weight: 700; color: var(--muted); }
.ao-small { margin: 0; font-size: 12.5px; color: var(--ink2); }
.ao-snote { margin-top: 6px; }
.ao-plain { margin: 0; padding-left: 1.2em; font-size: 12.5px; color: var(--ink2); display: grid; gap: 3px; }

/* 操作の枠 */
.ao-ctl { padding: 12px 14px; display: grid; gap: 8px; margin-bottom: 10px; }
.ao-crow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.ao-clab { font-size: 12.5px; font-weight: 700; color: var(--muted); min-width: 3em; }
.ao-scene { margin: 0; font-size: 13px; color: var(--ink2); background: var(--line2); border-radius: 8px; padding: 7px 11px; }
.ao-scene b { color: var(--ink); margin-right: 4px; }
.ao-qrow { display: grid; grid-template-columns: 11em minmax(0, 1fr); gap: 6px 10px; align-items: center; padding: 6px 0; border-bottom: 1px dashed var(--line2); }
.ao-qrow:last-child { border-bottom: 0; }
.ao-qlab { font-size: 12.5px; font-weight: 700; color: var(--ink2); }
.ao-qp { text-align: left; font-weight: 500; }
.ao-qp[aria-pressed="true"] { font-weight: 700; }

/* だれが何を持つか */
.ao-org { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 10px; align-items: start; }
.ao-roles { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ao-role { border: 1px solid var(--line); border-radius: 12px; padding: 9px 11px; background: var(--paper); min-width: 0; }
.ao-role.ao-r-ng { border-color: #fecaca; background: #fffafa; }
.ao-role.ao-r-warn { border-color: #fde68a; background: #fffdf5; }
.ao-rh { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 8px; align-items: start; }
.ao-rh b { font-size: 13px; display: block; }
.ao-rh small { display: block; font-size: 11.5px; color: var(--muted); margin-top: 1px; }
.ao-mk { font: 700 13px var(--sans); width: 24px; height: 24px; border-radius: 50%; display: inline-grid; place-items: center; }
.ao-mk-ok { background: #dcfce7; color: #14532d; }
.ao-mk-warn { background: #fef3c7; color: #92400e; }
.ao-mk-ng { background: #fee2e2; color: #991b1b; }
.ao-msgs { list-style: none; margin: 8px 0 0 30px; padding: 0; display: grid; gap: 4px; }
.ao-msgs li { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 6px; font-size: 12.5px; color: var(--ink2); }
.ao-msgs li b { font-size: 12.5px; }
.ao-m-ng b { color: #b91c1c; }
.ao-m-warn b { color: #b45309; }
.ao-m-info b { color: #1d4ed8; }
.ao-gmsgs { margin: 10px 0 0; }

/* 選ぶ練習（申請・出来事） */
.ao-cases { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ao-case { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: var(--paper); min-width: 0; }
.ao-case.ao-ok { border-color: #86efac; background: #f7fef9; }
.ao-case.ao-mid { border-color: #fcd34d; background: #fffdf5; }
.ao-case.ao-ng { border-color: #fecaca; background: #fffafa; }
.ao-pih { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; align-items: start; }
.ao-pih p { margin: 0; font-size: 13px; color: var(--ink); }
.ao-pn { width: 22px; height: 22px; border-radius: 50%; background: #0f172a; color: #fff; font: 600 11.5px/22px var(--latin); text-align: center; }
.ao-who { display: block; font-size: 11.5px; font-weight: 700; color: var(--muted); margin-bottom: 2px; }
.ao-pbtns { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0 0 30px; }
.ao-lab { margin: 8px 0 0 30px; font-size: 11.5px; font-weight: 700; color: var(--muted); }
.ao-lab + .ao-pbtns { margin-top: 4px; }
.ao-ch { appearance: none; font: inherit; font-size: 12.5px; font-weight: 700; border: 1px solid var(--line); background: var(--paper); color: var(--ink2); border-radius: 999px; padding: 4px 12px; cursor: pointer; text-align: left; }
.ao-ch:hover { border-color: #94a3b8; color: var(--ink); }
.ao-ch[aria-pressed="true"] { background: #0f172a; border-color: #0f172a; color: #fff; }
.ao-ch.ao-cv-go[aria-pressed="true"] { background: #15803d; border-color: #15803d; }
.ao-ch.ao-cv-cond[aria-pressed="true"] { background: #b45309; border-color: #b45309; }
.ao-ch.ao-cv-rev[aria-pressed="true"] { background: #1d4ed8; border-color: #1d4ed8; }
.ao-ch.ao-ce-wait[aria-pressed="true"] { background: #475569; border-color: #475569; }
.ao-ch.ao-ce-now[aria-pressed="true"] { background: #b45309; border-color: #b45309; }
.ao-ch.ao-ce-stop[aria-pressed="true"] { background: #b91c1c; border-color: #b91c1c; }
.ao-chs { font-size: 12px; padding: 3px 11px; }
.ao-fb { margin: 8px 0 0 30px; font-size: 12.5px; color: var(--ink2); background: var(--line2); border-radius: 8px; padding: 6px 9px; }
.ao-fb p { margin: 0; }
.ao-fb p + p { margin-top: 6px; }
.ao-fb p > b { display: block; color: var(--ink); }
.ao-hits { font-size: 12px; }
.ao-pfoot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 10px; }
.ao-psum { font-size: 13px; color: var(--ink2); }

/* 判定の道具 */
.ao-judge { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 10px; align-items: start; }
.ao-verdict { margin: 0 0 10px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; border-radius: 10px; padding: 9px 12px; border: 1px solid var(--line); }
.ao-verdict b { font-size: 17px; }
.ao-verdict span { font-size: 12.5px; color: var(--ink2); }
.ao-verdict.ao-v-go { background: #f0fdf4; border-color: #bbf7d0; } .ao-verdict.ao-v-go b { color: #14532d; }
.ao-verdict.ao-v-cond { background: #fffbeb; border-color: #fde68a; } .ao-verdict.ao-v-cond b { color: #92400e; }
.ao-verdict.ao-v-rev { background: #eff6ff; border-color: #bfdbfe; } .ao-verdict.ao-v-rev b { color: #1e3a8a; }
.ao-verdict.ao-v-ng { background: #fef2f2; border-color: #fecaca; } .ao-verdict.ao-v-ng b { color: #991b1b; }
.ao-vb { display: inline-block; font-size: 11.5px; font-weight: 700; border-radius: 6px; padding: 1px 7px; border: 1px solid var(--line); white-space: nowrap; margin-right: 4px; }
.ao-vb.ao-v-go { background: #f0fdf4; border-color: #bbf7d0; color: #14532d; }
.ao-vb.ao-v-cond { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.ao-vb.ao-v-rev { background: #eff6ff; border-color: #bfdbfe; color: #1e3a8a; }
.ao-dl { margin: 6px 0 0; display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 4px 10px; font-size: 12.5px; }
.ao-dl dt { font-size: 12px; font-weight: 700; color: var(--muted); }
.ao-dl dd { margin: 0; color: var(--ink2); }
.ao-conds { margin: 0; padding-left: 1.2em; font-size: 12.5px; color: var(--ink2); display: grid; gap: 5px; }
.ao-model { margin-top: 10px; background: var(--line2); border-radius: 10px; padding: 8px 11px; font-size: 12.5px; color: var(--ink2); }
.ao-model p { margin: 0 0 4px; }
.ao-model p:last-child { margin-bottom: 0; }
.ao-model b { color: var(--ink); margin-right: 6px; }
.ao-chg { color: #78350f; }
.ao-stbl { min-width: 680px; }
.ao-srow { cursor: pointer; }
.ao-srow:hover th, .ao-srow:hover td { background: var(--line2); }
.ao-tbl tr.ao-on th, .ao-tbl tr.ao-on td { background: #f0fdf4; }
.ao-stbl tbody th { font-weight: 500; }
.ao-sel { appearance: none; font: inherit; font-size: 12.5px; font-weight: 700; text-align: left; cursor: pointer; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 4px 9px; }
.ao-sel:hover { border-color: #94a3b8; background: var(--any-bg); }
.ao-sel[aria-pressed="true"] { border-color: #15803d; background: #dcfce7; }

/* 全社のルール */
.ao-rules { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ao-rule { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: var(--paper); min-width: 0; }
.ao-ruleh { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.ao-ruleh b { font-size: 14px; }
.ao-rno { width: 22px; height: 22px; border-radius: 50%; background: #0f172a; color: #fff; font: 600 11.5px/22px var(--latin); text-align: center; flex: none; }
.ao-lv { font-size: 11.5px; font-weight: 700; border-radius: 6px; padding: 1px 7px; border: 1px solid var(--line); }
.ao-lv-must { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.ao-lv-should { background: #eff6ff; border-color: #bfdbfe; color: #1e3a8a; }
.ao-std { font: 600 11.5px var(--latin); background: var(--line2); border-radius: 6px; padding: 1px 7px; color: var(--ink2); }
.ao-rulet { margin: 6px 0 0; font-size: 13px; color: var(--ink); }
.ao-rlinks { margin-top: 6px; }
.ao-rlinks .ao-nl { margin-top: 3px; }

/* 定期の見直し */
.ao-ctbl { min-width: 620px; }
.ao-ctbl tbody th { white-space: nowrap; }

/* 残す形 */
.ao-tpls { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 10px; align-items: start; }
.ao-tpl { padding: 12px 14px; min-width: 0; }
.ao-tplr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; align-items: start; }
.ao-tplh { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.ao-tplh .ao-h4 { margin: 0; }
.ao-pre { margin: 0; background: #0f172a; color: #e2e8f0; border-radius: 8px; padding: 10px 12px; font: 500 12px/1.6 var(--latin); white-space: pre-wrap; overflow-wrap: anywhere; max-height: 420px; overflow-y: auto; }
.ao-ltbl { min-width: 2300px; }
.ao-ltbl th { white-space: nowrap; }
#aoTplLedger td:nth-child(1), #aoTplLedger td:nth-child(11) { white-space: nowrap; }
#aoTplLedger td:nth-child(2), #aoTplLedger td:nth-child(3) { min-width: 9em; }
#aoTplLedger td:nth-child(5), #aoTplLedger td:nth-child(6), #aoTplLedger td:nth-child(7) { min-width: 11em; }
#aoTplLedger td:nth-child(8), #aoTplLedger td:nth-child(10) { min-width: 10em; }
#aoTplLedger td:nth-child(9) { min-width: 7em; }
#aoTplLedger td:nth-child(12) { min-width: 12em; }
#aoTplLedger td:nth-child(13) { min-width: 30em; }
#aoTplLedger td:nth-child(14) { min-width: 9em; }
.ao-otbl { min-width: 1100px; }
#aoTplOrg td:nth-child(1) { min-width: 14em; }
#aoTplOrg td:nth-child(2) { min-width: 11em; }
#aoTplOrg td:nth-child(3) { min-width: 24em; }
#aoTplOrg td:nth-child(4) { min-width: 18em; }

.ao-ch:focus-visible, .ao-sel:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }

@media (max-width: 1100px) {
  .ao-org, .ao-judge, .ao-tplr { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .ao-cases, .ao-rules { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .ao-qrow { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .ao-clab { min-width: 0; width: 100%; }
  .ao-pbtns, .ao-fb, .ao-lab, .ao-msgs { margin-left: 0; }
  .ao-tbl th, .ao-tbl td { padding: 5px 6px; }
  .ao-dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .ao-dl dd { margin-bottom: 4px; }
}
