/* Supervisor AI-use authorization: composer label, reply notices and dialog.
   Outside-authorization states use outlines, not filled alarms. */
.aiauth-chip {
  display: block; max-width: 100%; min-height: 28px; margin: 8px 0 0; padding: 4px 10px;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-align: left;
  border: 1px solid var(--line, #dfe5dc); border-radius: 999px; background: transparent;
  color: var(--muted, #59685f); font-size: 12px; font-weight: 500;
}
.aiauth-chip[data-status="ask_first"] { border-color: #c99a3b; color: #775316; }
.aiauth-chip:is([data-status="not_allowed"], [data-status="degree_exceeded"]) { border-color: #b86a63; color: #8a3b35; }

.aiauth-slot { margin-top: 8px; }
.aiauth-notice { border: 1px solid var(--line, #dfe5dc); border-left: 3px solid #b8c4b5; border-radius: 8px; padding: 10px 12px; font-size: 13px; }
.aiauth-notice[data-status="ask_first"] { border-left-color: #c99a3b; }
.aiauth-notice:is([data-status="not_allowed"], [data-status="degree_exceeded"]) { border-left-color: #b86a63; }
.aiauth-notice p { margin: 0 0 6px; line-height: 1.65; overflow-wrap: anywhere; }
.aiauth-notice-title { font-size: 12px; font-weight: 600; color: var(--muted, #59685f); }
.aiauth-note-text { color: var(--ink, #263b31); font-size: 12px; }
.aiauth-note-tools .aiauth-actions { flex-wrap: wrap; gap: 4px 14px; }
.aiauth-note-tools .text-button { min-height: 44px; padding: 8px 0; }
.aiauth-note-form { display: grid; gap: 10px; margin-top: 6px; }
.aiauth-note-form textarea { width: 100%; resize: vertical; }
.aiauth-count { align-self: flex-end; color: var(--muted, #59685f); font-size: 11px; font-weight: 400; }

.aiauth-dialog {
  width: min(960px, calc(100vw - 32px)); max-height: min(920px, calc(100dvh - 32px)); padding: 0; overflow: hidden;
  border: 1px solid var(--line, #dfe5dc); border-radius: 16px; background: var(--paper, #fffefb); color: var(--ink, #263b31);
  box-shadow: 0 24px 90px #263b3129;
}
.aiauth-dialog::backdrop { background: #263b3166; backdrop-filter: blur(4px); }
.aiauth-shell { display: flex; flex-direction: column; max-height: min(918px, calc(100dvh - 34px)); min-height: 0; }
.aiauth-header, .aiauth-tabs, .aiauth-tab-picker, .aiauth-dialog-error, .aiauth-readonly { flex: 0 0 auto; }
.aiauth-readonly { margin: 10px 24px 0; }
.aiauth-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 24px 10px; }
.aiauth-heading { min-width: 0; }
.aiauth-heading h2 { margin: 2px 0 4px; font-size: 20px; }
.aiauth-intro { margin: 0; color: var(--muted, #59685f); font-size: 12px; line-height: 1.6; }
.aiauth-close { flex: 0 0 auto; min-height: 44px; }
.aiauth-tabs { display: flex; gap: 2px; padding: 0 20px; border-bottom: 1px solid var(--line, #dfe5dc); overflow-x: auto; }
.aiauth-tab { border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; white-space: nowrap; min-height: 44px; padding: 8px 12px; }
.aiauth-tab[aria-selected="true"] { border-bottom-color: var(--green, #285a45); color: var(--green, #285a45); font-weight: 600; }
.aiauth-tab-picker { display: none; padding: 8px 16px 0; }
.aiauth-panel { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px 24px 0; outline: 0; }
.aiauth-content { display: grid; gap: 14px; padding-bottom: 20px; }
.aiauth-content h3 { margin: 0; font-size: 15px; }
.aiauth-error { margin: 0; color: var(--danger, #9b4343); font-size: 13px; overflow-wrap: anywhere; }
.aiauth-dialog-error { padding: 8px 24px 0; }
.aiauth-card { border: 1px solid var(--line, #dfe5dc); border-radius: 10px; padding: 14px 16px; display: grid; gap: 8px; min-width: 0; }
.aiauth-card p { margin: 0; overflow-wrap: anywhere; }
.aiauth-card label { font-weight: 500; }
.aiauth-card > button, .aiauth-card > form > button { justify-self: start; min-height: 44px; }
.aiauth-hash { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; color: var(--muted, #59685f); overflow-wrap: anywhere; }
.aiauth-ok { color: var(--green, #285a45); font-size: 13px; }
.aiauth-hint { padding: 8px 10px; border-radius: 8px; background: #fff4dc; color: #775316; font-size: 12px; }
.aiauth-totals { font-weight: 600; margin: 0; }
.aiauth-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.aiauth-actions > button, .aiauth-actions > select { min-height: 44px; }
.aiauth-table-wrap { max-width: 100%; overflow-x: auto; }
.aiauth-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.aiauth-table :is(th, td) { padding: 6px 8px; border-bottom: 1px solid var(--line, #dfe5dc); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.aiauth-table thead th { color: var(--muted, #59685f); font-weight: 500; font-size: 12px; }
.aiauth-table tr[data-permission="not_allowed"] td:nth-child(2) { color: #8a3b35; }
.aiauth-table tr.aiauth-changed { background: #fff4dc; }
.aiauth-meta { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; margin: 0; font-size: 13px; }
.aiauth-meta dt { color: var(--muted, #59685f); }
.aiauth-meta dd { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }

.aiauth-issue { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 20px; align-items: start; }
.aiauth-subjects { display: grid; gap: 6px; position: sticky; top: 0; }
.aiauth-subject { display: grid; justify-items: start; gap: 2px; text-align: left; min-height: 52px; width: 100%; }
.aiauth-subject[aria-current="true"] { border-color: var(--green, #285a45); background: var(--pale, #eaf1e9); }
.aiauth-subject-name { font-weight: 600; font-size: 13px; overflow-wrap: anywhere; }
.aiauth-subject-badge { color: var(--muted, #59685f); font-size: 11px; }
.aiauth-subject-picker { display: none; }
.aiauth-issue-main { display: grid; gap: 10px; min-width: 0; }
.aiauth-issue-main > p { margin: 0; }
.aiauth-issue-form { display: grid; gap: 12px; }
.aiauth-rules { display: grid; gap: 0; }
.aiauth-rules-head, .aiauth-rule { display: grid; grid-template-columns: 100px 272px 92px minmax(0, 1fr); gap: 8px; align-items: center; }
.aiauth-rules-head { padding: 0 0 4px; color: var(--muted, #59685f); font-size: 12px; }
.aiauth-rule { min-height: 56px; margin: 0; padding: 4px 0; border: 0; border-top: 1px solid var(--line, #dfe5dc); min-width: 0; }
.aiauth-rule legend { float: left; padding: 0; font-size: 13px; font-weight: 600; }
.aiauth-rule > legend + * { clear: none; }
.aiauth-permission { display: flex; flex-wrap: nowrap; gap: 10px; }
.aiauth-radio { flex-direction: row; align-items: center; gap: 4px; font-weight: 400; font-size: 13px; min-height: 32px; cursor: pointer; white-space: nowrap; }
.aiauth-radio input { margin: 0; accent-color: var(--green, #285a45); }
.aiauth-degree, .aiauth-condition { flex-direction: row; align-items: center; gap: 6px; min-width: 0; position: relative; }
.aiauth-degree select { width: 100%; padding: 6px 8px; }
.aiauth-condition input { flex: 1 1 auto; width: 100%; padding: 6px 54px 6px 8px; }
.aiauth-condition .aiauth-count { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.aiauth-mobile-label { display: none; }
.aiauth-rule[data-permission="not_allowed"] legend { color: #8a3b35; }
.aiauth-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
.aiauth-field input, .aiauth-field textarea { width: 100%; }
.aiauth-field-note { grid-column: 1 / -1; }
.aiauth-footer {
  position: sticky; bottom: 0; z-index: 1; display: grid; gap: 6px; margin: 0 -24px; padding: 10px 24px calc(12px + env(safe-area-inset-bottom));
  background: var(--paper, #fffefb); border-top: 1px solid var(--line, #dfe5dc);
}
.aiauth-footer p { margin: 0; }
.aiauth-footer .aiauth-actions { justify-content: flex-end; }
.aiauth-history summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-size: 13px; }
.aiauth-compare { display: grid; gap: 10px; }
.aiauth-version-list { margin: 0; padding-left: 20px; font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.aiauth-request-form, .aiauth-self-form { gap: 10px; }
.aiauth-request-form textarea { width: 100%; resize: vertical; }
.aiauth-request-title { font-weight: 600; }
.aiauth-decision { display: grid; grid-template-columns: 140px minmax(0, 1fr) 120px minmax(0, 1fr) auto; gap: 8px; }
.aiauth-decision > * { min-height: 44px; }
.aiauth-share { padding: 6px 10px; border-radius: 8px; background: var(--pale, #eaf1e9); font-size: 12px; }
.aiauth-share-options { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.aiauth-share-options fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.aiauth-share-options legend { font-size: 12px; color: var(--muted, #59685f); padding: 0 0 4px; }
.aiauth-preview { margin: 0; padding: 10px 12px; border-radius: 8px; background: #f3f5ef; font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 600px) {
  .aiauth-dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  .aiauth-shell { height: 100dvh; max-height: 100dvh; }
  .aiauth-header { padding: 14px 16px 6px; }
  .aiauth-intro { display: none; }
  .aiauth-tabs { display: none; }
  .aiauth-tab-picker { display: flex; }
  .aiauth-tab-picker select, .aiauth-subject-picker select { min-height: 44px; }
  .aiauth-panel { padding: 12px 16px 0; }
  .aiauth-dialog-error { padding: 8px 16px 0; }
  .aiauth-readonly { margin: 8px 16px 0; }
  .aiauth-issue { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .aiauth-subjects { display: none; }
  .aiauth-subject-picker { display: flex; }
  .aiauth-rules-head { display: none; }
  .aiauth-rule { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 12px; margin-top: 8px; border: 1px solid var(--line, #dfe5dc); border-radius: 10px; }
  .aiauth-permission { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 8px; }
  .aiauth-radio { white-space: normal; }
  .aiauth-radio { min-height: 44px; }
  .aiauth-degree, .aiauth-condition { flex-direction: column; align-items: stretch; gap: 4px; }
  .aiauth-degree select, .aiauth-condition input { min-height: 44px; }
  .aiauth-condition input { padding-right: 8px; }
  .aiauth-condition .aiauth-count { position: static; transform: none; }
  .aiauth-mobile-label { display: block; font-size: 12px; color: var(--muted, #59685f); }
  .aiauth-fields { grid-template-columns: minmax(0, 1fr); }
  .aiauth-footer { margin: 0 -16px; padding: 10px 16px calc(12px + env(safe-area-inset-bottom)); }
  .aiauth-footer .aiauth-actions > button { flex: 1 1 100%; }
  .aiauth-decision { grid-template-columns: minmax(0, 1fr); }
  .aiauth-meta { grid-template-columns: minmax(0, 1fr); }
  .aiauth-chip { min-height: 44px; }
  .aiauth-card > button, .aiauth-card > form > button { justify-self: stretch; }
}
