/* Scoped to the standalone local AI preview; reuses the teacher workspace palette. */
.gai-dialog {
  --gai-ink: var(--ink, #43185f);
  --gai-paper: var(--paper, #f8f5fa);
  --gai-line: var(--line, #dfd6e5);
  --gai-soft: var(--ink-soft, #594664);
  --gai-action: var(--brand-action, #65368a);
  box-sizing: border-box;
  width: min(1160px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--gai-line);
  border-radius: 16px;
  background: var(--gai-paper);
  color: var(--gai-ink);
  box-shadow: var(--shadow, 0 28px 70px rgba(67, 24, 95, .14));
  font: 16px/1.6 var(--body, "Microsoft YaHei", sans-serif);
  overflow: auto;
  overflow-wrap: anywhere;
  scrollbar-color: var(--brand-soft, #9b78b4) var(--gai-paper);
  scrollbar-width: thin;
  color-scheme: light;
}
.gai-dialog::backdrop { background: rgba(31, 13, 44, .55); }
.gai-dialog *, .gai-dialog *::before, .gai-dialog *::after { box-sizing: border-box; }
.gai-dialog [hidden], .gai-entry[hidden], .gai-nav-entry[hidden], .gai-toast[hidden] { display: none !important; }
.gai-dialog ::selection { background: var(--brand-pale, #f1eaf6); color: var(--gai-ink); }
.gai-dialog :focus-visible, .gai-entry:focus-visible, .gai-nav-entry:focus-visible { outline: 3px solid var(--brand-action, #65368a); outline-offset: 3px; }
.gai-dialog :is(h2, h3, h4, h5, p) { margin: 0; }
.gai-dialog h2 { font-family: var(--display, serif); font-size: clamp(24px, 3vw, 30px); line-height: 1.4; }
.gai-dialog h3 { font-size: 20px; }
.gai-dialog :is(h4, h5) { font-size: 16px; }
.gai-header { position: sticky; inset-block-start: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 24px 28px 18px; border-bottom: 1px solid var(--gai-line); background: var(--white, #fff); }
.gai-header > div { min-width: 0; }
.gai-header p { max-width: 72ch; margin-block-start: 8px; color: var(--gai-soft); font-size: 14px; }
.gai-header > button { flex: 0 0 auto; }
.gai-messages { padding: 12px 28px 0; }
.gai-messages p:empty { display: none; }
.gai-messages p { font-size: 14px; }
.gai-dialog #gai-error { color: #9b242b; background: var(--coral-soft, #fbecea); padding: 12px; border: 1px solid #dfa6a8; border-radius: 6px; }
.gai-layout { display: grid; grid-template-columns: minmax(260px, 330px) minmax(0, 1fr); gap: 32px; padding: 20px 28px 28px; }
.gai-layout > *, .gai-field-pair > *, .gai-item-meta > * { min-width: 0; }
.gai-dialog :is(input, textarea, select, button, summary, [tabindex]) { scroll-margin-block-start: 160px; }
.gai-dialog label { display: block; margin-block: 12px 5px; font-weight: 600; }
.gai-dialog input:not([type="checkbox"]), .gai-dialog select, .gai-dialog textarea { display: block; width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 9px 11px; border: 1px solid #b9a9c4; border-radius: 7px; background: var(--white, #fff); color: var(--gai-ink); font: inherit; line-height: 1.5; caret-color: var(--gai-action); }
.gai-dialog textarea { resize: vertical; white-space: pre-wrap; }
.gai-dialog textarea::placeholder { color: #76647f; opacity: 1; }
.gai-dialog input[type="file"] { padding: 8px; font-size: 14px; }
.gai-dialog input[type="file"]::file-selector-button { max-width: 100%; padding: 7px 10px; border: 1px solid var(--gai-line); border-radius: 4px; background: var(--gai-paper); color: var(--gai-ink); font: inherit; cursor: pointer; }
.gai-dialog fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.gai-dialog legend { font-size: 17px; font-weight: 700; padding: 0; }
.gai-dialog .gai-help { color: var(--gai-soft); font-size: 14px; margin-block: 6px; }
.gai-field-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.gai-dialog .gai-levels { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-block: 18px; }
.gai-dialog .gai-levels legend { font-size: 16px; }
.gai-dialog .gai-levels label { display: flex; align-items: center; gap: 6px; min-height: 44px; margin: 0; font-weight: 400; cursor: pointer; }
.gai-dialog input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--gai-action); }
.gai-button { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; padding: 9px 14px; border: 1px solid var(--line, #dfd6e5); border-radius: 7px; background: var(--white, #fff); color: var(--ink, #43185f); font: 600 14px/1.5 var(--body, "Microsoft YaHei", sans-serif); white-space: normal; overflow-wrap: anywhere; text-align: center; cursor: pointer; }
.gai-button:hover:not(:disabled) { background: var(--brand-pale, #f1eaf6); border-color: var(--brand-action, #65368a); }
.gai-primary { background: var(--brand-action, #65368a); color: var(--white, #fff); border-color: var(--brand-action, #65368a); }
.gai-primary:hover:not(:disabled) { background: var(--brand-strong, #321047); border-color: var(--brand-strong, #321047); }
.gai-button:disabled, .gai-dialog :disabled { cursor: not-allowed; opacity: .6; }
.gai-form [type="submit"] { width: 100%; margin-block-start: 20px; }
.gai-dialog progress { display: block; width: 100%; height: 12px; margin-block: 12px; border: 0; border-radius: 6px; accent-color: var(--gai-action); background: var(--gai-line); overflow: hidden; }
.gai-dialog progress::-webkit-progress-bar { background: var(--gai-line); }
.gai-dialog progress::-webkit-progress-value { background: var(--gai-action); }
.gai-dialog progress::-moz-progress-bar { background: var(--gai-action); }
.gai-output-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-block-end: 12px; }
.gai-empty { padding: 36px 0; border-block: 1px solid var(--gai-line); }
.gai-empty p { margin-block-start: 10px; color: var(--gai-soft); }
.gai-result { padding-block: 24px; border-bottom: 1px solid var(--gai-line); }
.gai-result:first-child { padding-block-start: 8px; }
.gai-result > header { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.gai-result > header button { margin-inline-start: auto; }
.gai-tag { display: inline-block; padding: 2px 9px; border: 1px solid var(--gai-line); border-radius: 4px; background: var(--white, #fff); color: var(--gai-ink); font-size: 14px; }
.gai-tag[data-tier="0"] { color: #12654e; background: var(--jade-soft, #e7f4ef); }
.gai-tag[data-tier="1"] { color: #50427f; background: var(--blue-soft, #efecf8); }
.gai-tag[data-tier="2"] { color: #754c12; background: var(--amber-soft, #fbf2df); }
.gai-item-meta { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 16px; align-items: center; }
.gai-item-meta label { margin-block-end: 0; }
.gai-item-meta select { margin-block-start: 5px; }
.gai-board { margin-block-start: 24px; padding: 18px; background: var(--white, #fff); border: 1px solid var(--gai-line); }
.gai-board-count { color: var(--gai-soft); font-size: 14px; font-variant-numeric: tabular-nums; }
.gai-board ol { padding-inline-start: 24px; margin: 8px 0 20px; }
.gai-board li { padding-block: 8px; }
.gai-board li p { margin-block-start: 4px; white-space: pre-wrap; }
.gai-board summary { min-height: 44px; padding-block: 12px; color: var(--gai-action); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.gai-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gai-footer { padding-block-start: 22px; }
.gai-footer .gai-help { margin-block-start: 12px; }
.gai-confirm { margin: 16px 28px 0; padding: 16px; border: 1px solid #c3a678; background: var(--amber-soft, #fbf2df); }
.gai-confirm p { margin-block-end: 12px; }
.gai-history { padding-block: 12px; border-block: 1px solid var(--gai-line); margin-block-end: 24px; }
.gai-history-row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding-block: 14px; border-top: 1px solid var(--gai-line); }
.gai-history-row > div { min-width: 0; }
.gai-entry { margin: 8px 8px 0 0; }
.gai-nav-entry { min-height: 44px; }
.gai-toast { position: fixed; z-index: 2147483647; inset-inline: 16px; inset-block-end: 24px; width: fit-content; max-width: min(560px, calc(100vw - 32px)); margin-inline: auto; padding: 12px 18px; border: 1px solid var(--brand-soft, #9b78b4); border-radius: 8px; background: var(--brand-strong, #321047); color: #fff; box-shadow: 0 10px 24px rgba(31, 13, 44, .2); font: 16px/1.6 var(--body, sans-serif); overflow-wrap: anywhere; }
.gai-print-frame { position: fixed; width: 1px; height: 1px; inset-inline-start: -10000px; border: 0; }
@media (max-width: 760px) {
  .gai-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 10px; }
  .gai-header { padding: 18px 16px; gap: 12px; flex-wrap: wrap; }
  .gai-header > div { flex-basis: 100%; }
  .gai-header > button { margin-inline-start: auto; }
  .gai-messages { padding-inline: 16px; }
  .gai-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 16px; }
  .gai-confirm { margin-inline: 16px; }
  .gai-dialog input:not([type="checkbox"]), .gai-dialog select, .gai-dialog textarea { font-size: 16px; }
  .gai-board { padding: 14px; }
  .gai-item-meta { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .gai-field-pair { gap: 10px; }
  .gai-dialog :is(input, textarea, select, button, summary, [tabindex]) { scroll-margin-block-start: 260px; }
}
@media (forced-colors: active) {
  .gai-button, .gai-tag { border: 1px solid ButtonText; }
  .gai-dialog :focus-visible { outline-color: Highlight; }
}
@media print { .gai-dialog, .gai-toast, .gai-entry, .gai-nav-entry { display: none !important; } }
