.setup-page{text-align:center;background:#e2e2e2;font-family:'Merriweather',serif;position:relative;min-height:100vh}.setup-page::before{content:"";position:fixed;inset:0;background:url('/static/backgrounds/bg1.webp') center center / cover no-repeat;opacity:.10;pointer-events:none;z-index:0}.setup-page .container{width:90%;max-width:500px;margin:50px auto 100px auto;background:#f7f7f7;padding:20px;border-radius:6px;position:relative;z-index:1}.setup-page select,.setup-page input[type="text"],.setup-page button{font-size:16px;padding:15px;margin-top:20px}.setup-page select{background-color:#333;color:#fff;width:100%;margin-top:12px}.setup-page input[type="text"]{width:100%;margin-top:12px;box-sizing:border-box;border:1px solid #bbb;border-radius:6px;background:#fff;color:#222;font-family:'Poppins',sans-serif}.setup-page label{display:block;margin-top:30px;text-align:center;font-size:20px}.setup-page h1{margin-bottom:30px}.setup-page .beyond-logo{margin:20px auto 30px auto;width:40%;border-radius:60%;display:flex;flex-wrap:wrap;justify-content:center}.setup-page hr{border:none;border-top:2px solid #ccc;margin:30px 0}.setup-page .avatar-choice-container{display:flex;align-items:center;margin:20px 0}.setup-page .avatar-choice-text{font-size:24px;text-align:center;margin:30px auto auto auto;font-family:'Poppins',sans-serif;font-weight:bold;font-style:italic;text-shadow:1px 1px 2px rgba(0,0,0,0.3)}.setup-page .tabs{display:flex;flex-wrap:wrap;justify-content:space-around;margin:20px 0}.setup-page .tabs button{background:linear-gradient(to bottom,#00598d 0,#003f63 100%);color:#fff;border:none;padding:10px 20px;cursor:pointer;font-family:'Poppins',sans-serif;margin:6px;border-radius:4px;font-size:16px;flex:1 1 45%}.setup-page .tabs button:hover{opacity:.7}.setup-page .tabs button.active{background:#0ea5ca;outline:2px solid #258034}.setup-page .choose-avatar-container{text-align:center;margin:20px 0}.setup-page .current-avatar{display:block;width:120px;height:120px;border-radius:15px;box-shadow:0 2px 4px rgba(0,0,0,0.2);margin:0 auto 10px auto}.setup-page .choose-avatar-btn{background-color:#4CAF50;color:#fff;border:1px solid #3E8E41;border-radius:4px;padding:14px 28px;margin:0 auto 30px auto;font-size:18px;cursor:pointer;transition:background-color .3s ease,transform .2s ease,box-shadow .2s ease;font-family:'Poppins',sans-serif;box-shadow:0 4px 6px rgba(0,0,0,0.3)}.setup-page .choose-avatar-btn:hover{background-color:#3b883e}.setup-page .difficulty-container{margin-bottom:20px}.setup-page label[for="difficulty"]{font-family:'Poppins',sans-serif;font-weight:bold}.setup-page .difficulty-buttons{display:flex;flex-wrap:wrap;justify-content:center}.setup-page .difficulty-btn{width:160px;height:200px;padding:10px;background:none;border:none;cursor:pointer;outline:none;text-align:center}.setup-page .difficulty-btn.selected img{border:3px solid #f90;border-radius:50%}.setup-page .difficulty-btn img{width:120px;height:auto;display:block;margin:auto;border-radius:50%}.setup-page .difficulty-btn div{font-family:'Poppins',sans-serif;font-weight:bold;margin-top:5px}.setup-page .topic-header{text-align:center;font-weight:bold;margin:50px 0;font-size:20px}.setup-page .topic-display{margin-top:10px;margin-bottom:20px;white-space:normal;word-wrap:break-word;font-size:14px;color:#333;font-family:'Poppins',sans-serif}.setup-page label[for="num_rounds"]{text-align:center;margin-top:50px;font-family:'Poppins',sans-serif;font-weight:bold;font-size:20px}.setup-page .start-button{margin-top:25px;margin-bottom:20px;background:linear-gradient(to bottom,#f90 0,#c60 100%);color:#fff;font-size:18px;font-weight:bold;padding:12px 20px;border:2px solid #a50;border-radius:6px;box-shadow:0 4px #a50;cursor:pointer;font-family:'Poppins',sans-serif}.setup-page .start-button:hover{opacity:.9}.setup-page .start-button:active{box-shadow:0 2px #a50;transform:translateY(2px)}.setup-page .overlaymodal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,0.5)}.setup-page .overlaymodal-content{position:relative;background-color:#fefefe;margin:10% auto;padding:20px;border:1px solid #888;width:80%;max-width:600px;border-radius:8px;text-align:center}.setup-page .overlayclose-avatar-btn{position:absolute;top:10px;right:10px;background:transparent;border:none;font-size:24px;cursor:pointer;color:#888;padding:5px;z-index:10}.setup-page .overlay-close-avatar-btn:hover{color:#000}.setup-page .overlayavatar-container{display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:20px}.setup-page .overlayavatar-container img{flex:1 1 calc(33.33% - 20px);max-width:calc(33.33% - 20px);aspect-ratio:1;border-radius:15px;margin:10px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}@media(max-width:600px){.setup-page .overlayavatar-container img{flex:1 1 calc(50% - 20px);max-width:calc(50% - 20px)}}.setup-page .overlayavatar-container img:hover{transform:scale(1.05)}.setup-page .overlayavatar-container img.selected-avatar{outline:2px solid #258034;box-shadow:0 0 5px rgba(0,0,0,0.5);filter:brightness(1.2)}.setup-page .overlaysave-avatar-btn{background-color:#4CAF50;color:#fff;border:1px solid #3E8E41;border-radius:4px;padding:10px 20px;font-size:16px;cursor:pointer;display:block;margin:0 auto;transition:background-color .3s ease;font-family:'Poppins',sans-serif}.setup-page .overlaysave-avatar-btn:hover{background-color:#45a049}@media(max-width:600px){.setup-page *{box-sizing:border-box}.setup-page .container{width:100%;max-width:100%;margin:0 auto;padding:10px}.setup-page select,.setup-page button{max-width:100%}.setup-page select{width:100%;max-width:100%;box-sizing:border-box}.setup-page .tabs{flex-wrap:wrap;justify-content:center}.setup-page .tabs button{flex:1 1 45%;margin:5px}.setup-page .difficulty-buttons{display:flex;flex-wrap:wrap;justify-content:space-around;gap:10px}.setup-page .difficulty-btn div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%;text-align:center}.setup-page .difficulty-btn{width:25vw;height:auto;padding:5px}.setup-page .difficulty-btn img{width:100%;max-width:100px}}.roleplay-page{margin:40px;background:#e2e2e2;font-family:'Merriweather',serif;position:relative;min-height:100vh}.roleplay-page::before{content:"";position:fixed;inset:0;background:url('/static/backgrounds/bg2.webp') center center / cover no-repeat;opacity:.10;pointer-events:none;z-index:0}.roleplay-page .container{width:90%;max-width:700px;margin:auto;background:#f7f7f7;padding:20px;border-radius:6px;position:relative;z-index:1}.roleplay-page .message-row{display:flex;align-items:flex-end;margin-bottom:15px}.roleplay-page .message-row.user{justify-content:flex-end}.roleplay-page .message-row.ai{justify-content:flex-start}.roleplay-page .message-box{padding:10px;border-radius:4px;margin-bottom:0;max-width:78%;word-break:break-word;white-space:pre-wrap}.roleplay-page .message-box.user{background-color:#2f2f2f;color:#98fb98;font-family:'Poppins',sans-serif}.roleplay-page .message-box.ai{background-color:#212121;color:#e5e5e5;font-family:'Poppins',sans-serif}.roleplay-page .roleplay-header-avatar{width:84px;height:84px;border-radius:50%;vertical-align:middle;margin-left:20px;margin-right:10px}.roleplay-page .chat-avatar{width:70px;height:70px;border-radius:50%;object-fit:cover;flex:0 0 70px;border:2px solid rgba(255,255,255,0.9);box-shadow:0 1px 4px rgba(0,0,0,0.2);background:#d9d9d9}.roleplay-page .user-avatar{margin-right:10px}.roleplay-page .ai-avatar{margin-left:10px}.roleplay-page .user-label,.roleplay-page .ai-label{font-weight:bold;display:block;margin-bottom:4px}.roleplay-page .message-content,.roleplay-page .typingEffect{display:block}.roleplay-page textarea{width:100%;height:200px;font-family:'Poppins',sans-serif;font-size:16px}.roleplay-page textarea:disabled{background-color:#6a6a6a}.roleplay-page .stt-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;font-family:'Poppins',sans-serif}.roleplay-page .record-button{padding:12px 16px;font-family:'Poppins',sans-serif;font-size:15px;font-weight:bold;border:2px solid #7a1b1b;border-radius:999px;background:linear-gradient(to bottom,#ffe0e0 0,#ffb6b6 100%);color:#6d0f0f;cursor:pointer;min-width:128px}.roleplay-page .record-button:hover{opacity:.92}.roleplay-page .record-button.recording{border-color:#660b0b;background:linear-gradient(to bottom,#ff7d7d 0,#d82626 100%);color:#fff}.roleplay-page .record-button.processing{border-color:#7c5400;background:linear-gradient(to bottom,#fff0c9 0,#efc05f 100%);color:#654100}.roleplay-page .record-button:disabled{cursor:not-allowed;opacity:.75}.roleplay-page .recording-status-text{font-size:14px;color:#444}.roleplay-page .button-row{display:flex;justify-content:center;margin-top:10px}.roleplay-page .submit-button{padding:12px 18px;font-family:'Poppins',sans-serif;font-size:16px;font-weight:bold;border:2px solid #666;border-radius:6px;background:linear-gradient(to bottom,#eee 0,#ccc 100%);color:#333;box-shadow:0 4px #999;cursor:pointer}.roleplay-page .submit-button:hover{opacity:.9}.roleplay-page .submit-button:active{box-shadow:0 2px #999;transform:translateY(2px)}.roleplay-page .submit-button:disabled{background:#747474;cursor:not-allowed}.roleplay-page .analysis-button{padding:12px 18px;font-family:'Poppins',sans-serif;font-size:16px;font-weight:bold;border:2px solid #000;border-radius:6px;background:linear-gradient(to bottom right,#fef3a4 0,#ddb34c 100%);color:#333;box-shadow:0 4px #666;cursor:pointer;margin-left:10px}.roleplay-page .analysis-button:hover{opacity:.9}.roleplay-page .analysis-button:active{box-shadow:0 2px #666;transform:translateY(2px)}.roleplay-page .spinner{display:inline-block;width:16px;height:16px;border:3px solid #999;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.roleplay-page #thinkingIndicator{display:none;margin-top:15px;margin-bottom:20px;font-family:'Poppins',sans-serif}.roleplay-page #thinkingText{margin-left:10px}.roleplay-page .voice-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 18px 0;font-family:'Poppins',sans-serif}.roleplay-page .voice-toggle-button{padding:10px 14px;font-family:'Poppins',sans-serif;font-size:14px;font-weight:bold;border:2px solid #1b4d7a;border-radius:999px;background:linear-gradient(to bottom,#e4f1ff 0,#bddcff 100%);color:#11385a;cursor:pointer}.roleplay-page .voice-toggle-button:hover{opacity:.92}.roleplay-page .voice-toggle-button.voice-disabled{border-color:#666;background:linear-gradient(to bottom,#efefef 0,#cfcfcf 100%);color:#444}.roleplay-page .voice-toggle-button.voice-blocked{border-color:#8a4b00;background:linear-gradient(to bottom,#fff3d6 0,#f5cf8a 100%);color:#6a3900}.roleplay-page .voice-status-text{font-size:14px;color:#444}@media(max-width:600px){.roleplay-page{margin:15px}.roleplay-page .container{padding:15px}.roleplay-page .message-box{max-width:82%}.roleplay-page .roleplay-header-avatar{width:72px;height:72px}.roleplay-page .chat-avatar{width:62px;height:62px;flex-basis:62px}}.analysis-page{margin:50px;padding:auto auto 20px auto;text-align:center;background:#e2e2e2;font-family:'Merriweather',serif;position:relative;min-height:100vh}.analysis-page::before{content:"";position:fixed;inset:0;background:url('/static/backgrounds/bg3.webp') center center / cover no-repeat;opacity:.25;pointer-events:none;z-index:0}.analysis-page .analysis-container{width:90%;max-width:880px;margin:auto;background:#f7f7f7;padding:20px;border-radius:6px;position:relative;z-index:1}.analysis-page h1{margin-bottom:20px}.analysis-page .analysis-tabs-container{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:20px}.analysis-page .analysis-tabs-row1,.analysis-page .analysis-tabs-row2{display:flex;gap:10px;margin-bottom:0}.analysis-page .analysis-tab-btn{background:#333;color:#fff;flex:1 1 auto;text-align:center;border:none;padding:10px 15px;cursor:pointer;font-family:'Poppins',sans-serif;font-size:16px;margin:0 5px;border-radius:4px;min-width:120px}.analysis-page .analysis-tab-btn:hover{opacity:.8}.analysis-page .analysis-tab-btn.active{background:#e68a31;color:black;box-shadow:inset 0 0 4px rgba(0,0,0,0.3)}.analysis-page .tab-content{display:none;text-align:left;margin-top:20px;background:#fff;padding:20px;border-radius:4px;min-height:300px;height:auto;font-family:'Poppins',sans-serif;font-size:16px;white-space:pre-wrap;word-wrap:break-word}.analysis-page .tab-content h2{margin-bottom:1.5em}.analysis-page .tab-content h3{margin-top:1em}.analysis-page .tab-content.active{display:block}.analysis-page .tab-content h2{margin-top:0}.analysis-page .roleplay-analysis-pane{border:2px solid #81df7c;padding:10px}.analysis-page .grammar-analysis-pane{border:2px solid #988dfe;padding:10px}.analysis-page .judge-pane-1{border:2px solid #ffaacb;padding:10px}.analysis-page .judge-pane-2{border:2px solid #48e8d3;padding:10px}.analysis-page .judge-pane-3{border:2px solid #accaff;padding:10px}.analysis-page .analysis-feature-image-wrap{margin:0 0 18px 0}.analysis-page .analysis-feature-image{display:block;width:100%;max-width:400px;height:auto;border-radius:10px}.analysis-page .judge-thumb{max-width:30%;border-radius:50%;vertical-align:middle;margin-right:8px;margin-bottom:10px}@media(max-width:600px){.analysis-page .judge-thumb{max-width:60%}}.analysis-page .full-roleplay-section{width:90%;max-width:830px;margin:30px auto;background:#f7f7f7;padding:5px;border-radius:6px;border:1px solid #ccc;text-align:left;position:relative;z-index:1}.analysis-page .transcript-inner{border:2px solid #6C3BAA;padding:15px;border-radius:0}.analysis-page .user-text{color:green}.analysis-page .ai-text{color:brown}.analysis-page .transcript-round{padding:5px;margin-bottom:15px;font-family:'Poppins',sans-serif;font-size:16px}.analysis-page .save-email-container{width:90%;margin:30px auto;max-width:600px;padding:20px;background:#c7c7c7;border:2px solid #666;border-radius:6px;text-align:center;position:relative;z-index:1}.analysis-page .save-email-container h2{margin-bottom:15px}.analysis-page .save-email-input{margin-bottom:15px;display:flex;align-items:center;justify-content:center}.analysis-page .save-email-textbox{padding:5px 5px 5px 15px;border:1px solid #555;border-radius:4px;height:40px;font-family:'Poppins',sans-serif;font-size:16px;font-weight:bold}.analysis-page .save-email-buttons{display:flex;justify-content:center;gap:10px}.analysis-page .save-document-btn{background:#33b249;color:#fff;border:2px solid #258034;padding:10px 20px;font-family:'Poppins',sans-serif;font-size:16px;border-radius:4px;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,0.1);transition:opacity .2s ease}.analysis-page .new-roleplay-btn{background:#f5a81b;color:#fff;border:2px solid #ca8d1c;padding:10px 20px;font-family:'Poppins',sans-serif;font-size:16px;border-radius:4px;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,0.1);transition:opacity .2s ease}.analysis-page .save-email-buttons button:hover{opacity:.7}@media(max-width:600px){.analysis-page *{box-sizing:border-box}.analysis-page .tab-content h2{margin-bottom:10px!important}.analysis-page .tab-content h3{margin-top:5px!important}.analysis-page{margin:20px 0 20px 0;text-align:center;background:#e2e2e2}.analysis-page .analysis-container{width:95%;max-width:700px;margin:5px auto;background:#f7f7f7;padding:5px;border-radius:6px}.analysis-page .analysis-tabs-container{padding:0 5px;display:block}.analysis-tab-btn .judge-number{display:none}.analysis-page .analysis-tabs-row1{display:flex;justify-content:center;gap:10px;margin-bottom:15px}.analysis-page .analysis-tabs-row2{padding:0 5px;display:flex;justify-content:center;gap:2px;margin-bottom:15px}.analysis-page .analysis-tab-btn{font-size:14px}.analysis-page .analysis-tabs-row2 .analysis-tab-btn{font-size:13px;flex:0 1 auto;min-width:100px}.analysis-page .tab-content{font-size:13px}.analysis-page .full-roleplay-section{width:95%;max-width:700px;margin:5px auto;padding:5px;border:1px solid #ccc}.analysis-page .transcript-inner{border:2px solid #6C3BAA;padding:10px;border-radius:0}.analysis-page .transcript-round{font-size:12px}.analysis-page .save-email-input{display:flex;align-items:center;justify-content:center;width:100%;box-sizing:border-box}.analysis-page .save-email-textbox{flex:0 0 80%;max-width:100%;margin-right:5px;box-sizing:border-box}}@media(max-width:600px){body{padding-bottom:20px}}