.script-modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.script-modal-content{background-color:#fff;border-radius:8px;width:90%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 5px 15px #0000004d;animation:modal-appear .3s ease-out}@keyframes modal-appear{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.script-modal-header{padding:15px 20px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;gap:12px}.script-modal-header h2{margin:0;color:#2c3e50;font-size:20px;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.close-button{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:#7f8c8d;transition:color .2s,background-color .2s;width:36px;height:36px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.close-button:hover{color:#e74c3c;background-color:#0000000f}.close-button:active{background-color:#0000001f}.script-modal-body{padding:20px;overflow-y:auto;flex-grow:1;line-height:1.6}.script-modal-footer{padding:15px 20px;border-top:1px solid #eee;display:flex;justify-content:space-between;gap:10px}.primary-btn{background-color:#3498db;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:700;transition:background-color .2s}.secondary-btn{background-color:#2ecc71;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:700;transition:background-color .2s}.secondary-btn:hover{background-color:#27ae60}.listen-btn{display:flex;align-items:center;gap:5px}.listen-btn:before{content:"🔊";font-size:16px}.script-container{max-width:700px;margin:0 auto}.script-line-group{display:flex;margin-bottom:20px;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;background-color:#fff}.script-speaker-block{width:120px;padding:15px;background-color:#3498db;color:#fff;font-weight:700;font-size:14px;text-align:center;display:flex;align-items:center;justify-content:center;text-transform:uppercase;flex-shrink:0}.script-dialogue-block{flex:1;padding:15px 20px}.dialogue-paragraph{margin:0 0 8px;line-height:1.5;color:#2c3e50;text-align:left}.dialogue-paragraph:last-child{margin-bottom:0}.script-direction{font-style:italic;color:#7f8c8d;margin:15px 0;padding:10px 15px;border-left:3px solid #95a5a6;background-color:#f9f9f9;border-radius:0 5px 5px 0}body.dark-mode .script-modal-content{background-color:#2c3e50;color:#ecf0f1}body.dark-mode .script-modal-header{border-bottom-color:#34495e}body.dark-mode .script-modal-header h2{color:#ecf0f1}body.dark-mode .close-button{color:#bdc3c7}body.dark-mode .close-button:hover{color:#e74c3c;background-color:#ffffff14}body.dark-mode .close-button:active{background-color:#ffffff29}body.dark-mode .script-modal-footer{border-top-color:#34495e}body.dark-mode .script-line-group{background-color:#34495e;box-shadow:0 1px 3px #0000004d}body.dark-mode .script-speaker-block{background-color:#2980b9}body.dark-mode .dialogue-paragraph{color:#ecf0f1}body.dark-mode .script-direction{color:#bdc3c7;background-color:#2c3e50;border-left-color:#7f8c8d}@media(max-width:768px){.script-modal-content{width:95%}.script-modal-header{padding:12px 16px}.script-modal-header h2{font-size:18px}.close-button{width:40px;height:40px;font-size:26px;margin-right:-8px}.script-modal-body{padding:15px}.script-line-group{flex-direction:column;margin-bottom:15px}.script-speaker-block{width:100%;padding:8px 15px;border-radius:8px 8px 0 0}.script-dialogue-block{padding:12px 15px}.script-direction{margin:10px 0;padding:8px 12px}}.script-reader{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:800px;margin:0 auto;padding:20px;position:relative;display:flex;flex-direction:column;max-height:90vh}.script-reader h2{margin-top:0;margin-bottom:15px;padding-bottom:10px;color:#333;border-bottom:1px solid #eee;padding-right:60px}.script-reader-content{flex:1;overflow-y:auto;padding-right:10px;margin-bottom:15px}.user-interaction-notice{background-color:#fff3e0;border-left:4px solid #ff9800;padding:10px 15px;margin-bottom:20px;border-radius:4px}.user-interaction-notice p{margin:0 0 10px;color:#e65100;font-size:.9rem;text-align:left}.user-interaction-notice ol{margin:0;padding-left:25px}.user-interaction-notice li{color:#e65100;font-size:.85rem;margin-bottom:5px}.script-reader h3{margin-top:20px;margin-bottom:10px;color:#555;font-size:1.1rem}.voice-controls{margin-bottom:20px}.voice-assignments{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:20px}.character-voice{display:flex;flex-direction:column;margin-bottom:10px}.character-voice label{margin-bottom:5px;font-weight:700;color:#555}.character-voice select{padding:8px;border:1px solid #ddd;border-radius:4px;background-color:#f9f9f9}.playback-settings{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;margin-bottom:20px}.setting{display:flex;flex-direction:column}.setting label{margin-bottom:5px;font-weight:700;color:#555}.setting span{font-size:.9rem;color:#777;text-align:center}.playback-controls{display:flex;justify-content:center;gap:15px;margin-bottom:15px}.playback-controls button{padding:10px 20px;border:none;border-radius:4px;font-weight:700;cursor:pointer;transition:background-color .2s}.play-button{background-color:#4caf50;color:#fff}.play-button:hover{background-color:#45a049}.pause-button{background-color:#ff9800;color:#fff}.pause-button:hover{background-color:#e68a00}.stop-button{background-color:#f44336;color:#fff}.stop-button:hover{background-color:#d32f2f}.stop-button:disabled{background-color:#ddd;color:#999;cursor:not-allowed}.current-line{background-color:#f5f5f5;border-left:4px solid #4caf50;padding:15px;margin-bottom:20px;border-radius:4px}.script-reader-close{background-color:#ddd;border:none;border-radius:6px;padding:8px 15px;min-height:36px;cursor:pointer;position:absolute;top:16px;right:16px;color:#333;font-weight:500;transition:background-color .15s ease;touch-action:manipulation}.script-reader-close:hover,.script-reader-close:focus-visible{background-color:#ccc;outline:none}.script-reader-close:active{background-color:#b8b8b8}body.dark-mode .script-reader-close{background-color:#4a5a6a;color:#ecf0f1}body.dark-mode .script-reader-close:hover,body.dark-mode .script-reader-close:focus-visible{background-color:#5a6b7c}body.dark-mode .script-reader-close:active{background-color:#3d4a57}.script-reader-footer{border-top:1px solid #eee;padding-top:15px;margin-top:auto;flex-shrink:0}.audio-indicator{display:flex;align-items:center;justify-content:center;margin-bottom:15px;padding:8px 12px;background-color:#e8f5e9;border-radius:4px;color:#2e7d32;font-size:.9rem;font-weight:700}.audio-wave{width:20px;height:20px;margin-right:10px;background-color:#4caf50;border-radius:50%;animation:pulse 1.5s infinite ease-in-out}@keyframes pulse{0%{transform:scale(.8);opacity:.7}50%{transform:scale(1.2);opacity:1}to{transform:scale(.8);opacity:.7}}.note{font-size:.9rem;color:#777;font-style:italic;text-align:center}.script-reader.loading,.script-reader.error{text-align:center;padding:40px;color:#555}.script-reader.error{color:#f44336}.script-reader.error h2{color:#f44336;margin-bottom:20px}.script-reader.error .error-help{background-color:#fff8e1;border-left:4px solid #ffc107;padding:15px;margin:20px 0;color:#5d4037;text-align:left;border-radius:4px}@media(max-width:768px){.script-reader{max-height:85vh;padding:15px}.script-reader h2{padding-right:88px}.script-reader-close{top:12px;right:12px;min-width:44px;min-height:44px;padding:10px 16px;font-size:.95rem}.playback-controls button{min-height:44px}.character-voice select,.setting input,.setting select{font-size:16px;min-height:44px}.voice-assignments,.playback-settings{grid-template-columns:1fr}.playback-controls{flex-wrap:wrap}.playback-controls button{flex:1;min-width:100px;padding:12px 10px}}.input-view{max-width:800px;margin:0 auto;padding:20px}.input-view h1{text-align:center;margin-bottom:20px;color:#2c3e50}.input-form{margin-top:20px}.step-container{margin-bottom:25px;padding:15px;border-radius:8px;background-color:#f9f9f9;transition:all .3s ease}.step-header{display:flex;align-items:center;margin-bottom:15px}.step-number{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background-color:#3498db;color:#fff;font-weight:700;margin-right:10px;flex-shrink:0}.step-header h3{margin:0;color:#2c3e50;font-size:18px}.active-step{border-color:#3498db!important;box-shadow:0 0 0 2px #3498db33}.script-view-button{margin-top:15px}.view-script-btn{width:100%;max-width:250px;padding:8px 15px;font-size:14px;background-color:#7f8c8d;transition:background-color .3s}.view-script-btn:hover{background-color:#95a5a6}.tabs{display:flex;margin-bottom:15px}.tab-btn{flex:1;padding:10px;background:#f5f5f5;border:1px solid #ddd;cursor:pointer;transition:background .3s;color:#333}.tab-btn:first-child{border-radius:5px 0 0 5px}.tab-btn:last-child{border-radius:0 5px 5px 0}.tab-btn.active{background:#3498db;color:#fff;border-color:#3498db}.tab-content{margin-bottom:20px}#scriptLibrary{width:100%;padding:10px;border:1px solid #ddd;border-radius:5px;font-size:16px;margin-bottom:15px}#scriptInput{width:100%;padding:10px;border:1px solid #ddd;border-radius:5px;font-size:16px;resize:vertical;min-height:150px;box-sizing:border-box}#scriptFile{width:100%;padding:20px;border:2px dashed #ddd;border-radius:5px;text-align:center;cursor:pointer;transition:border-color .3s;box-sizing:border-box}#scriptFile:hover{border-color:#3498db}.character-input{margin-bottom:15px;position:relative}.character-input-container{display:flex;position:relative}#characterName{width:100%;padding:10px;border:1px solid #ddd;border-radius:5px;font-size:16px;box-sizing:border-box}.character-select-container{width:100%}.character-select-container label{display:block;margin-bottom:5px;font-weight:700;color:#2c3e50}.character-select{width:100%;padding:10px;border:1px solid #ddd;border-radius:5px;font-size:16px;background-color:#fff;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="6"><path d="M0 0l6 6 6-6z" fill="%23666"/></svg>');background-repeat:no-repeat;background-position:right 10px center;background-size:12px}.character-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.context-input{margin-bottom:20px}#precedingCount{width:100%;padding:10px;border:1px solid #ddd;border-radius:5px;font-size:16px;box-sizing:border-box}.help-text{margin-top:5px;font-size:14px;color:#666;text-align:left}.shortcuts-info{margin-top:20px;padding:15px;background:#f8f9fa;border-radius:5px;border-left:4px solid #3498db}.shortcuts-info p{margin-top:0;font-weight:700;text-align:left}.shortcuts-info ul{padding-left:20px;margin-bottom:0;text-align:left}body.dark-mode .input-view h1{color:#ecf0f1}body.dark-mode .tab-btn{background:#34495e;border-color:#2c3e50;color:#ecf0f1}body.dark-mode .tab-btn.active{background:#3498db;border-color:#3498db}body.dark-mode #scriptLibrary,body.dark-mode #scriptInput,body.dark-mode #characterName,body.dark-mode #precedingCount,body.dark-mode .character-select{background:#2c3e50;border-color:#34495e;color:#ecf0f1}body.dark-mode #scriptFile{border-color:#34495e;color:#ecf0f1}body.dark-mode .character-select-container label,body.dark-mode .step-header h3{color:#ecf0f1}body.dark-mode .step-container{background-color:#2c3e50}body.dark-mode .step-number{background-color:#3498db;color:#ecf0f1}body.dark-mode .help-text{color:#bdc3c7}body.dark-mode .shortcuts-info{background:#34495e;border-left-color:#3498db}@media(max-width:480px){.input-actions button{flex:1 1 100%}.extract-btn-emoji{display:none}textarea,input[type=text],input[type=number]{font-size:16px}}@media(max-width:768px){.input-view{padding:10px}.tab-btn{padding:8px 5px;font-size:14px}#scriptInput{min-height:120px}.input-actions{flex-wrap:wrap;gap:8px}.input-actions button{flex:1 1 calc(50% - 4px);min-height:44px;min-width:0}.extract-btn-prefix,.shortcuts-info{display:none}}.practice-view{max-width:800px;margin:0 auto;padding:20px}.practice-view h1{text-align:center;margin-bottom:20px;color:#2c3e50}.progress-bar{height:10px;background-color:#f0f0f0;border-radius:5px;margin-bottom:20px;overflow:hidden}.progress-fill{height:100%;background-color:#3498db;transition:width .3s ease}.context-section{background-color:#f9f9f9;border-radius:6px;padding:15px;margin-bottom:20px;border-left:4px solid #3498db;box-shadow:0 1px 4px #0000000d;overflow-y:auto;max-height:40vh;scrollbar-width:thin;scrollbar-color:#ccc transparent}.context-section::-webkit-scrollbar{width:6px}.context-section::-webkit-scrollbar-track{background:transparent}.context-section::-webkit-scrollbar-thumb{background-color:#ccc;border-radius:6px}.context-section h3{margin-top:0;margin-bottom:10px;color:#2c3e50}.context-line{padding:5px 0;border-bottom:1px solid #eee}.context-line:last-child{border-bottom:none}#card{position:relative;background-color:#fff;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px #00000014;min-height:100px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;border:1px solid rgba(0,0,0,.05)}#card.revealed{background-color:#e8f4fc}.card-content{width:100%;text-align:center;font-size:18px;line-height:1.5}.card-inner{position:relative;width:100%}.card-inner .card-content{width:100%;padding-right:32px}.copy-btn{position:absolute;top:4px;right:4px;background:transparent;border:none;font-size:20px;cursor:pointer;opacity:.5;transition:opacity .2s;padding:4px;margin:0;line-height:1}.copy-btn:hover{opacity:1;transform:none;box-shadow:none;background:transparent}.copy-btn--copied{opacity:1;color:#27ae60;font-size:18px;font-weight:700}.primary-btn{background-color:#3498db;font-weight:500}.primary-btn:hover{background-color:#2980b9}.secondary-btn{background-color:#95a5a6}.secondary-btn:hover{background-color:#7f8c8d}.finish-btn{background-color:#27ae60!important;font-weight:700;box-shadow:0 2px 5px #27ae604d}.finish-btn:hover{background-color:#2ecc71!important}.checkmark{margin-left:8px;font-weight:700}.restart-btn{margin-top:20px}.action-buttons{display:flex;justify-content:center;margin:20px 0}.empty-context{text-align:center;color:#7f8c8d;font-style:italic}.your-line-prompt{margin-bottom:5px;font-weight:700;color:#7f8c8d}.complete-message{text-align:center;padding:30px;background-color:#e8f4fc;border-radius:5px;margin-bottom:20px;animation:fade-in .5s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.complete-message h2{margin:0 0 15px;color:#2c3e50;font-size:28px}.complete-message p{margin:10px 0;color:#34495e;font-size:18px}.complete-stats{margin-top:20px;font-weight:700;color:#3498db;font-size:16px;background-color:#ffffff80;display:inline-block;padding:8px 15px;border-radius:20px}body.dark-mode .practice-view h1,body.dark-mode .context-section h3,body.dark-mode .complete-message h2{color:#ecf0f1}body.dark-mode .progress-bar{background-color:#34495e}body.dark-mode .context-section{background-color:#2c3e50;border-left-color:#3498db}body.dark-mode .context-line{border-bottom-color:#34495e}body.dark-mode #card{background-color:#34495e;color:#ecf0f1;border-color:#ffffff0d}body.dark-mode #card.revealed{background-color:#2980b9}body.dark-mode .your-line-prompt{color:#bdc3c7}body.dark-mode .complete-message{background-color:#34495e}body.dark-mode .complete-message p{color:#ecf0f1}@media(max-width:768px){.practice-view{padding:12px}.context-section{max-height:35vh;padding:10px;margin-bottom:12px}#card{padding:15px;min-height:80px;margin-bottom:12px}.card-content{font-size:16px}.action-buttons{flex-direction:column;align-items:center;margin:12px 0}.action-buttons button{width:100%;margin:4px 0;height:44px}.center{flex-direction:column;align-items:center;margin:10px 0}.center button{margin:5px 0}}@media(max-height:500px)and (orientation:landscape){.practice-view{padding:6px}.practice-view h1{font-size:1.1em;margin-bottom:6px}.progress-bar{height:4px;margin-bottom:6px}.landscape-container{display:flex;flex-direction:row;gap:10px;align-items:flex-start;justify-content:space-between}.context-section{padding:8px;margin-bottom:6px;max-height:60vh;width:48%;flex-shrink:0}#card{min-height:50px;padding:8px;margin-bottom:6px;width:48%}.action-buttons{flex-direction:column;margin:6px 0;gap:8px;width:48%}.action-buttons button{height:36px;padding:6px 10px;font-size:13px;margin:0;width:100%}}.converter-view{max-width:900px;margin:0 auto;padding:20px}.converter-view h1{text-align:center;margin-bottom:8px}.converter-view>p{text-align:center;margin:0 0 24px;color:var(--text-secondary, #666)}.converter-container{display:flex;flex-direction:column;gap:20px}.converter-view .input-section,.converter-view .output-section{background:var(--bg-secondary, #f5f5f5);padding:20px;border-radius:12px;display:flex;flex-direction:column;gap:14px}.converter-view h2{margin:0;font-size:1.15rem}.converter-view h3{margin:0 0 10px;font-size:1rem;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.04em}.converter-view .script-editor,.converter-view .structured-output textarea,.converter-view .metadata-field input,.converter-view .metadata-field textarea{width:100%;box-sizing:border-box;padding:12px 14px;border-radius:8px;border:1px solid var(--border-color, #ddd);background:var(--bg-primary, #fff);color:var(--text-primary, #2c3e50);font-family:inherit;font-size:.95rem;line-height:1.5;transition:border-color .15s ease,box-shadow .15s ease}.converter-view .script-editor,.converter-view .structured-output textarea{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9rem;min-height:220px;resize:vertical}.converter-view .structured-output textarea{background:#00000008}.converter-view .script-editor:focus,.converter-view .structured-output textarea:focus,.converter-view .metadata-field input:focus,.converter-view .metadata-field textarea:focus{outline:none;border-color:var(--primary, #4a90e2);box-shadow:0 0 0 3px #4a90e22e}.converter-view .script-stats{display:flex;flex-wrap:wrap;gap:8px}.converter-view .script-stats span{background:#4a90e21f;color:var(--primary, #4a90e2);padding:4px 10px;border-radius:999px;font-size:.85rem;font-weight:500}.converter-view .detected-characters .character-list{display:flex;flex-wrap:wrap;gap:8px}.converter-view .character-item{background:#66bb6a26;color:#2e7d32;padding:4px 10px;border-radius:999px;font-size:.85rem;font-weight:500}.converter-view .detected-characters p{margin:0;text-align:left;color:var(--text-secondary, #666);font-size:.9rem}.converter-view .metadata-editor{display:flex;flex-direction:column;gap:12px}.converter-view .metadata-field{display:flex;flex-direction:column;gap:6px}.converter-view .metadata-field label{font-size:.85rem;font-weight:500;color:var(--text-secondary, #666)}.converter-view .metadata-field textarea{font-family:inherit;resize:vertical;min-height:70px}.converter-view .export-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.converter-view .export-actions button{min-height:44px;padding:10px 20px;border-radius:8px;border:none;background:var(--primary, #4a90e2);color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;margin:0}.converter-view .center{margin-top:8px}.converter-view .secondary-btn{background:transparent;color:var(--text-primary, #2c3e50);border:1px solid var(--border-color, #ddd);padding:10px 20px;border-radius:8px;font-size:.95rem;cursor:pointer;min-height:44px}body.dark-mode .converter-view>p,body.dark-mode .converter-view h3,body.dark-mode .converter-view .metadata-field label,body.dark-mode .converter-view .detected-characters p{color:#cfd8dc}body.dark-mode .converter-view .input-section,body.dark-mode .converter-view .output-section{background:#ffffff0d}body.dark-mode .converter-view .script-editor,body.dark-mode .converter-view .metadata-field input,body.dark-mode .converter-view .metadata-field textarea{background:#ffffff0f;color:#f1f5f9;border-color:#ffffff2e}body.dark-mode .converter-view .structured-output textarea{background:#00000040;color:#f1f5f9;border-color:#ffffff2e}body.dark-mode .converter-view .script-stats span{background:#4a90e238;color:#b3d4fc}body.dark-mode .converter-view .character-item{background:#66bb6a38;color:#c8e6c9}body.dark-mode .converter-view .secondary-btn{color:#f1f5f9;border-color:#ffffff40}@media(max-width:768px){.converter-view{padding:12px}.converter-view .input-section,.converter-view .output-section{padding:14px;gap:12px}.converter-view .script-editor,.converter-view .structured-output textarea{min-height:180px}.converter-view .export-actions{justify-content:stretch}.converter-view .export-actions button{flex:1 1 100%;width:100%}.converter-view .secondary-btn{width:100%}}@media(max-width:480px){.converter-view{padding:8px}.converter-view h2{font-size:1.05rem}.converter-view .script-editor,.converter-view .structured-output textarea{font-size:.85rem;min-height:160px}}.about-view{max-width:800px;margin:0 auto;padding:20px}.about-view h1{text-align:center;margin-bottom:30px;color:#2c3e50}.about-content{background:#f8f9fa;border-radius:10px;padding:20px;box-shadow:0 2px 10px #0000001a;margin-bottom:30px}.about-section{margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid #e9ecef}.about-section:last-child{border-bottom:none;padding-bottom:0}.about-section h2{color:#3498db;margin-bottom:15px;font-size:1.4em}.about-section p{line-height:1.6;margin-bottom:10px;text-align:left}.about-section ul{padding-left:20px;margin-bottom:10px}.about-section li{margin-bottom:8px;line-height:1.5}body.dark-mode .about-view h1{color:#ecf0f1}body.dark-mode .about-content{background:#34495e;box-shadow:0 2px 10px #0000004d}body.dark-mode .about-section{border-bottom-color:#2c3e50}body.dark-mode .about-section h2{color:#3498db}@media(max-width:768px){.about-view{padding:10px}.about-content{padding:15px}.about-section h2{font-size:1.2em}}.line-correction{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:12px;background:var(--bg-secondary, #f5f5f5);border:1px solid var(--border-color, #e0e0e0);text-align:left}.line-correction--correct{border-color:#4caf5073;background:#4caf5014}.line-correction--close{border-color:#ffc10780;background:#ffc1071a}.line-correction--off{border-color:#f4433673;background:#f4433614}.line-correction--no-input{border-color:#ffa72673;background:#ffa7261a}.line-correction--error{border-color:#f443368c;background:#f443361f}.line-correction--compact{padding:12px 14px;gap:8px}.line-correction__title{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary, #222)}.line-correction__message{margin:0;font-size:.9rem;color:var(--text-secondary, #666);font-style:italic}.line-correction__row{display:flex;flex-direction:column;gap:4px}.line-correction__label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary, #777)}.line-correction__transcript{margin:0;font-size:.95rem;line-height:1.4;color:var(--text-primary, #222);overflow-wrap:anywhere}.line-correction__diff{display:flex;flex-wrap:wrap;gap:4px;max-width:100%}.line-correction__word{display:inline-block;padding:3px 7px;border-radius:5px;font-size:.92rem;font-weight:500;line-height:1.25;overflow-wrap:anywhere}.line-correction__word--correct{background:#4caf502e;color:#1b5e20}.line-correction__word--missing{background:#f443362e;color:#b71c1c;text-decoration:line-through}.line-correction__word--extra{background:#ff98002e;color:#e65100;font-style:italic}.line-correction__perfect{margin:0;font-size:.9rem;font-weight:600;color:#2e7d32}body.dark-mode .line-correction{background:#ffffff0a;border-color:#ffffff1a}body.dark-mode .line-correction--correct{background:#4caf501f;border-color:#4caf5066}body.dark-mode .line-correction--close{background:#ffc1071f;border-color:#ffc10766}body.dark-mode .line-correction--off{background:#f443361f;border-color:#f4433666}body.dark-mode .line-correction--no-input{background:#ffa7261f;border-color:#ffa72666}body.dark-mode .line-correction--error{background:#f4433629;border-color:#f4433680}body.dark-mode .line-correction__title,body.dark-mode .line-correction__transcript{color:#f5f5f5}body.dark-mode .line-correction__label,body.dark-mode .line-correction__message{color:#b0b0b0}body.dark-mode .line-correction__word--correct{background:#4caf5047;color:#a5d6a7}body.dark-mode .line-correction__word--missing{background:#f4433647;color:#ef9a9a}body.dark-mode .line-correction__word--extra{background:#ff980047;color:#ffcc80}body.dark-mode .line-correction__perfect{color:#a5d6a7}@media(max-width:480px){.line-correction{padding:12px;gap:8px}.line-correction--compact{padding:10px 12px}.line-correction__title,.line-correction__transcript{font-size:.9rem}.line-correction__word{font-size:.88rem;padding:2px 6px}}.line-tags-modal__backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top));padding-bottom:max(1rem,env(safe-area-inset-bottom))}.line-tags-modal__panel{background:#fff;color:#1a1a1a;width:100%;max-width:720px;max-height:90vh;border-radius:12px;box-shadow:0 14px 48px #00000059;display:flex;flex-direction:column;overflow:hidden}body.dark-mode .line-tags-modal__panel{background:#1d1d1f;color:#ececec}.line-tags-modal__header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;border-bottom:1px solid rgba(0,0,0,.08)}body.dark-mode .line-tags-modal__header{border-bottom-color:#ffffff14}.line-tags-modal__header h2{margin:0;font-size:1.15rem}.line-tags-modal__close{background:transparent;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:inherit;padding:.25rem .5rem;border-radius:6px}.line-tags-modal__close:hover{background:#0000000f}body.dark-mode .line-tags-modal__close:hover{background:#ffffff14}.line-tags-modal__hint{margin:0;padding:.75rem 1.1rem;font-size:.875rem;opacity:.8;border-bottom:1px solid rgba(0,0,0,.04)}body.dark-mode .line-tags-modal__hint{border-bottom-color:#ffffff0d}.line-tags-modal__body{flex:1 1 auto;overflow-y:auto;padding:.5rem 1.1rem}.line-tags-modal__empty{margin:1.5rem 0;text-align:center;opacity:.7}.line-tags-modal__list{list-style:none;margin:0;padding:0}.line-tags-modal__row{display:flex;flex-direction:column;gap:.5rem;align-items:stretch;padding:.8rem 0;border-bottom:1px solid rgba(0,0,0,.06)}body.dark-mode .line-tags-modal__row{border-bottom-color:#ffffff0f}.line-tags-modal__row:last-child{border-bottom:none}.line-tags-modal__line{font-size:.95rem;line-height:1.4;word-break:break-word}.line-tags-modal__speaker{font-weight:600;color:#2563eb}body.dark-mode .line-tags-modal__speaker{color:#6ea8ff}.line-tags-modal__field{display:flex;align-items:stretch;gap:.4rem}.line-tags-modal__original-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;opacity:.6;margin-bottom:.15rem}.line-tags-modal__input{flex:1 1 auto;font:inherit;font-size:16px;padding:.55rem .7rem;border:1px solid rgba(0,0,0,.18);border-radius:8px;background:#fafafa;color:inherit;min-height:44px;resize:vertical;line-height:1.4;font-family:inherit}.line-tags-modal__row-actions{display:flex;flex-direction:column;gap:.35rem;flex:0 0 auto}.line-tags-modal__play,.line-tags-modal__reset{background:transparent;border:1px solid rgba(0,0,0,.18);border-radius:8px;width:40px;height:40px;font-size:1rem;line-height:1;cursor:pointer;color:inherit;display:inline-flex;align-items:center;justify-content:center}body.dark-mode .line-tags-modal__play,body.dark-mode .line-tags-modal__reset{border-color:#ffffff38}.line-tags-modal__play:hover:not(:disabled),.line-tags-modal__reset:hover:not(:disabled){background:#0000000f}body.dark-mode .line-tags-modal__play:hover:not(:disabled),body.dark-mode .line-tags-modal__reset:hover:not(:disabled){background:#ffffff14}.line-tags-modal__play:disabled,.line-tags-modal__reset:disabled{opacity:.45;cursor:not-allowed}.line-tags-modal__play.is-playing{background:#2563eb;color:#fff;border-color:#2563eb}.line-tags-modal__spinner{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:lineTagsSpin .8s linear infinite;display:inline-block}@keyframes lineTagsSpin{to{transform:rotate(360deg)}}body.dark-mode .line-tags-modal__input{background:#2a2a2d;border-color:#ffffff2e}.line-tags-modal__input:focus{outline:2px solid #2563eb;outline-offset:1px}.line-tags-modal__footer{display:flex;justify-content:flex-end;gap:.6rem;padding:.85rem 1.1rem;border-top:1px solid rgba(0,0,0,.08);background:#fafafa}body.dark-mode .line-tags-modal__footer{border-top-color:#ffffff14;background:#181819}.line-tags-modal__btn{font:inherit;font-size:.95rem;padding:.6rem 1.1rem;border-radius:8px;border:1px solid transparent;cursor:pointer;min-height:44px;min-width:88px}.line-tags-modal__btn--ghost{background:transparent;border-color:#0000002e;color:inherit}body.dark-mode .line-tags-modal__btn--ghost{border-color:#ffffff38}.line-tags-modal__btn--primary{background:#2563eb;color:#fff}.line-tags-modal__btn--primary:hover:not(:disabled){background:#1d4fcc}.line-tags-modal__btn:disabled{opacity:.55;cursor:not-allowed}@media(max-width:640px){.line-tags-modal__panel{max-height:100vh;border-radius:0;height:100%;max-width:100%}.line-tags-modal__row{gap:.45rem}.line-tags-modal__field{flex-direction:column}.line-tags-modal__row-actions{flex-direction:row;justify-content:flex-end}.line-tags-modal__footer{padding-bottom:max(.85rem,env(safe-area-inset-bottom))}}.live-header__edit-tags-btn{font:inherit;font-size:.9rem;padding:.45rem .75rem;border-radius:8px;border:1px solid rgba(0,0,0,.18);background:transparent;color:inherit;cursor:pointer;min-height:36px;display:inline-flex;align-items:center;gap:.35rem}.live-header__edit-tags-btn:hover{background:#0000000f}body.dark-mode .live-header__edit-tags-btn{border-color:#ffffff38}body.dark-mode .live-header__edit-tags-btn:hover{background:#ffffff14}.voice-modal-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9000;padding:1rem}.voice-modal{background:var(--card-bg, #fff);color:var(--text-color, #1a1a1a);border-radius:12px;width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0000004d;overflow:hidden}body.dark-mode .voice-modal{background:#1f2228;color:#f4f4f4}.voice-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid rgba(0,0,0,.08)}body.dark-mode .voice-modal-header{border-bottom-color:#ffffff1a}.voice-modal-header h2{margin:0;font-size:1.15rem}.voice-modal-close{background:transparent;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:inherit;padding:0 .25rem}.voice-modal-help{margin:0;padding:.75rem 1.25rem;font-size:.9rem;opacity:.85;background:#00000008}body.dark-mode .voice-modal-help{background:#ffffff0d}.voice-modal-experimental{padding:.5rem 1.25rem .75rem;border-bottom:1px dashed rgba(0,0,0,.08)}body.dark-mode .voice-modal-experimental{border-bottom-color:#ffffff1a}.voice-random-toggle{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;cursor:pointer}.voice-random-toggle input{cursor:pointer}.voice-random-hint{margin:.25rem 0 0;font-size:.78rem;opacity:.7;line-height:1.35}.voice-modal-body{flex:1;overflow-y:auto;padding:.5rem 1.25rem 1rem}.voice-modal-empty{text-align:center;opacity:.7;padding:1rem 0}.voice-character-list{list-style:none;margin:0;padding:0}.voice-character-row{padding:.75rem 0;border-bottom:1px solid rgba(0,0,0,.06)}body.dark-mode .voice-character-row{border-bottom-color:#ffffff14}.voice-character-row:last-child{border-bottom:none}.voice-character-row.is-user{background:#ffc8000f;border-radius:6px;padding-left:.5rem;padding-right:.5rem}.voice-character-name{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.voice-user-badge{font-size:.7rem;background:#f5a623;color:#fff;border-radius:999px;padding:.1rem .55rem;text-transform:uppercase;letter-spacing:.04em}.voice-character-controls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.voice-select{flex:1 1 220px;min-width:180px;padding:.45rem .6rem;border-radius:6px;border:1px solid rgba(0,0,0,.18);background:inherit;color:inherit;font-size:.92rem}body.dark-mode .voice-select{border-color:#fff3;background:#2a2e36}.voice-sample-btn{padding:.45rem .85rem;border-radius:6px;border:1px solid #4a90e2;background:#4a90e2;color:#fff;font-size:.9rem;cursor:pointer;white-space:nowrap}.voice-sample-btn:disabled,.voice-shuffle-btn:disabled{opacity:.55;cursor:not-allowed}.voice-shuffle-btn{padding:.4rem .65rem;border-radius:6px;border:1px solid rgba(0,0,0,.18);background:transparent;color:inherit;font-size:.88rem;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap}body.dark-mode .voice-shuffle-btn{border-color:#ffffff38}.voice-shuffle-count{font-size:.72rem;opacity:.65;font-variant-numeric:tabular-nums}.voice-sample-empty{font-style:normal;opacity:.55}.voice-sample-preview{margin-top:.45rem;font-size:.82rem;font-style:italic;opacity:.7;line-height:1.35;max-height:3em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.voice-modal-footer{display:flex;justify-content:space-between;gap:.75rem;padding:.85rem 1.25rem;border-top:1px solid rgba(0,0,0,.08);background:#00000005}body.dark-mode .voice-modal-footer{border-top-color:#ffffff1a;background:#ffffff08}.voice-clear-btn{background:transparent;border:1px solid rgba(0,0,0,.2);color:inherit;padding:.5rem .9rem;border-radius:6px;cursor:pointer;font-size:.88rem}body.dark-mode .voice-clear-btn{border-color:#ffffff40}.voice-done-btn{background:#4a90e2;color:#fff;border:none;padding:.55rem 1.2rem;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600}@media(max-width:768px){.voice-modal-close{min-width:44px;min-height:44px}.voice-select{font-size:16px;min-height:44px}.voice-sample-btn,.voice-shuffle-btn,.voice-clear-btn,.voice-done-btn{min-height:44px}.voice-modal-footer{padding-bottom:max(.85rem,env(safe-area-inset-bottom))}}@media(max-width:480px){.voice-modal-overlay{padding:0;align-items:flex-end}.voice-modal{max-width:none;max-height:92dvh;border-radius:16px 16px 0 0}.voice-modal-header,.voice-modal-help,.voice-modal-experimental,.voice-modal-body,.voice-modal-footer{padding-left:1rem;padding-right:1rem}.voice-modal-close{min-width:44px;min-height:44px;padding:.25rem .5rem}.voice-character-controls{flex-direction:column;align-items:stretch;gap:.6rem}.voice-select{width:100%;flex:1 1 auto;min-width:0;font-size:16px;min-height:44px}.voice-sample-btn,.voice-shuffle-btn{width:100%;min-height:44px;font-size:.95rem;justify-content:center}.voice-modal-footer{flex-direction:column-reverse;align-items:stretch;gap:.5rem;padding-bottom:max(.85rem,env(safe-area-inset-bottom))}.voice-clear-btn,.voice-done-btn{width:100%;min-height:44px;font-size:1rem}}.interactive-memorization-view{max-width:900px;margin:0 auto;padding:20px}.interactive-memorization-view h1{text-align:center;margin-bottom:24px}.live-error{background:#f443361a;color:#b71c1c;border:1px solid rgba(244,67,54,.3);padding:10px 14px;border-radius:8px;margin-bottom:16px}.live-stage{background:var(--bg-secondary, #f5f5f5);padding:20px;border-radius:12px;margin-bottom:20px;min-height:180px;display:flex;flex-direction:column;gap:18px}.other-lines-block h3,.user-line-block h3{margin:0 0 10px;font-size:1rem;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.04em}.other-lines-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.other-line{background:#4a90e214;padding:10px 12px;border-radius:8px;font-size:1rem;border-left:3px solid transparent;transition:background .2s,border-color .2s}.other-line.speaking{background:#4a90e233;border-left-color:var(--primary, #4a90e2);font-weight:500}.user-line-block{background:#ffa72614;padding:14px 16px;border-radius:8px;border:2px dashed transparent}.user-line-block.active{border-color:#ffa72680;background:#ffa72624}.user-line-text{font-size:1.1rem;margin:0}.user-line-hidden{margin:0;color:var(--text-secondary, #666);font-size:.95rem}.revealed-user-line{margin-top:12px;padding:12px 14px;border-radius:8px;background:#43a04724;border-left:3px solid #43a047}.revealed-user-line__label{display:block;margin-bottom:6px;color:var(--text-secondary, #555);font-size:.78rem;font-weight:700;text-transform:uppercase}.revealed-user-line p{margin:0;font-size:1.08rem;line-height:1.5}.car-mode-status{margin-top:12px;padding:9px 12px;border-radius:8px;background:#4a90e21f;color:var(--text-secondary, #4a4a4a);font-size:.92rem;font-weight:700}.evaluation-panel{margin-top:8px;padding:12px 14px;border-radius:8px;text-align:left}.evaluation-panel p{margin:4px 0}.evaluation-panel.correct{background:#4caf5026}.evaluation-panel.close{background:#ffc1072e}.evaluation-panel.off{background:#f443361a}.evaluation-panel.error{background:#f443362e}.evaluation-panel.no-input{background:#ffa7261f}.evaluation-message{font-style:italic}.live-controls{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:16px}.live-controls button{min-width:140px;padding:12px 18px;border-radius:10px;border:none;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .05s}.live-controls button:disabled{opacity:.55;cursor:not-allowed}.play-next-btn{background:var(--primary, #4a90e2);color:#fff}.record-btn{background:#ef5350;color:#fff}.record-btn.recording{background:#b71c1c;animation:live-pulse 1.2s ease-in-out infinite}.line-retry-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:-6px}.line-retry-actions button{min-width:118px;padding:10px 14px;border:none;border-radius:8px;color:#fff;font-size:.95rem;font-weight:700;cursor:pointer}.line-retry-actions button:disabled{opacity:.55;cursor:not-allowed}.line-retry-btn{background:#ef5350}.line-continue-btn{background:#43a047}.reveal-line-btn{background:#ffa726;color:#fff}.next-line-btn{background:#66bb6a;color:#fff}.car-mode-stop-btn{background:#546e7a}@keyframes live-pulse{0%,to{box-shadow:0 0 #f4433666}50%{box-shadow:0 0 0 12px #f4433600}}.mic-status,.mic-error{text-align:center;font-size:.9rem;color:var(--text-secondary, #666);margin:6px 0}.mic-error{color:#d32f2f}.test-complete{text-align:center;padding:20px}.results-summary{background:var(--bg-secondary, #f5f5f5);padding:20px;border-radius:12px;margin:20px 0}.results-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.result-stat{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.85rem;color:var(--text-secondary, #666)}.stat-value{font-size:1.6rem;font-weight:600}.test-complete-actions,.navigation-buttons{display:flex;gap:12px;justify-content:center;margin-top:16px}.test-complete-actions .restart-btn,.navigation-buttons .restart-btn{background:var(--primary, #4a90e2);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer}.navigation-buttons .debug-report-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#4a90e214;color:var(--primary, #4a90e2);border:1px solid rgba(74,144,226,.35);padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:600}.navigation-buttons .debug-report-btn:hover{background:#4a90e224}.interactive-memorization-view .back-btn{background:transparent;border:1px solid var(--border-color, #ddd);color:var(--text-primary, #222);padding:10px 20px;border-radius:8px;cursor:pointer}body.dark-mode .live-stage,body.dark-mode .results-summary{background:#ffffff0d}body.dark-mode .navigation-buttons .debug-report-btn{background:#4a90e224;color:#9fc8ff;border-color:#9fc8ff59}.zen-view{position:relative;max-width:100%;min-height:calc(100vh - 80px);margin:0 auto;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:radial-gradient(circle at 50% 35%,rgba(74,144,226,.1),transparent 60%),var(--bg-primary, #fafafa);overflow:hidden}body.dark-mode .zen-view{background:radial-gradient(circle at 50% 35%,rgba(74,144,226,.18),transparent 60%),#0e1117}.zen-icon-btn{position:absolute;top:18px;width:40px;height:40px;border-radius:50%;border:1px solid var(--border-color, rgba(0, 0, 0, .1));background:#fff9;color:var(--text-primary, #333);font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .18s,transform .05s;z-index:5}.zen-icon-btn:hover{background:#ffffffe6}.zen-icon-btn:active{transform:scale(.96)}.zen-icon-btn--back{left:18px}.zen-icon-btn--restart{right:18px;font-size:1.1rem}.zen-icon-btn--exit-zen{right:66px;font-size:1rem}body.dark-mode .zen-icon-btn{background:#ffffff0f;color:#e8e8e8;border-color:#ffffff1f}body.dark-mode .zen-icon-btn:hover{background:#ffffff1f}.zen-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;width:100%;padding:40px 0}.zen-sphere{position:relative;width:220px;height:220px;display:flex;align-items:center;justify-content:center}.zen-sphere__core{position:absolute;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffffd9,#4a90e2d9 60%,#285ab4f2);box-shadow:0 0 60px #4a90e273,inset 0 -10px 30px #0000002e;transition:background .6s ease,box-shadow .6s ease,transform .6s ease}.zen-sphere__ring{position:absolute;border-radius:50%;border:2px solid rgba(74,144,226,.35);opacity:0}.zen-sphere__ring--1{width:160px;height:160px}.zen-sphere__ring--2{width:190px;height:190px}.zen-sphere__ring--3{width:220px;height:220px}.zen-sphere--idle .zen-sphere__core{animation:zen-breathe 5s ease-in-out infinite}.zen-sphere--speaking .zen-sphere__core{animation:zen-breathe 1.6s ease-in-out infinite;background:radial-gradient(circle at 35% 30%,#ffffffe6,#63affff2 60%,#286ec8);box-shadow:0 0 90px #4a90e2a6,inset 0 -10px 30px #0003}.zen-sphere--speaking .zen-sphere__ring{animation:zen-ripple 2.4s ease-out infinite}.zen-sphere--speaking .zen-sphere__ring--2{animation-delay:.6s}.zen-sphere--speaking .zen-sphere__ring--3{animation-delay:1.2s}.zen-sphere--your-turn .zen-sphere__core{animation:zen-breathe 2.6s ease-in-out infinite;background:radial-gradient(circle at 35% 30%,#fff5dcf2,#ffb74df2 60%,#dc821e);box-shadow:0 0 80px #ffa7268c,inset 0 -10px 30px #0003}.zen-sphere--your-turn .zen-sphere__ring{border-color:#ffa72666;animation:zen-ripple 3s ease-out infinite}.zen-sphere--your-turn .zen-sphere__ring--2{animation-delay:.75s}.zen-sphere--your-turn .zen-sphere__ring--3{animation-delay:1.5s}.zen-sphere--recording .zen-sphere__core{animation:zen-pulse-strong 1s ease-in-out infinite;background:radial-gradient(circle at 35% 30%,#ffdcdce6,#ef5350f2 55%,#961e1e);box-shadow:0 0 100px #f44336b3,inset 0 -10px 30px #00000040}.zen-sphere--recording .zen-sphere__ring{border-color:#f4433680;animation:zen-ripple 1.6s ease-out infinite}.zen-sphere--recording .zen-sphere__ring--2{animation-delay:.4s}.zen-sphere--recording .zen-sphere__ring--3{animation-delay:.8s}.zen-sphere--success .zen-sphere__core{background:radial-gradient(circle at 35% 30%,#dcffdcf2,#66bb6af2 55%,#2e7d32);box-shadow:0 0 110px #66bb6ab3,inset 0 -10px 30px #0000002e;animation:zen-success-pop 1.3s ease-out}.zen-sphere--success .zen-sphere__ring{border-color:#66bb6a8c;animation:zen-ripple 1.3s ease-out}.zen-sphere--success .zen-sphere__ring--2{animation-delay:.2s}.zen-sphere--success .zen-sphere__ring--3{animation-delay:.4s}@keyframes zen-success-pop{0%{transform:scale(.95)}35%{transform:scale(1.18)}to{transform:scale(1)}}.zen-sphere--checking .zen-sphere__core{background:radial-gradient(circle at 35% 30%,#ffffffd9,#b4b4c8e6 60%,#5a5a6ef2);box-shadow:0 0 50px #9696aa66,inset 0 -10px 30px #0003;animation:zen-breathe 2s ease-in-out infinite}.zen-sphere--checking .zen-sphere__ring--1{border-top-color:var(--primary, #4a90e2);border-right-color:#4a90e21a;border-bottom-color:#4a90e21a;border-left-color:#4a90e21a;opacity:1;animation:zen-spin 1.2s linear infinite}@keyframes zen-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes zen-pulse-strong{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes zen-ripple{0%{transform:scale(.7);opacity:.7}to{transform:scale(1.25);opacity:0}}@keyframes zen-spin{to{transform:rotate(360deg)}}.zen-caption{margin:0;font-size:1.1rem;font-weight:500;color:var(--text-primary, #333);text-align:center;letter-spacing:.01em;opacity:.85;min-height:1.5em}body.dark-mode .zen-caption{color:#e8e8e8}.zen-action-bar{width:100%;display:flex;justify-content:center;padding-bottom:24px}.zen-action-btn{min-width:220px;padding:16px 32px;font-size:1.05rem;font-weight:600;letter-spacing:.02em;border-radius:999px;border:none;cursor:pointer;background:var(--primary, #4a90e2);color:#fff;box-shadow:0 6px 20px #4a90e259;transition:transform .05s ease,box-shadow .2s ease,background .25s ease}.zen-action-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #4a90e273}.zen-action-btn:active:not(:disabled){transform:translateY(0)}.zen-action-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.zen-action-btn--record{background:#ef5350;box-shadow:0 6px 20px #ef535066}.zen-action-btn--record:hover:not(:disabled){box-shadow:0 8px 24px #ef535080}.zen-action-btn--stop{background:#b71c1c;box-shadow:0 6px 20px #b71c1c80;animation:live-pulse 1.4s ease-in-out infinite}.zen-action-btn--play{background:var(--primary, #4a90e2)}.zen-action-btn--checking,.zen-action-btn--speaking,.zen-action-btn--idle{background:#78788299;box-shadow:none}.zen-correction-overlay{position:absolute;inset:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:10;animation:zen-overlay-fade .35s ease-out}.zen-correction-overlay__inner{position:relative;max-width:560px;width:100%;background:var(--bg-primary, #fff);border-radius:16px;padding:44px 18px 18px;box-shadow:0 20px 60px #00000059}.zen-correction-overlay__close{position:absolute;top:8px;right:8px;width:36px;height:36px;border-radius:50%;border:1px solid var(--border-color, rgba(0, 0, 0, .1));background:#0000000a;color:var(--text-primary, #333);font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s,transform .05s;padding:0;margin:0;z-index:1}.zen-correction-overlay__close:hover{background:#0000001a}.zen-correction-overlay__close:active{transform:scale(.94)}body.dark-mode .zen-correction-overlay__close{background:#ffffff14;color:#e8e8e8;border-color:#ffffff1f}body.dark-mode .zen-correction-overlay__close:hover{background:#ffffff29}body.dark-mode .zen-correction-overlay__inner{background:#1a1d24}@keyframes zen-overlay-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.zen-mic-status{text-align:center;font-size:.9rem;color:var(--text-secondary, #666);margin:6px 0}@media(max-width:480px){.interactive-memorization-view{padding:12px}.live-stage{padding:14px;gap:14px}.live-controls{gap:8px}.live-controls button{flex:1 1 100%;min-width:0;min-height:44px;padding:12px 14px;font-size:.95rem}.results-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-value{font-size:1.3rem}.stat-label{font-size:.82rem}.test-complete-actions,.navigation-buttons{flex-direction:column;align-items:stretch;gap:10px}.test-complete-actions .restart-btn,.navigation-buttons .restart-btn,.navigation-buttons .debug-report-btn,.interactive-memorization-view .back-btn{width:100%;min-height:44px}}.live-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.live-header h1{margin:0;text-align:left}.zen-mode-inline-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:var(--text-secondary, #555);-webkit-user-select:none;user-select:none}.zen-mode-inline-toggle input{position:absolute;opacity:0;pointer-events:none}.zen-mode-inline-toggle__switch{position:relative;width:38px;height:22px;border-radius:999px;background:#78788259;transition:background .2s ease;flex-shrink:0}.zen-mode-inline-toggle__switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .2s ease}.zen-mode-inline-toggle input:checked+.zen-mode-inline-toggle__switch{background:var(--primary, #4a90e2)}.zen-mode-inline-toggle input:checked+.zen-mode-inline-toggle__switch:after{transform:translate(16px)}.zen-mode-inline-toggle input:focus-visible+.zen-mode-inline-toggle__switch{outline:2px solid var(--primary, #4a90e2);outline-offset:2px}.zen-mode-inline-toggle:has(input:disabled){cursor:not-allowed;opacity:.6}body.dark-mode .zen-mode-inline-toggle{color:#d8d8d8}@media(max-width:768px){.app-content:has(.zen-view){padding:0!important;margin:0!important;width:100vw!important;max-width:100vw!important;min-height:100dvh!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;overflow:hidden!important}.zen-view{min-height:100dvh;width:100vw;padding:16px;padding-top:max(16px,env(safe-area-inset-top,0px));padding-bottom:max(16px,env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));box-sizing:border-box;border-radius:0}.zen-icon-btn{top:max(12px,env(safe-area-inset-top,0px))}.zen-icon-btn--back{left:max(12px,env(safe-area-inset-left,0px))}.zen-icon-btn--restart{right:max(12px,env(safe-area-inset-right,0px))}.zen-icon-btn--exit-zen{right:calc(max(12px,env(safe-area-inset-right,0px)) + 48px)}}@media(max-width:480px){.zen-icon-btn--exit-zen{right:calc(max(8px,env(safe-area-inset-right,0px)) + 48px)}.zen-sphere{width:180px;height:180px}.zen-sphere__core{width:100px;height:100px}.zen-sphere__ring--1{width:130px;height:130px}.zen-sphere__ring--2{width:160px;height:160px}.zen-sphere__ring--3{width:180px;height:180px}.zen-action-btn{min-width:180px;padding:14px 24px;font-size:1rem}.zen-caption{font-size:1rem}}.access-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#0f172aa6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.access-gate__card{width:100%;max-width:380px;background:var(--card-bg, #ffffff);color:var(--text-color, #0f172a);border-radius:12px;box-shadow:0 20px 50px #00000040;padding:1.75rem 1.5rem;display:flex;flex-direction:column;gap:1rem}body.dark-mode .access-gate__card{background:#1f2937;color:#f8fafc}.access-gate__title{font-size:1.15rem;margin:0;line-height:1.3}.access-gate__description{margin:0;font-size:.92rem;opacity:.8;line-height:1.4}.access-gate__notice{background:#fbbf242e;color:#92400e;padding:.6rem .75rem;border-radius:8px;font-size:.88rem}body.dark-mode .access-gate__notice{background:#fbbf242e;color:#fde68a}.access-gate__form{display:flex;flex-direction:column;gap:.6rem}.access-gate__input{width:100%;padding:.65rem .8rem;border:1px solid rgba(15,23,42,.18);border-radius:8px;font-size:1rem;background:#fff;color:inherit;box-sizing:border-box}body.dark-mode .access-gate__input{background:#111827;border-color:#f8fafc33;color:#f8fafc}.access-gate__input:focus{outline:2px solid #6366f1;outline-offset:1px}.access-gate__submit{padding:.65rem 1rem;border-radius:8px;border:none;background:#6366f1;color:#fff;font-weight:600;font-size:.95rem;cursor:pointer}.access-gate__submit:disabled{opacity:.6;cursor:not-allowed}.access-gate__submit:hover:not(:disabled){background:#4f46e5}.access-gate__error{background:#ef44441f;color:#b91c1c;padding:.55rem .75rem;border-radius:8px;font-size:.88rem}body.dark-mode .access-gate__error{background:#ef44442e;color:#fecaca}@media(max-width:768px){.access-gate{padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.access-gate__card{max-height:calc(100dvh - 2rem);overflow-y:auto}.access-gate__input{font-size:16px;min-height:44px}.access-gate__submit{min-height:44px}}@media(max-width:480px){.access-gate{padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.access-gate__card{padding:1.25rem 1rem;gap:.85rem}.access-gate__title{font-size:1.05rem}.access-gate__input{padding:.75rem .85rem}.access-gate__submit{padding:.75rem 1rem;font-size:1rem}}.script-memorization-practice{max-width:900px;margin:0 auto;padding:20px}.script-memorization-practice h1{text-align:center;margin-bottom:24px}.intro-content{display:flex;flex-direction:column;gap:24px}.intro-header{display:flex;align-items:center;gap:16px;background:var(--bg-secondary, #f5f5f5);padding:20px;border-radius:12px}.intro-icon{font-size:3rem}.intro-description{font-size:1.05rem;margin:0}.feature-list,.benefits-section,.api-key-info{background:var(--bg-secondary, #f5f5f5);padding:20px;border-radius:12px}.feature-list h2,.benefits-section h2{margin:0 0 16px;font-size:1.2rem}.feature-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.feature-item{display:flex;align-items:flex-start;gap:12px}.feature-icon{font-size:1.4rem}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.benefit-item{background:#00000008;padding:16px;border-radius:8px;text-align:center}.benefit-icon{font-size:2rem;display:block;margin-bottom:8px}.benefit-item h3{margin:0 0 8px;font-size:1rem}.benefit-item p{margin:0;font-size:.9rem;color:var(--text-secondary, #666)}.start-actions{display:flex;gap:12px;justify-content:center}.start-btn{background:var(--primary, #4a90e2);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.script-memorization-practice .back-btn{background:transparent;border:1px solid var(--border-color, #ddd);padding:12px 24px;border-radius:8px;cursor:pointer;font-size:1rem}.script-memorization-practice.error{text-align:center;padding:40px 20px}body.dark-mode .intro-header,body.dark-mode .feature-list,body.dark-mode .benefits-section,body.dark-mode .api-key-info{background:#ffffff0d}body.dark-mode .benefit-item{background:#ffffff0a}@media(max-width:768px){.script-memorization-practice{padding:16px}.start-actions{flex-wrap:wrap;gap:12px}.start-btn,.script-memorization-practice .back-btn{min-height:44px}}@media(max-width:480px){.script-memorization-practice{padding:12px}.intro-content{gap:16px}.intro-header{padding:14px;gap:12px;align-items:flex-start}.intro-icon{font-size:2rem;line-height:1}.intro-description{font-size:1rem}.feature-list,.benefits-section,.api-key-info{padding:14px}.feature-list h2,.benefits-section h2{font-size:1.1rem;margin-bottom:12px}.benefits-grid{grid-template-columns:1fr;gap:12px}.start-actions{flex-direction:column;align-items:stretch;gap:10px}.start-btn,.script-memorization-practice .back-btn{width:100%;min-height:44px;justify-content:center}}.user-profile{max-width:600px;margin:0 auto;padding:24px}.user-profile h2{margin-bottom:24px}.user-profile h3{margin:0 0 12px;font-size:1.1rem}.profile-info{background:var(--bg-secondary, #f5f5f5);padding:16px;border-radius:12px;margin-bottom:24px}.profile-info p{margin:8px 0}.auth-section{margin-bottom:24px;padding:16px;background:var(--bg-secondary, #f5f5f5);border-radius:12px}.auth-section input{width:100%;padding:10px;margin-bottom:12px;border:1px solid var(--border-color, #ddd);border-radius:8px;font-size:.95rem;box-sizing:border-box}.profile-actions{display:flex;gap:12px;margin-top:16px}.profile-actions button,.auth-section button{padding:10px 16px;border-radius:8px;border:none;cursor:pointer;font-size:.95rem;font-weight:500}.primary-btn{background:var(--primary, #4a90e2);color:#fff}.secondary-btn{background:#6c757d;color:#fff}.logout-button{background:#dc3545;color:#fff}.back-btn{background:transparent;border:1px solid var(--border-color, #ddd)}.user-profile .error{color:#dc3545;background:#dc354514;padding:12px;border-radius:8px}body.dark-mode .profile-info,body.dark-mode .auth-section{background:#ffffff0d}body.dark-mode .auth-section input{background:#ffffff14;color:#fff;border-color:#fff3}@media(max-width:768px){.auth-section input{font-size:16px;min-height:44px}.profile-actions{flex-wrap:wrap}.profile-actions button,.auth-section button{min-height:44px}}@media(max-width:480px){.user-profile{padding:16px 12px}.user-profile h2{font-size:1.25rem;margin-bottom:16px}.profile-info,.auth-section{padding:14px;margin-bottom:16px}.auth-section input{font-size:16px;padding:12px;min-height:44px}.profile-actions{flex-wrap:wrap;gap:10px}.profile-actions button,.auth-section button{flex:1 1 calc(50% - 5px);min-width:0;min-height:44px;padding:12px 14px;font-size:1rem}.profile-actions .back-btn,.profile-actions .logout-button{flex:1 1 100%}}.offline-indicator{position:fixed;bottom:12px;bottom:max(12px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:#f44336;color:#fff;padding:8px 16px;border-radius:24px;display:flex;align-items:center;gap:8px;font-size:.9rem;z-index:1000;box-shadow:0 4px 12px #0003}.install-prompt{position:fixed;bottom:16px;right:16px;z-index:1000;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0003;padding:16px;max-width:360px}.install-prompt-content{display:flex;align-items:center;gap:12px}.install-prompt-icon{font-size:2rem}.install-prompt-text{flex:1}.install-prompt-text h3{margin:0 0 4px;font-size:1rem}.install-prompt-text p{margin:0;font-size:.85rem;color:#666}.install-prompt-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.install-prompt-dismiss,.install-prompt-install{border:none;border-radius:8px;padding:10px 14px;min-height:40px;cursor:pointer;font-size:.9rem;font-weight:500;white-space:nowrap;touch-action:manipulation;transition:background-color .15s ease}.install-prompt-dismiss{background:transparent;color:#666}.install-prompt-dismiss:hover,.install-prompt-dismiss:focus-visible{background:#0000000f;outline:none}.install-prompt-dismiss:active{background:#0000001f}.install-prompt-install{background:var(--primary, #4a90e2);color:#fff}.install-prompt-install:hover,.install-prompt-install:focus-visible{background:#3a7bc8;outline:none}.install-prompt-install:active{background:#2f6aaf}body.dark-mode .install-prompt{background:#2a2a2a;color:#fff}body.dark-mode .install-prompt-text p{color:#aaa}body.dark-mode .install-prompt-dismiss{color:#ccc}body.dark-mode .install-prompt-dismiss:hover,body.dark-mode .install-prompt-dismiss:focus-visible{background:#ffffff14}body.dark-mode .install-prompt-dismiss:active{background:#ffffff29}@media(max-width:480px){.install-prompt{left:12px;right:12px;bottom:12px;max-width:none;padding:14px}.install-prompt-content{flex-wrap:wrap}.install-prompt-actions{flex-direction:row;width:100%;margin-top:4px}.install-prompt-dismiss,.install-prompt-install{flex:1;min-height:44px}}.server-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:.75rem;background:#0000000d}.server-status-indicator{width:8px;height:8px;border-radius:50%}.server-status-checking .server-status-indicator{background:#ffa726}.server-status-online .server-status-indicator{background:#4caf50}.server-status-offline .server-status-indicator{background:#f44336}body.dark-mode .server-status-badge{background:#ffffff14;color:#ddd}.api-unreachable-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:flex-start;gap:12px;max-width:min(640px,calc(100vw - 24px));width:max-content;padding:12px 16px;border-radius:12px;background:#fff8e1;color:#5d4037;border:1px solid #ffb300;box-shadow:0 8px 24px #0000002e;z-index:1100;font-size:.9rem;line-height:1.35}.api-unreachable-banner__icon{font-size:1.25rem;line-height:1;margin-top:2px}.api-unreachable-banner__content{flex:1 1 auto;min-width:0}.api-unreachable-banner__title{font-weight:600;margin-bottom:2px}.api-unreachable-banner__message{font-weight:400}.api-unreachable-banner__detail{margin-top:4px;font-size:.75rem;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.api-unreachable-banner__actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.api-unreachable-banner__retry{background:#ffb300;color:#3e2723;border:none;border-radius:8px;padding:6px 12px;font-weight:600;cursor:pointer;font-size:.8rem}.api-unreachable-banner__retry:hover{background:#ffa000}.api-unreachable-banner__dismiss{background:transparent;border:none;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}.api-unreachable-banner__dismiss:hover{background:#0000000f}body.dark-mode .api-unreachable-banner{background:#3e2723;color:#ffe0b2;border-color:#ffb300}body.dark-mode .api-unreachable-banner__dismiss:hover{background:#ffffff14}@media(max-width:768px){.api-unreachable-banner__retry,.api-unreachable-banner__dismiss{min-height:44px;min-width:44px}}@media(max-width:480px){.api-unreachable-banner{flex-wrap:wrap;width:calc(100vw - 24px);padding:10px 12px;gap:8px;font-size:.85rem}.api-unreachable-banner__content{flex:1 1 100%;order:1}.api-unreachable-banner__icon{order:0}.api-unreachable-banner__actions{order:2;margin-left:auto;width:100%;justify-content:flex-end}.api-unreachable-banner__retry{flex:1 1 auto;padding:10px 14px;font-size:.9rem}}.app-content:has(.stt-performance-page){max-width:980px}.stt-performance-page{color:#213547}.stt-performance-page h1{margin-bottom:8px}.stt-performance-page p{text-align:left}.stt-performance-summary{margin:0 auto 20px;max-width:760px;color:#52606d;line-height:1.5;text-align:center}.stt-performance-controls,.stt-performance-results,.stt-performance-audio,.stt-performance-settings{border:1px solid #d9e2ec;border-radius:8px;padding:18px;margin-bottom:18px;background:#fff}.stt-performance-controls h2,.stt-performance-results h2,.stt-performance-audio h2,.stt-performance-settings h2{margin:0 0 14px;font-size:1.15rem;color:#243b53}.stt-performance-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.stt-performance-actions button,.stt-performance-run button,.stt-performance-upload{align-items:center;display:inline-flex;gap:8px;justify-content:center;min-height:42px}.stt-performance-upload{background:#eef2f7;border:1px solid #bcccdc;border-radius:5px;color:#243b53;cursor:pointer;font-size:1rem;margin:5px;padding:10px 16px;transition:background .2s ease,box-shadow .2s ease,transform .2s ease}.stt-performance-upload:hover{background:#d9e2ec;box-shadow:0 5px 10px #00000014;transform:translateY(-2px)}.stt-performance-upload input{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.stt-performance-danger{background:#c0392b}.stt-performance-danger:hover{background:#a93226}.stt-performance-audio audio{margin-top:10px;width:100%}.stt-performance-meta{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.stt-performance-meta span{background:#f5f7fa;border-radius:6px;color:#334e68;display:block;font-size:.9rem;padding:9px 10px}.stt-performance-settings-grid{display:grid;gap:14px;grid-template-columns:minmax(150px,.8fr) repeat(2,minmax(220px,1fr))}.stt-performance-field{display:flex;flex-direction:column;gap:6px}.stt-performance-field label{color:#334e68;font-weight:700}.stt-performance-field input,.stt-performance-field textarea{border:1px solid #bcccdc;border-radius:6px;box-sizing:border-box;color:#243b53;font:inherit;padding:10px 11px;width:100%}.stt-performance-field textarea{min-height:86px;resize:vertical}.stt-performance-run{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:18px}.stt-performance-run-note{color:#52606d;font-size:.95rem;margin:0}.stt-performance-error{background:#fdecea;border:1px solid #f5c2c7;border-radius:8px;color:#9f1239;margin-bottom:18px;padding:12px 14px}.stt-performance-results-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.stt-performance-result{background:#f8fafc;border:1px solid #d9e2ec;border-radius:8px;display:flex;flex-direction:column;min-height:340px;padding:14px}.stt-performance-result h3{color:#243b53;font-size:1rem;margin:0 0 4px}.stt-performance-model{color:#627d98;font-size:.86rem;overflow-wrap:anywhere}.stt-performance-status{border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:700;margin:12px 0;padding:5px 9px;text-transform:uppercase;width:fit-content}.stt-performance-status.idle{background:#e4e7eb;color:#334e68}.stt-performance-status.running{background:#fff7db;color:#8d5d00}.stt-performance-status.success{background:#e3fcec;color:#0f5132}.stt-performance-status.error{background:#fdecea;color:#9f1239}.stt-performance-stats{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.stt-performance-stat{background:#fff;border:1px solid #d9e2ec;border-radius:6px;padding:8px}.stt-performance-stat span{color:#627d98;display:block;font-size:.78rem;margin-bottom:3px}.stt-performance-stat strong{color:#243b53;font-size:1rem}.stt-performance-transcript{background:#fff;border:1px solid #d9e2ec;border-radius:6px;color:#243b53;flex:1;line-height:1.5;margin:0;min-height:140px;overflow-wrap:anywhere;overflow-y:auto;padding:10px;white-space:pre-wrap}.stt-performance-delta{background:#eef2f7;border-radius:8px;color:#334e68;font-weight:700;margin-bottom:14px;padding:10px 12px;text-align:center}body.dark-mode .stt-performance-page{color:#f5f7fa}body.dark-mode .stt-performance-summary,body.dark-mode .stt-performance-run-note,body.dark-mode .stt-performance-model{color:#d9e2ec}body.dark-mode .stt-performance-controls,body.dark-mode .stt-performance-results,body.dark-mode .stt-performance-audio,body.dark-mode .stt-performance-settings,body.dark-mode .stt-performance-result,body.dark-mode .stt-performance-stat,body.dark-mode .stt-performance-transcript{background:#243b53;border-color:#486581}body.dark-mode .stt-performance-controls h2,body.dark-mode .stt-performance-results h2,body.dark-mode .stt-performance-audio h2,body.dark-mode .stt-performance-settings h2,body.dark-mode .stt-performance-result h3,body.dark-mode .stt-performance-field label,body.dark-mode .stt-performance-stat strong,body.dark-mode .stt-performance-transcript{color:#f5f7fa}body.dark-mode .stt-performance-field input,body.dark-mode .stt-performance-field textarea{background:#102a43;border-color:#627d98;color:#f5f7fa}body.dark-mode .stt-performance-upload,body.dark-mode .stt-performance-meta span,body.dark-mode .stt-performance-delta{background:#102a43;border-color:#486581;color:#f5f7fa}@media(max-width:760px){.stt-performance-settings-grid,.stt-performance-results-grid,.stt-performance-meta{grid-template-columns:1fr}.stt-performance-run{align-items:stretch;flex-direction:column}.stt-performance-run button{width:100%}}body{font-family:Segoe UI,Arial,sans-serif;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;justify-content:center;align-items:center;min-height:100vh;min-height:100dvh;margin:0}.header-controls{position:fixed;top:20px;top:max(20px,calc(env(safe-area-inset-top,0px) + 8px));left:20px;left:max(20px,env(safe-area-inset-left,0px));right:20px;right:max(20px,env(safe-area-inset-right,0px));display:flex;justify-content:space-between;align-items:center;z-index:999}.header-right{display:flex;align-items:center;gap:5px;position:relative}#languageSelect{padding:8px 12px;border-radius:5px;border:1px solid #ccc;background:#fff;font-size:14px;cursor:pointer;color:#2c3e50}#themeToggle,#optionsToggle{background:none;border:none;font-size:24px;cursor:pointer;padding:10px;color:#2c3e50}.app-container{display:flex;flex-direction:column;width:100%;min-height:100vh;min-height:100dvh}.app-content{background:#fff;border:none;padding:30px;border-radius:15px;box-shadow:0 10px 20px #0000001a;width:90%;max-width:600px;transition:all .3s ease;max-height:90vh;overflow-y:auto;margin:60px auto 20px}h1{text-align:center;margin-bottom:.5em;color:#2c3e50;font-size:2em}p{text-align:center;color:#555}button{background:#3498db;color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer;font-size:1em;transition:all .2s ease;margin:5px}button:hover{background:#2980b9;transform:translateY(-2px);box-shadow:0 5px 10px #0000001a}button:disabled{background:#95a5a6;cursor:not-allowed;transform:none;box-shadow:none}.center{display:flex;justify-content:center;margin:20px 0}.toast{position:fixed;bottom:20px;bottom:max(20px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:#3498dbe6;color:#fff;padding:10px 20px;border-radius:5px;z-index:1000;opacity:0;transition:opacity .3s ease;pointer-events:none}.toast-visible{opacity:1}.toast-error{background:#e74c3ce6}.toast-success{background:#2ecc71e6}.toast-warning{background:#f1c40fe6}.spinner{position:fixed;top:0;left:0;width:100%;height:100%;background:#fffc;display:none;justify-content:center;align-items:center;z-index:999}.spinner:after{content:"";width:50px;height:50px;border:6px solid #3498db;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner.visible{display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app-content>*{animation:fadeIn .5s ease-out}body.dark-mode{background:linear-gradient(135deg,#1a1c1e,#2c3e50)}body.dark-mode .app-content{background:#2c3e50;color:#fff;box-shadow:0 10px 20px #0000004d}body.dark-mode h1{color:#fff}body.dark-mode p{color:#ddd}body.dark-mode #card{background:#34495e;color:#fff}body.dark-mode #card.revealed{background:#2980b9}body.dark-mode #languageSelect{background:#2c3e50;color:#fff;border-color:#fff}body.dark-mode #themeToggle,body.dark-mode #optionsToggle{color:#fff}.options-modal{position:fixed;inset:0;background:#0f172a8c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:optionsBackdropFade .16s ease-out}@keyframes optionsBackdropFade{0%{opacity:0}to{opacity:1}}.options-modal__panel{background:#fff;color:#2c3e50;width:100%;max-width:420px;border-radius:16px;box-shadow:0 20px 50px #00000040;padding:18px 18px 22px;display:flex;flex-direction:column;gap:12px;animation:optionsPanelIn .22s cubic-bezier(.2,.8,.25,1)}@keyframes optionsPanelIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.options-modal__handle{display:none;width:40px;height:4px;border-radius:2px;background:#0000002e;margin:0 auto 4px}.options-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.options-modal__header h2{margin:0;font-size:1.1rem;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-close-icon{background:transparent;border:none;font-size:1.25rem;line-height:1;padding:0;color:inherit;width:36px;height:36px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .15s ease,color .15s ease;touch-action:manipulation}.modal-close-icon:hover,.modal-close-icon:focus-visible{background:#00000014;outline:none}.modal-close-icon:active{background:#00000029}body.dark-mode .modal-close-icon:hover,body.dark-mode .modal-close-icon:focus-visible{background:#ffffff1f}body.dark-mode .modal-close-icon:active{background:#fff3}.options-modal__close{background:transparent;border:none;font-size:1.25rem;line-height:1;color:inherit;width:36px;height:36px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;transition:background-color .15s ease}.options-modal__close:hover,.options-modal__close:focus-visible{background:#00000014;outline:none}.options-modal__close:active{background:#00000029}.options-modal__body{display:flex;flex-direction:column;gap:4px}.options-modal__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 12px;border-radius:12px;background:#0000000a;font-size:1rem;cursor:pointer;-webkit-user-select:none;user-select:none}.options-modal__row-label{flex:1}.options-modal__switch{width:22px;height:22px;cursor:pointer;accent-color:#4a90e2}.options-modal__item{display:block;width:100%;text-align:left;background:transparent;border:none;padding:14px 12px;font:inherit;color:inherit;border-radius:12px;cursor:pointer;transition:background .15s ease;min-height:48px}.options-modal__item:hover,.options-modal__item:focus-visible{background:#4a90e21f;outline:none}body.dark-mode .options-modal__panel{background:#1f2a36;color:#f1f5f9;box-shadow:0 20px 50px #0000008c}body.dark-mode .options-modal__row{background:#ffffff0f}body.dark-mode .options-modal__close:hover,body.dark-mode .options-modal__close:focus-visible{background:#ffffff1f}body.dark-mode .options-modal__close:active{background:#fff3}body.dark-mode .options-modal__item:hover,body.dark-mode .options-modal__item:focus-visible{background:#4a90e233}@media(max-width:640px){.options-modal{align-items:flex-end;padding:0}.options-modal__panel{max-width:none;border-radius:20px 20px 0 0;padding:10px 16px max(20px,env(safe-area-inset-bottom)) 16px;animation:optionsSheetIn .24s cubic-bezier(.2,.8,.25,1)}.options-modal__handle{display:block}.options-modal__item,.options-modal__row{padding:16px 12px;font-size:1.05rem}.options-modal__close,.modal-close-icon{width:40px;height:40px;font-size:1.4rem;margin-right:-6px}}@keyframes optionsSheetIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.context-section{max-height:40vh;overflow-y:auto;padding-right:10px;margin-bottom:16px;border-bottom:1px solid rgba(0,0,0,.1)}.loading{display:flex;justify-content:center;align-items:center;height:100%;font-size:1.2em;color:#3498db}@media(max-width:768px){body{height:auto;min-height:100vh;min-height:100dvh}.app-content{width:100%;max-width:100%;flex:1 1 auto;min-height:calc(100dvh - 72px);padding:18px;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px));margin:72px 0 0;max-height:none;box-sizing:border-box;border-radius:0;box-shadow:none}.header-controls{top:12px;top:max(12px,calc(env(safe-area-inset-top,0px) + 6px));left:12px;left:max(12px,env(safe-area-inset-left,0px));right:12px;right:max(12px,env(safe-area-inset-right,0px));gap:12px}.header-right{gap:8px}#languageSelect{padding:8px 10px;font-size:14px;min-height:38px}#themeToggle,#optionsToggle{padding:6px 8px;font-size:22px}h1{font-size:1.5em;margin-top:0}button{width:100%;margin:5px 0;touch-action:manipulation}.center button{width:auto;min-width:120px}#card{font-size:1.1em;padding:20px;min-height:100px}textarea{max-height:200px}#scriptFile{padding:15px;width:calc(100% - 34px);font-size:.9em}.tab-content{margin-bottom:15px}}@media(max-width:480px){.app-content{width:100%;max-width:100%;flex:1 1 auto;min-height:calc(100dvh - 64px);padding:16px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));margin:64px 0 0;border-radius:0;box-shadow:none}.header-controls{top:8px;top:max(8px,calc(env(safe-area-inset-top,0px) + 4px));left:8px;left:max(8px,env(safe-area-inset-left,0px));right:8px;right:max(8px,env(safe-area-inset-right,0px));gap:10px}.header-right{gap:4px}#languageSelect{padding:7px 8px;font-size:13px;min-height:36px;max-width:110px}#themeToggle,#optionsToggle{font-size:20px;padding:6px}.toast{padding:8px 16px;font-size:14px;bottom:10px;bottom:max(10px,env(safe-area-inset-bottom,0px))}}@media(max-height:500px)and (orientation:landscape){.app-content{margin:45px auto 5px;padding:10px;max-height:85vh}.header-controls{top:5px;top:max(5px,calc(env(safe-area-inset-top,0px) + 2px));left:max(5px,env(safe-area-inset-left,0px));right:max(5px,env(safe-area-inset-right,0px))}}@media(hover:none){button:hover{transform:none;box-shadow:none}button:active{transform:scale(.95);background:#2980b9}button,select,[role=button],input[type=button],input[type=submit],input[type=reset]{min-height:44px;min-width:44px}#themeToggle,#optionsToggle,#profileToggle{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}#languageSelect{min-height:44px;min-width:44px}}@media(max-width:768px){input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=tel],input[type=url],textarea,select{font-size:16px}}
