/* Anchored MagicAssistant for the chapter editor: desktop/tablet, non-modal. */
.magic-assistant-dock,
.magic-assistant-dock * {
  box-sizing: border-box;
}

.magic-assistant-launcher {
  position: fixed;
  right: max(1.25rem, env(safe-area-inset-right, 0px));
  bottom: calc(4.4rem + env(safe-area-inset-bottom, 0px));
  z-index: 1180;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  min-height: 3.25rem;
  padding: .55rem .9rem .55rem .62rem;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 55%, transparent);
  border-radius: 999px;
  box-shadow: 0 16px 36px rgba(4, 20, 39, .22);
  background: linear-gradient(145deg, var(--mf6-info), color-mix(in srgb, var(--mf6-info) 72%, var(--mf6-navy-900)));
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: var(--mf6-type-sm);
  font-weight: 820;
  transition: transform 150ms ease, box-shadow 150ms ease, opacity 120ms ease;
}

.magic-assistant-launcher:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(4, 20, 39, .28);
}

.magic-assistant-launcher:focus-visible,
.magic-assistant-panel button:focus-visible,
.magic-assistant-panel a:focus-visible,
.magic-assistant-panel textarea:focus-visible,
.magic-assistant-panel summary:focus-visible,
.magic-rewrite-toolbar button:focus-visible,
.magic-rewrite-toolbar a:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--mf6-info) 28%, transparent);
  outline-offset: 2px;
}

/* ED-008 Inline Magic Rewrite: contextual selection toolbar, never an editor column. */
.magic-rewrite-toolbar,
.magic-rewrite-toolbar * {
  box-sizing: border-box;
}

.magic-rewrite-toolbar {
  position: fixed;
  z-index: 1185;
  width: min(31rem, calc(100vw - 1.5rem));
  padding: .65rem;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 42%, var(--mf6-line-strong));
  border-radius: 1rem;
  box-shadow: 0 20px 54px rgba(4, 20, 39, .28), 0 2px 8px rgba(4, 20, 39, .12);
  background: color-mix(in srgb, var(--mf6-surface-raised) 96%, var(--mf6-info));
  color: var(--mf6-text);
  transform-origin: center bottom;
  animation: magic-rewrite-in 140ms ease-out;
}

.magic-rewrite-toolbar[hidden] {
  display: none !important;
}

@keyframes magic-rewrite-in {
  from { opacity: 0; transform: translateY(.35rem) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.magic-rewrite-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .08rem .12rem .55rem .28rem;
}

.magic-rewrite-head strong,
.magic-rewrite-head small {
  display: block;
}

.magic-rewrite-head strong {
  color: var(--mf6-info);
  font-size: .78rem;
  letter-spacing: .01em;
}

.magic-rewrite-head small {
  margin-top: .1rem;
  color: var(--mf6-muted);
  font-size: .63rem;
  font-weight: 700;
}

body.mf6 .magic-rewrite-head > button {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  box-shadow: none;
  background: transparent !important;
  color: var(--mf6-muted);
  cursor: pointer;
  font: inherit;
  font-size: 1.25rem;
}

body.mf6 .magic-rewrite-head > button:hover {
  background: var(--mf6-surface-muted) !important;
  color: var(--mf6-text);
}

.magic-rewrite-actions {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .38rem;
}

body.mf6 .magic-rewrite-actions button {
  min-width: 0;
  min-height: 3rem;
  padding: .42rem .35rem;
  border: 1px solid var(--mf6-line);
  border-radius: .68rem;
  box-shadow: none;
  background: var(--mf6-surface-soft) !important;
  color: var(--mf6-text);
  cursor: pointer;
  font: inherit;
}

body.mf6 .magic-rewrite-actions button:hover,
body.mf6 .magic-rewrite-actions button:focus-visible {
  border-color: color-mix(in srgb, var(--mf6-info) 68%, var(--mf6-line));
  background: color-mix(in srgb, var(--mf6-info) 9%, var(--mf6-surface-raised)) !important;
}

body.mf6 .magic-rewrite-actions button[aria-busy="true"] {
  border-color: var(--mf6-info);
  background: color-mix(in srgb, var(--mf6-info) 13%, var(--mf6-surface-raised)) !important;
}

.magic-rewrite-actions button > span,
.magic-rewrite-actions button > strong {
  display: block;
}

.magic-rewrite-actions button > span {
  margin-bottom: .16rem;
  color: var(--mf6-info);
  font-size: .88rem;
  line-height: 1;
}

.magic-rewrite-actions button > strong {
  overflow: hidden;
  font-size: .65rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.magic-rewrite-toolbar.is-busy .magic-rewrite-actions button:not([aria-busy="true"]) {
  opacity: .48;
}

.magic-rewrite-status {
  margin-top: .55rem;
  padding: .52rem .62rem;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 30%, var(--mf6-line));
  border-radius: .62rem;
  background: color-mix(in srgb, var(--mf6-info) 7%, var(--mf6-surface-raised));
  font-size: .67rem;
  line-height: 1.4;
}

.magic-rewrite-status.is-error {
  border-color: color-mix(in srgb, #c53030 45%, var(--mf6-line));
  background: color-mix(in srgb, #c53030 8%, var(--mf6-surface-raised));
}

.magic-rewrite-proposal-link {
  width: 100%;
  margin-top: .5rem;
  text-align: center;
}

.magic-rewrite-safety {
  display: block;
  margin-top: .5rem;
  color: var(--mf6-muted);
  font-size: .58rem;
  line-height: 1.35;
  text-align: center;
}

/* v7.0.0.15-ed005: a selection-bound comment expands inside the existing
   contextual toolbar. It never reserves a permanent editor column. */
.magic-inline-comment-form-ed005 {
  display: grid;
  gap: .55rem;
  margin-top: .58rem;
  padding: .7rem;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 34%, var(--mf6-line));
  border-radius: .72rem;
  background: color-mix(in srgb, var(--mf6-info) 6%, var(--mf6-surface-raised));
}

.magic-inline-comment-form-ed005[hidden] {
  display: none !important;
}

.magic-inline-comment-form-ed005 label,
.magic-inline-comment-form-ed005 label > span {
  display: grid;
  gap: .35rem;
}

.magic-inline-comment-form-ed005 label > span {
  color: var(--mf6-text);
  font-size: .7rem;
  font-weight: 800;
}

.magic-inline-comment-form-ed005 textarea {
  width: 100%;
  min-height: 5.8rem;
  resize: vertical;
  padding: .65rem;
  border: 1px solid var(--mf6-line-strong);
  border-radius: .58rem;
  background: var(--mf6-surface-raised);
  color: var(--mf6-text);
  font: inherit;
  font-size: .76rem;
  line-height: 1.45;
}

.magic-inline-comment-form-actions-ed005 {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.magic-inline-comment-form-ed005 > small {
  color: var(--mf6-muted);
  font-size: .6rem;
  line-height: 1.35;
}

/* ED-009 context command palette: caret-anchored, keyboard-first, non-modal. */
.magic-command-palette,
.magic-command-palette * {
  box-sizing: border-box;
}

.magic-command-palette {
  position: fixed;
  z-index: 1188;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  width: min(31rem, calc(100vw - 1.5rem));
  max-height: min(35rem, calc(100dvh - 1.5rem));
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 45%, var(--mf6-line-strong));
  border-radius: 1rem;
  box-shadow: 0 24px 64px rgba(4, 20, 39, .3), 0 2px 9px rgba(4, 20, 39, .12);
  background: color-mix(in srgb, var(--mf6-surface-raised) 97%, var(--mf6-info));
  color: var(--mf6-text);
  transform-origin: left top;
  animation: magic-command-palette-in 140ms ease-out;
}

.magic-command-palette[hidden] {
  display: none !important;
}

@keyframes magic-command-palette-in {
  from { opacity: 0; transform: translateY(.3rem) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.magic-command-palette-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .72rem .8rem .58rem;
}

.magic-command-palette-head strong,
.magic-command-palette-head small {
  display: block;
}

.magic-command-palette-head strong {
  color: var(--mf6-info);
  font-size: .82rem;
}

.magic-command-palette-head small {
  margin-top: .1rem;
  color: var(--mf6-muted);
  font-size: .64rem;
  font-weight: 700;
}

.magic-command-palette kbd,
.mf6-rich-editor-status kbd {
  min-width: 1.6rem;
  padding: .16rem .34rem;
  border: 1px solid var(--mf6-line-strong);
  border-bottom-width: 2px;
  border-radius: .35rem;
  background: var(--mf6-surface-soft);
  color: var(--mf6-muted);
  font-family: inherit;
  font-size: .62rem;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
}

.magic-command-search {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 0 .7rem .55rem;
  padding: .18rem .6rem;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 38%, var(--mf6-line));
  border-radius: .72rem;
  background: var(--mf6-surface-soft);
  color: var(--mf6-info);
  font-size: 1rem;
  font-weight: 900;
}

.magic-command-search:focus-within {
  border-color: var(--mf6-info);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--mf6-info) 18%, transparent);
}

body.mf6 .magic-command-search input {
  width: 100%;
  min-height: 2.65rem;
  padding: .25rem 0;
  border: 0;
  outline: 0;
  box-shadow: none;
  background: transparent;
  color: var(--mf6-text);
  font: inherit;
  font-size: .78rem;
}

.magic-command-list {
  min-height: 0;
  padding: 0 .48rem .48rem;
  overflow: auto;
  overscroll-behavior: contain;
}

.magic-command-group {
  padding: .42rem .42rem .2rem;
  color: var(--mf6-muted);
  font-size: .56rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.mf6 .magic-command-list button {
  display: grid;
  grid-template-columns: 2.35rem minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  width: 100%;
  min-height: 3.35rem;
  padding: .42rem .55rem;
  border: 1px solid transparent;
  border-radius: .68rem;
  box-shadow: none;
  background: transparent !important;
  color: var(--mf6-text);
  cursor: pointer;
  font: inherit;
  text-align: left;
}

body.mf6 .magic-command-list button:hover,
body.mf6 .magic-command-list button.is-active {
  border-color: color-mix(in srgb, var(--mf6-info) 42%, var(--mf6-line));
  background: color-mix(in srgb, var(--mf6-info) 9%, var(--mf6-surface-raised)) !important;
}

body.mf6 .magic-command-list button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--mf6-info) 25%, transparent);
  outline-offset: 1px;
}

.magic-command-icon {
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: .6rem;
  background: color-mix(in srgb, var(--mf6-info) 12%, var(--mf6-surface-soft));
  color: var(--mf6-info);
  font-size: .82rem;
  font-weight: 900;
}

.magic-command-copy,
.magic-command-copy strong,
.magic-command-copy small {
  display: block;
  min-width: 0;
}

.magic-command-copy strong {
  font-size: .72rem;
  line-height: 1.25;
}

.magic-command-copy small {
  margin-top: .12rem;
  overflow: hidden;
  color: var(--mf6-muted);
  font-size: .6rem;
  font-weight: 650;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.magic-command-empty {
  margin: .2rem .7rem .7rem;
  padding: .8rem;
  border-radius: .65rem;
  background: var(--mf6-surface-soft);
  color: var(--mf6-muted);
  font-size: .68rem;
  text-align: center;
}

.magic-command-safety {
  display: block;
  padding: .55rem .75rem .68rem;
  border-top: 1px solid var(--mf6-line);
  color: var(--mf6-muted);
  font-size: .56rem;
  line-height: 1.35;
  text-align: center;
}

@media (max-width: 820px) {
  .magic-command-palette {
    width: min(29rem, calc(100vw - 1rem));
    max-height: min(32rem, calc(100dvh - 1rem));
  }

  .magic-command-copy small {
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .magic-command-palette {
    animation: none;
  }
}

/* v7.0.0.7-sb004-style-guide-integration */
.magic-assistant-style-guide-sb004 {
  display: grid;
  gap: .55rem;
  margin: .55rem .7rem 0;
  padding: .55rem .65rem;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 32%, var(--mf6-line));
  border-radius: .7rem;
  background: color-mix(in srgb, var(--mf6-info) 6%, var(--mf6-surface-soft));
}

.magic-assistant-style-guide-sb004 > div:first-child {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .12rem .65rem;
  align-items: baseline;
}

.magic-assistant-style-guide-sb004 > div:first-child > span,
.magic-assistant-style-guide-sb004 > div:first-child > strong {
  font-size: .7rem;
  font-weight: 850;
}

.magic-assistant-style-guide-sb004 > div:first-child > strong {
  color: var(--mf6-success, #167451);
}

.magic-assistant-style-guide-sb004[data-state="empty"] > div:first-child > strong {
  color: var(--mf6-warning, #9a5d00);
}

.magic-assistant-style-guide-sb004 > div:first-child > small {
  grid-column: 1 / -1;
  color: var(--mf6-muted);
  font-size: .63rem;
}

.magic-assistant-style-sections-sb004 {
  display: flex;
  flex-wrap: wrap;
  gap: .28rem;
}

.magic-assistant-style-sections-sb004 span {
  padding: .2rem .38rem;
  border-radius: 999px;
  background: var(--mf6-surface-muted);
  color: var(--mf6-muted);
  font-size: .58rem;
  font-weight: 740;
}

.magic-assistant-style-sections-sb004 span.is-ready {
  background: color-mix(in srgb, var(--mf6-success, #167451) 12%, var(--mf6-surface-muted));
  color: var(--mf6-success, #167451);
}

.magic-assistant-dock.is-open .magic-assistant-launcher {
  pointer-events: none;
  opacity: 0;
  transform: translateY(.5rem) scale(.96);
}

.magic-assistant-launcher-icon,
.magic-assistant-brand-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 999px;
}

.magic-assistant-launcher-icon {
  width: 2.15rem;
  height: 2.15rem;
  background: rgba(255, 255, 255, .18);
}

.magic-assistant-launcher-icon svg {
  width: 1.65rem;
  height: 1.65rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.magic-assistant-launcher-icon circle {
  fill: currentColor;
  stroke: none;
}

.magic-assistant-badge {
  display: inline-grid;
  place-items: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 .32rem;
  border-radius: 999px;
  background: #fff;
  color: var(--mf6-navy-900);
  font-size: .68rem;
  font-weight: 900;
}

.magic-assistant-panel {
  position: fixed;
  right: max(1.25rem, env(safe-area-inset-right, 0px));
  bottom: calc(4.4rem + env(safe-area-inset-bottom, 0px));
  z-index: 1190;
  display: grid;
  grid-template-rows: auto auto auto auto minmax(0, 1fr);
  width: min(28rem, calc(100vw - 2rem));
  height: min(45.5rem, calc(100dvh - 7.2rem));
  min-height: 30rem;
  overflow: hidden;
  border: 1px solid var(--mf6-line-strong);
  border-radius: 1.15rem;
  box-shadow: 0 24px 70px rgba(4, 20, 39, .3), 0 2px 8px rgba(4, 20, 39, .12);
  background: var(--mf6-surface-raised);
  color: var(--mf6-text);
  opacity: 0;
  transform: translateY(1rem) scale(.985);
  transform-origin: bottom right;
  transition: opacity 160ms ease, transform 180ms ease;
}

.magic-assistant-panel[hidden] {
  display: none !important;
}

.magic-assistant-dock.is-open .magic-assistant-panel {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.magic-assistant-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  min-height: 4.3rem;
  padding: .78rem .8rem .72rem 1rem;
  border-bottom: 1px solid var(--mf6-line);
  background: var(--mf6-surface-raised);
}

.magic-assistant-brand,
.magic-assistant-head-actions,
.magic-assistant-intro,
.magic-panel-research-head,
.magic-panel-conversation-head,
.magic-assistant-findings-head {
  display: flex;
  align-items: center;
}

.magic-assistant-brand {
  min-width: 0;
  gap: .65rem;
}

.magic-assistant-brand-icon {
  width: 2.25rem;
  height: 2.25rem;
  background: color-mix(in srgb, var(--mf6-info) 14%, var(--mf6-surface-muted));
  color: var(--mf6-info);
  font-size: 1rem;
}

.magic-assistant-brand strong,
.magic-assistant-brand small,
.magic-panel-conversation-head strong,
.magic-panel-conversation-head small,
.magic-panel-research-head strong,
.magic-panel-research-head small,
.magic-assistant-findings-head strong {
  display: block;
}

.magic-assistant-brand strong {
  font-size: .98rem;
}

.magic-assistant-brand small {
  max-width: 15rem;
  margin-top: .08rem;
  overflow: hidden;
  color: var(--mf6-muted);
  font-size: .7rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.magic-assistant-head-actions {
  flex: 0 0 auto;
  gap: .35rem;
}

.magic-assistant-popout,
.magic-assistant-close,
.magic-panel-conversation-head button {
  border: 0;
  background: transparent;
  color: var(--mf6-muted);
  cursor: pointer;
  font: inherit;
}

.magic-assistant-popout {
  padding: .35rem .45rem;
  font-size: .7rem;
  font-weight: 760;
}

.magic-assistant-close {
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  font-size: 1.45rem;
  line-height: 1;
}

.magic-assistant-close:hover,
.magic-assistant-popout:hover,
.magic-panel-conversation-head button:hover {
  background: var(--mf6-surface-muted);
  color: var(--mf6-text);
}

.magic-assistant-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .25rem;
  padding: .45rem .7rem;
  border-bottom: 1px solid var(--mf6-line);
  background: var(--mf6-surface-soft);
}

body.mf6 .magic-assistant-tabs button {
  appearance: none;
  -webkit-appearance: none;
  min-height: 2.35rem;
  padding: .45rem .55rem;
  border: 0;
  border-radius: .55rem;
  box-shadow: none;
  background: transparent !important;
  color: var(--mf6-muted);
  cursor: pointer;
  font: inherit;
  font-size: .76rem;
  font-weight: 780;
  transition: none !important;
}

body.mf6 .magic-assistant-tabs button:hover {
  color: var(--mf6-text);
}

body.mf6 .magic-assistant-tabs button[aria-selected="true"] {
  box-shadow: 0 1px 3px rgba(4, 20, 39, .1);
  background: var(--mf6-surface-raised) !important;
  color: var(--mf6-navy-900);
}

[data-mf-theme="dark"] body.mf6 .magic-assistant-tabs button[aria-selected="true"] {
  color: var(--mf6-text);
}

.magic-assistant-notice {
  margin: .65rem .8rem 0;
  padding: .62rem .75rem;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 30%, var(--mf6-line));
  border-radius: .65rem;
  background: color-mix(in srgb, var(--mf6-info) 8%, var(--mf6-surface-raised));
  color: var(--mf6-text);
  font-size: .74rem;
  line-height: 1.4;
}

.magic-assistant-notice.is-error {
  border-color: color-mix(in srgb, #c53030 45%, var(--mf6-line));
  background: color-mix(in srgb, #c53030 8%, var(--mf6-surface-raised));
}

.magic-assistant-tab-panel {
  min-height: 0;
}

.magic-assistant-tab-panel[hidden] {
  display: none !important;
}

.magic-assistant-scroll {
  height: 100%;
  overflow: auto;
  padding: 1rem;
  overscroll-behavior: contain;
}

.magic-assistant-intro,
.magic-panel-research-head {
  align-items: flex-start;
  gap: .65rem;
}

.magic-assistant-intro {
  padding: .82rem;
  border: 1px solid var(--mf6-line);
  border-radius: .8rem;
  background: var(--mf6-surface-soft);
}

.magic-assistant-status-dot {
  flex: 0 0 auto;
  width: .55rem;
  height: .55rem;
  margin-top: .32rem;
  border-radius: 999px;
  box-shadow: 0 0 0 4px color-mix(in srgb, #22a06b 12%, transparent);
  background: #22a06b;
}

.magic-assistant-intro strong {
  font-size: .84rem;
}

.magic-assistant-intro p {
  margin: .25rem 0 0;
  color: var(--mf6-muted);
  font-size: .74rem;
  line-height: 1.5;
}

/* v7.0.0.6-ai014-story-impulse: calm 2x2 choices in the anchored Desktop/Tablet assistant. */
.magic-assistant-focus-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem;
  margin-top: .8rem;
}

.magic-assistant-focus-list button {
  min-width: 0;
  min-height: 4.9rem;
  padding: .65rem .55rem;
  border: 1px solid var(--mf6-line);
  border-radius: .75rem;
  background: var(--mf6-surface-raised);
  color: var(--mf6-text);
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.magic-assistant-focus-list button:hover,
.magic-assistant-focus-list button[aria-pressed="true"] {
  border-color: color-mix(in srgb, var(--mf6-info) 65%, var(--mf6-line));
  background: color-mix(in srgb, var(--mf6-info) 7%, var(--mf6-surface-raised));
}

.magic-assistant-focus-list button > span,
.magic-assistant-focus-list button > strong,
.magic-assistant-focus-list button > small {
  display: block;
}

.magic-assistant-focus-list button > span {
  margin-bottom: .3rem;
  color: var(--mf6-info);
  font-size: 1rem;
}

.magic-assistant-focus-list button > strong {
  font-size: .74rem;
}

.magic-assistant-focus-list button > small {
  margin-top: .18rem;
  color: var(--mf6-muted);
  font-size: .64rem;
  line-height: 1.3;
}

.magic-assistant-field {
  display: block;
  margin-top: .85rem;
}

.magic-assistant-field > span,
.magic-panel-composer > label {
  color: var(--mf6-muted);
  font-size: .69rem;
  font-weight: 800;
}

.magic-assistant-field textarea,
.magic-panel-composer textarea {
  width: 100%;
  border: 1px solid var(--mf6-line-strong);
  border-radius: .72rem;
  background: var(--mf6-surface-field);
  color: var(--mf6-text);
  font: inherit;
  line-height: 1.45;
  resize: none;
}

.magic-assistant-field textarea {
  display: block;
  margin-top: .35rem;
  padding: .66rem .72rem;
  font-size: .76rem;
}

.magic-assistant-run {
  width: 100%;
  margin-top: .65rem;
}

.magic-assistant-run[aria-busy="true"],
.magic-panel-composer button[aria-busy="true"] {
  cursor: wait;
  opacity: .7;
}

.magic-assistant-context {
  margin-top: .8rem;
  border: 1px solid var(--mf6-line);
  border-radius: .75rem;
  background: var(--mf6-surface-soft);
}

.magic-assistant-context summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .65rem .75rem;
  cursor: pointer;
  font-size: .7rem;
  font-weight: 780;
}

.magic-assistant-context summary small {
  color: var(--mf6-muted);
  font-weight: 650;
}

.magic-assistant-context-list {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  padding: 0 .75rem .75rem;
}

.magic-assistant-context-list span {
  padding: .25rem .45rem;
  border-radius: 999px;
  background: var(--mf6-surface-muted);
  color: var(--mf6-muted);
  font-size: .63rem;
  font-weight: 720;
}

/* AI-012: request-scoped automatic context with transparent author controls. */
.magic-context-controls-ai012 {
  min-width: 0;
  margin-top: .55rem;
  border: 1px solid var(--mf6-line);
  border-radius: .72rem;
  background: var(--mf6-surface-soft);
}

.magic-context-controls-ai012 > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .55rem;
  min-height: 44px;
  padding: .55rem .65rem;
  cursor: pointer;
  color: var(--mf6-text);
  font-size: .68rem;
  font-weight: 780;
}

.magic-context-controls-ai012 > summary small {
  color: var(--mf6-muted);
  font-size: .6rem;
  text-align: right;
}

.magic-context-control-list-ai012 {
  display: grid;
  gap: .35rem;
  max-height: 16rem;
  overflow: auto;
  padding: 0 .55rem .55rem;
}

.magic-context-control-list-ai012 > label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .55rem;
  min-width: 0;
  padding: .48rem .55rem;
  border: 1px solid var(--mf6-line);
  border-radius: .62rem;
  background: var(--mf6-surface-raised);
}

.magic-context-control-list-ai012 strong,
.magic-context-control-list-ai012 small {
  display: block;
  overflow-wrap: anywhere;
}

.magic-context-control-list-ai012 strong {
  color: var(--mf6-text);
  font-size: .66rem;
}

.magic-context-control-list-ai012 small {
  margin-top: .12rem;
  color: var(--mf6-muted);
  font-size: .57rem;
  line-height: 1.35;
}

.magic-context-control-list-ai012 select {
  min-height: 44px;
  max-width: 8.5rem;
  border: 1px solid var(--mf6-line-strong);
  border-radius: .55rem;
  background: var(--mf6-surface-field);
  color: var(--mf6-text);
  font: inherit;
  font-size: .63rem;
}

.magic-context-control-list-ai012 em {
  color: var(--mf6-info);
  font-size: .6rem;
  font-style: normal;
  font-weight: 800;
}

.magic-context-control-list-ai012 [data-context-state="blocked"] {
  opacity: .68;
}

.magic-message-context-proof-ai012 {
  margin-top: .55rem;
  border-top: 1px solid var(--mf6-line);
  color: var(--mf6-muted);
  font-size: .62rem;
}

.magic-message-context-proof-ai012 summary {
  min-height: 40px;
  padding: .48rem 0;
  cursor: pointer;
  font-weight: 780;
}

.magic-message-context-proof-ai012 ul {
  display: grid;
  gap: .3rem;
  margin: 0;
  padding: 0 0 .55rem;
  list-style: none;
}

.magic-message-context-proof-ai012 li {
  display: grid;
  gap: .08rem;
  padding: .38rem .45rem;
  border-radius: .48rem;
  background: var(--mf6-surface-muted);
}

.magic-message-context-proof-ai012 li[data-context-state="blocked"] {
  border-inline-start: 3px solid var(--mf6-danger, #b42318);
}

.magic-message-context-proof-ai012 li[data-context-state="priority"],
.magic-message-context-proof-ai012 li[data-context-state="required"] {
  border-inline-start: 3px solid var(--mf6-info);
}

.magic-message-context-proof-ai012 strong,
.magic-message-context-proof-ai012 span {
  overflow-wrap: anywhere;
}

/* GEN-006: explicit chapter-draft selection and full-context evidence in the anchored panel. */
.magic-draft-planner-gen006 {
  margin-top: .85rem;
  padding: .75rem;
  border: 1px solid color-mix(in srgb, var(--mf6-info) 35%, var(--mf6-line));
  border-radius: .82rem;
  background: color-mix(in srgb, var(--mf6-info) 5%, var(--mf6-surface-soft));
}

.magic-draft-planner-head,
.magic-draft-planner-head > div,
.magic-draft-coverage-gen006 summary,
.magic-draft-evidence-gen006 .magic-section-heading,
.magic-draft-runs-gen006 li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .55rem;
}

.magic-draft-planner-head > div {
  align-items: flex-start;
  flex-direction: column;
  gap: .1rem;
}

.magic-draft-planner-head > span {
  flex: 0 0 auto;
  padding: .2rem .42rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--mf6-success) 13%, var(--mf6-surface-raised));
  color: var(--mf6-success);
  font-size: .62rem;
  font-weight: 800;
}

.magic-draft-planner-gen006 > p,
.magic-draft-structure-gen006 fieldset > p {
  color: var(--mf6-muted);
  font-size: .68rem;
  line-height: 1.45;
}

.magic-draft-structure-gen006 {
  display: grid;
  gap: .6rem;
  margin-top: .7rem;
}

.magic-draft-structure-gen006 fieldset {
  display: grid;
  gap: .3rem;
  min-width: 0;
  margin: 0;
  padding: .55rem;
  border: 1px solid var(--mf6-line);
  border-radius: .68rem;
}

.magic-draft-structure-gen006 legend {
  padding: 0 .25rem;
  color: var(--mf6-text);
  font-size: .68rem;
  font-weight: 800;
}

.magic-draft-structure-gen006 label,
.magic-draft-confirm-gen006 {
  display: flex;
  align-items: flex-start;
  gap: .45rem;
  color: var(--mf6-text);
  font-size: .67rem;
  line-height: 1.4;
}

.magic-draft-structure-gen006 input,
.magic-draft-confirm-gen006 input {
  flex: 0 0 auto;
  margin-top: .15rem;
  accent-color: var(--mf6-info);
}

.magic-draft-coverage-gen006 {
  margin-top: .65rem;
  border-top: 1px solid var(--mf6-line);
}

.magic-draft-coverage-gen006 summary {
  padding: .55rem 0;
  cursor: pointer;
  font-size: .67rem;
  font-weight: 800;
}

.magic-draft-coverage-gen006 summary small {
  color: var(--mf6-muted);
}

.magic-draft-coverage-gen006 [data-context-key],
.magic-draft-evidence-grid-gen006 > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .4rem;
  padding: .28rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--mf6-line) 70%, transparent);
  font-size: .61rem;
}

.magic-draft-coverage-gen006 [data-context-key] span,
.magic-draft-evidence-grid-gen006 span,
.magic-draft-runs-gen006 span {
  color: var(--mf6-muted);
  text-align: right;
}

.magic-draft-coverage-gen006 [data-context-status="blocked"],
.magic-draft-blocked-gen006 {
  color: var(--mf6-danger);
}

.magic-draft-confirm-gen006 {
  margin-top: .65rem;
  padding: .55rem;
  border-radius: .6rem;
  background: var(--mf6-surface-raised);
  font-weight: 720;
}

.magic-draft-result-gen006 {
  margin-top: .65rem;
  padding: .65rem;
  border: 1px solid color-mix(in srgb, var(--mf6-success) 35%, var(--mf6-line));
  border-radius: .72rem;
  background: color-mix(in srgb, var(--mf6-success) 7%, var(--mf6-surface-soft));
  font-size: .69rem;
}

.magic-draft-result-gen006 p { margin: 0 0 .5rem; }

.magic-draft-evidence-grid-gen006 {
  display: grid;
  gap: .1rem;
  margin-top: .75rem;
}

.magic-draft-runs-gen006 { margin-top: .8rem; }
.magic-draft-runs-gen006 ul { margin: .6rem 0 0; padding-left: 1.1rem; }
.magic-draft-runs-gen006 li { align-items: flex-start; margin: .35rem 0; font-size: .72rem; }

.magic-assistant-findings-head {
  justify-content: space-between;
  gap: .75rem;
  margin: 1rem 0 .5rem;
}

.magic-assistant-findings-head .eyebrow {
  display: block;
  margin: 0 0 .1rem;
  font-size: .61rem;
}

.magic-assistant-findings-head strong {
  font-size: .82rem;
}

.magic-assistant-findings-head a {
  color: var(--mf6-info);
  font-size: .68rem;
  font-weight: 760;
}

.magic-assistant-findings {
  display: grid;
  gap: .55rem;
}

.magic-assistant-finding {
  padding: .75rem;
  border: 1px solid var(--mf6-line);
  border-radius: .75rem;
  background: var(--mf6-surface-raised);
}

.magic-assistant-finding > strong {
  display: block;
  font-size: .75rem;
}

.magic-assistant-finding > p {
  margin: .3rem 0 0;
  color: var(--mf6-muted);
  font-size: .71rem;
  line-height: 1.48;
  white-space: pre-wrap;
}

.magic-assistant-finding-guidance {
  display: block;
  margin-top: .5rem;
  padding-top: .5rem;
  border-top: 1px solid var(--mf6-line);
  color: var(--mf6-muted);
  font-size: .65rem;
  line-height: 1.45;
}

.magic-assistant-finding-actions {
  display: flex;
  gap: .4rem;
  margin-top: .55rem;
}

.magic-assistant-finding-actions button {
  min-height: 1.85rem;
  padding: .28rem .55rem;
  border: 1px solid var(--mf6-line);
  border-radius: .5rem;
  background: var(--mf6-surface-soft);
  color: var(--mf6-text);
  cursor: pointer;
  font: inherit;
  font-size: .66rem;
  font-weight: 760;
}

.magic-assistant-finding-status {
  display: inline-block;
  margin-top: .45rem;
  color: var(--mf6-muted);
  font-size: .66rem;
  font-weight: 760;
}

.magic-assistant-empty {
  margin: 0;
  padding: .8rem;
  border: 1px dashed var(--mf6-line-strong);
  border-radius: .7rem;
  color: var(--mf6-muted);
  font-size: .72rem;
  line-height: 1.45;
}

#magicPanelChat,
#magicPanelResearch {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.magic-panel-conversation-head,
.magic-panel-research-head {
  min-height: 3.25rem;
  padding: .65rem .85rem;
  border-bottom: 1px solid var(--mf6-line);
  background: var(--mf6-surface-soft);
}

.magic-panel-conversation-head {
  justify-content: space-between;
  gap: .75rem;
}

.magic-panel-conversation-head strong,
.magic-panel-research-head strong {
  font-size: .78rem;
}

.magic-panel-conversation-head small,
.magic-panel-research-head small {
  margin-top: .12rem;
  color: var(--mf6-muted);
  font-size: .65rem;
}

.magic-panel-conversation-head button {
  padding: .35rem .5rem;
  border-radius: .45rem;
  font-size: .66rem;
  font-weight: 760;
}

.magic-panel-messages {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  min-height: 0;
  overflow: auto;
  padding: .9rem;
  overscroll-behavior: contain;
}

.magic-panel-message {
  width: min(90%, 22rem);
  padding: .7rem .78rem;
  border: 1px solid var(--mf6-line);
  border-radius: .8rem .8rem .8rem .25rem;
  background: var(--mf6-surface-soft);
}

.magic-panel-message.is-user {
  align-self: flex-end;
  border-color: color-mix(in srgb, var(--mf6-info) 30%, var(--mf6-line));
  border-radius: .8rem .8rem .25rem .8rem;
  background: color-mix(in srgb, var(--mf6-info) 8%, var(--mf6-surface-raised));
}

.magic-panel-message-label {
  margin-bottom: .28rem;
  color: var(--mf6-muted);
  font-size: .58rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.magic-panel-message-content {
  overflow-wrap: anywhere;
  font-size: .75rem;
  line-height: 1.55;
  white-space: pre-wrap;
}

.magic-panel-sources {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .55rem;
}

.magic-panel-sources a,
.magic-panel-sources span,
.magic-panel-research-state {
  padding: .23rem .4rem;
  border-radius: 999px;
  background: var(--mf6-surface-muted);
  color: var(--mf6-muted);
  font-size: .59rem;
  font-weight: 720;
}

.magic-panel-sources a:hover {
  color: var(--mf6-info);
}

.magic-panel-research-state {
  display: inline-block;
  margin-top: .45rem;
}

.magic-panel-composer {
  padding: .7rem .8rem .8rem;
  border-top: 1px solid var(--mf6-line);
  background: var(--mf6-surface-raised);
}

.magic-panel-composer > div {
  position: relative;
  margin-top: .32rem;
}

.magic-panel-composer textarea {
  display: block;
  min-height: 3.7rem;
  padding: .62rem 3rem .62rem .7rem;
  font-size: .75rem;
}

.magic-panel-composer button {
  position: absolute;
  right: .42rem;
  bottom: .42rem;
  display: inline-grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 999px;
  background: var(--mf6-navy-900);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 1rem;
}

.magic-panel-composer > small {
  display: block;
  margin-top: .35rem;
  color: var(--mf6-muted);
  font-size: .61rem;
  line-height: 1.35;
}

.magic-panel-loading {
  align-self: center;
  margin: auto;
  color: var(--mf6-muted);
  font-size: .72rem;
}

@media (max-width: 1024px) {
  .magic-assistant-launcher,
  .magic-assistant-panel {
    right: max(.8rem, env(safe-area-inset-right, 0px));
    bottom: calc(4rem + env(safe-area-inset-bottom, 0px));
  }

  .magic-assistant-panel {
    width: min(27rem, calc(100vw - 1.6rem));
    height: min(42rem, calc(100dvh - 6.6rem));
  }
}

@media (max-width: 800px) {
  .magic-rewrite-toolbar {
    width: min(29rem, calc(100vw - 1.25rem));
  }
}

@media (max-height: 720px) {
  .magic-assistant-panel {
    min-height: 0;
    height: calc(100dvh - 6.1rem);
  }

  .magic-assistant-focus-list button {
    min-height: 4.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .magic-assistant-launcher,
  .magic-assistant-panel,
  .magic-rewrite-toolbar {
    transition: none;
    animation: none;
  }
}
