/* 4.0.0 正式 PHP 接入补充样式：模板主体保留在 bento-flow.css。 */
.notice { margin: 0 0 18px; padding: 12px 14px; border: 1px solid; border-radius: 12px; font-size: 11px; line-height: 1.6; }
.notice.success { border-color: #c9dfcc; color: #2f6848; background: #edf7ed; }
.notice.error { border-color: #ecc3be; color: #9f4039; background: #fff1ef; }
.login-card .notice { margin-top: 18px; }
.captcha-field img.captcha { display: block; width: 105px; height: 45px; object-fit: contain; cursor: pointer; image-rendering: auto; }
.login-story > p { max-width: 560px; }
.login-card form { margin-top: 4px; }
.section-notice { margin: 0 0 16px; }
.availability-notice { position: relative; z-index: 0; pointer-events: auto; }
.inline-form { display: inline-flex; margin: 0; }
.inline-form button { margin: 0; }
.action-placeholder { color: #9aa49d; font-size: 9px; }
.data-table td, .data-table th { white-space: nowrap; }
.data-table .file-cell { min-width: 230px; }
.data-table .file-cell > div { min-width: max-content; }
.data-table .time-cell { min-width: 170px; }
.task-error { display: block; max-width: 310px; margin-top: 4px; overflow: hidden; color: #a5443d; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.dropzone input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.dropzone.has-file { border-color: #4e8062; background: #edf4e7; }
.form-error { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 12px; border: 1px solid #edc3be; border-radius: 11px; color: #95413b; background: #fff3f1; font-size: 10px; line-height: 1.55; }
.form-error::before { content: '!'; display: grid; place-items: center; width: 22px; height: 22px; flex: 0 0 22px; border-radius: 50%; color: #9f4039; background: #f7d7d2; font-family: Georgia, serif; font-weight: 700; }
[data-toast-source][hidden] { display: none; }
.agent-card.disabled { filter: saturate(.72); }
.agent-card .agent-top p { margin: 0; color: var(--muted); font-size: 10px; }
.agent-card .agent-top h2, .agent-card .agent-top p, .agent-meta strong { white-space: nowrap; }
.agent-meta strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.detail-row strong { overflow-wrap: anywhere; }
.printer-item.default { border-color: #b9d2b7; background: #f3f8ed; }
.software-copy .download-button { text-decoration: none; }
.software-copy .download-button.downloading { pointer-events: none; opacity: .84; }
.download-status { min-height: 18px; margin: 7px 0 0; color: #d7e6d9; font-size: 10px; font-weight: 700; }
.download-progress[hidden] + .download-status:empty { display: none; }
.software-meta { margin-top: 14px; color: #a9c0ae; font-size: 9px; }
.settings-card .notice { margin-bottom: 18px; }
.settings-card .button { min-width: 150px; }
.settings-card-actions { display: flex; justify-content: center; margin-top: 8px; }
.key-preview button { cursor: pointer; }
.button, .hero-action, .text-action, .icon-button, .account-button, .mobile-menu, .captcha { cursor: pointer; }
.button.primary, .hero-action { border-style: solid; }
.button-link { text-decoration: none; }
.status-detail { color: #718077; font-size: 9px; }
.empty-state { padding: 38px 22px; color: #849088; text-align: center; }
.task-browser { transition: opacity .18s ease; }
.task-browser[aria-busy="true"] { opacity: .48; pointer-events: none; }
.task-table-wrap { overflow: visible; }
.task-table { width: 100%; min-width: 0; table-layout: fixed; }
.task-table th:first-child, .task-table td:first-child { width: 82px; }
.task-table th:last-child, .task-table td:last-child { width: 150px; }
.task-table th:first-child, .task-table td:first-child,
.task-table th:last-child, .task-table td:last-child { text-align: center; }
.task-table th:nth-child(2), .task-table td:nth-child(2) { text-align: center; }
.task-table td:last-child .state { max-width: 100%; box-sizing: border-box; }
.task-table .file-cell { justify-content: center; min-width: 0; text-align: left; }
.task-table .file-cell > div { min-width: 0; }
.task-table .file-cell strong { overflow: hidden; text-overflow: ellipsis; }
.task-summary-row { cursor: pointer; outline: none; }
.task-summary-row:hover, .task-summary-row:focus-visible { background: #f4f8f1; }
.task-summary-row:focus-visible { box-shadow: inset 0 0 0 2px #6f9479; }
.task-detail-dialog { width: min(760px, 100%); }
.task-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 22px 0 0; }
.task-detail-grid > div { min-width: 0; padding: 14px 16px; border: 1px solid #e1e7de; border-radius: 14px; background: #fafbf8; }
.task-detail-grid .task-detail-wide { grid-column: 1 / -1; }
.task-detail-grid dt { margin-bottom: 7px; color: #89948d; font-size: 9px; font-weight: 700; letter-spacing: .06em; }
.task-detail-grid dd { margin: 0; color: #304239; font-size: 11px; font-weight: 700; line-height: 1.55; overflow-wrap: anywhere; }
.task-detail-grid .task-detail-error { border-color: #efcbc7; background: #fff6f5; }
.task-detail-grid .task-detail-error dd { color: #a5443d; }
.task-detail-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.task-detail-actions > .button, .task-detail-actions > .inline-form { width: 150px; }
.task-detail-actions .button { width: 100%; min-width: 0; text-decoration: none; }
/* 弹窗本体不再整体滚动：标题与关闭按钮固定，仅滚动下方内容。 */
.modal, .agent-dialog { display: flex; flex-direction: column; overflow: hidden; }
.modal-head, .agent-dialog-head { position: relative; z-index: 2; flex: 0 0 auto; padding-bottom: 16px; border-bottom: 1px solid #e7ebe5; background: var(--paper); }
.modal > form, .agent-dialog > #agent-dialog-content, .agent-dialog > #task-detail-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.modal > form { padding-right: 2px; }
.agent-dialog > #agent-dialog-content, .agent-dialog > #task-detail-content { padding-right: 2px; }
@media (max-width: 650px) {
  .captcha-field { grid-template-columns: minmax(0, 1fr) 105px; }
  .data-table:not(.task-table) { min-width: 930px; }
  .task-table th, .task-table td { padding-right: 10px; padding-left: 10px; }
  .task-table th:first-child, .task-table td:first-child { width: 48px; }
  .task-table th:last-child, .task-table td:last-child { width: 104px; }
  .task-table td:last-child .state { gap: 5px; padding-right: 7px; padding-left: 7px; font-size: 8px; }
  .task-table .file-icon { width: 38px; height: 38px; }
  .task-table .file-cell { gap: 8px; }
  .task-detail-grid { grid-template-columns: 1fr; }
  .task-detail-grid .task-detail-wide { grid-column: auto; }
  .task-detail-actions { flex-direction: column; }
  .task-detail-actions > .button, .task-detail-actions > .inline-form { width: 100%; }
  .task-detail-actions .inline-form .button { width: 100%; }
  .agent-actions { flex-direction: row; }
  .settings-card .button { width: 100%; }
}
