/* Creation and reading use the same saved theme as the rest of the app. */
.srOnly { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.workshopFilters,.workshopSteps { display:flex; gap:8px; }
.workshopFilters { margin-bottom:24px; }
.workshopFilters button,.workshopSteps button { min-height:44px; padding:9px 18px; border:1px solid transparent; background:transparent; border-radius:12px; color:var(--dim); font-size:14px; cursor:pointer; }
.workshopFilters button[aria-pressed="true"],.workshopSteps button[aria-pressed="true"] { background:var(--accent-soft); color:var(--accent); border-color:var(--accent-line); }
.workshopResume { display:flex; align-items:center; gap:12px; padding:16px 20px; margin-bottom:24px; width:100%; border:1px dashed var(--accent-line); background:var(--panel); color:var(--text); border-radius:14px; text-align:left; cursor:pointer; }
.workshopResume>span:first-of-type { flex:1; overflow-wrap:anywhere; }
.workshopResume>.uiIcon { width:20px; color:var(--accent); flex-shrink:0; }
.workshopResume .muted { font-size:13px; white-space:nowrap; }
.workshopCards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.workshopCard { overflow:hidden; border:1px solid var(--line); border-radius:18px; background:var(--panel); }
.workshopCard>img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; object-position:50% 30%; }
.workshopCardBody { padding:20px; }
.workshopBadge { display:inline-block; font-size:12px; color:var(--accent); }
.workshopCard h2 { margin:10px 0 8px; overflow-wrap:anywhere; }
.workshopCard p { color:var(--dim); font-size:14px; line-height:1.8; margin:0 0 20px; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.workshopCardFoot { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--dim); font-size:12px; }
.workshopCardFoot .btnGhost { display:flex; align-items:center; gap:8px; }
.workshopCardFoot .uiIcon { width:16px; }
.workshopLoadMore { display:block; margin:24px auto 0; }
.workshopEditorLayout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:28px; align-items:start; }
.characterEditor { min-width:0; }
.workshopSteps { padding:0 0 20px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.workshopFields { min-width:0; margin:0; padding:0; border:0; }
.workshopFields .formRow:last-child { margin-bottom:24px; }
.workshopFields input,.workshopFields textarea { width:100%; box-sizing:border-box; }
.workshopJsonToolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.workshopJsonToolbar label { font-size:14px; color:var(--dim); }
.workshopJsonToolbar .btnGhost { min-height:44px; padding:8px 14px; }
.workshopJson>textarea { display:block; min-height:380px; padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--input-bg); color:var(--text); font:13px/1.75 ui-monospace,SFMono-Regular,Consolas,monospace; tab-size:2; resize:vertical; }
.workshopJson>textarea:focus { outline:2px solid var(--accent-line); outline-offset:2px; }
.workshopJson>textarea[aria-invalid="true"] { border-color:var(--danger); }
.workshopJsonError { color:var(--danger); font-size:13px; line-height:1.7; margin:10px 0 18px; overflow-wrap:anywhere; }
.workshopAi { padding:18px 0; border-top:1px solid var(--line); }
.workshopAiToggle { display:flex; align-items:center; gap:10px; width:100%; padding:0; min-height:44px; background:none; border:0; color:var(--text); cursor:pointer; text-align:left; font-size:14px; }
.workshopAiToggle>.uiIcon { width:18px; color:var(--accent); }
.workshopAiToggle>.uiIcon:last-child { margin-left:auto; color:var(--dim); }
.workshopAi textarea { display:block; width:100%; box-sizing:border-box; margin:12px 0; padding:14px; border-radius:12px; background:var(--input-bg); border:1px solid var(--line); color:var(--text); font:inherit; resize:vertical; }
.workshopEditorActions { position:sticky; bottom:-48px; z-index:2; display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:8px; padding:18px 0; background:var(--bg); border-top:1px solid var(--line); }
.workshopEditorActions button { min-height:44px; padding:10px 16px; }
.workshopSaveState { display:flex; align-items:center; justify-content:space-between; color:var(--dim); font-size:12px; flex:1 0 100%; min-height:18px; gap:12px; }
.workshopEditorActions .workshopDiscardButton { flex:0 0 auto; padding:4px 0; border:0; background:none; color:var(--dim); font-size:12px; cursor:pointer; }
.workshopError { padding:12px 0; color:var(--danger); }
.workshopError .btnGhost { display:block; margin-top:12px; }
.workshopPreview { position:sticky; top:0; overflow:hidden; border-radius:16px; background:var(--panel); border:1px solid var(--line); }
.workshopPreview>img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:50% 30%; }
.workshopPreview>div { padding:20px; }
.workshopPreview h2 { margin:0; overflow-wrap:anywhere; }
.workshopPreviewName { color:var(--accent); margin:8px 0 0; }
.workshopPreviewOpening { white-space:pre-wrap; overflow-wrap:anywhere; color:var(--dim); line-height:1.9; font-size:14px; max-height:240px; overflow-y:auto; }
.statusRows .statusRow { flex-wrap:wrap; gap:8px; padding:10px 0; border-bottom:1px solid var(--line); }
.statusRows .statusRow:last-child { border-bottom:0; }
.statusRows .statusVal { overflow-wrap:anywhere; white-space:pre-wrap; text-align:right; }
.statusRows .statusKey { min-width:0; overflow-wrap:anywhere; }
.statusRows .stBar { min-width:40px; max-width:100px; }
.chatPanelButton { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px 10px; border:0; border-radius:10px; background:transparent; color:var(--text); font-size:13px; white-space:nowrap; cursor:pointer; }
.chatPanelButton:hover { background:var(--accent-soft); }
.chatPanelButton .uiIcon { width:18px; height:18px; color:var(--accent); }
.chatTop>div:not(.chatTopRight) { min-width:0; }
.chatTopName { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chatTopRight { margin-left:auto; gap:2px; flex-shrink:0; }
.characterRail { display:none; }
.characterRail h2 { margin:0 0 20px; font-family:var(--reading-font); font-size:20px; }
.characterNotes { border-top:1px solid var(--line); margin-top:24px; padding-top:16px; }
.characterNotes summary { cursor:pointer; min-height:44px; color:var(--dim); }
.characterNotes p { font-size:14px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.historyStatus { max-width:430px; margin:4px 0 18px; padding:0 16px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.historyStatus summary { display:flex; align-items:center; min-height:44px; cursor:pointer; color:var(--dim); font-size:12px; }
.historyStatus summary::after { content:'＋'; margin-left:auto; }
.historyStatus[open] summary::after { content:'−'; }
.chatToolGrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
.chatToolGrid button { display:flex; align-items:center; gap:12px; min-height:54px; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--panel2); color:var(--text); font:inherit; font-size:14px; cursor:pointer; }
.chatToolGrid button:hover { border-color:var(--accent-line); background:var(--accent-soft); }
.chatToolGrid .uiIcon { width:20px; height:20px; color:var(--accent); }
.composerTools { flex-wrap:nowrap; gap:4px; }
.composerTools .toolChip { min-height:44px; padding:8px 10px; font-size:12px; white-space:nowrap; }
.composerTools .modelChoice { margin-right:auto; overflow:hidden; text-overflow:ellipsis; }
.modelChoice>.uiIcon { display:inline; width:14px; height:14px; vertical-align:middle; margin-left:6px; }
.composerFoot { justify-content:flex-end; }
.sheet-workshopTrial { width:min(700px,calc(100vw - 32px)); }
.sheet-workshopTrial .sheetBody { min-height:0; }
.trialToolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--dim); font-size:12px; }
.trialToolbar .btnGhost { flex-shrink:0; }
.trialMessages { min-height:120px; max-height:42vh; overflow:auto; padding:12px 0; }
.trialMessage { padding:14px 18px; margin:0 28px 16px 0; border:1px solid var(--line); border-radius:14px; background:var(--panel2); font-size:15px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.trialMessage.user { margin:0 0 16px 28px; background:var(--accent-soft); }
.trialComposer { display:flex; gap:10px; align-items:flex-end; }
.trialComposer textarea { width:100%; min-width:0; resize:vertical; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--input-bg); color:var(--text); font:inherit; font-size:15px; }
.trialComposer .btnPrimary { flex-shrink:0; }
.trialCost { color:var(--dim); font-size:12px; margin:0; }
.trialError { color:var(--danger); margin:0; font-size:14px; }
@media(min-width:1440px) {
  .characterRail { display:block; flex:0 0 250px; padding:28px 20px; border-left:1px solid var(--line); overflow-y:auto; background:var(--panel); }
  .characterButton { display:none; }
}
@media(max-width:1100px) {
  .workshopEditorLayout { grid-template-columns:minmax(0,1fr) 240px; gap:20px; }
}
@media(max-width:700px) {
  .workshopCards { grid-template-columns:minmax(0,1fr); gap:20px; }
  .workshopEditorLayout { display:block; }
  .workshopPreview { display:none; }
  .workshopSteps { gap:4px; }
  .workshopSteps button { flex:1; padding:8px; }
  .workshopEditorActions { bottom:-34px; padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px)); }
  .workshopSaveState { min-height:16px; }
  .workshopEditorActions button { flex:1; padding:9px; }
  .workshopResume { padding:14px; gap:8px; }
  .chatTop { gap:8px; padding-left:12px; padding-right:12px; }
  .chatTopName { max-width:100%; font-size:18px; }
  .chatPanelButton { gap:4px; padding:8px 6px; }
  .chatPanelButton .uiIcon { width:16px; }
  .composerTools .toolChip { padding:8px 6px; font-size:11px; }
  .composerTools .modelChoice { min-width:0; }
  .sheet-workshopTrial { width:calc(100vw - 20px); max-height:calc(100dvh - 24px); }
  .trialMessages { max-height:38dvh; }
}
@media(max-width:420px) {
  .workshopSteps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .workshopJson>textarea { min-height:360px; padding:12px; font-size:12px; }
  .chatTopAvatar { display:none; }
  .chatTop>div:not(.chatTopRight) { flex:1; }
}
