/* Local, square editorial modules; typography follows editorial.css tokens. */
.prompt-section { padding-top:0; scroll-margin-top:32px; }
.prompt-section + .art-section { padding-top:0; }
.prompt-portals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--line); }
.prompt-portals:has(>.prompt-portal:only-child) { grid-template-columns:minmax(0,1fr); }
.prompt-portal { display:flex; flex-direction:column; min-width:0; min-height:400px; padding:40px 44px; background:var(--paper); color:var(--ink); border-radius:0; text-decoration:none; transition:background-color .18s ease,color .18s ease; }
.prompt-portal+.prompt-portal { border-left:1px solid var(--line); }
.prompt-portal-top { display:flex; gap:20px; justify-content:space-between; align-items:center; font-size:var(--text-meta); line-height:1.6; margin-bottom:56px; }
.prompt-portal-top>span:first-child { letter-spacing:.08em; }
.prompt-portal-index { font:italic 500 30px/1.1 var(--serif); flex:0 0 auto; }
.prompt-portal-body { flex:1; }
.prompt-portal h3 { margin:0 0 20px; font:500 clamp(32px,3.3vw,44px)/1.3 var(--serif); letter-spacing:-.02em; }
.prompt-portal-body>p { max-width:30em; font-size:var(--text-body); line-height:1.8; margin-bottom:20px; }
.prompt-portal-count { display:block; font-size:var(--text-meta); line-height:1.7; }
.prompt-portal-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid currentColor; margin-top:32px; padding-top:22px; font:400 var(--text-control)/1.5 var(--sans); }
.prompt-portal-footer .icon { width:24px; height:24px; flex:0 0 24px; }
.prompt-portal:focus-visible { outline:3px solid currentColor; outline-offset:-8px; }
@media (hover:hover) {
  .prompt-portal:hover { background:var(--ink); color:var(--paper); }
  .prompt-portal:hover .icon { filter:invert(1); }
}
@media (min-width:721px) and (max-width:1023px) { .prompt-portal { padding:30px 28px; } }
.prompt-archive,.prompt-detail { padding-bottom:80px; }
.prompt-archive .page-heading { max-width:100%; }
.prompt-library-switch.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:60px; max-width:100%; margin-top:28px; padding:16px 24px; border:1px solid var(--ink); border-radius:0; background:var(--ink); color:var(--paper); font:400 var(--text-control)/1.5 var(--sans); white-space:nowrap; }
.prompt-library-switch.button .icon { width:22px; height:22px; flex:0 0 22px; filter:invert(1); }
.prompt-library-switch.button:hover { background:var(--paper); color:var(--ink); }
.prompt-library-switch.button:hover .icon { filter:none; }
.prompt-toolbar { display:grid; grid-template-columns:minmax(0,1fr) minmax(160px,.4fr) auto; align-items:end; gap:24px; padding-block:28px; border-block:1px solid var(--line); }
.prompt-toolbar label { min-width:0; font-size:var(--text-control); }
.prompt-toolbar input[type=search],.prompt-toolbar select { width:100%; padding:12px; min-height:54px; font:var(--text-control)/1.5 var(--sans); color:var(--ink); background:var(--paper); border:1px solid var(--line); }
.prompt-check { display:flex; flex-direction:row; align-items:center; gap:12px; min-height:54px; white-space:nowrap; }
.prompt-check input { width:22px; height:22px; accent-color:var(--ink); }
.prompt-library-count { font-size:var(--text-meta); margin-top:24px; }
.prompt-library-note { font-size:var(--text-meta); color:var(--muted); line-height:1.7; margin:16px 0 32px; }
.prompt-video-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; align-items:start; }
.prompt-masonry { columns:3; column-gap:24px; }
.prompt-card { min-width:0; max-width:100%; border:1px solid var(--line); break-inside:avoid; background:var(--paper); overflow-wrap:anywhere; }
.prompt-masonry>.prompt-card { display:block; width:100%; margin-bottom:24px; }
.prompt-card[hidden] { display:none!important; }
.prompt-card-top { display:flex; flex-wrap:wrap; gap:12px; padding:20px 24px; font-size:var(--text-meta); color:var(--muted); border-bottom:1px solid var(--rule); }
.prompt-video { background:#101110; }
.prompt-video video { display:block; width:100%; height:auto; max-height:560px; object-fit:contain; border-radius:0; background:#101110; }
.prompt-media-empty { min-height:200px; display:grid; place-items:center; padding:24px; background:var(--surface); font-size:var(--text-body); }
.prompt-images { display:grid; gap:4px; background:var(--surface); align-items:start; }
.prompt-image-button { display:block; width:100%; min-width:0; padding:0; border:0; border-radius:0; position:relative; color:var(--paper); background:transparent; cursor:zoom-in; }
.prompt-image-button[hidden] { display:none; }
.prompt-image-button img { display:block; width:100%; height:auto; border-radius:0; }
.prompt-carousel { min-width:0; max-width:100%; background:var(--surface); }
.prompt-carousel-viewport { position:relative; min-width:0; overflow:hidden; }
.prompt-image-track { position:relative; display:flex; align-items:flex-start; gap:8px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; }
.prompt-image-track::-webkit-scrollbar { display:none; }
.prompt-image-track>.prompt-image-button { flex:0 0 calc(66.666667% - 5.333333px); min-width:0; aspect-ratio:var(--prompt-frame-ratio,2/3); max-height:min(680px,75dvh); scroll-snap-align:start; }
.prompt-image-track img { position:absolute; inset:0; width:100%; height:100%; max-height:none; object-fit:cover; }
.prompt-carousel-arrow { position:absolute; z-index:2; top:50%; margin-top:-23px; width:46px; height:46px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:1px solid #fafaf5cc; border-radius:0; color:#fafaf5; background:transparent; opacity:1; box-shadow:none; text-shadow:none; font:var(--text-control)/1.5 var(--sans); cursor:pointer; }
.prompt-carousel-arrow.is-previous { left:12px; }
.prompt-carousel-arrow.is-next { right:12px; }
.prompt-carousel-arrow>.icon { width:22px; height:22px; filter:invert(1); }
.prompt-carousel-arrow:hover { color:#fafaf5; background:transparent; border-color:#fafaf5; box-shadow:none; }
.prompt-carousel-arrow:focus-visible { outline:2px solid currentColor; outline-offset:-5px; }
.prompt-carousel-meta { display:flex; flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:16px; padding:14px 18px; font-size:var(--text-meta); line-height:1.6; color:var(--muted); border-bottom:1px solid var(--rule); }
.prompt-carousel-meta>[data-carousel-position] { white-space:nowrap; }
.prompt-carousel-meta>span:last-child { text-align:right; }
.prompt-card-content { padding:24px; }
.prompt-card-content>h2 { font-size:var(--text-card); line-height:1.35; margin:0 0 18px; }
.prompt-attribution { font-size:var(--text-meta); color:var(--muted); margin-block:16px; }
.prompt-attribution a { text-decoration:underline; text-underline-offset:4px; }
.prompt-summary { font-size:var(--text-body); line-height:1.7; margin-bottom:20px; }
.prompt-summary:empty { display:none; }
.prompt-tags { display:flex; flex-wrap:wrap; gap:8px 16px; margin-bottom:24px; }
.prompt-tags>span { font-size:var(--text-meta); border-bottom:1px solid var(--rule); padding-bottom:4px; }
.prompt-text-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:24px 0 16px; padding-top:24px; border-top:1px solid var(--rule); }
.prompt-text-heading h3 { font:600 var(--text-body)/1.5 var(--sans); margin:0; }
.prompt-expand { display:inline-flex; align-items:center; justify-content:center; flex-direction:row; flex-shrink:0; min-height:44px; padding:8px 12px; font:var(--text-control)/1.5 var(--sans); background:transparent; border:1px solid var(--line); color:var(--ink); white-space:nowrap; cursor:pointer; }
.prompt-text { white-space:pre-wrap; overflow-wrap:anywhere; word-break:normal; font:var(--text-body)/1.75 var(--sans); padding:0; margin:0; max-width:100%; overflow:visible; background:transparent; border:0; }
.prompt-text.is-collapsed { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; overflow:hidden; }
.prompt-reference,.prompt-reference-extra { font-size:var(--text-meta); line-height:1.7; color:var(--muted); padding-left:16px; border-left:2px solid var(--line); margin-top:24px; }
.prompt-actionbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:12px; margin-top:28px; padding-block:16px; border-block:1px solid var(--rule); min-width:0; }
.prompt-actions { display:block; min-width:0; }
.prompt-actions>button { display:inline-flex; align-items:center; justify-content:center; flex-direction:row; gap:4px; min-height:54px; min-width:44px; max-width:100%; padding:8px 2px; font:var(--text-control)/1.5 var(--sans); border:1px solid transparent; background:transparent; color:var(--ink); white-space:nowrap; cursor:pointer; }
.prompt-view-count { display:inline-flex; align-items:center; gap:6px; font-size:var(--text-meta); white-space:nowrap; }
.prompt-save-button.button,.prompt-copy-button.button { display:inline-flex; align-items:center; justify-content:center; width:100%; min-width:0; min-height:54px; padding:12px; gap:0; border:1px solid var(--line); background:transparent; color:var(--ink); font:400 var(--text-control)/1.5 var(--sans); white-space:nowrap; }
.prompt-save-button [data-save-label],.prompt-copy-button [data-copy-label] { display:block; min-width:4em; text-align:center; font:inherit; }
.prompt-save-button.button:hover,.prompt-copy-button.button:hover { background:transparent; color:var(--ink); border-color:var(--line); }
.prompt-save-button.button[aria-pressed=true],.prompt-copy-button.button.is-copied { background:transparent; color:var(--ink); border-color:var(--line); }
.prompt-actions button:disabled { opacity:.5; cursor:wait; }
.prompt-copy-column { display:flex; align-items:center; min-width:0; }
.prompt-copy-button.is-error { border-color:#923b23; color:#923b23; }
.prompt-actionbar.is-private { grid-template-columns:minmax(0,1fr); }
.prompt-actionbar.is-private .prompt-copy-column { border-left:0; padding-left:0; justify-content:flex-end; }
.prompt-feedback { font-size:var(--text-meta); line-height:1.7; margin-top:16px; }
.prompt-feedback:empty { display:none; }
.prompt-feedback.error,#prompt-editor-feedback.error,#prompt-comment-status.error { color:#923b23; }
.prompt-permalink { display:inline-block; font-size:var(--text-control); margin-top:20px; }
.prompt-empty { padding:48px 28px; border:1px solid var(--line); break-inside:avoid; }
.prompt-empty h2 { font-size:var(--text-card); }
.prompt-empty p { margin-block:20px; font-size:var(--text-body); }
.prompt-empty button { margin-top:16px; }
.prompt-detail { max-width:1040px; }
.prompt-card-detail .prompt-card-content { padding:36px; }
.prompt-card-detail .prompt-card-content>h2 { display:none; }
.prompt-card-detail .prompt-video video { max-height:720px; }
.prompt-card-detail .prompt-images { max-width:100%; }
.prompt-private-note { font-size:var(--text-meta); margin-top:24px; }
.prompt-lightbox,.prompt-comments-dialog { border:1px solid var(--line); border-radius:0; color:var(--ink); background:var(--paper); width:min(1040px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:24px; overflow-y:auto; overflow-x:hidden; }
.prompt-lightbox::backdrop,.prompt-comments-dialog::backdrop { background:#000c; }
.prompt-dialog-top { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.prompt-dialog-top h2 { font-size:28px; line-height:1.3; margin:0; }
.prompt-dialog-top>button,.prompt-lightbox-controls>button { min-height:48px; padding:10px 14px; font:var(--text-control)/1.5 var(--sans); border:1px solid var(--line); background:transparent; color:var(--ink); white-space:nowrap; cursor:pointer; }
.prompt-dialog-top>button { flex-shrink:0; }
.prompt-lightbox figure { margin:0; }
.prompt-lightbox figure img { display:block; max-width:100%; height:auto; max-height:65dvh; object-fit:contain; margin:auto; }
.prompt-lightbox figcaption { font-size:var(--text-meta); margin-top:16px; overflow-wrap:anywhere; }
.prompt-lightbox-controls { display:flex; align-items:center; justify-content:space-between; flex-direction:row; flex-wrap:nowrap; gap:8px; margin-top:24px; }
.prompt-lightbox-controls>span { font-size:var(--text-meta); white-space:nowrap; }
.prompt-comments-dialog { max-width:720px; }
.prompt-comments-note { font-size:var(--text-meta); margin-bottom:24px; }
.prompt-comment { padding:20px 0; border-bottom:1px solid var(--rule); }
.prompt-comment-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:var(--text-meta); }
.prompt-comment p { white-space:pre-wrap; overflow-wrap:anywhere; font-size:var(--text-body); margin-top:16px; }
#prompt-comment-form label { margin-top:24px; }
#prompt-comment-form input,#prompt-comment-form textarea { width:100%; padding:12px; border:1px solid var(--line); font:var(--text-control)/1.7 var(--sans); background:var(--paper); color:var(--ink); }
#prompt-comment-form button { margin-top:24px; }
#prompt-comment-status { font-size:var(--text-meta); line-height:1.7; margin-top:20px; }
.studio-layout:has(#studio-prompts:not([hidden])) .studio-savebar { display:none; }
.prompt-admin-settings,.prompt-admin-comments { margin-block:32px; border:1px solid var(--line); padding:24px; }
.prompt-admin-settings summary,.prompt-admin-comments summary { font:500 var(--text-card)/1.4 var(--serif); cursor:pointer; }
.prompt-admin-settings .field-grid { margin-block:28px; }
.prompt-admin-new { display:flex; align-items:end; flex-direction:row; flex-wrap:nowrap; gap:16px; margin-block:32px; }
.prompt-admin-new label { flex:1; min-width:0; margin:0; }
.prompt-admin-new button { flex-shrink:0; }
#studio-prompts label { min-width:0; }
#studio-prompts input:not([type=checkbox]):not([type=file]),#studio-prompts textarea,#studio-prompts select { min-width:0; width:100%; padding:12px; font:var(--text-control)/1.7 var(--sans); border:1px solid var(--line); background:var(--paper); color:var(--ink); }
.prompt-admin-media { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-block:28px; }
.prompt-admin-media>div { border:1px solid var(--rule); padding:16px; min-width:0; }
.prompt-admin-media img,.prompt-admin-media video { display:block; width:100%; height:auto; max-height:280px; object-fit:contain; background:var(--surface); }
.prompt-admin-media p { font-size:var(--text-meta); overflow-wrap:anywhere; margin-block:12px; }
.prompt-admin-media label { margin-block:16px; }
.prompt-admin-media .tool-actions { margin-top:16px; }
#prompt-editor-feedback { font-size:var(--text-meta); padding:16px; background:var(--paper); border:1px solid var(--rule); margin-block:24px; overflow-wrap:anywhere; }
#prompt-editor-feedback:empty { display:none; }
.prompt-moderation-item { padding-block:24px; border-bottom:1px solid var(--rule); }
.prompt-moderation-item p { font-size:var(--text-body); white-space:pre-wrap; overflow-wrap:anywhere; margin-bottom:20px; }
.prompt-moderation-item .meta { margin-bottom:20px; }
#prompt-admin-editor>.field-grid { margin-block:28px; }
.prompt-link-import { border:1px solid var(--line); padding:24px; margin-block:32px; }
.prompt-link-import h3 { font:500 var(--text-card)/1.4 var(--serif); margin-bottom:20px; }
.prompt-link-import>p { font-size:var(--text-body); margin-bottom:20px; }
.prompt-import-input-row { display:flex; flex-direction:row; flex-wrap:nowrap; align-items:end; gap:16px; }
.prompt-import-input-row label { flex:1; min-width:0; margin:0; }
.prompt-import-input-row button { flex:0 0 auto; }
#prompt-import-status { margin:20px 0 0; font-size:var(--text-meta); overflow-wrap:anywhere; }
#prompt-import-status.error { color:#923b23; }
#prompt-import-preview { border-top:1px solid var(--rule); padding-top:24px; margin-top:24px; }
.prompt-import-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
.prompt-import-heading h4 { font-size:var(--text-control); }
.prompt-import-heading>span { font-size:var(--text-meta); }
#prompt-import-preview>p,#prompt-import-preview li { font-size:var(--text-body); overflow-wrap:anywhere; }
.prompt-import-video { display:block; width:100%; height:auto; max-height:480px; object-fit:contain; margin-block:24px; background:#151515; }
.prompt-import-images { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-block:24px; }
.prompt-import-images img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; background:var(--surface); }
#prompt-import-preview label { margin-block:24px; }
.prompt-source-record { margin-block:24px; padding:20px; border:1px solid var(--rule); }
.prompt-source-record summary { font-size:var(--text-control); cursor:pointer; }
.prompt-source-record p,.prompt-source-record li { font-size:var(--text-meta); margin-top:16px; overflow-wrap:anywhere; }
.prompt-source-record pre { white-space:pre-wrap; overflow-wrap:anywhere; font:var(--text-body)/1.7 var(--sans); margin-block:20px; }
@media (max-width:1100px) { .prompt-masonry { columns:2; } .prompt-toolbar { grid-template-columns:minmax(0,1fr) minmax(160px,.5fr); } .prompt-check { grid-column:1/-1; } }
@media (max-width:720px) {
  .prompt-portals,.prompt-video-grid { grid-template-columns:minmax(0,1fr); }
  .prompt-portal { min-height:340px; padding:28px; }
  .prompt-portal+.prompt-portal { border-left:0; border-top:1px solid var(--line); }
  .prompt-portal-top { margin-bottom:40px; }
  .prompt-portal h3 { font-size:32px; }
}
@media (max-width:639px) {
  .prompt-library-switch.button { width:100%; justify-content:space-between; padding-inline:18px; }
  .prompt-link-import { padding:18px; }
  .prompt-import-input-row { gap:12px; }
  .prompt-import-images { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .prompt-carousel-arrow { width:44px; height:44px; margin-top:-22px; }
  .prompt-masonry { columns:1; }
  .prompt-toolbar,.prompt-admin-media { grid-template-columns:minmax(0,1fr); }
  .prompt-card-content,.prompt-card-detail .prompt-card-content { padding:20px; }
  .prompt-card-top { padding:18px 20px; }
  .prompt-card-content>h2 { font-size:24px; }
  .prompt-text-heading { gap:10px; }
  .prompt-actionbar { gap:12px; }
  .prompt-lightbox,.prompt-comments-dialog { padding:18px; width:calc(100% - 20px); }
  .prompt-dialog-top { gap:12px; }
  .prompt-dialog-top h2 { font-size:26px; }
  .prompt-lightbox-controls>button { padding-inline:10px; }
  .prompt-admin-settings,.prompt-admin-comments { padding:18px; }
  .prompt-admin-new { gap:12px; }
}
