.companion-chat-dialog{width:min(650px,calc(100vw - 30px));max-width:none;max-height:min(760px,calc(100dvh - 30px));padding:0;border:1px solid #c8b184;border-radius:18px;background:#fffaf0;color:#214941;box-shadow:0 22px 80px #15382f70;font:16px/1.5 system-ui}
.companion-chat-dialog::backdrop{background:#142e2a99;backdrop-filter:blur(4px)}
.companion-chat-shell{display:flex;flex-direction:column;max-height:min(760px,calc(100dvh - 30px))}
.companion-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px 10px;border-bottom:1px solid #dfd1b6}
.companion-chat-head h2{margin:0;font-size:22px}
.companion-chat-quota{margin:0;padding:9px 20px;background:#e8efdf;font-size:14px}
.companion-chat-history{min-height:150px;max-height:340px;overflow:auto;padding:13px 20px;display:flex;flex-direction:column;gap:10px}
.companion-chat-turn{max-width:90%;padding:10px 13px;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.companion-chat-turn.student{align-self:flex-end;background:#e2eadc}
.companion-chat-turn.pet{align-self:flex-start;background:#f4e9d4}
.companion-chat-form{padding:12px 20px 16px;border-top:1px solid #dfd1b6}
.companion-chat-form textarea{box-sizing:border-box;width:100%;min-height:75px;padding:10px;border:1px solid #bead8b;border-radius:9px;background:#fffdf8;color:#214941;font:inherit;resize:vertical}
.companion-chat-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:9px}
.companion-chat-dialog button{min-height:40px;padding:7px 13px;border:1px solid #bfad89;border-radius:8px;background:#fffaf0;color:#214941;font:inherit;cursor:pointer}
.companion-chat-dialog button.primary{background:#275d51;color:#fff;border-color:#275d51}
.companion-chat-dialog button:disabled{opacity:.5;cursor:default}
.companion-chat-status{min-height:23px;margin:6px 0 0;font-size:14px}
@media(max-width:550px){.companion-chat-head{padding:13px}.companion-chat-quota,.companion-chat-history,.companion-chat-form{padding-left:13px;padding-right:13px}.companion-chat-turn{max-width:100%}}
.companion-story-dialog{width:min(680px,calc(100vw - 28px));max-height:calc(100dvh - 30px);overflow:auto}
.companion-story-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}
.companion-story-card{padding:13px;border:1px solid #ccb88f;border-radius:12px;background:#fff8e8}
.companion-story-card h3{margin:0 0 6px;font-size:18px;color:#245247}
.companion-story-card p{margin:0 0 9px;line-height:1.5;overflow-wrap:anywhere}
.companion-story-card small{display:block;margin-bottom:9px;color:#667969}
.companion-story-card button{min-height:34px}
@media(max-width:600px){.companion-story-list{grid-template-columns:1fr}}
