:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#282536;background:#f4f2f8;font-size:15px;line-height:1.7}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{border:1px solid #ded9e9;border-radius:10px;background:white;color:#39304c;padding:9px 14px;cursor:pointer}button:hover{border-color:#7a60cf}button:disabled{opacity:.45;cursor:default}.primary{background:#7055bd;color:white;border-color:#7055bd}.danger{color:#af3353}input,textarea,select{width:100%;padding:11px;border:1px solid #dcd5e8;border-radius:9px;background:white;color:inherit}textarea{min-height:100px;resize:vertical}label{display:block;margin:12px 0}label span{display:block;color:#777183;font-size:13px;margin-bottom:5px}h1,h2,h3,p{margin:0 0 12px}h1{font-size:24px}h2{font-size:20px}.shell{max-width:1160px;margin:auto;padding:28px;display:grid;grid-template-columns:210px minmax(0,720px);gap:32px}.brand{letter-spacing:2px;font-size:13px;font-weight:700;color:#7055bd}.side{padding:15px}.side button{display:block;width:100%;text-align:left;margin:9px 0}.muted{font-size:12px;color:#797282}.badge{display:inline-block;background:#eee8fc;color:#695295;border-radius:20px;padding:2px 9px;font-size:12px}.main{background:white;border-radius:22px;border:1px solid #e2dce9;min-height:85vh;overflow:hidden;display:flex;flex-direction:column}.header{padding:18px 24px;border-bottom:1px solid #eee9f3;display:flex;align-items:center;justify-content:space-between;gap:12px}.body{padding:24px;flex:1}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{border:1px solid #e4dfee;border-radius:15px;padding:18px;margin-bottom:14px}.avatar{height:140px;border-radius:12px;background:#eeeaf4;display:grid;place-items:center;font-size:44px;color:#b9aed0;margin-bottom:15px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.wide{width:100%}.selected{border:2px solid #7055bd;background:#f5f0ff}.bubble{padding:14px 17px;border-radius:15px;background:#f2eff6;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0;max-width:92%}.bubble.user{margin-left:auto;background:#ebe4fa}.messages{height:51vh;overflow:auto;padding:0 2px}.composer{border-top:1px solid #e8e2ef;padding:16px 24px;background:white}.composer textarea{min-height:65px;height:65px;flex:1}.banner{font-size:12px;background:#fff5d8;padding:9px 15px;color:#715821}.empty{text-align:center;padding:55px 10px;color:#88808d}dialog{border:1px solid #e1dae9;border-radius:20px;max-width:520px;width:calc(100% - 28px);max-height:85vh;padding:24px}dialog::backdrop{background:#27203670}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;background:#292234;color:#fff;padding:12px 20px;border-radius:12px;z-index:10;display:none}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.admin{max-width:1100px;margin:auto;padding:28px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.opening{max-height:47vh;overflow:auto;white-space:pre-wrap}.version{font-size:11px;color:#9d91ab;margin-top:20px}a{color:#7055bd}pre{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:680px){.shell{padding:0;display:flex;flex-direction:column;gap:0}.side{display:flex;gap:5px;padding:10px;position:sticky;top:0;background:#f4f2f8;z-index:1;align-items:center}.side .brand{font-size:11px}.side button{width:auto;margin:0;flex:1;padding:7px}.side .muted,.side .version{display:none}.main{border-radius:0;min-height:calc(100dvh - 65px)}.body{padding:16px}.header{padding:12px 16px}.composer{padding:12px 16px}.messages{height:49vh}.grid{gap:10px}.card{padding:12px}.avatar{height:100px}.opening{max-height:48vh}}

.segment + .segment {margin-top:12px}.segment.narration{color:#777386;font-style:italic}.segment.dialogue{white-space:pre-wrap}

/* Chat presentation: actions and speech share one bubble; narration-only replies stand apart. */
.chat-theme{background:#141414;color:#f3f3f3;border-color:#292929}
.chat-theme .header{border-color:#292929}
.chat-theme .body{padding-top:16px}
.chat-theme .muted{color:#aaa6b1}
.chat-theme .badge{background:#30283e;color:#d4c2ff}
.chat-theme button{background:#232323;border-color:#39363e;color:#e9e5ee}
.chat-theme button:hover{border-color:#8f76e2}
.chat-theme .primary{background:#694bd2;border-color:#694bd2;color:#fff}
.chat-theme .messages{padding:8px 0 20px;scrollbar-color:#414141 transparent}
.chat-theme .bubble{background:#222;color:#f4f4f4;border-radius:20px;padding:16px 20px;margin:20px 0;max-width:90%;line-height:1.75;font-size:16px}
.chat-theme .bubble.user{background:#684bd1;color:#fff;margin-left:auto;border-top-right-radius:6px}
.chat-theme .bubble:not(.user){border-top-left-radius:6px}
.chat-theme .segment.narration{color:#b8b8bd;font-style:italic;border:0;padding:0}
.chat-theme .bubble.user .segment.narration{color:#e0d6ff}
.chat-theme .segment + .segment{margin-top:20px}
.chat-theme .bubble:not(.user):has(>.segment.narration):not(:has(>.segment.dialogue)){background:transparent;border-radius:0;padding:4px 8px 4px 18px;max-width:96%;margin:26px 0;color:#aaa}
.chat-theme .composer{background:#141414;border-color:#292929}
.chat-theme .composer textarea{background:#242424;border-color:#343434;color:#f4f4f4;border-radius:20px;padding:12px 16px}
.chat-theme textarea::placeholder{color:#99949e}
@media(max-width:680px){.chat-theme .bubble{max-width:92%;padding:14px 16px;font-size:15px}.chat-theme .segment + .segment{margin-top:18px}}

/* User-facing visual system. Administration continues using the original HTML stylesheet. */
.user-app{background:#19181d;color:#f1eef3;--surface:#252329;--muted:#b5adb9;--accent:#a18abe;--stroke:#ffffff19}
.user-app .shell{max-width:1440px;grid-template-columns:190px minmax(0,1fr);gap:26px;padding:24px}
.user-app .main{background:#211e24;border:1px solid var(--stroke);border-radius:20px;min-height:calc(100dvh - 48px)}
.user-app .brand{font-family:Georgia,serif;color:#e8dbed;font-size:22px;letter-spacing:-.6px;margin-bottom:28px}
.user-app button{background:#302b34;color:#eee8f0;border-color:var(--stroke);border-radius:12px}
.user-app button:hover{background:#403649;border-color:#a18abe}
.user-app button.primary{background:#a18abe;border-color:#a18abe;color:#19131f;font-weight:600}
.user-app .side button{padding:14px 18px;margin:10px 0}
.user-app .header{border-color:var(--stroke);padding:20px 24px}
.user-app .header h2{margin:0;font-size:19px}
.user-app .header a{font-size:12px;color:#d9c9e0}
.user-app .body{padding:24px}
.user-app .muted{color:var(--muted)}
.user-app input,.user-app textarea,.user-app select{background:#302c34;border-color:#ffffff20;color:#f0eaf3}
.user-app input::placeholder,.user-app textarea::placeholder{color:#b3a8bb}
.user-app .badge{background:#443849;color:#e8d9ec}
.user-app .card{background:#29242d;border-color:var(--stroke)}
.user-app .discovery-search{flex-wrap:nowrap;margin:24px 0}
.user-app .discovery-search input{min-width:0;border-radius:24px}
.user-app .discovery-search button{white-space:nowrap;font-size:12px;padding:10px}
.user-app .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.user-app .character-card{position:relative;min-height:400px;aspect-ratio:3/4;padding:0;overflow:hidden;border-radius:14px;margin:0;background:#3c3545}
.user-app .character-art{position:absolute;inset:0;height:100%;margin:0;border-radius:0;background:radial-gradient(ellipse at 70% 20%,#716177 0,transparent 55%),linear-gradient(145deg,#413846,#25222a);font-family:Georgia,serif;font-size:94px;font-weight:400;color:#c4b6cb66;align-items:start;padding-top:60px}
.user-app .character-card:nth-child(even) .character-art{background:radial-gradient(ellipse at 70% 20%,#816753 0,transparent 55%),linear-gradient(145deg,#493e37,#242124)}
.user-app .character-caption{position:absolute;inset:auto 0 0;padding:60px 16px 16px;background:linear-gradient(transparent,#19161de8 42%,#19161d)}
.user-app .character-caption h3{font-size:19px;line-height:1.25;margin-bottom:8px}
.user-app .character-caption p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.5;color:#cec5d1}
.user-app .character-caption button{font-size:12px;padding:7px 12px;margin-top:6px}
.user-app .chat-theme{background:radial-gradient(ellipse at top,#57435088,transparent 65%),#211c25}
.user-app .chat-theme .body{display:flex;flex-direction:column;min-height:0}
.user-app .chat-theme .messages{flex:1;height:48dvh;min-height:200px}
.user-app .chat-theme .bubble{background:#4c3d4cd9;backdrop-filter:blur(14px);border:1px solid #ffffff0b}
.user-app .chat-theme .bubble.user{background:#705780d9}
.user-app .chat-theme .segment.narration{color:#c5b8c9}
.user-app .chat-theme .composer{background:#28202ee8;border-color:var(--stroke)}
.user-app .composer .actions button{font-size:12px;padding:6px 10px;background:transparent}
.user-app .opening.bubble{max-height:55dvh;max-width:100%;line-height:1.85}
.user-app dialog{background:#302932;color:#f4edf5;border:1px solid #ffffff22;box-shadow:0 20px 80px #0008;padding:28px}
.user-app dialog::backdrop{background:#120e1680;backdrop-filter:blur(5px)}
.user-app dialog a{color:#d9bee6}
@media(max-width:900px){.user-app .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-app .shell{grid-template-columns:160px minmax(0,1fr);gap:12px;padding:12px}.user-app .character-card{min-height:330px}}
@media(max-width:680px){.user-app .shell{display:flex;padding:0;padding-bottom:calc(67px + env(safe-area-inset-bottom));gap:0}.user-app .side{position:fixed;inset:auto 0 0;z-index:5;display:flex;justify-content:space-around;background:#302731f5;border-top:1px solid var(--stroke);padding:8px 12px calc(8px + env(safe-area-inset-bottom));backdrop-filter:blur(16px)}.user-app .side .brand{display:none}.user-app .side button{flex:1;width:auto;margin:0 4px;padding:12px 8px;background:transparent;border-color:transparent;text-align:center}.user-app .main{border:0;border-radius:0;min-height:calc(100dvh - 67px)}.user-app .body{padding:16px 10px}.user-app .header{padding:16px}.user-app .grid{gap:8px}.user-app .character-card{min-height:320px;border-radius:10px}.user-app .character-caption{padding:50px 12px 12px}.user-app .character-caption h3{font-size:17px}.user-app .character-art{font-size:74px;padding-top:50px}.user-app .discovery-search{gap:6px;margin:18px 0}.user-app .page-chat,.user-app .page-opening{height:calc(100dvh - 67px - env(safe-area-inset-bottom));min-height:0}.user-app .chat-theme .body{flex:1;overflow:auto}.user-app .chat-theme .messages{height:auto;min-height:100px}.user-app .composer{padding:12px}.user-app .composer .row.between{font-size:12px;margin-bottom:8px}.user-app .composer textarea{min-height:52px;height:52px}.user-app dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;border-radius:24px 24px 0 0;max-height:90dvh;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}}
