@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap');
.creator-dialog{width:min(880px,calc(100% - 24px))}.editor-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:24px;overflow:auto}.editor-tabs button{white-space:nowrap;background:transparent;border-color:transparent}.editor-tabs [aria-selected=true]{background:var(--raised);color:var(--accent);border-color:var(--line)}.editor-intro{margin-bottom:0}.field-help{font-size:.875rem;line-height:1.55;color:var(--muted);margin:4px 0 10px}.explain-box{border-left:3px solid var(--accent);background:var(--panel);padding:16px 20px;margin:18px 0 24px;border-radius:0 10px 10px 0}.explain-box p{color:var(--muted);font-size:.875rem;margin:6px 0 0}.explain-box .attention{color:var(--accent)}.repeat-item{background:var(--bg);border:1px solid var(--line);padding:14px;border-radius:10px;margin:12px 0}.repeat-item label{margin:0}.repeat-item textarea{margin-top:10px;min-height:150px}.repeat-item button{font-size:.8rem}details{padding:16px 0;border-top:1px solid var(--line);margin-top:18px}summary{cursor:pointer;font-size:.95rem;font-weight:500}summary .muted{font-weight:400}.assignment-fieldset{border:0;padding:0;margin:20px 0}.assignment-fieldset legend{font-size:1rem;color:var(--text);font-weight:600}.assignment-list,#book-characters{max-height:340px;overflow:auto}.assignment{display:flex;align-items:flex-start;gap:13px;background:var(--bg);padding:13px 15px;border:1px solid var(--line);border-radius:9px;color:var(--text);margin:8px 0}.assignment input{margin-top:5px;flex-shrink:0}.assignment span{min-width:0;overflow-wrap:anywhere}.assignment small{display:block;font-size:.8rem}.book-symbol{font-size:2rem;color:var(--accent)}.book-card h2{margin:16px 0 8px}.book-card>p{overflow-wrap:anywhere}.book-card .row:last-child{margin-top:18px}.entry-excerpt{white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.creator-dialog section[hidden]{display:none}#character-form section>h3{font-family:'Lora',Georgia,serif;font-size:1.25rem;margin-bottom:8px}#character-form section>p.muted{font-size:.875rem}#character-form textarea{min-height:140px}.editor-tabs button:focus-visible{outline-offset:-3px}@media(max-width:720px){.editor-tabs{gap:2px}.editor-tabs button{padding:9px 10px}.creator-dialog{max-height:94dvh}.creator-dialog .modal-footer{gap:6px}.creator-dialog .modal-footer button{padding:8px 10px}.explain-box{padding:14px 16px}.book-card h2{font-size:1.35rem}}
.chat-main,.messages{min-height:0}.composer-bottom button{white-space:nowrap}@media(max-width:450px){.composer-bottom{flex-wrap:wrap}.composer-bottom>.row{margin-left:auto}.modal-footer{flex-wrap:wrap}}
:root{color-scheme:dark;--bg:#11131b;--panel:#171923;--raised:#20232f;--line:#303340;--text:#eeedf2;--muted:#a5a6b5;--accent:#d7a96b;--ink:#171923;--body:16px;--gap:26px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:var(--body)/1.6 'DM Sans',system-ui,sans-serif}body.light{color-scheme:light;--bg:#f5f5f8;--panel:#fff;--raised:#e9eaf0;--line:#d3d5e0;--text:#242634;--muted:#616574;--ink:#171923}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:var(--raised);color:var(--text);border-radius:9px;padding:9px 14px;font-size:.875rem;font-weight:500}button:hover{border-color:var(--accent);filter:brightness(1.09)}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink);font-weight:700}button.ghost{background:transparent;border-color:transparent}button.danger{color:#ff9696}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:var(--accent)}input,textarea,select{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:11px 13px;min-width:0}textarea{resize:vertical;min-height:95px}input[type=checkbox]{width:auto;accent-color:var(--accent)}label{display:block;color:var(--muted);font-size:.875rem;margin:14px 0 6px}h1,h2,h3,p{margin-top:0}h1,h2,.serif{font-family:'Lora',Georgia,serif;font-weight:400}h1{font-size:2.15rem;margin-bottom:8px;line-height:1.25}h2{font-size:1.65rem}h3{font-size:1rem}small,.muted{color:var(--muted)}small{font-size:.8rem}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;color:var(--accent);font-weight:600}.shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;background:var(--panel);border-right:1px solid var(--line);padding:30px 18px 18px;display:flex;flex-direction:column;gap:6px}.brand{display:flex;align-items:center;gap:11px;padding:0 12px 32px;font-family:'Lora',serif;font-size:1.4rem}.mark{color:var(--accent);font-size:1.85rem}.sidebar button{text-align:left;border:0;background:transparent;color:var(--muted);padding:12px 15px}.sidebar button.active{background:var(--raised);color:var(--accent)}.nav-icon{display:inline-block;width:26px}.side-bottom{margin-top:auto;padding-top:20px}.storage-note{font-size:.75rem;padding:13px;color:var(--muted);border-top:1px solid var(--line)}main{min-width:0}.topbar{position:sticky;top:0;z-index:4;height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:var(--bg);gap:15px}.topbar .crumb{font-size:.875rem;color:var(--muted)}.badge{display:inline-block;padding:4px 10px;border-radius:20px;background:var(--raised);color:var(--muted);font-size:.75rem;white-space:nowrap}.content{max-width:1350px;margin:auto;padding:44px 42px}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:30px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:24px;flex-wrap:wrap}.toolbar input{max-width:380px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;position:relative}.card-art{height:145px;background:linear-gradient(135deg,#30334c,#1e2434);display:flex;align-items:center;justify-content:center;position:relative}.card:nth-child(2n) .card-art{background:linear-gradient(135deg,#34384c,#25383c)}.card:nth-child(3n) .card-art{background:linear-gradient(135deg,#46353e,#28283d)}.monogram{font-family:'Lora',serif;font-size:3.6rem;color:#e2c8a5;opacity:.9}.card-art img{width:100%;height:100%;object-fit:cover}.favorite{position:absolute;right:10px;top:10px;background:#171923bb;border:0;color:#f2dab7;font-size:1.15rem;padding:3px 9px}.card-body{padding:21px}.card h2{font-size:1.35rem;margin:0 0 8px}.card p{font-size:.875rem;color:var(--muted);height:66px;overflow:hidden}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:19px;min-height:24px}.tag{font-size:.75rem;background:var(--raised);border-radius:5px;padding:2px 8px;color:var(--muted)}.card-actions{display:flex;gap:6px}.card-actions .primary{flex:1}.notice{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:18px 22px;margin:22px 0;display:flex;gap:20px;align-items:center;justify-content:space-between}.notice p{margin:0;font-size:.875rem;color:var(--muted)}.notice strong{display:block;color:var(--text);margin-bottom:3px}.empty{padding:60px 24px;text-align:center;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.row{display:flex;align-items:center;gap:12px}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:grid;gap:14px}.list-item{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.list-item p{margin:4px 0 12px;color:var(--muted)}.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;height:calc(100dvh - 76px)}.chat-main{min-width:0;display:flex;flex-direction:column;height:100%;background-size:cover;background-position:center}.chat-head{padding:17px 27px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent)}.chat-head h2{font-size:1.2rem;margin:0}.chat-head select{max-width:260px;font-size:.875rem}.messages{flex:1;overflow-y:auto;padding:30px max(25px,calc((100% - 750px)/2));scroll-behavior:smooth}.message{margin-bottom:var(--gap);display:grid;grid-template-columns:37px minmax(0,1fr);gap:13px}.avatar{width:36px;height:36px;border-radius:10px;background:var(--raised);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:.85rem;object-fit:cover}.message.user .avatar{background:#324049;color:#aecbcd}.message-name{font-weight:600;font-size:.875rem}.message-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;margin:8px 0;font-family:'Lora',Georgia,serif}.message.user .message-text{font-family:inherit;color:var(--muted)}.message.ooc{border-left:2px solid var(--accent);padding-left:10px}.message-actions{display:flex;gap:4px;flex-wrap:wrap}.message-actions button{font-size:.75rem;padding:3px 7px;background:transparent;color:var(--muted);border-color:transparent}.composer{padding:16px 26px max(18px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel)}.composer textarea{min-height:74px;max-height:190px;border:0;background:transparent;padding:4px 0}.composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.composer label{margin:0}.story-panel{border-left:1px solid var(--line);padding:25px 21px;background:var(--panel);overflow-y:auto}.story-panel h3{font-weight:500;margin:0 0 7px}.story-panel p{color:var(--muted);font-size:.875rem;white-space:pre-wrap;overflow-wrap:anywhere}.story-panel section{border-bottom:1px solid var(--line);padding:0 0 20px;margin-bottom:22px}.story-panel button{font-size:.8rem}.alert{padding:10px 16px;background:#573438;color:#ffd9d9;font-size:.875rem}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:25px}.panel h2{font-size:1.3rem}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;width:min(650px,calc(100% - 24px));max-height:90dvh;overflow:auto}dialog::backdrop{background:#070911bb;backdrop-filter:blur(5px)}dialog h2{margin-bottom:12px}.modal-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.modal-top button{font-size:1.2rem}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;position:sticky;bottom:-28px;padding:14px 0;background:var(--panel)}.cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.help{font-size:.8rem;color:var(--muted);margin:9px 0}.model-list{max-height:55dvh;overflow:auto;margin-top:15px}.model-row{padding:15px 0;border-bottom:1px solid var(--line)}.model-row strong{overflow-wrap:anywhere}.model-row p{font-size:.8rem;color:var(--muted);margin:4px 0}.model-row button{padding:5px 10px}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:17px;border-radius:9px;font-size:.8rem}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:9px;z-index:5;max-width:90%;display:none}.mobile-menu{display:none}.divider{height:1px;background:var(--line);margin:22px 0}.check{display:flex;gap:10px;align-items:center}.check label{margin:0}.summary-preview{max-height:320px;overflow:auto;white-space:pre-wrap}.search-hit{color:var(--accent)}body.hide-avatars .avatar{display:none}body.hide-avatars .message{grid-template-columns:1fr}body.sans-chat .message-text{font-family:inherit} @media(max-width:1150px){.chat-layout{grid-template-columns:1fr}.story-panel{display:none}.story-panel.open{display:block;position:fixed;right:0;top:76px;bottom:0;width:300px;z-index:3;box-shadow:-20px 0 60px #0005}.content{padding:30px}.shell{grid-template-columns:215px minmax(0,1fr)}}@media(max-width:720px){.shell{grid-template-columns:1fr}.sidebar{display:none;position:fixed;width:250px;z-index:4;box-shadow:20px 0 60px #0008}.sidebar.open{display:flex}.mobile-menu{display:inline-block}.topbar{height:64px;padding:0 15px}.topbar .crumb{display:none}.content{padding:26px 18px}.heading{flex-direction:column;gap:15px}.heading h1{font-size:1.8rem}.grid{grid-template-columns:repeat(auto-fill,minmax(235px,1fr))}.settings-grid,.cols{grid-template-columns:1fr}.chat-layout{height:calc(100dvh - 64px)}.chat-head{padding:13px 16px}.chat-head .row{flex-wrap:wrap;gap:8px}.chat-head select{max-width:200px}.messages{padding:22px 16px}.composer{padding:13px 16px max(16px,env(safe-area-inset-bottom))}.notice{align-items:flex-start;flex-direction:column;gap:12px}.story-panel.open{top:64px}.badge.optional{display:none}button{min-height:38px}.message-actions button{min-height:32px}.toolbar input{max-width:none;flex:1 1 200px}.panel{padding:20px}dialog{padding:20px}.modal-footer{bottom:-20px}.card p{height:auto;min-height:44px}}
.scenario-panel{min-width:285px}.cast-row{display:grid;grid-template-columns:10px minmax(0,1fr);column-gap:9px;margin:12px 0}.cast-row small{grid-column:2;color:var(--muted);font-size:.8rem}.status-dot{width:8px;height:8px;border-radius:50%;margin-top:7px;background:var(--muted)}.status-present{background:#7bc79a}.status-nearby{background:#d7a96b}.status-elsewhere{background:#8c91a8}.scenario-panel select{margin-top:8px}.pending-scene{border-left:2px solid var(--accent);padding-left:12px}
/* Memory timeline and independent character bubbles */
.message-turn{margin-bottom:24px}.message-turn>.message-actions{margin-left:54px;display:flex;flex-wrap:wrap;gap:8px}.message-turn .message{margin-bottom:12px}.bubble-body{min-width:0;background:var(--panel,#191c27);border:1px solid var(--line,#2c3040);border-radius:14px;padding:16px 18px}.message-turn .message-text{overflow-wrap:anywhere}.message-turn .check{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;margin:0}.message-turn .check input{width:auto}.memory-timeline{display:grid;gap:12px;margin-top:20px}.memory-card{border:1px solid var(--line,#303545);border-radius:12px;padding:15px;margin:12px 0}.memory-card summary{cursor:pointer;font-weight:600;line-height:1.7}.memory-card summary small{font-weight:400;color:var(--muted);margin-left:8px}.memory-card[open] summary{margin-bottom:14px}.memory-order{display:inline-block;min-width:26px;color:var(--accent)}.memory-content{white-space:pre-wrap;overflow-wrap:anywhere}.disabled-card{opacity:.65}.memory-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.memory-meta-grid label{margin-top:8px}.memory-meta-grid label:last-child{grid-column:1/-1}.story-panel section>button{margin:4px 4px 4px 0}#draft-cards textarea,#memory-form textarea,#new-story-summary{min-height:160px}.memory-card .row{gap:8px}.message-turn .message-actions button{min-height:30px}#memory-settings>label{display:block;margin-top:16px}.message-turn .message-actions input{accent-color:var(--accent)}@media(max-width:720px){.memory-meta-grid{grid-template-columns:1fr}.message-turn>.message-actions{margin-left:0}.bubble-body{padding:12px}.message-turn .message{gap:8px}.memory-card{padding:12px}.scenario-panel{min-width:0}}
.notebook-heading{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left}.notebook-heading:hover{color:var(--accent)}
/* Writing studio and Quillby */
.studio-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}.studio-card{display:flex;flex-direction:column;gap:12px}.studio-card h2,.studio-card p{margin:0}.studio-card p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.studio-card .row{margin-top:auto;padding-top:12px}.studio-card small{overflow-wrap:anywhere}#profile-form>details{border-top:1px solid var(--line,#303545);padding:16px 0}#profile-form summary{font-size:1rem;font-weight:600;cursor:pointer}#profile-form details[open]>summary{margin-bottom:14px}#profile-form textarea{min-height:120px}.regen-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.regen-choice{display:flex;flex-direction:column;gap:5px;text-align:left;padding:14px;border-radius:12px;white-space:normal}.regen-choice small{color:var(--muted);font-size:.875rem}.regen-choice.chosen{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}#regen-direction,#regen-goal{min-height:130px}.quillby-transcript{max-height:360px;overflow-y:auto;overscroll-behavior:contain;display:grid;gap:12px;margin:18px 0}.quillby-turn{padding:14px 16px;border-radius:12px;background:var(--panel,#191c27);border:1px solid var(--line,#303545)}.quillby-turn.user{border-left:3px solid var(--accent)}.quillby-turn p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0}.quillby-turn strong{color:var(--accent)}#quillby-error,#reference-status{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}#quillby-reference{min-height:140px}.reply-warning{margin-left:54px;padding:10px;border-left:2px solid var(--accent)}@media(max-width:540px){.regen-grid{grid-template-columns:1fr}.studio-tabs button{flex:1}.reply-warning{margin-left:0}}

.portrait-list{display:grid;gap:18px;margin-top:20px}.portrait-row{padding:16px}.portrait-comparison{display:flex;gap:20px;margin:12px 0}.portrait-comparison>div{display:grid;gap:6px}.portrait-preview{width:100%;height:150px;object-fit:contain;background:#11131b;border-radius:8px}.portrait-comparison .portrait-preview{width:110px}.portrait-empty{display:grid;place-items:center;width:110px;height:150px;background:#11131b;border-radius:8px;color:#aab0c0}.portrait-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:12px;margin-top:14px}.portrait-results button{width:100%;padding:6px;white-space:normal}.portrait-results small{display:block;overflow-wrap:anywhere}.portrait-results .chosen{outline:2px solid var(--accent,#a78bfa)}.portrait-results a{font-size:14px}.portrait-row input{max-width:100%}

.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.gallery-picture{width:100%;height:220px;object-fit:contain;background:#11131b}.scene-review,.scene-illustration img{display:block;max-width:100%;max-height:75vh;object-fit:contain;margin:auto}.scene-illustration{margin:12px auto;max-width:720px}.scene-illustration figcaption{font-size:14px;color:var(--muted);text-align:center}.reference-thumb{width:55px;height:65px;object-fit:cover;margin-left:auto}.mobile-quick{display:none}.creator-dialog pre{white-space:pre-wrap;overflow-wrap:anywhere}#maintenance-status{white-space:pre-wrap}@media(max-width:900px){.mobile-quick{display:flex;gap:6px;overflow-x:auto;padding:4px 0 10px}.mobile-quick button{flex-shrink:0;font-size:14px;padding:9px}.media-grid{grid-template-columns:1fr}.scene-illustration{margin:12px 0}}
.persona-picker{border:0;padding:0;margin:20px 0}.persona-picker legend{font-weight:600;margin-bottom:10px}.persona-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;max-height:360px;overflow:auto;padding:3px}.persona-option{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;margin:0;cursor:pointer;min-width:0}.persona-option:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.persona-option input{width:auto;flex-shrink:0}.persona-picture{display:grid;place-items:center;width:64px;height:78px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--panel);font-size:24px}.persona-picture img{width:100%;height:100%;object-fit:cover}.persona-option>span:last-child{min-width:0}.persona-option strong{display:block;overflow-wrap:anywhere}.persona-option small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);font-size:14px}.folder-toolbar{margin:16px 0}.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin-bottom:24px}.folder-card{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel);min-width:0}.folder-card>button:first-child{border:0;background:none;display:grid;gap:8px;text-align:left;width:100%;padding:4px 4px 12px;white-space:normal}.folder-card strong{font-size:17px;overflow-wrap:anywhere}.folder-card small{color:var(--muted);font-size:14px}.folder-thumbs{display:flex;gap:5px;min-height:54px;align-items:center}.folder-thumbs img,.folder-thumbs>span{width:38px;height:48px;object-fit:cover;border-radius:5px;background:var(--bg);display:grid;place-items:center}.folder-members{max-height:45vh;overflow:auto}.folder-members .reference-thumb{margin-left:0}.card-actions{flex-wrap:wrap}.card-actions [data-folder-move]{flex-basis:100%;font-size:14px}.pinned-conversation{border:2px solid #d9b548;box-shadow:inset 3px 0 #d9b548}.opening-controls{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:14px;margin-bottom:18px;border:1px solid var(--line);border-radius:12px}.opening-controls button{min-width:44px;min-height:44px;font-size:22px}.opening-controls small{flex-basis:100%;text-align:center;font-size:14px;color:var(--muted)}.import-folder-options{padding:14px;margin:16px 0;border:1px solid var(--line);border-radius:12px}.import-profiles{max-height:45vh;overflow:auto}.list-item .row>div:first-child{min-width:0;overflow-wrap:anywhere}@media(max-width:540px){.persona-options{grid-template-columns:1fr}.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.folder-thumbs{flex-wrap:wrap}.folder-thumbs img,.folder-thumbs>span{width:30px;height:40px}.list-item .row{flex-wrap:wrap}}
/* Folder filters must win over card layout display rules. */
#app article[hidden]{display:none!important}
.bulk-library-button{margin-bottom:12px}
#bulk-items{max-height:45vh;overflow:auto;margin:16px 0}
.scenario-premise-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere}
.scenario-cast-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.text-count{display:block;color:var(--muted,#a6a8b5);font-size:.75rem;line-height:1.5;margin:5px 0 12px;font-variant-numeric:tabular-nums}

/* Reading surface: actions appear only when a turn is selected. */
.chat-layout{grid-template-columns:minmax(0,1fr)}.chat-layout.panel-open{grid-template-columns:minmax(0,1fr) 310px}.chat-layout .story-panel{display:none}.chat-layout .story-panel.open{display:block}.messages{padding:24px clamp(18px,4vw,64px)}.message-turn{position:relative;margin:0 0 30px;padding-bottom:18px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}.message-turn:focus-visible{outline:1px solid var(--accent);outline-offset:6px}.message-turn .bubble-body{background:transparent;border:0;padding:0}.message-turn .message{grid-template-columns:32px minmax(0,1fr);gap:12px}.message-turn .avatar{width:30px;height:30px;border-radius:7px}.message-turn .message-text{line-height:1.8}.message-turn .bubble-body>.row>small{display:none}.message-more{display:block;margin-left:auto;padding:0 8px;min-height:26px;background:transparent;border-color:transparent;color:var(--muted);opacity:.55}.message-more:hover,.message-more:focus-visible{opacity:1}.composer{margin:0 16px 12px;border:1px solid var(--line);border-radius:16px;padding:12px 16px}.composer textarea{min-height:52px}.composer>small{display:none}.chat-head{padding:12px 24px}.chat-head small{font-size:.75rem}.chat-head [data-action="models"]{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem}.scene-description-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-top:10px}.scene-description summary{cursor:pointer;font-size:.85rem}.scene-description summary span{color:var(--muted);font-size:.7rem}.scene-description[open]+.scene-description-preview{display:none}.reasoning{margin:8px 0 8px 44px;color:var(--muted);font-size:.8rem}.reasoning summary{cursor:pointer}.reasoning-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:340px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:8px}.message-options-dialog{width:min(760px,calc(100% - 24px))}.message-options-dialog .message-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.message-options-dialog .message-actions button,.message-options-dialog>[data-copy-turn]{background:var(--raised);border:1px solid var(--line);text-align:left;padding:12px;font-size:.875rem}.option-preview{max-height:110px;overflow:hidden;white-space:pre-wrap;color:var(--muted);font-size:.85rem;background:var(--bg);padding:14px;border-radius:9px}.message-options-dialog .check{padding:8px}.model-list+small{display:block}
@media(max-width:1150px){.chat-layout.panel-open{grid-template-columns:1fr}.story-panel.open{width:min(340px,90vw)}}
@media(max-width:720px){.message-options-dialog{margin:0;width:100%;max-width:100%;top:auto;bottom:0;max-height:85dvh;border-radius:18px 18px 0 0}.message-options-dialog .message-actions{grid-template-columns:1fr 1fr}.messages{padding:20px 16px}.composer{margin:0 8px 8px}.chat-head{padding:10px 16px}.reasoning{margin-left:0}.chat-head [data-action="models"]{max-width:160px}.mobile-quick{display:none}}

.model-picker{margin:8px 0 20px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.model-picker>summary{cursor:pointer;color:var(--accent);font-size:.85rem}.model-picker-controls{padding-top:5px}.model-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.model-picker-grid label{margin:8px 0}.model-picker-results{max-height:360px;overflow:auto;overscroll-behavior:contain}.model-picker-row{padding:12px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.model-picker-row>div:first-child{min-width:0}.model-picker-row strong,.model-picker-row small{display:block;overflow-wrap:anywhere}.model-picker-row strong{font-size:.9rem}.model-picker-row small{font-size:.75rem}.model-picker-row button{padding:6px 10px}.model-picker-row [aria-pressed="true"]{color:var(--accent)}.model-picker [data-mp-status]{font-size:.8rem;color:var(--muted);margin:10px 0}.model-picker-controls>.row{gap:8px 16px}.model-picker [data-mp-more]{width:100%;margin-top:10px}@media(max-width:480px){.model-picker-grid{grid-template-columns:1fr}.model-picker-row{align-items:flex-start;flex-direction:column}.model-picker-row>.row{align-self:flex-end}.model-picker-results{max-height:300px}}

/* Midnight reading palette and roleplay text. Daylight keeps dark, readable dialogue. */
:root{--bg:#090909;--panel:#121212;--raised:#1d1d1d;--line:#303030;--text:#eeeeee;--muted:#a3a3aa;--chat-narration:#aaaab2;--chat-action:#92929c;--chat-dialogue:#f4f4f5}
body.light{--chat-narration:#52525d;--chat-action:#686873;--chat-dialogue:#17171c}
.message-turn .message-text,.message-turn .message.user .message-text{color:var(--chat-narration)}
.message-text .chat-action{color:var(--chat-action);font-style:italic}
.message-text .chat-dialogue{color:var(--chat-dialogue);font-style:normal}
.portrait-trigger{padding:0;border:0;border-radius:7px;background:transparent;width:32px;height:32px;min-height:0;cursor:zoom-in;align-self:start}
.portrait-trigger:hover{filter:brightness(1.15);outline:1px solid var(--accent)}
.portrait-trigger .avatar{margin:0}.portrait-dialog{width:min(900px,calc(100% - 24px));padding:18px}.portrait-dialog .modal-top h2{font-size:1.15rem;margin:0}.portrait-dialog .modal-top{margin-bottom:12px}
.expanded-portrait{display:block;width:100%;height:auto;max-height:calc(90dvh - 100px);object-fit:contain;border-radius:10px;background:var(--bg)}
body.hide-avatars .portrait-trigger{display:none}
@media(max-width:720px){.portrait-dialog{padding:12px}.expanded-portrait{max-height:calc(90dvh - 90px)}}

#scenario-cast-list .assignment[hidden]{display:none}

.cast-choice{display:block;width:100%}.cast-choice-portrait{width:42px;height:42px;object-fit:cover;border-radius:8px;float:left;margin-right:10px}.cast-choice-preview{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;clear:both}.cast-choice.expanded .cast-choice-preview{display:block!important}.cast-choice button{font-size:.85rem}.older-messages{display:block;margin:10px auto 24px}

/* Dismissal stays inside the scrollable panels, including short mobile viewports. */
.drawer-header{position:sticky;top:-25px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel);padding:12px 0;border-bottom:1px solid var(--line);margin:-25px 0 18px;flex-shrink:0}
.drawer-header strong{font-size:1rem;min-width:0;overflow-wrap:anywhere}
.drawer-header button{flex-shrink:0;min-height:44px;min-width:80px;font-size:1rem}
.navigation-close,.drawer-backdrop{display:none}
@media(max-width:1150px){
 .story-panel.open{top:0;bottom:0;height:100dvh;max-width:100vw;z-index:6;padding-top:max(25px,env(safe-area-inset-top));padding-bottom:max(25px,env(safe-area-inset-bottom));overscroll-behavior:contain}
 .story-panel .drawer-header{top:calc(-1 * max(25px,env(safe-area-inset-top)));padding-top:max(12px,env(safe-area-inset-top))}
 .shell:has(.story-panel.open)>.drawer-backdrop{display:block}
 .drawer-backdrop{position:fixed;inset:0;width:100%;height:100dvh;border:0;border-radius:0;background:#0008;z-index:5;padding:0}
}
@media(max-width:720px){
 .sidebar.open{inset:0 auto 0 0;width:min(280px,90vw);height:100dvh;overflow-y:auto;overscroll-behavior:contain;z-index:6;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}
 .sidebar .navigation-close{display:flex;top:calc(-1 * max(18px,env(safe-area-inset-top)));margin:-18px 0 12px;padding-top:max(12px,env(safe-area-inset-top))}
 .sidebar>*{flex-shrink:0}
 .shell:has(.sidebar.open)>.drawer-backdrop{display:block}
}
/* Notebook navigation and local story tools. */
[hidden]{display:none!important}
.notebook-tabs{position:sticky;top:43px;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;background:var(--panel);padding:8px 0 12px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.notebook-tabs button{min-height:44px;min-width:0;padding:8px 2px;font-size:.875rem;border-color:transparent}
.notebook-tabs button[aria-selected="true"]{color:var(--accent);background:var(--raised);border-color:var(--accent)}
.story-panel>[role="tabpanel"]{min-width:0}
.story-panel .drawer-header{margin-bottom:0;z-index:3;min-height:68px;box-sizing:border-box}
.story-panel p,.live-cast-row small,.profile-text{overflow-wrap:anywhere}
.live-cast-row{border-bottom:1px solid var(--line);padding:12px 0;display:grid;gap:6px}
.live-cast-row label{margin:0;font-size:1rem}
.live-cast-row button{justify-self:start}
.live-cast-list{margin-top:16px}
.profile-text{white-space:pre-wrap}
.context-usage progress{width:100%;height:12px;accent-color:var(--accent)}
.context-table{width:100%;border-collapse:collapse;font-size:.875rem}
.context-table th,.context-table td{text-align:left;padding:8px 2px;border-bottom:1px solid var(--line)}
.context-table th:last-child,.context-table td:last-child{text-align:right}
.context-usage .notice{padding:12px;font-size:.875rem}
.chapter-marker{border-top:1px solid var(--accent);padding-top:18px;margin:26px 0 18px;color:var(--accent);font-size:1.15rem}
.bookmark-marker{display:inline-block;margin:8px 0 14px;color:var(--accent);font-size:.875rem}
.branch-tree{padding:8px 0;overflow-wrap:anywhere}
.branch-node{border-left:3px solid var(--line);padding:14px 12px;margin-bottom:8px;background:var(--bg);border-radius:0 8px 8px 0}
.branch-node.current-branch{border-left-color:var(--accent)}
.setup-cast-row{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0;overflow-wrap:anywhere}
@media(max-width:1150px){.notebook-tabs{top:calc(43px + max(0px,env(safe-area-inset-top) - 12px))}}
@media(max-width:400px){.setup-cast-row{grid-template-columns:1fr}.notebook-tabs button{font-size:.875rem}}

.table-scroll{overflow:auto;max-width:100%}.table-scroll th,.table-scroll td{padding:8px;text-align:left;vertical-align:top}.table-scroll td{overflow-wrap:anywhere}#workflow-cast-form pre{white-space:pre-wrap;max-height:260px;overflow:auto}

.cloud-panel{margin-bottom:20px}.cloud-panel a{color:var(--accent)}#cloud-status[data-kind="error"],#cloud-status[data-kind="conflict"]{color:#ffb5a7}.cloud-mobile-status{font-size:.75rem;max-width:180px}.cloud-mobile-status span{overflow-wrap:anywhere}.cloud-panel select{max-width:100%}
