/* Measured Lovart geometry. Scope strictly to generation, never the workflow view.
   Reference viewport 1810x932: home rail 60, input pane 520, project chat 400.
   The reference's 48px promotional banner is intentionally not reproduced. */
body.view-chat {--generation-home-pane:520px;--generation-project-pane:400px;}
body.view-chat #layout {grid-template-columns:60px minmax(0,1fr)!important;}
body.view-chat .rail {width:60px!important;box-sizing:border-box;}
#viewChat #workspace #workBody {grid-template-columns:var(--generation-home-pane) minmax(0,1fr)!important;}
#viewChat #workspace.generation-project #workBody {grid-template-columns:var(--generation-project-pane) minmax(0,1fr)!important;}
#viewChat #workspace.generation-project.project-chat-collapsed #workBody {grid-template-columns:0 minmax(0,1fr)!important;}
#viewChat #workspace:not(.generation-project) #workMain {flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:0 16px 80px!important;box-sizing:border-box;}
#viewChat #workspace:not(.generation-project) #workScroll {display:none!important;}
#generationStartGroup {display:contents;}
#viewChat #workspace:not(.generation-project) #generationStartGroup {display:flex;flex-direction:column;align-items:center;position:relative;width:100%;max-width:488px;gap:28px;}
#viewChat #workspace:not(.generation-project) #sourceComposeHero {display:block!important;position:static!important;margin:0!important;width:100%!important;order:0;}
#viewChat #workspace:not(.generation-project) #sourceComposeHero h2 {font-size:20px;line-height:24px;font-weight:400;}
#viewChat #workspace:not(.generation-project) #workMain #composerDock {position:static!important;inset:auto!important;padding:0!important;margin:0!important;width:100%!important;max-width:none!important;order:1;}
#viewChat #workspace:not(.generation-project) #sourceComposeHints {display:flex!important;flex-direction:column!important;position:absolute!important;top:calc(100% + 24px);left:16px;align-items:flex-start;gap:24px;margin:0!important;width:calc(100% - 32px)!important;order:2;}
#viewChat #workspace #sourceComposeHints button {font-size:14px;line-height:18px;gap:12px;color:#999;text-align:left;}
#generationClipperHint svg {color:#58c7af;flex:none;}
#viewChat #workspace.generation-project #sourceComposeHero,#viewChat #workspace.generation-project #sourceComposeHints {display:none!important;}
#viewChat #workspace #composerGlassChat {background:#1f1f1f!important;border:1px solid #363636!important;border-radius:24px!important;box-shadow:none!important;backdrop-filter:none!important;}
#viewChat #workspace #composerChat {padding:12px 8px 8px!important;border:0!important;background:transparent!important;min-height:120px!important;box-sizing:border-box;gap:8px!important;}
#viewChat #workspace #composerChat .composer-main {padding:0 8px!important;min-height:60px!important;display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;}
#viewChat #composerChat .composer-skill-chip{display:inline-flex;align-items:center;gap:6px;flex:0 1 auto;order:-2;height:28px;max-width:100%;padding:0 6px 0 8px;border:1px solid #ffffff2e;border-radius:8px;background:#2a2a2a;color:#eee;font-size:13px;line-height:20px;box-sizing:border-box}
#viewChat #composerChat .composer-skill-chip.hidden{display:none!important}
#viewChat #composerChat .composer-skill-ico{display:grid;place-items:center;width:16px;height:16px;color:#ddd;flex:none}
#viewChat #composerChat .composer-skill-ico svg{display:block}
#viewChat #composerSkillName{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#viewChat #composerChat .composer-skill-x{flex:none;width:20px;height:20px;border:0;border-radius:6px;background:none;color:#8a8a8a;cursor:pointer;font:400 14px/1 inherit}
#viewChat #composerChat .composer-skill-x:hover{color:#fff;background:#ffffff14}
#viewChat #workspace #composerChat.has-skill .composer-main{min-height:88px!important}
#viewChat #workspace #workMain #promptChat {font-size:14px!important;line-height:25px!important;min-height:56px!important;height:56px;padding:0 8px!important;}
#viewChat #workspace #composerChat .composer-bar {padding:0!important;min-height:32px;gap:8px!important;}
#viewChat #workspace #composerChat .bar-right {gap:8px!important;align-items:center;min-height:32px!important;height:32px!important;}
#viewChat #workspace #composerChat .source-compose-tools {margin-right:auto;}
#viewChat #workspace #btnRunChat {width:32px!important;height:32px!important;min-width:32px!important;border:0!important;background:#323232!important;box-shadow:none!important;}
#viewChat #workspace:not(.generation-project) #btnMicChat,#viewChat #workspace:not(.generation-project) .generation-settings {display:none!important;}
#viewChat #workspace #pinterestAddSource,#viewChat #workspace #pinterestPreferences {width:32px;height:32px;padding:6px;border:0;background:none;}
#viewChat #workspace #generationLibrary #chatTopbar {height:40px!important;min-height:40px!important;box-sizing:border-box;padding:8px!important;border-bottom:0;}
#viewChat #workspace #cfbSourceRow {height:24px;gap:4px;align-items:center;}
#viewChat #workspace .cfb-source {height:28px;min-height:28px;padding:4px 10px!important;font-size:12px!important;gap:6px!important;border-radius:8px;}
#viewChat #workspace.generation-project .cfb-source {font-size:0!important;width:30px;padding:4px 6px!important;}
#viewChat #workspace #generationLibrary {background:#161616;}
#viewChat #workspace .material-tabs,#viewChat #workspace .chuyan-clip-tabs {height:40px;min-height:40px;box-sizing:border-box;padding:0 20px;gap:24px;}
#viewChat #workspace .material-tabs button,#viewChat #workspace .chuyan-clip-tabs button {font-size:12px;line-height:20px;}
#viewChat #workspace #gspMaterials,#viewChat #workspace #gspClip {background:#161616;}
@media(max-width:1100px){body.view-chat{--generation-home-pane:400px;--generation-project-pane:340px;}}
@media(max-width:760px){body.view-chat{--generation-home-pane:300px;--generation-project-pane:300px;}#viewChat #workspace:not(.generation-project) #workMain{padding-left:12px!important;padding-right:12px!important;}#viewChat #workspace #sourceComposeHints button{font-size:12px;}}
/* Measured Lovart Multi-Angles panel at 1810×932, independent of canvas zoom. */
body.view-chat #anglePanel{width:260px;padding:12px;background:#202020;border:1px solid #343434;border-radius:12px;box-shadow:none;}
body.view-chat #anglePanel header{height:20px;margin:0 4px 12px;}
body.view-chat #anglePanel h2{font-size:12px;line-height:20px;font-weight:600;}
body.view-chat #anglePanel [data-angle-reset]{width:24px;height:24px;padding:0;}
body.view-chat #anglePanel .angle-tabs{height:32px;box-sizing:border-box;padding:3px;margin:0;background:#303030;border-radius:8px;}
body.view-chat #anglePanel .angle-tabs button{padding:0;font-size:12px;border-radius:6px;}
body.view-chat #anglePanel .angle-tabs button.on{background:#161616;}
body.view-chat #anglePanel .angle-stage{height:250px;margin:0;}
body.view-chat #anglePanel .angle-row{font-size:12px;line-height:18px;margin:8px 0 10px;}
body.view-chat #anglePanel .angle-row b{font-weight:400;color:#999;}
body.view-chat #anglePanel input[type=range]{display:block;appearance:none;-webkit-appearance:none;height:12px;width:100%;margin:0;border:0;background:transparent;cursor:pointer;}
body.view-chat #anglePanel input[type=range]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,#fff var(--angle-progress,50%),#606060 var(--angle-progress,50%));}
body.view-chat #anglePanel input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:12px;height:12px;border-radius:50%;border:2px solid #202020;background:radial-gradient(circle,#202020 1px,#fff 2px);margin-top:-5px;}
body.view-chat #anglePanel footer{height:32px;gap:8px;margin:12px 0 0;}
body.view-chat #anglePanel footer button{font-size:12px;font-weight:400;padding:0;border:1px solid #393939;border-radius:8px;background:transparent;}
body.view-chat #anglePanel footer .angle-run{background:#fff;color:#161616;border-color:#fff;}
body.view-chat #anglePanel .angle-capability-note{font-size:11px;line-height:16px;color:#aaa;margin:10px 0 0;}
body.view-chat #anglePanel .angle-tabs button:disabled{opacity:.45;cursor:not-allowed;}
body.view-chat > .selection-more-items{position:fixed;z-index:10030;min-width:176px;max-height:calc(100vh - 16px);overflow:auto;padding:6px;background:#252525;border:1px solid #393939;border-radius:10px;box-shadow:0 12px 32px #0005;display:grid;gap:2px;}
body > .selection-more-items[hidden],body:not(.view-chat) > .selection-more-items{display:none!important;}
body.view-chat > .selection-more-items button{display:flex;align-items:center;justify-content:flex-start;border:0;border-radius:6px;background:none;color:#ccc;padding:7px 10px;height:auto;min-width:0;font-size:12px;line-height:18px;cursor:pointer;}
body.view-chat > .selection-more-items button:hover{color:#fff;background:#383838;}
body.view-chat > .selection-more-items .selection-tool-label{display:block;font-size:12px;}
/* Batch placeholders and results use the same two-column chat footprint. */
body.view-chat #workMain .tl-card--batch .tl-batch-grid,
body.view-chat #workMain .tl-card--batch .tl-result-grid--batch{
  --cols:2!important;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  width:100%;max-width:100%;gap:8px;align-items:start;
}
body.view-chat #workMain .tl-batch-slot .load-card,
body.view-chat #workMain .tl-card--batch .tl-media-tile{
  width:100%;max-width:100%!important;min-width:0;
  aspect-ratio:var(--tl-ar,16/9);border-radius:8px;
}
body.view-chat #workMain .tl-batch-load-card{
  background:#242424;border:1px solid #343434;box-shadow:none;
}
body.view-chat #workMain .tl-batch-load-card .grainient-host,
body.view-chat #workMain .tl-batch-load-card .load-grain-css{display:none;}
body.view-chat #workMain .tl-batch-load-card .load-caption{
  inset:0;display:flex;align-items:center;justify-content:center;
  padding:8px;font-size:12px;line-height:18px;color:#aaa;
}
