/* Desire + Storyboard workspaces. Fieldnotes tokens only (styles.css). */
.study-workspace{padding-top:20px;min-width:0;--second:oklch(0.47 0.06 235);--second-soft:oklch(0.9 0.03 235)}
html[data-theme="dark"] .study-workspace{--second:#8fb8d6;--second-soft:#23303a}
.study-workspace [hidden]{display:none!important}
.study-workspace h2{font:500 26px/1.3 var(--serif);letter-spacing:-.01em;margin:0 0 6px;max-width:65ch;overflow-wrap:anywhere}
.study-workspace h3{font:600 17px/1.35 var(--serif);margin:0}
.study-workspace button:focus-visible,.study-workspace a:focus-visible,.study-workspace summary:focus-visible,.study-workspace [tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.study-workspace textarea:focus-visible,.study-workspace input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sw-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sw-mono{font:12px/1.5 var(--mono);color:var(--ink-soft)}
.sw-lede{font:16px/1.55 var(--serif);color:var(--ink-soft);max-width:62ch;margin:0 0 16px}
.sw-tag{display:inline-block;padding:1px 7px;border:1px solid var(--accent);border-radius:3px;background:var(--accent-wash);color:var(--accent-deep);font:500 10.5px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}
.sw-tag-quiet{border-color:var(--rule);background:transparent;color:var(--ink-soft)}
.sw-error{margin:0 0 16px;padding:12px 14px;border-left:3px solid #b33c26;background:var(--card);color:var(--ink);font:15px/1.5 var(--serif);max-width:70ch;white-space:pre-wrap;overflow-wrap:anywhere}
html[data-theme="dark"] .sw-error{border-left-color:#e2765f}
.sw-error:empty{display:none}
.sw-error ul{margin:6px 0 0;padding-left:18px}
.sw-error a{color:var(--accent-deep);text-decoration:underline}
.sw-note{margin:0 0 16px;font:12px/1.5 var(--mono);color:var(--ink-soft);max-width:70ch}
.sw-note:empty{display:none}
.sw-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sw-actions .btn{min-height:44px;padding:10px 16px}

/* ---- status strip (running / stopped / failed) ---- */
.sw-status{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:12px 14px;border:1px solid var(--rule);border-radius:6px;background:var(--card);max-width:820px}
.sw-status p{margin:0;font:13px/1.5 var(--mono);color:var(--ink)}
.sw-status small{display:block;color:var(--ink-soft);font:12px/1.5 var(--mono)}
.sw-status.is-running p::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--accent);vertical-align:1px;animation:sw-pulse 1.4s ease-in-out infinite}
@keyframes sw-pulse{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.sw-status.is-running p::before{animation:none}}

/* ---- desire composer ---- */
.desire-form{max-width:720px;display:grid;gap:10px}
.desire-form label{font:12px var(--mono);color:var(--ink-soft)}
.desire-drop{border:1px solid var(--rule);border-left:2px solid var(--rule);border-radius:3px;background:var(--card);transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
.desire-drop:focus-within,.desire-drop.is-dragging{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.desire-drop textarea{display:block;width:100%;min-height:128px;padding:12px;border:0;background:transparent;color:var(--ink);font:17px/1.5 var(--serif);resize:vertical;caret-color:var(--accent)}
.desire-drop textarea:focus-visible{outline:none}
.desire-drop textarea::placeholder{color:var(--faint);font-style:italic}
.desire-files{list-style:none;margin:0;padding:0 10px 10px;display:flex;flex-wrap:wrap;gap:8px}
.desire-files:empty{display:none}
.desire-file{display:flex;align-items:center;gap:8px;max-width:100%;padding:4px 4px 4px 6px;border:1px solid var(--rule);border-radius:4px;background:var(--paper);font:12px/1.3 var(--mono)}
.desire-file img,.desire-file .desire-file-kind{width:36px;height:36px;flex:none;border-radius:2px;object-fit:cover;border:1px solid var(--rule-soft)}
.desire-file .desire-file-kind{display:grid;place-items:center;font:500 10px var(--mono);color:var(--second)}
.desire-file span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:22ch}
.desire-file small{display:block;color:var(--ink-soft)}
.desire-file button{flex:none;width:32px;height:32px;border:0;border-radius:3px;background:transparent;color:var(--ink-soft);font-size:18px;cursor:pointer}
.desire-file button:hover{background:var(--accent-wash);color:var(--accent-deep)}
.desire-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.desire-attach{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--ink-soft);border-radius:3px;font:500 12px var(--mono);color:var(--ink-soft);cursor:pointer}
.desire-attach:hover{background:var(--accent-wash)}
.desire-attach:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.desire-attach input{position:absolute;opacity:0;width:1px;height:1px}
.desire-hint{font:11.5px/1.5 var(--mono);color:var(--ink-soft);margin:0}
.desire-rejected{margin:0;padding:10px 14px;border-left:3px solid var(--accent);background:var(--accent-wash);font:14px/1.5 var(--serif)}
.desire-rejected ul{margin:4px 0 0;padding-left:18px}

/* ---- desire results ---- */
.sw-results-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.sw-flag{margin:0 0 4px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chart{border:1px solid var(--rule);border-radius:6px;padding:14px 16px;background:var(--card);min-width:0}
html[data-theme="dark"] .study-workspace .chart{background:#20201e}
.chart-sub{font:12px/1.5 var(--mono);color:var(--ink-soft);margin:2px 0 0}
.chart-legend{display:flex;gap:6px 16px;flex-wrap:wrap;margin:8px 0 4px;font:11px var(--mono);letter-spacing:.04em;color:var(--ink-soft)}
.chart-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.chart-row>.chart:only-child,.chart-row>.chart:nth-child(3){grid-column:1/-1}
.reaction-group{margin-top:14px}
.reaction-label{font:13px var(--mono);margin:0 0 6px;overflow-wrap:anywhere}
.reaction-label small{color:var(--ink-soft)}
.reaction-track{display:flex;gap:2px;height:16px;border-radius:3px;overflow:hidden;background:var(--rule-soft)}
.reaction-segment{min-width:0}
.reaction-segment.reaction-0,.reaction-swatch.reaction-0{background:var(--accent-deep)}
.reaction-segment.reaction-1,.reaction-swatch.reaction-1{background:var(--second)}
.reaction-segment.reaction-2,.reaction-swatch.reaction-2{background:var(--ink-soft)}
.reaction-segment.reaction-missing,.reaction-swatch.reaction-missing{background:var(--rule-soft);box-shadow:inset 0 0 0 1px var(--rule)}
.reaction-key{display:flex;flex-wrap:wrap;gap:3px 12px;margin:5px 0 0;font:11px/1.5 var(--mono);color:var(--ink-soft)}
.reaction-swatch{display:inline-block;width:8px;height:8px;margin-right:4px;border-radius:1px}
.chart-empty{margin:8px 0 0;font:14px/1.5 var(--serif);color:var(--ink-soft)}
.desire-loading{min-height:170px;border:1px solid var(--rule);border-radius:6px;background:var(--card);display:flex;align-items:center;justify-content:center;gap:13px;padding:24px;color:var(--ink-soft);font:13px/1.5 var(--mono)}
.desire-loading-grid{display:grid;grid-template-columns:repeat(4,5px);gap:2px;transform:rotate(-8deg)}
.desire-loading-grid i{width:5px;height:5px;border-radius:1px;background:var(--accent);opacity:.2;animation:desire-shimmer 1.6s ease-in-out infinite}
.desire-loading-grid i:nth-child(4n + 2){animation-delay:.2s}.desire-loading-grid i:nth-child(4n + 3){animation-delay:.4s}.desire-loading-grid i:nth-child(4n){animation-delay:.6s}
.desire-loading-copy{display:flex;gap:9px;align-items:baseline;flex-wrap:wrap}
#desireElapsed{min-width:3ch;color:var(--faint);font-variant-numeric:tabular-nums}
@keyframes desire-shimmer{50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.desire-loading-grid i{animation:none;opacity:.7}}
.wt-wrap{overflow-x:auto;margin-top:6px}
.word-table{width:100%;border-collapse:collapse;font-size:15px}
.word-table th,.word-table td{padding:7px 8px 7px 0;border-bottom:1px solid var(--rule-soft);text-align:left;vertical-align:middle}
.word-table thead th{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
.word-table tbody th{font-weight:400;min-width:96px}
.word-table tr:last-child>*{border-bottom:0}
.wt-key{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;background:var(--c,var(--accent));vertical-align:-1px}
.wt-cell{white-space:nowrap;min-width:140px}
.wt-bar{display:inline-block;position:relative;width:calc(100% - 48px);min-width:48px;height:8px;border-radius:4px;background:var(--rule-soft);vertical-align:middle;overflow:hidden}
.wt-bar::before{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--f) * 100%);background:var(--c,var(--accent));border-radius:4px}
.wt-count{display:inline-block;width:44px;text-align:right;font:13px var(--mono);color:var(--ink);vertical-align:middle}
.bar-list{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;gap:8px 12px;align-items:center}
.bar-list li{display:contents}
.bar-label{font:12px var(--mono);color:var(--ink-soft);max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-count{font:13px var(--mono);text-align:right}
.bar-list .wt-bar{width:100%;min-width:0;height:10px}
.pips{display:flex;gap:6px;flex-wrap:wrap}
.pip{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--rule);background:var(--rule-soft)}
.pip.on{border-color:var(--c,var(--accent));background:var(--c,var(--accent))}
.bar-list.has-stack{grid-template-columns:max-content minmax(0,1fr)}
.stack{display:flex;height:22px;border-radius:3px;overflow:hidden;gap:2px;background:var(--rule-soft)}
.seg{flex:var(--f) 0 0;display:grid;place-items:center;font:500 12px var(--mono);min-width:0;overflow:hidden}
.seg.rel-high,.wt-key.rel-high{background:var(--accent-deep);color:var(--card)}
.seg.rel-some,.wt-key.rel-some{background:var(--accent-soft);color:var(--ink)}
.seg.rel-low,.wt-key.rel-low{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule)}
html[data-theme="dark"] .seg.rel-high{color:#241a06}
.study-workspace .sw-section-title{font:600 19px/1.35 var(--serif);margin:26px 0 10px}
.explanations{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;align-items:start}
.explanations>li{border-left:3px solid var(--accent);background:var(--card);padding:10px 14px;border-radius:0 6px 6px 0;min-width:0;overflow-wrap:anywhere}
html[data-theme="dark"] .explanations>li{background:#20201e}
.explanations .who{margin:0 0 4px;font:12px/1.5 var(--mono);color:var(--ink-soft)}
.explanations .words{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 8px}
.explanations .quote{margin:6px 0 0;font:16px/1.5 var(--serif)}
.explanations .quote-for{display:block;margin-top:8px;font:11px/1.5 var(--mono);color:var(--ink-soft)}
.chip{font:12px var(--mono);padding:2px 8px;border-radius:3px;border:1px solid var(--accent-soft);background:var(--accent-wash)}
.sw-more{margin-top:12px}

/* ---- storyboard ---- */
.sb-empty{max-width:64ch;padding:24px;border:1px dashed var(--rule);border-radius:6px;background:var(--card)}
.sb-empty p{margin:0 0 14px;font:16px/1.55 var(--serif)}
.sb-empty ul{margin:0 0 16px;padding:0;list-style:none;font:12px/1.8 var(--mono);color:var(--ink-soft)}
.sb-empty li.is-missing{color:var(--accent-deep)}
.sb-frame{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:6px 0 18px;font:15px/1.5 var(--serif);max-width:90ch}
.sb-frame dt{font:11px/1.9 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.sb-frame dd{margin:0;overflow-wrap:anywhere}
.sb-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sb-panel{display:flex;flex-direction:column;border:1.5px solid var(--ink-soft);border-radius:10px;background:var(--card);overflow:hidden;min-width:0}
html[data-theme="dark"] .sb-panel{background:#20201e}
.sb-art{aspect-ratio:3/2;border-bottom:1px solid var(--rule);background:var(--paper);display:block;width:100%;object-fit:cover}
.sb-scene{margin:0;padding:12px 14px;border-bottom:1px dashed var(--rule);background:var(--paper);font:14px/1.5 var(--serif);color:var(--ink-soft);overflow-wrap:anywhere}
.sb-scene b{display:block;margin-bottom:4px;font:500 10.5px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.sb-body{padding:10px 14px 12px;display:flex;flex-direction:column;gap:4px}
.sb-kind{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--second)}
.sb-caption{margin:0;font:16px/1.4 var(--serif);overflow-wrap:anywhere}
/* navigation + regenerate (top of a finished storyboard) */
.sb-nav{margin:0 0 14px}
.sb-back,.sb-link{border:0;background:none;padding:0;color:var(--accent-deep);font:500 12px/1.5 var(--mono);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent-soft)}
.sb-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px 0 0;text-decoration:none;letter-spacing:.02em}
.sb-back:hover,.sb-link:hover{color:var(--ink);text-decoration-color:currentColor}
.sb-back:hover span{transform:translateX(-2px)}
.sb-back span{transition:transform .18s var(--ease)}
.sb-meta{font:12px/1.5 var(--mono);color:var(--ink-soft)}
.sb-regen{margin:0 0 20px;padding:14px 16px;border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;background:var(--card);max-width:820px}
html[data-theme="dark"] .sb-regen{background:#20201e}
.sb-regen label{display:block;font:600 15px/1.4 var(--serif);color:var(--ink);margin-bottom:8px}
.sb-regen label span{font:400 12px var(--mono);color:var(--ink-soft)}
.sb-regen .sw-note{margin:8px 0 0}
.sb-saved-brief{margin-top:8px}
.sb-saved-brief summary{cursor:pointer;font:12px/1.5 var(--mono);color:var(--ink-soft);min-height:24px}
.sb-saved-brief .sb-frame{margin:8px 0 0;font-size:14px}
.sb-previous{margin-top:28px;padding-top:18px;border-top:1px dashed var(--rule)}
.sb-previous-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.sb-previous .sb-grid{opacity:.85}

/* gallery */
.sb-create{max-width:820px;padding:18px 20px;border:1px dashed var(--rule);border-radius:6px;background:var(--card)}
html[data-theme="dark"] .sb-create{background:#20201e}
.sb-create h3{margin-bottom:10px}
.sb-checklist{margin:0 0 14px;padding:0;list-style:none;display:grid;gap:4px;font:12px/1.7 var(--mono);color:var(--ink-soft)}
.sb-checklist li{display:grid;grid-template-columns:1.2em 7ch minmax(0,1fr);gap:0 8px;align-items:baseline}
.sb-checklist li.is-missing{grid-template-columns:1.2em auto;color:var(--accent-deep)}
.sb-brief-value{font:14px/1.45 var(--serif);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-create .sw-note{margin:0 0 10px}
.sb-create .btn{min-height:44px;padding:10px 16px}
.sb-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.sb-card{min-width:0}
.sb-card-link{display:flex;flex-direction:column;width:100%;height:100%;padding:0;border:1.5px solid var(--rule);border-radius:10px;background:var(--card);color:var(--ink);text-align:left;cursor:pointer;overflow:hidden;transition:border-color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease)}
html[data-theme="dark"] .sb-card-link{background:#20201e}
.sb-card-link:hover{border-color:var(--ink-soft);transform:translateY(-2px);box-shadow:0 6px 18px -12px rgba(0,0,0,.35)}
.sb-card-link:active{transform:translateY(0)}
.study-workspace .sb-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sb-thumb{display:block;aspect-ratio:3/2;background:var(--paper);border-bottom:1px solid var(--rule);overflow:hidden}
.sb-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.sb-thumb-empty{display:grid;place-items:center;height:100%;padding:12px;font:italic 14px/1.45 var(--serif);color:var(--ink-soft);text-align:center;overflow:hidden}
.sb-card-body{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px;min-width:0}
.sb-card-meta{display:flex;gap:6px;flex-wrap:wrap}
.sb-status,.sb-rev{padding:0 6px;border:1px solid var(--rule);border-radius:3px;font:500 10.5px/1.7 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.sb-status.is-completed{border-color:var(--accent-soft);background:var(--accent-wash);color:var(--accent-deep)}
.sb-status.is-running,.sb-status.is-queued{border-color:var(--second);color:var(--second)}
.sb-status.is-failed,.sb-status.is-interrupted{border-color:#b33c26;color:#b33c26}
html[data-theme="dark"] .sb-status.is-failed,html[data-theme="dark"] .sb-status.is-interrupted{border-color:#e2765f;color:#e2765f}
.sb-rev{border-style:dashed}
.sb-card-title{font:600 15px/1.35 var(--serif);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.sb-card-caption{font:13.5px/1.4 var(--serif);color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sb-card-feedback{font:11.5px/1.45 var(--mono);color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sb-card-date{margin-top:auto;padding-top:4px;font:11.5px/1.5 var(--mono);color:var(--ink-soft)}
.sb-history{margin-top:8px;max-width:1200px}
.sb-history-empty{font:15px/1.5 var(--serif);color:var(--ink-soft);margin:0}
.study-workspace .sb-more{margin-top:16px;min-height:44px;padding:10px 18px}
@media(prefers-reduced-motion:reduce){.sb-card-link,.sb-back span{transition:none}.sb-card-link:hover{transform:none}}
.sb-feedback-row{display:flex;gap:10px;align-items:flex-start}
.sb-feedback-row textarea{flex:1;min-height:64px;padding:10px 12px;border:1px solid var(--rule);border-left:2px solid var(--rule);border-radius:3px;background:var(--card);color:var(--ink);font:16px/1.5 var(--serif);resize:vertical;caret-color:var(--accent)}
.sb-feedback-row .btn{flex:none;min-height:64px;padding:10px 16px}

@media(max-width:1100px){.sb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
  .study-workspace h2{font-size:23px}
  .chart-row{grid-template-columns:minmax(0,1fr)}
  .sb-grid{grid-template-columns:minmax(0,1fr)}
  .sb-frame{grid-template-columns:minmax(0,1fr)}
  .sb-feedback-row{flex-direction:column;align-items:stretch}
  .sb-checklist li{grid-template-columns:1.2em minmax(0,1fr)}
  .sb-brief-value{grid-column:2}
  .sb-feedback-row .btn{min-height:44px}
}
@media(max-width:560px){
  .study-tabs{gap:16px;flex-wrap:wrap}
  .desire-bar{align-items:stretch}
  .desire-bar .btn,.desire-attach{flex:1;justify-content:center}
  .bar-label{max-width:12ch}
  .sb-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}

/* Compact desirability evidence. */
.word-table .word-group th{padding-top:18px;font:600 12px/1.5 var(--mono);letter-spacing:.06em;border-bottom:1px solid var(--rule)}
.word-group-positive{color:var(--second)}
.word-group-neutral{color:var(--ink-soft)}
.word-group-negative{color:var(--accent-deep)}
.explanations .participant-name{margin:0;font:600 16px/1.5 var(--serif)}
.short-reason{margin:14px 0}
.short-reason h4{margin:0 0 6px;font:600 17px/1.35 var(--serif)}
.short-reason>p:last-child,.reason-unavailable{margin:0;font:16px/1.5 var(--serif)}
.full-response{margin-top:14px;border-top:1px solid var(--rule);padding-top:10px}
.full-response summary{cursor:pointer;font:12px/1.6 var(--mono);color:var(--ink)}
.full-response summary:focus-visible{outline-offset:4px}
.full-response[open]>p.who{margin-top:12px}
