:root{--bg-app: #202124;--bg-stage: #202124;--bg-tile: #3c4043;--bg-panel: #292a2d;--bg-panel-2: #35363a;--text-main: #e8eaed;--text-sub: #9aa0a6;--accent: #8ab4f8;--accent-strong: #669df6;--danger: #ea4335;--danger-strong: #d93025;--bubble-counselor: #3c4043;--bubble-user: #0b57d0;--tile-radius: 14px;--topbar-h: 48px;--controls-h: 76px;--voice-active: #34a853;--control-size: 52px;--caption-color: #fff}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg-app);color:var(--text-main);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,BIZ UDPGothic,Meiryo,Noto Sans JP,Noto Sans CJK JP,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#app{position:relative;width:100%;height:100vh;height:100dvh}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:none}.screen.is-active{display:block}button{font-family:inherit;cursor:pointer}#screen-select.is-active{display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:48px 20px}.select-wrap{width:100%;max-width:720px}.select-header h1{margin:0 0 8px;font-size:28px;font-weight:700}.select-sub{margin:0 0 32px;color:var(--text-sub);font-size:15px;line-height:1.7}.scenario-list{display:grid;gap:14px;margin-bottom:28px}.scenario-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--bg-panel);border:1px solid #3c4043;border-radius:16px;padding:20px 22px;transition:border-color .15s ease,background .15s ease}.scenario-card:hover{border-color:var(--accent);background:var(--bg-panel-2)}.scenario-card-text h2{margin:0 0 6px;font-size:17px;font-weight:600}.scenario-card-text p{margin:0;font-size:14px;color:var(--text-sub);line-height:1.6}.scenario-card-text a{color:var(--accent)}.scenario-card-text a:hover{color:var(--accent-strong)}.scenario-card-text .scenario-error{margin-top:8px}.scenario-start-btn{flex-shrink:0;border:none;background:var(--accent);color:#202124;font-weight:700;font-size:14px;padding:10px 20px;border-radius:999px;transition:background .15s ease}@media(max-width:599px){.scenario-card{flex-direction:column;align-items:stretch;gap:12px;padding:16px 18px}.scenario-start-btn{align-self:flex-end;font-size:13px;padding:8px 18px}}.scenario-start-btn:hover{background:var(--accent-strong)}.scenario-error{color:#f28b82;font-size:14px}.media-toggle-row{display:flex;gap:12px;margin-bottom:24px}.join-start-btn{flex-shrink:0;height:var(--control-size);display:inline-flex;align-items:center;justify-content:center}#screen-meeting.is-active{display:flex;flex-direction:column;height:100%}.meeting-topbar{height:var(--topbar-h);flex:0 0 auto;display:flex;align-items:center;padding:0 16px;background:#202124;border-bottom:1px solid #2b2c2f}.meeting-title{font-size:14px;font-weight:600;color:var(--text-sub)}.meeting-stage{position:relative;flex:1 1 auto;min-height:0;background:var(--bg-stage);overflow:hidden;container-type:size}.tile{position:absolute;border-radius:var(--tile-radius);overflow:hidden;background:var(--bg-tile);box-shadow:0 1px 4px #0006;transition:right .2s ease,bottom .2s ease,top .2s ease,left .2s ease,width .2s ease,height .2s ease;container-type:inline-size}.tile-media{width:100%;height:100%;object-fit:cover;display:block}.tile-media.is-hidden{display:none}.tile-media.is-mirrored{transform:scaleX(-1)}.tile-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:blur(24px) brightness(.6);transform:scale(1.1);display:block}.tile-backdrop.is-hidden{display:none}.tile-counselor .tile-media{position:relative;object-fit:contain}.tile-label,.share-label{position:absolute;left:10px;background:#0000008c;color:#fff;border-radius:6px;pointer-events:none}.tile-label{bottom:8px;font-size:13px;padding:3px 10px}.tile-caption{position:absolute;left:50%;bottom:36px;transform:translate(-50%);width:max-content;max-width:90%;background:#000000b8;color:var(--caption-color);border-radius:8px;padding:6px 14px;font-size:clamp(13px,3.6cqi,22px);line-height:1.35;text-align:center;white-space:pre-wrap;word-break:break-word;pointer-events:none}.tile-caption.is-hidden{display:none}.camera-off-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;background:#4a4d51;color:#cfd2d6}.camera-off-placeholder.is-active{display:flex}.tile.is-speaking{animation:speaking-pulse 1.4s ease-in-out infinite}@keyframes speaking-pulse{0%,to{box-shadow:0 1px 4px #0006,0 0 0 3px var(--voice-active)}50%{box-shadow:0 1px 4px #0006,0 0 0 5px var(--voice-active)}}.tile-share{background:#111214;z-index:1}.tile-share .tile-media{object-fit:contain;background:#111214}.share-label{top:8px;font-size:12px;padding:3px 9px}.meeting-stage:not(.is-sharing){--tile-w: min((100cqw - 48px) / 2, (100cqh - 32px) * 16 / 9);--tile-h: calc(var(--tile-w) * 9 / 16)}.meeting-stage:not(.is-sharing) #tile-counselor{width:var(--tile-w);height:var(--tile-h);top:calc(50% - var(--tile-h) / 2);left:calc(50% - 8px - var(--tile-w))}.meeting-stage:not(.is-sharing) #tile-self{width:var(--tile-w);height:var(--tile-h);top:calc(50% - var(--tile-h) / 2);left:calc(50% + 8px)}.meeting-stage.is-counselor-left #tile-counselor{display:none}.meeting-stage.is-counselor-left:not(.is-sharing){--tile-w: min((100cqw - 32px), (100cqh - 32px) * 16 / 9)}.meeting-stage.is-counselor-left:not(.is-sharing) #tile-self{left:calc(50% - var(--tile-w) / 2)}.meeting-stage.is-sharing.is-counselor-left #tile-self{top:16px}.meeting-stage.is-sharing #tile-share{top:16px;bottom:16px;left:16px;right:240px}.meeting-stage.is-sharing #tile-counselor,.meeting-stage.is-sharing #tile-self{right:16px;width:208px;height:117px}.meeting-stage.is-sharing #tile-counselor{top:16px}.meeting-stage.is-sharing #tile-self{top:149px;z-index:2}.meeting-stage.is-sharing #tile-counselor .tile-backdrop{display:none}.meeting-stage.is-sharing #tile-counselor .tile-media{object-fit:cover}@media(max-width:899px){.meeting-stage:not(.is-sharing){--tile-w: min((100cqw - 20px), (100cqh - 30px) / 2 * 16 / 9);--tile-h: calc(var(--tile-w) * 9 / 16);--pair-h: calc(var(--tile-h) * 2 + 10px)}.meeting-stage:not(.is-sharing) #tile-counselor{width:var(--tile-w);height:var(--tile-h);left:calc(50% - var(--tile-w) / 2);top:calc(50% - var(--pair-h) / 2)}.meeting-stage:not(.is-sharing) #tile-self{width:var(--tile-w);height:var(--tile-h);left:calc(50% - var(--tile-w) / 2);top:calc(50% - var(--pair-h) / 2 + var(--tile-h) + 10px)}.meeting-stage.is-sharing #tile-self{right:16px;bottom:16px;width:118px;height:66px}.meeting-stage.is-sharing #tile-share{top:10px;right:10px;bottom:10px;left:10px;z-index:1}.meeting-stage.is-sharing #tile-share .tile-caption{bottom:84px}.meeting-stage.is-sharing #tile-counselor{display:none}.meeting-stage.is-sharing #tile-self{top:auto;z-index:2}.meeting-stage.is-counselor-left:not(.is-sharing){--tile-w: min((100cqw - 20px), (100cqh - 20px) * 16 / 9)}.meeting-stage.is-counselor-left:not(.is-sharing) #tile-self{top:calc(50% - var(--tile-h) / 2)}}.chat-panel{position:absolute;z-index:5;background:var(--bg-panel);display:flex;flex-direction:column;box-shadow:-2px 0 8px #00000059}.chat-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:14px;font-weight:600;border-bottom:1px solid #3c4043}.chat-close-btn{background:none;border:none;color:var(--text-main);font-size:20px;line-height:1;padding:4px 8px;border-radius:6px}.chat-close-btn:hover{background:#ffffff14}.chat-messages{flex:1 1 auto;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.chat-msg{max-width:85%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.6;word-break:break-word;animation:chat-in .15s ease}@keyframes chat-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-msg-name{display:block;font-size:12px;color:var(--text-sub);margin-bottom:3px}.chat-msg.from-counselor{align-self:flex-start;background:var(--bubble-counselor);border-bottom-left-radius:4px}.chat-msg.from-user{align-self:flex-end;background:var(--bubble-user);color:#fff;border-bottom-right-radius:4px}.chat-msg.from-user .chat-msg-name{text-align:right;color:#cfe0ff}.chat-msg.system{align-self:center;background:transparent;color:var(--text-sub);font-size:13px}.typing-indicator{align-self:flex-start;display:flex;gap:4px;padding:10px 14px;background:var(--bubble-counselor);border-radius:14px 14px 14px 4px}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--text-sub);animation:typing-bounce 1.1s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.choice-overlay{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:3;display:flex;flex-direction:column;gap:8px;width:max-content;max-width:min(90%,480px);max-height:60cqh;overflow-y:auto;padding:16px;border-radius:16px;background:#202124eb;box-shadow:0 8px 32px #0006;animation:choice-in .15s ease}@keyframes choice-in{0%{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%)}}.choice-overlay.is-hidden{display:none}.choice-btn{border:1px solid var(--accent);background:transparent;color:var(--accent);padding:10px 16px;border-radius:999px;font-size:14px;text-align:left;transition:background .15s ease,color .15s ease}.choice-btn:hover{background:var(--accent);color:#202124}@media(min-width:900px){.chat-panel{top:var(--topbar-h);right:0;bottom:var(--controls-h);width:340px;transform:translate(100%);transition:transform .2s ease}.chat-panel.is-open{transform:translate(0)}}@media(max-width:899px){.chat-panel{left:0;right:0;bottom:0;height:65%;border-radius:16px 16px 0 0;transform:translateY(100%);transition:transform .2s ease}.chat-panel.is-open{transform:translateY(0)}}.chat-toast{position:absolute;left:50%;top:12px;transform:translate(-50%,-8px);max-width:80%;background:#202124eb;border:1px solid #4a4d51;color:var(--text-main);font-size:14px;padding:8px 16px;border-radius:999px;z-index:6;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-toast.is-visible{opacity:1;transform:translate(-50%)}.controls-bar{flex:0 0 auto;height:var(--controls-h);display:flex;align-items:center;justify-content:center;gap:16px;background:#202124;border-top:1px solid #2b2c2f}.control-btn{width:var(--control-size);height:var(--control-size);border-radius:50%;border:none;background:#3c4043;color:var(--text-main);display:flex;align-items:center;justify-content:center;transition:background .15s ease}.control-btn:hover{background:#4a4d51}.control-btn[data-on=false]{background:#5f6368}.control-btn-leave{width:76px;border-radius:999px;background:var(--danger)}.control-btn-leave:hover{background:var(--danger-strong)}.control-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.control-icon svg{display:block;width:100%;height:100%}.control-icon.icon-off,.control-btn[data-on=false] .icon-on{display:none}.control-btn[data-on=false] .icon-off{display:flex}.join-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:32px 20px;background:#0000008c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.join-overlay.is-hidden{display:none}.join-overlay-content{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:720px;width:100%;text-align:center;background:#202124d1;border-radius:20px;padding:32px 36px;box-shadow:0 8px 32px #0006}.join-overlay-title{margin:0;font-size:26px;font-weight:700}.join-overlay-desc{margin:0;max-width:720px;color:var(--text-sub);font-size:15px;line-height:1.7;text-align:left}.join-overlay-actions{display:flex;align-items:center;gap:16px}#screen-select.is-active::-webkit-scrollbar,.join-overlay::-webkit-scrollbar,.chat-messages::-webkit-scrollbar,.choice-overlay::-webkit-scrollbar{width:8px}#screen-select.is-active::-webkit-scrollbar-thumb,.join-overlay::-webkit-scrollbar-thumb,.chat-messages::-webkit-scrollbar-thumb,.choice-overlay::-webkit-scrollbar-thumb{background:#5f6368;border-radius:4px}
