:root{background:#f4f7f8;color:#172026;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background:#f4f7f8}button,input,select{font:inherit}button{border:0;cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.52}.voice-app{display:grid;gap:14px;grid-template-areas:"header header" "settings settings" "stage log" "controls log";grid-template-columns:minmax(0,1fr) minmax(440px,520px);grid-template-rows:auto auto minmax(0,1fr) auto;margin:0 auto;max-width:min(100%,1320px);min-height:100vh;min-height:100dvh;padding:16px;width:100%}.voice-header{align-items:center;background:#fff;border:1px solid #dbe4e8;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;min-height:64px;padding:10px;grid-area:header}.brand-block{display:grid;gap:2px;flex:1 1 170px;min-width:0}.brand-block span{align-items:center;color:#647681;display:flex;flex-wrap:wrap;font-size:.76rem;font-weight:800;gap:6px}.brand-block b{background:#172026;border-radius:999px;color:#fff;font-size:.68rem;line-height:1;padding:4px 6px}.brand-block strong{color:#172026;font-size:1.06rem;line-height:1.2;overflow-wrap:anywhere}.session-strip{align-items:center;flex:1 1 240px;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;min-width:0}.session-strip span,.status-pill{align-items:center;background:#eef3f5;border:1px solid #d7e2e7;border-radius:999px;color:#30404a;display:inline-flex;font-size:.82rem;font-weight:900;min-height:34px;max-width:100%;padding:7px 10px;white-space:nowrap}.status-pill{flex:0 1 auto;gap:7px;max-width:min(100%,260px);overflow:hidden;text-overflow:ellipsis}.status-pill span{background:#94a3ad;border-radius:999px;flex:0 0 auto;height:8px;width:8px}.status-pill.online span{background:#0f9f7a}.header-language{align-items:center;background:#eef3f5;border:1px solid #d7e2e7;border-radius:999px;color:#30404a;display:inline-flex;flex:0 1 178px;gap:6px;min-height:44px;min-width:148px;padding:0 8px 0 12px}.header-language select{background:transparent;border:0;color:#30404a;flex:1;font-size:.82rem;font-weight:900;min-height:36px;min-width:0;padding:0}.header-language select:focus{box-shadow:none}.voice-header button,.partner-line button,.text-fallback button{align-items:center;background:#172026;border-radius:999px;color:#fff;display:inline-flex;height:44px;justify-content:center;flex:0 0 auto;width:44px}.settings-sheet{background:#fff;border:1px solid #dbe4e8;border-radius:8px;grid-area:settings;padding:12px}.partner-cards{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:12px}.partner-cards button{align-items:center;background:#f8fafb;border:1px solid #dce5e9;border-radius:8px;color:#172026;display:grid;gap:5px;min-height:118px;min-width:0;padding:10px;text-align:center}.partner-cards button.active{background:#e9f8f5;border-color:#0f9f7a}.partner-cards small{color:#667985;font-size:.78rem;line-height:1.35;overflow-wrap:anywhere}.mini-avatar,.main-avatar{align-items:center;border-radius:999px;color:#fff;display:inline-flex;font-weight:900;justify-content:center;overflow:hidden}.mini-avatar{font-size:1.15rem;height:58px;justify-self:center;width:58px}.mini-avatar img,.main-avatar img{height:100%;object-fit:cover;width:100%}.calm,.bright,.friendly,.formal{background:#eaf1f3}.partner-cards button.active .mini-avatar{box-shadow:0 0 0 4px #0f9f7a29}.setting-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.setting-grid label{color:#42525c;display:grid;font-size:.82rem;font-weight:900;gap:6px}.learning-level-slot{background:#f8fafb;border:1px solid #dbe4e8;border-radius:8px;display:grid;gap:6px;order:-1;padding:10px 12px}.learning-level-slot span{color:#60727d;font-size:.78rem;font-weight:900}.learning-level-slot strong{color:#172026;font-size:.95rem}select,input{background:#fff;border:1px solid #cdd9df;border-radius:8px;color:#172026;min-height:46px;outline:none;padding:0 12px}select:focus,input:focus{border-color:#0f9f7a;box-shadow:0 0 0 3px #0f9f7a1f}.partner-stage{align-content:center;background:#fff;border:1px solid #dbe4e8;border-radius:8px;display:grid;grid-area:stage;justify-items:center;min-height:440px;padding:24px 18px;text-align:center;min-width:0}.main-avatar{box-shadow:0 20px 46px #19232a2e,0 0 0 7px #fffffff5,0 0 0 9px #0f9f7a1f;font-size:5.5rem;height:clamp(148px,20vw,210px);margin-bottom:16px;width:clamp(148px,20vw,210px)}.main-avatar.speaking{outline:8px solid rgba(15,159,122,.18)}h1{color:#172026;font-size:2rem;line-height:1.15;margin:0 0 10px;max-width:100%;overflow-wrap:anywhere}.partner-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:0 0 18px;max-width:100%}.partner-meta span{background:#eef3f5;border:1px solid #d7e2e7;border-radius:999px;color:#42525c;font-size:.8rem;font-weight:900;padding:6px 9px}.partner-line{align-items:center;background:#f7fafb;border:1px solid #dbe4e8;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) 44px;line-height:1.7;max-width:680px;padding:14px;text-align:left;width:100%}.partner-line span{overflow-wrap:anywhere}.talk-controls{align-items:center;background:#fff;border:1px solid #dbe4e8;border-radius:8px;display:grid;grid-area:controls;gap:10px;justify-items:center;padding:14px;min-width:0;align-self:stretch}.setup-warning,.mic-help{border-radius:8px;font-size:.9rem;font-weight:850;line-height:1.5;padding:10px 12px;width:100%}.setup-warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.mic-help{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4e89}.live-button{align-items:center;background:#0f9f7a;border:1px solid #0d8a6b;border-radius:999px;box-shadow:0 16px 34px #0f9f7a3d;color:#fff;display:inline-flex;font-weight:950;gap:10px;justify-content:center;min-height:66px;max-width:100%;min-width:100%;padding:0 28px;white-space:normal}.live-button.connecting,.live-button.connected{background:#dc2626;border-color:#b91c1c;box-shadow:0 16px 34px #dc262633}.live-button.connecting:disabled{opacity:1}.utility-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-width:0;width:100%}.start-button{align-items:center;border-radius:999px;display:inline-flex;font-weight:900;gap:8px;justify-content:center;min-height:44px;max-width:100%;padding:0 14px;white-space:normal}.start-button.secondary{background:#eef3f5;border:1px solid #d7e2e7;color:#30404a}.start-button.recording{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.text-fallback{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 44px;max-width:680px;width:100%}.text-fallback input{min-width:0}.compact-log{align-self:stretch;background:#fff;border:1px solid #dbe4e8;border-radius:8px;display:grid;grid-area:log;gap:8px;grid-auto-rows:max-content;max-height:calc(100dvh - 112px);min-height:0;overflow-y:auto;padding:10px;position:sticky;top:16px}.log-heading{align-items:center;background:transparent;border:0;border-bottom:1px solid #dbe4e8;border-radius:0;display:flex;gap:8px;justify-content:space-between;min-width:0;padding:2px 2px 10px}.log-heading strong{color:#172026;font-size:.95rem}.log-heading span{color:#60727d;font-size:.78rem;font-weight:900;margin:0}.empty-log{background:#f8fafb;border:1px dashed #cdd9df;border-radius:8px;color:#60727d;line-height:1.5;margin:0;padding:10px 12px}.check-card{background:#fff;border:1px solid #dbe4e8;border-radius:8px;align-items:start;display:grid;gap:9px;grid-template-columns:58px minmax(0,1fr) minmax(0,1fr);min-width:0;padding:10px 12px}.check-card.ai{background:#e9f8f5;border-color:#c8ebe3}.check-card.learner{background:#fff}.log-identity{align-items:center;display:grid;gap:5px;justify-items:center;min-width:0}.log-avatar{align-items:center;background:#eef3f5;border:1px solid #d7e2e7;border-radius:999px;display:inline-flex;height:38px;justify-content:center;overflow:hidden;width:38px}.log-avatar img{height:100%;object-fit:cover;width:100%}.log-avatar span{color:#30404a;font-size:.9rem;font-weight:950}.check-speaker{color:#172026;font-size:.82rem;font-weight:950;line-height:1.25;max-width:100%;overflow-wrap:anywhere;text-align:center}.check-section{border:1px solid #dbe4e8;border-radius:8px;display:grid;gap:4px;min-width:0;padding:8px 9px}.check-section.japanese{background:#fff}.check-section.translation{background:#f8fafb}.check-section span{color:#60727d;display:block;font-size:.76rem;font-weight:900}.check-section p{color:#172026;line-height:1.55;margin:0;overflow-wrap:anywhere}.evaluation-panel{background:#fff;border:1px solid #dbe4e8;border-radius:8px;display:grid;gap:10px;padding:10px}.evaluation-heading{align-items:center;display:flex;gap:8px;justify-content:space-between}.evaluation-heading strong{color:#172026;font-size:.95rem}.evaluation-heading button{background:#172026;border-radius:999px;color:#fff;font-size:.78rem;font-weight:950;min-height:34px;padding:0 12px}.evaluation-content{display:grid;gap:10px}.overall-card,.clear-card,.diagnosis-grid div,.jft-card,.level-band,.score-grid div,.detail-list{background:#f8fafb;border:1px solid #dbe4e8;border-radius:8px;min-width:0;padding:9px 10px}.overall-card{background:#e9f8f5;border-color:#c8ebe3}.clear-card.passed{background:#eef8ef;border-color:#bfe6c5}.clear-card.retry{background:#fff1f2;border-color:#fecdd3}.overall-card span,.clear-card span,.diagnosis-grid span,.jft-card span,.score-grid span,.detail-list span{color:#60727d;display:block;font-size:.74rem;font-weight:950;margin-bottom:4px}.overall-card strong,.clear-card strong,.diagnosis-grid strong,.jft-card strong,.score-grid strong{color:#172026;display:block;font-size:1rem;font-weight:950}.overall-card p,.clear-card p,.diagnosis-grid p,.jft-card p,.detail-list p{color:#30404a;line-height:1.5;margin:5px 0 0;overflow-wrap:anywhere}.jft-grid,.level-band-grid,.diagnosis-grid,.score-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.level-band-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.level-band{display:grid;gap:4px}.level-band.reached{background:#eef8ef;border-color:#bfe6c5}.level-band strong{color:#172026;font-size:1rem;font-weight:950}.level-band span{color:#4d6570;font-size:.76rem;font-weight:950}.level-band p{color:#30404a;font-size:.72rem;line-height:1.35;margin:0;overflow-wrap:anywhere}.detail-list{display:grid;gap:8px}.detail-list p{margin:0}@media(max-width:900px){.voice-app{grid-template-areas:"header" "settings" "stage" "controls" "log";grid-template-columns:1fr;max-width:760px}.partner-stage{min-height:0}.compact-log{max-height:none;overflow:visible;position:static}.check-card{grid-template-columns:58px minmax(0,1fr) minmax(0,1fr)}}@media(max-width:740px){.session-strip{justify-content:flex-start;order:3;width:100%}.status-pill{order:4}.header-language{flex:1 1 160px;order:2}.voice-header>button{margin-left:auto;order:3}}@media(max-width:520px){.voice-app{gap:8px;padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.voice-header{gap:8px;min-height:0;padding:8px}.brand-block{flex-basis:190px}.brand-block strong{font-size:.98rem}.session-strip{display:none}.status-pill{font-size:.76rem;min-height:32px;padding:6px 9px}.header-language{flex:1 1 calc(100% - 52px);min-height:40px;min-width:0}.partner-cards,.setting-grid{grid-template-columns:1fr}.partner-stage{padding:14px 10px}.main-avatar{height:clamp(108px,34vw,140px);margin-bottom:12px;width:clamp(108px,34vw,140px)}h1{font-size:1.55rem;margin-bottom:8px}.partner-meta{gap:5px;margin-bottom:12px}.partner-meta span{font-size:.72rem;padding:5px 7px}.partner-line{gap:8px;grid-template-columns:minmax(0,1fr) 40px;line-height:1.55;padding:10px}.partner-line button,.text-fallback button{height:40px;width:40px}.talk-controls{bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;box-shadow:0 -10px 28px #1720261a;margin-left:-8px;margin-right:-8px;padding:10px 8px calc(10px + env(safe-area-inset-bottom));position:sticky;z-index:5}.live-button{min-height:62px;width:100%}.utility-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.start-button{width:100%}.setup-warning,.mic-help{font-size:.78rem;padding:8px 10px}.compact-log{padding-bottom:4px}.log-heading{align-items:flex-start;display:grid;gap:3px}.check-card{padding:9px 10px}.check-card{grid-template-columns:46px minmax(0,1fr)}.check-section.translation{grid-column:2}.log-identity{align-self:stretch}.log-avatar{height:34px;width:34px}.jft-grid,.level-band-grid,.score-grid{grid-template-columns:1fr}}
