/* Loaded after aggregator.css. The existing price and submit controls stay visible. */
.nd-composer {
  --ndc-bg: #10160d;
  --ndc-panel: #182012;
  --ndc-hover: #233019;
  --ndc-line: #35462b;
  --ndc-text: #e7efdc;
  --ndc-muted: #9aaa8d;
  --ndc-accent: #c9ff4f;
  background: var(--ndc-bg);
  color: var(--ndc-text);
}
html[data-theme="light"] .nd-composer,
html[data-theme="light"] .nd-reference-dialog {
  --ndc-bg: #fff;
  --ndc-panel: #f2f5ed;
  --ndc-hover: #e7eddd;
  --ndc-line: #c8d1be;
  --ndc-text: #11160b;
  --ndc-muted: #4b5641;
  --ndc-accent: #467000;
}
.nd-composer-grid { display: grid; gap: .75rem; min-width: 0; }
.nd-composer-editor { min-width: 0; }
.nd-composer .gen-prompt#prompt {
  min-height: 7.5rem;
  height: 7.5rem;
  max-height: 12rem;
  color: var(--ndc-text);
  font-size: 1rem;
  line-height: 1.55;
  padding: .2rem 0;
}
.nd-composer .gen-prompt#prompt::placeholder { color: var(--ndc-muted); }
.nd-composer .gen-prompt#prompt:focus-visible { outline-color: var(--ndc-accent); outline-offset: .25rem; }
.nd-composer-expanded .gen-prompt#prompt { height: min(32dvh, 18rem); min-height: 10rem; max-height: 34dvh; }
.nd-composer .gen-prompt-meta { color: var(--ndc-muted); margin: .4rem 0 0; gap: .5rem; }
.nd-composer .gen-prompt-meta #upload-hint { color: var(--ndc-muted); max-width: none; font-size: .625rem; }
.nd-composer .gen-prompt-meta > span { font-size: .625rem; white-space: nowrap; }
.nd-composer-tools { min-width: 0; }
.nd-composer-tools-title { display: none; color: var(--ndc-muted); font-size: .6875rem; }
.nd-composer-tool-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .375rem; }
.nd-composer-tool,
.nd-composer-library,
.nd-composer .gen-assistant {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  min-height: 2.75rem;
  min-width: 0;
  padding: .375rem .4rem;
  border: 1px solid var(--ndc-line);
  border-radius: .5rem;
  background: var(--ndc-panel);
  color: var(--ndc-text);
  font-size: .625rem;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;
  cursor: pointer;
}
.nd-composer-tool:hover:not(:disabled),
.nd-composer-library:hover:not(:disabled),
.nd-composer .gen-assistant:hover { border-color: var(--ndc-accent); background: var(--ndc-hover); }
.nd-composer button:focus-visible,
.nd-composer .gen-assistant:focus-visible { outline: 2px solid var(--ndc-accent); outline-offset: 2px; }
.nd-composer-tool:disabled,
.nd-composer [data-ref-control]:disabled { opacity: .38; cursor: default; }
.nd-composer .gen-assistant { margin: .375rem 0 0; width: 100%; min-height: 2.75rem; }
.nd-composer-library { width: 100%; margin-top: .375rem; }
.nd-composer-library[hidden] { display: none; }
.nd-composer-live { margin: .4rem 0 0; font-size: .6875rem; line-height: 1.45; color: var(--ndc-muted); overflow-wrap: anywhere; }
.nd-composer-live:empty { display: none; }
.nd-composer .gen-composer-price { margin: .75rem 0 .5rem; color: var(--ndc-accent); font-size: .75rem; }
.nd-composer .gen-composer-bar { gap: .5rem; }
.nd-composer .gen-composer-bar #generate-btn { min-height: 2.75rem; margin-left: auto; }
.nd-composer .gen-attach,
.nd-composer .gen-library-button,
.nd-composer .gen-settings-toggle { min-height: 2.75rem; background: var(--ndc-panel); border-color: var(--ndc-line); color: var(--ndc-text); }
.nd-composer .gen-attach { width: 2.75rem; height: 2.75rem; }
.nd-composer .gen-config-summary { color: var(--ndc-muted); }
.nd-ref-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: 0 0 .4rem; font-size: .6875rem; color: var(--ndc-muted); }
.nd-ref-heading[hidden] { display: none; }
.nd-ref-heading strong { color: var(--ndc-text); font-weight: 500; white-space: nowrap; }
.nd-ref-heading span { text-align: right; line-height: 1.3; }
.nd-composer .gen-ref-strip.refs { gap: .5rem; padding: .125rem .125rem .5rem; margin: 0 0 .375rem; scrollbar-width: thin; scrollbar-color: var(--ndc-line) transparent; }
.nd-composer .gen-ref-strip:empty { display: none; }
.nd-composer .gen-ref-strip .ref { position: relative; flex: 0 0 8.25rem; width: 8.25rem; height: auto; margin: 0; padding: 0; border: 1px solid var(--ndc-line); border-radius: .5rem; background: var(--ndc-panel); overflow: hidden; }
.nd-composer .ref .nd-ref-preview { display: block; position: relative; inset: auto; width: 100%; height: 3.25rem; padding: 0; border: 0; border-radius: 0; background: var(--ndc-bg); color: var(--ndc-text); cursor: zoom-in; }
.nd-composer .ref .nd-ref-preview img { display: block; width: 100%; height: 100%; border: 0; border-radius: 0; object-fit: contain; }
.nd-ref-number { position: absolute; left: .375rem; top: .375rem; display: grid; place-items: center; min-width: 1.125rem; height: 1.125rem; padding: 0 .25rem; border: 1px solid #ffffff30; border-radius: .25rem; background: #081005d9; color: #fff; font-size: .625rem; font-variant-numeric: tabular-nums; }
.nd-composer .ref [data-remove] { position: absolute; top: 0; right: 0; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 0 0 0 .5rem; padding: 0; background: #081005b8; color: white; font-size: 1.25rem; z-index: 1; }
.nd-composer .ref [data-remove]:hover:not(:disabled) { background: #542820; }
.nd-ref-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ndc-line); }
.nd-composer .ref [data-ref-control] { position: static; display: grid; place-items: center; min-width: 2.75rem; min-height: 2.75rem; width: auto; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: var(--ndc-panel); color: var(--ndc-text); font-size: 1rem; }
.nd-composer .ref [data-ref-control] + [data-ref-control] { border-left: 1px solid var(--ndc-line); }
.nd-composer .ref [data-ref-control]:hover:not(:disabled) { background: var(--ndc-hover); }
.nd-composer .ref [data-ref-control="drag"] { cursor: grab; font-size: 1.5rem; }
.nd-composer .ref [data-ref-control="drag"]:active { cursor: grabbing; }
.nd-composer .gen-ref-strip .ref.nd-ref-drop { border-color: var(--ndc-accent); box-shadow: inset 0 0 0 1px var(--ndc-accent); }
.nd-ref-dragging .ref { opacity: .75; }
.nd-composer-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.nd-reference-dialog { --ndc-bg: #10160d; --ndc-panel: #182012; --ndc-hover: #233019; --ndc-line: #35462b; --ndc-text: #e7efdc; --ndc-muted: #9aaa8d; --ndc-accent: #c9ff4f; width: min(54rem, calc(100vw - 1.5rem)); max-height: calc(100dvh - 1.5rem); margin: auto; padding: 1rem; border: 1px solid var(--ndc-line); border-radius: .875rem; background: var(--ndc-bg); color: var(--ndc-text); overflow: auto; }
.nd-reference-dialog::backdrop { background: #030703cc; backdrop-filter: blur(5px); }
.nd-reference-dialog-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .75rem; }
.nd-reference-dialog-head h2 { margin: 0; font-size: .875rem; font-weight: 500; overflow-wrap: anywhere; }
.nd-reference-close { display: grid; place-items: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; border: 1px solid var(--ndc-line); border-radius: .5rem; background: var(--ndc-panel); color: var(--ndc-text); font-size: 1.5rem; }
.nd-reference-image { display: block; width: 100%; height: min(65dvh, 38rem); object-fit: contain; background: var(--ndc-panel); border-radius: .5rem; }
.nd-reference-dialog-foot { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .75rem; }
.nd-reference-dialog-foot .nd-composer-tool { font-size: .75rem; padding: .5rem .75rem; }
.nd-reference-position { color: var(--ndc-muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
.nd-reference-dialog button:focus-visible { outline: 2px solid var(--ndc-accent); outline-offset: 2px; }
@media (min-width: 420px) {
  .nd-composer-tool { font-size: .6875rem; }
  .nd-composer .gen-assistant { font-size: .6875rem; }
}
@media (max-width: 719px) {
  .gen-composer-wrap { max-height: 45dvh; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  .nd-composer .gen-composer-bar { position: sticky; bottom: -.8125rem; z-index: 3; background: var(--ndc-bg); padding-block: .5rem; }
}
@media (min-width: 720px) {
  .nd-composer .ref .nd-ref-preview { height: 4rem; }
  .nd-composer .gen-prompt#prompt { font-size: .9375rem; }
  .nd-composer-tools { display: flex; flex-wrap: wrap; align-items: start; gap: .5rem; }
  .nd-composer-tool-grid { flex: 1; }
  .nd-composer .gen-assistant { width: auto; margin: 0; padding-inline: .75rem; }
  .nd-composer-library { width: auto; margin: 0; padding-inline: .75rem; }
  .nd-composer-live { flex-basis: 100%; }
}
@media (min-width: 900px) {
  .nd-composer-grid { grid-template-columns: minmax(0, 1fr) 12rem; gap: 1rem; }
  .nd-composer-tools { display: block; padding-left: 1rem; border-left: 1px solid var(--ndc-line); }
  .nd-composer-tools-title { display: block; margin: .125rem 0 .625rem; }
  .nd-composer-tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nd-composer .gen-assistant { width: 100%; margin: .5rem 0 0; }
  .nd-composer-library { width: 100%; margin: .5rem 0 0; }
  .nd-composer-live { margin-top: .5rem; }
}
@media (min-width: 1180px) {
  .nd-composer-grid { grid-template-columns: minmax(0, 1fr) 13rem; }
}
@media (max-height: 700px) and (min-width: 720px) {
  .nd-composer .gen-prompt#prompt { min-height: 6.5rem; height: 6.5rem; }
  .nd-composer-expanded .gen-prompt#prompt { min-height: 8rem; height: 26dvh; }
  .nd-composer .ref .nd-ref-preview { height: 3.25rem; }
}
@media (max-height: 800px) and (min-width: 720px) {
  .gen-composer-wrap { max-height: 45dvh; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  .nd-composer .gen-composer-bar { position: sticky; bottom: -.8125rem; z-index: 3; background: var(--ndc-bg); padding-block: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .nd-composer *, .nd-reference-dialog * { scroll-behavior: auto; transition: none; }
}

/* The thumbnail is the handle. No separate move buttons or extra action row. */
.nd-composer .gen-ref-strip .ref { flex-basis:6rem; width:6rem; height:4.5rem; border-radius:.75rem; }
.nd-composer .ref .nd-ref-preview[data-ref-control] { position:relative; display:block; width:100%; height:100%; min-height:0; margin:0; border:0; padding:0; background:var(--ndc-panel); cursor:grab; touch-action:pan-y pinch-zoom; }
.nd-composer .ref .nd-ref-preview:active { cursor:grabbing; }
.nd-composer .ref .nd-ref-preview img { object-fit:cover; user-select:none; -webkit-user-drag:none; }
.nd-composer .ref [data-remove] { width:2.25rem; height:2.25rem; top:-.125rem; right:-.125rem; border:.375rem solid transparent; border-radius:50%; background:#081005d9; background-clip:padding-box; font-size:.875rem; line-height:1; }
.nd-composer .ref.nd-ref-held { opacity:.5; transform:scale(.96); }
.nd-ref-dragging .ref.nd-ref-drop { opacity:1; }
.nd-composer .nd-ref-actions { display:none; }
.nd-ref-lock-help { margin: .15rem 0 .6rem; color: var(--ndc-muted); font-size: .6875rem; line-height: 1.45; }
.nd-ref-lock-help[hidden] { display: none; }
.nd-composer .gen-ref-strip .ref.nd-ref-photo { height: auto; }
.nd-composer .ref.nd-ref-photo .nd-ref-preview[data-ref-control] { height: 4.5rem; }
.nd-composer .ref .nd-ref-lock[data-ref-control] { display: flex; align-items: center; justify-content: center; gap: .25rem; width: 100%; min-height: 2.75rem; border-top: 1px solid var(--ndc-line); font-size: .625rem; line-height: 1.2; cursor: pointer; }
.nd-composer .ref.nd-ref-locked { border-color: var(--ndc-accent); }
.nd-composer .ref.nd-ref-locked .nd-ref-lock { color: var(--ndc-accent); }
.nd-prompt-flight { position: fixed; z-index: 1000; box-sizing: border-box; padding: .65rem .8rem; overflow: hidden; border: 1px solid #c9ff4f; border-radius: .75rem; background: #182012; color: #e7efdc; box-shadow: 0 8px 32px #0005; font: 500 .875rem/1.4 system-ui, sans-serif; white-space: pre-wrap; overflow-wrap: anywhere; pointer-events: none; transform-origin: center; }
html[data-theme="light"] .nd-prompt-flight { border-color: #467000; background: #f2f5ed; color: #11160b; }
@media (prefers-reduced-motion: reduce) { .nd-prompt-flight { display: none; } }
@media(pointer:coarse){.nd-composer .ref [data-remove] { width:2.75rem; height:2.75rem; border-width:.625rem; top:-.375rem; right:-.375rem; }}

/* Server choice remains next to the model on touch and narrow screens. */
.gen-server-choice{display:flex;align-items:center;gap:8px;grid-column:1/-1;justify-self:start;min-width:0;max-width:240px;padding:0 10px;background:var(--surface-raised,#344c49);border:1px solid var(--border,#55716a);border-radius:10px;min-height:42px}
.gen-server-choice>span{font-size:11px;opacity:.75}
.gen-server-choice select{min-width:0;max-width:170px;width:auto;border:0;background:transparent;color:inherit;padding:10px 20px 10px 0;font:inherit;font-size:13px;cursor:pointer}
.gen-server-choice:focus-within{outline:2px solid var(--accent,#c6ff43);outline-offset:2px}
[data-theme="light"] .gen-server-choice{background:#e2ece8;border-color:#9db5ab;color:#101a16}
@media(max-width:600px){.gen-server-choice{max-width:100%;width:100%;min-height:44px}.gen-server-choice select{max-width:none;flex:1}.gen-server-choice>span{font-size:12px}}
/* Explicit flex sizing prevents older three/five-column rules from squeezing
   the model into the attachment column after the new selector is inserted. */
body.studio-shell[data-page="create"] .gen-composer-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
body.studio-shell[data-page="create"] .gen-composer-bar>*{grid-column:auto}
body.studio-shell[data-page="create"] .gen-composer-bar .gen-server-choice{flex:0 1 auto;width:auto;max-width:240px;min-height:44px}
body.studio-shell[data-page="create"] .gen-composer-bar .gen-settings-toggle{flex:1 1 210px;width:auto;max-width:360px;min-height:44px;height:auto;padding:10px;overflow:hidden}
body.studio-shell[data-page="create"] .gen-composer-bar .gen-model-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.studio-shell[data-page="create"] .gen-composer-bar #generate-btn{flex:1 1 190px;min-width:160px;width:auto;max-width:360px;min-height:44px;height:auto;margin-left:auto}
@media(max-width:719px){
 body.studio-shell[data-page="create"] .gen-composer-bar .gen-server-choice{flex:1 1 100%;max-width:none}
 body.studio-shell[data-page="create"] .gen-composer-bar .gen-settings-toggle{flex:1 1 100%;max-width:none}
 body.studio-shell[data-page="create"] .gen-composer-bar #generate-btn{flex:1 1 100%;max-width:none;min-height:48px}
}

/* Expanded editing owns the visible viewport. Only the content scrolls; close,
   clipboard tools, media, settings and submit remain outside that scroll area. */
body.nd-composer-modal { overflow: hidden; }
html body.studio-shell .nd-composer-dialog {
  box-sizing: border-box; position: fixed; inset: var(--nd-viewport-top, 0px) 0 auto;
  width: 100%; max-width: 100%; height: var(--nd-viewport-height, 100dvh);
  max-height: var(--nd-viewport-height, 100dvh); margin: 0; padding: .5rem;
  padding-bottom: max(.5rem, env(safe-area-inset-bottom)); border: 0; border-radius: 0;
  color: var(--nd-ink, #e7efdc); background: var(--nd-page, #10160d); overflow: hidden;
}
.nd-composer-dialog:not([open]) { display: none; }
.nd-composer-dialog[open] { display: flex; flex-direction: column; }
.nd-composer-dialog::backdrop { background: #030703cc; backdrop-filter: blur(5px); }
.nd-composer-dialog-head { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: .5rem; min-height: 3rem; padding: 0 .5rem .5rem; }
.nd-composer-dialog-head h2 { margin: 0; font: inherit; font-size: 1rem; font-weight: 600; }
.nd-composer-dialog-close { min-width: 2.75rem; min-height: 2.75rem; padding: .5rem .75rem; border: 1px solid var(--nd-border, #35462b); border-radius: .5rem; background: var(--nd-control, #182012); color: inherit; font: inherit; cursor: pointer; }
.nd-composer-dialog-close:focus-visible { outline: 2px solid var(--nd-brand, #c9ff4f); outline-offset: 2px; }
html body.studio-shell .nd-composer-dialog #generate {
  display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; min-height: 0;
  width: 100%; max-width: none; height: auto; margin: 0; padding: .5rem; overflow: hidden;
}
.nd-composer-dialog #generate .gen-compose-title { display: none; }
.nd-composer-dialog #generate .nd-composer-grid { display: flex; flex: 1 1 auto; flex-direction: column; gap: .5rem; min-height: 0; overflow: hidden; }
.nd-composer-dialog #generate .nd-composer-editor { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.nd-composer-dialog #generate .nd-ref-dropzone { flex: 0 0 auto; }
.nd-composer-dialog #generate .nd-mentions { display: flex; flex: 1 0 10rem; flex-direction: column; min-height: 10rem; }
.nd-composer-dialog #generate .nd-mention-editor,
.nd-composer-dialog #generate .gen-prompt#prompt:not(.nd-mention-bridge) { flex: 1 1 auto; height: auto; min-height: 8rem; max-height: none; font-size: 1rem; }
.nd-composer-dialog #generate .nd-composer-tools { display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; gap: .25rem; padding: 0; border: 0; }
.nd-composer-dialog #generate .nd-composer-tools-title { display: none; }
.nd-composer-dialog #generate .nd-composer-tool-grid { display: flex; flex: 0 0 auto; gap: .25rem; }
.nd-composer-dialog #generate .nd-composer-tool { min-width: 2.75rem; width: 2.75rem; min-height: 2.75rem; }
.nd-composer-dialog #generate .nd-composer-library { flex: 1; width: auto; min-width: 0; min-height: 2.75rem; margin: 0; }
.nd-composer-dialog #generate .nd-composer-live { flex: 1 0 100%; max-height: 3rem; overflow: auto; margin: 0; }
.nd-composer-dialog #generate .gen-composer-price { flex: 0 0 auto; margin: 0; padding: .25rem 0; font-size: .8125rem; }
.nd-composer-dialog #generate .gen-composer-bar { position: static; display: grid; flex: 0 0 auto; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .375rem; padding: .375rem 0 0; }
.nd-composer-dialog #generate .gen-composer-bar :is(.nd-paste-button, .gen-library-button, .gen-settings-toggle) { display: flex !important; align-items: center; justify-content: center; grid-column: auto; width: 100%; min-width: 0; max-width: none; min-height: 2.75rem; height: auto; padding: .375rem; margin: 0; font-size: .75rem; }
.nd-composer-dialog #generate .gen-settings-toggle .gen-model-label { display: none !important; }
.nd-composer-dialog #generate .gen-settings-toggle .gen-settings-word { display: inline !important; }
.nd-composer-dialog #generate .gen-composer-bar #generate-btn { grid-column: 1 / -1; min-width: 0; max-width: none; width: 100%; min-height: 2.75rem; height: auto; margin: 0; }
.nd-composer-dialog #generate :is(#gen-reference-issue, #availability, #status, #recent-job) { flex: 0 0 auto; max-height: 3rem; overflow: auto; margin-block: .25rem 0; }
@media (min-width: 720px) {
  html body.studio-shell .nd-composer-dialog { inset: calc(var(--nd-viewport-top, 0px) + 1rem) 0 auto; width: min(56rem, calc(100% - 2rem)); height: calc(var(--nd-viewport-height, 100dvh) - 2rem); max-height: 56rem; margin-inline: auto; border: 1px solid var(--nd-border, #35462b); border-radius: .875rem; }
  .nd-composer-dialog #generate { padding: 1rem; }
  .nd-composer-dialog #generate .gen-composer-bar { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(10rem, 2fr); }
  .nd-composer-dialog #generate .gen-composer-bar #generate-btn { grid-column: auto; }
}

/* V61: an explicit file picker beside the reference area. */
.nd-composer .nd-ref-dropzone > .nd-ref-actions {display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;padding-top:.375rem}
.nd-composer .nd-ref-add {display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:44px;padding:.5rem .875rem;border:0;border-radius:.625rem;background:var(--nd-brand,#c9ff4f);color:#17230c;font:inherit;font-size:.875rem;font-weight:700;cursor:pointer}
.nd-composer .nd-ref-paste-hint {flex:1 1 10rem;font-size:.75rem;line-height:1.35}
/* Model validation stays on the original photo's tile; no image rewriting. */
html body.studio-shell[data-page="create"] #generate #refs .ref.nd-ref-invalid{border-color:#d98573!important;box-shadow:inset 0 0 0 1px #d98573}
html body.studio-shell[data-page="create"] #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking){flex-basis:12rem!important;width:12rem!important;min-width:12rem!important;height:auto!important;max-height:none!important}
html body.studio-shell[data-page="create"] #generate #refs .ref .nd-ref-validation{position:static;display:block;box-sizing:border-box;width:100%;padding:.375rem .5rem;white-space:normal;overflow-wrap:anywhere;font-size:.75rem;line-height:1.4;color:var(--ndc-text,#eee);background:var(--ndc-panel,#233029)}
html body.studio-shell[data-page="create"] #generate #refs .ref.nd-ref-invalid .nd-ref-validation{border-top:1px solid #d9857380;color:var(--nd-color-error-text,#f2b5a8);background:var(--nd-control,#26312b)}
html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking){grid-template-columns:minmax(0,1fr) 44px!important;grid-template-rows:48px auto 44px!important}
html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking) .nd-ref-validation{grid-column:1/-1!important;grid-row:2!important}
html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking) .nd-ref-lock{grid-row:3!important;display:flex!important}
html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking) .nd-chat-ref-order{grid-row:3!important}
html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking) [data-remove]{grid-column:2!important;grid-row:1!important}
.nd-reference-validation-detail{padding:.5rem .625rem;border-left:2px solid #d98573;background:var(--ndc-panel);font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}.nd-reference-validation-detail[hidden]{display:none}

/* Rejected prompt files retain readable reasons and touch actions. */
body.studio-shell[data-page="create"] :is(#gen-upload-queue,#gen-asset-uploads) .nd-upload-item[data-state="failed"]{display:grid;grid-template-columns:42px minmax(0,1fr) 44px;align-items:start;flex-basis:18rem;gap:.5rem}
body.studio-shell[data-page="create"] :is(#gen-upload-queue,#gen-asset-uploads) .nd-upload-item[data-state="failed"]>img{grid-column:1;grid-row:1}
body.studio-shell[data-page="create"] :is(#gen-upload-queue,#gen-asset-uploads) .nd-upload-item[data-state="failed"]>div{grid-column:2;grid-row:1}
body.studio-shell[data-page="create"] :is(#gen-upload-queue,#gen-asset-uploads) .nd-upload-item[data-state="failed"] span{font-size:.75rem}
body.studio-shell[data-page="create"] :is(#gen-upload-queue,#gen-asset-uploads) .nd-upload-item[data-state="failed"]>button{min-width:44px;min-height:44px}
body.studio-shell[data-page="create"] :is(#gen-upload-queue,#gen-asset-uploads) .nd-upload-item[data-state="failed"]>button:first-of-type{grid-column:2;grid-row:2;justify-self:start;font-size:.8125rem}
body.studio-shell[data-page="create"] :is(#gen-upload-queue,#gen-asset-uploads) .nd-upload-item[data-state="failed"]>button:last-of-type{grid-column:3;grid-row:1}

html body.studio-shell[data-page="create"] #generate #refs .ref.nd-ref-invalid .nd-ref-validation::before{content:"! ";font-weight:700}

body.studio-shell[data-page="create"] :is(#gen-upload-queue,#gen-asset-uploads) .nd-upload-item[data-reference-state="invalid"]{border-color:#d98573}
body.studio-shell[data-page="create"] .nd-upload-validation{font-size:.75rem;line-height:1.4;color:var(--nd-color-error-text,#f2b5a8)}
@media(max-width:767px) and (max-height:500px){
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate:has(.nd-ref-invalid,.nd-ref-checking):not(.nd-composer-expanded) .nd-composer-editor{display:grid!important;grid-template-columns:minmax(0,12rem) minmax(0,1fr);gap:.5rem;align-items:start}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate:has(.nd-ref-invalid,.nd-ref-checking):not(.nd-composer-expanded) .nd-ref-dropzone{grid-column:1;grid-row:1}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate:has(.nd-ref-invalid,.nd-ref-checking):not(.nd-composer-expanded) .nd-mentions{grid-column:2;grid-row:1;min-width:0}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking){grid-template-columns:minmax(44px,1fr) 44px 44px!important;grid-template-rows:48px auto!important;max-width:100%}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking) .nd-ref-validation{max-height:3.75rem;overflow:auto;overscroll-behavior:contain}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking) .nd-ref-lock{display:none!important}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking) .nd-chat-ref-order{grid-column:2!important;grid-row:1!important}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate #refs .ref:is(.nd-ref-invalid,.nd-ref-checking) [data-remove]{grid-column:3!important;grid-row:1!important}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate:has(.nd-ref-invalid,.nd-ref-checking) #gen-upload-queue .nd-upload-item[data-state="done"]{display:none}
 html body.studio-shell[data-page="create"].nd-chat-mobile #generate:has(.nd-ref-invalid,.nd-ref-checking) #gen-upload-queue:not(:has(.nd-upload-item:not([data-state="done"]))){display:none}
}
