:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f3f4f6;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:linear-gradient(#eef2ff 0%,#f8fafc 100%);min-width:320px;min-height:100vh;margin:0}a{color:#4338ca;text-decoration:none}button,input,select,textarea{font:inherit}button{color:#fff;cursor:pointer;background:#4338ca;border:none;border-radius:12px;padding:.8rem 1rem}button:disabled{cursor:not-allowed;opacity:.65}input,select,textarea{background:#fff;border:1px solid #cbd5e1;border-radius:12px;width:100%;margin-top:.4rem;padding:.75rem .85rem}select{color:inherit}textarea{resize:vertical}#root{min-height:100vh}.app-shell{max-width:1280px;margin:0 auto;padding:2rem 1.25rem 3rem}.app-header,.card,.tab-nav,.auth-shell .form-card{background:#ffffffe6;border:1px solid #94a3b840;box-shadow:0 12px 32px #0f172a14}.app-header{border-radius:24px;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;display:flex}.app-header h1,.page-heading h2,.card h2,.card h3{margin:0}.eyebrow{color:#6366f1;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .35rem;font-size:.85rem;font-weight:700}.muted{color:#64748b}.header-actions{align-items:center;gap:.75rem;display:flex}.user-pill{white-space:nowrap;background:#eef2ff;border-radius:16px;align-items:center;gap:.5rem;padding:.55rem .75rem;display:flex}.user-tag{border-radius:999px;align-items:center;padding:.2rem .6rem;font-size:.85rem;font-weight:600;line-height:1.3;display:inline-flex}.user-role{color:#3730a3;background:#e0e7ff}.user-quota{color:#166534;background:#dcfce7}.tab-nav{border-radius:18px;gap:.5rem;margin-top:1rem;padding:.75rem;display:flex}.tab-nav a{color:#334155;border-radius:12px;padding:.75rem 1rem;font-weight:600}.tab-nav a.active{color:#fff;background:#4338ca}.content-area{margin-top:1.5rem}.page-shell{flex-direction:column;gap:1rem;display:flex}.page-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page-heading-title{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.page-heading-title h2{margin:0}.help-tip{vertical-align:middle;align-items:center;display:inline-flex;position:relative}.help-tip-trigger{color:#64748b;cursor:help;background:0 0;border:1px solid #94a3b873;border-radius:999px;width:1.1rem;height:1.1rem;padding:0;font-size:.72rem;font-weight:600;line-height:1}.help-tip-trigger:hover,.help-tip-trigger:focus-visible{color:#4338ca;border-color:#a5b4fc}.help-tip-panel{z-index:40;color:#475569;background:#fff;border:1px solid #94a3b859;border-radius:12px;min-width:14rem;max-width:min(22rem,70vw);padding:.75rem .9rem;font-size:.9rem;font-weight:400;line-height:1.45;display:none;position:absolute;top:calc(100% + .4rem);left:0;box-shadow:0 12px 28px #0f172a1f}.help-tip-panel p{margin:0 0 .5rem}.help-tip-panel p:last-child{margin-bottom:0}.help-tip:hover .help-tip-panel,.help-tip:focus-within .help-tip-panel,.help-tip--open .help-tip-panel{display:block}.grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.card{border-radius:20px;padding:1.25rem}.stack-xs,.stack-sm,.stack-md,.form-card{flex-direction:column;display:flex}.stack-xs{gap:.35rem}.stack-sm{gap:.6rem}.stack-md,.form-card{gap:1rem}.tag-row,.button-row{flex-wrap:wrap;gap:.5rem;display:flex}.tag-chip-row{flex-wrap:wrap;gap:8px;display:flex}.tag-chip{color:#0f172a;cursor:pointer;background:#f5f8fc;border:1px solid #c5d4e8;border-radius:6px;width:auto;padding:4px 10px}.tag-chip.is-selected{background:#d7e8fb;border-color:#3b6ea5}.tag-chip.is-legacy{border-style:dashed}.tag{color:#3730a3;background:#e0e7ff;border-radius:999px;align-items:center;padding:.25rem .65rem;font-size:.85rem;font-weight:600;display:inline-flex}.tag-passed{color:#166534;background:#dcfce7}.tag-score{color:#9a3412;background:#ffedd5}.link-button{color:#4338ca;cursor:pointer;background:0 0;border:none;border-radius:0;justify-self:start;padding:0;font-size:.9rem;font-weight:600}.link-button:hover{text-decoration:underline}.two-column{grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1rem;display:grid}.sidebar-list{flex-direction:column;gap:.75rem;max-height:calc(100vh - 240px);display:flex;overflow-y:auto}.sidebar-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.list-item{text-align:left;color:#0f172a;background:#f8fafc;flex-direction:column;align-items:flex-start;gap:.2rem;display:flex}.list-item.active{color:#fff;background:#4338ca}.detail-panel{flex-direction:column;gap:.8rem;max-height:calc(100vh - 240px);display:flex;overflow-y:auto}.message-list{flex-direction:column;flex:1;gap:.8rem;display:flex;overflow-y:auto}.message-card{background:#f8fafc;border-radius:16px;padding:1rem}.message-card.message-card--selectable{cursor:pointer}.message-card.message-card--selected,.message-card.transcript-bubble.message-card--selected{outline-offset:1px;background:#eef2ffe6;outline:2px solid #6366f18c}.message-head{color:#475569;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.message-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.btn-translate{cursor:pointer;color:#0f172a;background:#e2e8f0b3;border:none;border-radius:8px;padding:.2rem .55rem;font-size:.8rem;line-height:1.2}.btn-translate:hover:not(:disabled){background:#cbd5e1d9}.btn-translate:disabled{opacity:.65;cursor:not-allowed}.transcript-translation{color:#64748b;margin:.45rem 0 0;font-size:.92rem;line-height:1.5}.transcript-translate-error{color:#b91c1c;margin:.35rem 0 0;font-size:.85rem}.notice{border-radius:14px;padding:.85rem 1rem;font-weight:600}.help-tip-body{white-space:pre-line;margin:.35rem 0 0;font-weight:500}.notice.error{color:#b91c1c;background:#fee2e2}.notice.success{color:#166534;background:#dcfce7}.scenario-goal-tip .link-button{margin-top:.35rem}.scenario-call-tip{background:#ffffffb8;border:1px solid #0f172a1a;border-radius:14px;margin:0 0 1rem;padding:.75rem 1rem}.scenario-call-tip-bar{justify-content:flex-end;display:flex}.scenario-call-tip-body h3{letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin:.55rem 0 .25rem;font-size:.8rem}.scenario-call-tip-body h3:first-child{margin-top:0}.scenario-call-tip-body p{margin:0;line-height:1.45}.admin-user-list{flex-direction:column;gap:.75rem;display:flex}.admin-user-row{background:#f8fafc;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.admin-user-actions{flex-direction:column;flex-shrink:0;align-items:stretch;gap:.5rem;min-width:11rem;display:flex}.admin-user-topup{align-items:center;gap:.5rem;display:flex}.admin-user-topup input{flex:0 0 5.5rem;width:5.5rem}.admin-user-actions>button{width:100%}.tag-definition-create,.tag-definition-row{align-items:center;gap:.75rem;padding:.9rem 1rem;display:grid}.tag-definition-list{gap:.75rem;display:grid}.tag-definition-row{background:#f8fafc;border-radius:14px}.tag-definition-create input,.tag-definition-row input{box-sizing:border-box;width:100%;min-width:0;margin-top:0}.tag-definition-create .button-row,.tag-definition-row .button-row{justify-content:flex-start}.tag-definition-enabled{font-weight:500}@media (width>=900px){.tag-definition-create,.tag-definition-row{grid-template-columns:minmax(0,1fr) 120px 110px 11.5rem}}.usage-filters .usage-filter-row{flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;display:flex}.usage-filters label{gap:.35rem;font-size:.9rem;display:grid}.admin-usage-list{flex-direction:column;gap:.6rem;display:flex}.admin-usage-row{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:#f8fafc;border:0;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;display:flex}.admin-usage-row.static{cursor:default}.admin-usage-row.active{background:#eef2ff;outline:2px solid #94a3b8}.admin-usage-row p{margin:.2rem 0 0}.usage-session-row{align-items:center}.usage-session-main{flex-wrap:wrap;align-items:baseline;gap:.5rem .85rem;min-width:0;display:flex}.usage-totals-line{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;display:flex}.usage-summary-row{grid-template-columns:minmax(0,1fr) 7.5rem 7.5rem;align-items:center;gap:.75rem;display:grid}.usage-summary-row .usage-metric,.usage-totals-line .usage-metric{white-space:nowrap;font-variant-numeric:tabular-nums}.usage-summary-row .usage-metric{text-align:right}.usage-detail-row{grid-template-columns:11.5rem minmax(0,1fr) 5.5rem 4.5rem;align-items:center;gap:.75rem;display:grid}.usage-detail-time,.usage-detail-title,.usage-detail-mode,.usage-detail-duration{min-width:0}.usage-detail-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.usage-detail-mode,.usage-detail-duration{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.admin-usage-metrics{font-variant-numeric:tabular-nums;justify-items:end;gap:.2rem;display:grid}@media (width<=720px){.usage-summary-row,.usage-detail-row{grid-template-columns:minmax(0,1fr) auto auto}.usage-detail-time{grid-column:1/-1}.usage-detail-title{grid-column:1}}.admin-usage-metrics .token-meta{text-align:right;max-width:22rem;font-size:.8rem}.scenario-filters{gap:.4rem;margin-bottom:.75rem;display:grid}.scenario-filters--admin{max-width:960px}.scenario-filters--admin select,.scenario-filters--admin input{width:100%}@media (width>=640px){.scenario-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}@media (width>=900px){.scenario-filters{grid-template-columns:repeat(4,minmax(0,1fr))}}.scenario-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.scenario-card{flex-direction:column;gap:.65rem;display:flex}.scenario-card .button-row{justify-content:space-between;align-items:center;margin-top:auto}.scenario-card .button-row .tag-score{margin-left:auto}.scenario-card-cover{background-position:50%;background-size:cover;border-radius:12px;flex-shrink:0;height:72px;margin:-.25rem -.25rem .15rem}.scenario-pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.scenario-pager button:disabled{opacity:.45;cursor:not-allowed}.admin-scenario-table-wrap{width:100%;overflow-x:auto}.admin-scenario-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-scenario-table th,.admin-scenario-table td{text-align:left;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #e2e8f0;padding:.7rem .65rem}.admin-scenario-table th{color:#64748b;font-size:.85rem;font-weight:600}.admin-scenario-table td:nth-child(2){white-space:normal;min-width:10rem}.admin-scenario-table tbody tr:hover{background:#f8fafc}.admin-scenario-table .secondary-button{padding:.35rem .75rem;font-size:.85rem}.scenario-detail-layout{gap:1rem;display:grid}@media (width>=900px){.scenario-detail-layout{grid-template-columns:1.2fr 1fr;align-items:start}}.scenario-detail-hero{object-fit:cover;border-radius:12px;width:100%;max-height:420px;display:block}.scenario-image-pager{flex-wrap:nowrap;justify-content:center;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.scenario-image-pager-count{text-align:center;color:#64748b;white-space:nowrap;min-width:3.5rem}.scenario-detail-info .tag-row{margin-bottom:1rem}.scenario-detail-info h3{margin-top:.85rem}.scenario-detail-info h3:first-of-type{margin-top:0}.scenario-detail-actions{margin-top:1.25rem}.scenario-detail-id{color:#94a3b8;letter-spacing:.02em;-webkit-user-select:all;user-select:all;font-size:.85rem;font-weight:500}.scenario-images{gap:.9rem;margin-top:1.5rem;display:grid}.scenario-image-add{gap:.5rem;display:grid}.scenario-image-slot{background:#f8fafc;border-radius:12px;grid-template-columns:120px 1fr;gap:.75rem;padding:.75rem;display:grid}.scenario-image-thumb{aspect-ratio:1;background:#e2e8f0;border-radius:10px;place-items:center;display:grid;overflow:hidden}.scenario-image-thumb.is-clickable{cursor:zoom-in}.scenario-image-spinner{border:3px solid #c5d4e8;border-top-color:#3b6ea5;border-radius:50%;width:28px;height:28px;animation:.8s linear infinite scenario-spin}.scenario-image-thumb img{object-fit:cover;width:100%;height:100%}.scenario-image-meta{align-content:start;gap:.45rem;display:grid}.upload-label{cursor:pointer;box-sizing:border-box;font:inherit;line-height:inherit;border:none;border-radius:12px;justify-content:center;align-items:center;margin:0;padding:.8rem 1rem;display:inline-flex}.upload-label[aria-disabled=true]{cursor:not-allowed;opacity:.65;pointer-events:none}.secondary-button{color:#0f172a;background:#e2e8f0}.secondary-link{color:#0f172a;background:#e2e8f0;border-radius:12px;justify-content:center;align-items:center;padding:.8rem 1rem;font-weight:600;display:inline-flex}.danger-button{background:#dc2626}.scenario-lightbox{z-index:80;background:#141820b8;place-items:center;gap:12px;padding:24px;display:grid;position:fixed;inset:0}.scenario-lightbox img{object-fit:contain;background:#fff;max-width:min(96vw,960px);max-height:80vh}.checkbox-row{align-items:center;gap:.75rem;display:flex}.checkbox-row input{width:auto;margin:0}.radio-row{cursor:pointer;align-items:center;gap:.5rem;margin-bottom:.25rem;font-weight:400;display:flex}.radio-row input[type=radio]{width:auto;margin:0}.range-field{gap:.35rem;display:grid}.range-heading,.range-control{align-items:center;display:flex}.range-heading{justify-content:space-between;gap:1rem}.range-heading output{color:#3730a3;text-align:center;background:#eef2ff;border-radius:8px;min-width:3rem;padding:.15rem .5rem;font-weight:700}.range-control{color:#64748b;gap:.75rem;font-size:.85rem}.range-control input[type=range]{accent-color:#4338ca;background:0 0;border:0;flex:1;width:auto;margin:0;padding:0}.auth-shell{flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:100vh;padding:1.5rem;display:flex}.auth-shell .form-card{border-radius:24px;width:min(460px,100%);padding:1.75rem}.captcha-row{align-items:stretch;gap:.5rem;margin-top:.4rem;display:flex}.captcha-row input{flex:1;width:auto;min-width:0;margin-top:0}.captcha-image-btn{color:#64748b;background:#fff;border:1px solid #cbd5e1;border-radius:12px;flex-shrink:0;place-items:center;width:100px;height:42px;padding:0;display:grid;overflow:hidden}.captcha-image-btn img{object-fit:cover;width:100%;height:100%;display:block}.call-placeholder{max-width:640px}.call-status-card{flex-direction:column;gap:.75rem;display:flex}.call-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem;display:grid}.call-layout--with-vocab{grid-template-columns:minmax(0,1.6fr) minmax(220px,.7fr)}.call-layout--panel-expanded{grid-template-columns:minmax(0,1fr)}.call-layout--panel-expanded .scene-backdrop-host{min-height:calc(100vh - 320px)}.history-layout{align-items:stretch}.history-layout>.sidebar-list,.history-layout>.detail-panel.scene-backdrop-host,.history-layout>.vocab-panel{height:calc(100vh - 240px);min-height:520px;max-height:calc(100vh - 240px)}.history-layout>.sidebar-list{overflow-y:auto}.two-column.history-layout--with-vocab{grid-template-columns:minmax(220px,280px) minmax(0,1.6fr) minmax(220px,.7fr)}.two-column.history-layout--panel-expanded{grid-template-columns:minmax(0,1fr)}.history-layout--list-hidden .sidebar-list{display:none}.two-column.history-layout--list-hidden{grid-template-columns:minmax(0,1fr)}.two-column.history-layout--list-hidden.history-layout--with-vocab{grid-template-columns:minmax(0,1.6fr) minmax(220px,.7fr)}.history-layout--panel-expanded .sidebar-list,.history-layout--panel-expanded .vocab-panel{display:none}.history-layout--panel-expanded .detail-panel.scene-backdrop-host{height:calc(100vh - 180px);max-height:calc(100vh - 180px)}.detail-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.panel-expand-button{color:#0f172a;cursor:pointer;background:#e2e8f0b3;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;line-height:0;display:inline-flex}.panel-expand-button:hover:not(:disabled){background:#cbd5e1d9}.panel-expand-button:disabled{opacity:.45;cursor:not-allowed}.scene-backdrop-host{isolation:isolate;border-radius:18px;min-height:520px;position:relative;overflow:hidden}.scene-backdrop-host.card{background:0 0;box-shadow:0 12px 32px #0f172a14}.scene-backdrop-layer{z-index:0;opacity:0;filter:saturate(.75)contrast(.92);background-position:50%;background-size:cover;animation:.8s forwards scene-backdrop-fade-in;position:absolute;inset:0}.scene-backdrop-content{z-index:1;background:#f8fafc6b;height:100%;position:relative}.scene-backdrop-host>.scene-backdrop-content>.transcript-panel.card{box-shadow:none;background:0 0;border-color:#0000}.scene-backdrop-host>.scene-backdrop-content>.transcript-panel,.scene-backdrop-host>.scene-backdrop-content{min-height:520px}.detail-panel.scene-backdrop-host{flex-direction:column;height:calc(100vh - 240px);min-height:420px;max-height:calc(100vh - 240px);padding:0;display:flex;overflow:hidden}.detail-panel.scene-backdrop-host>.scene-backdrop-content{background:#ffffff73;flex-direction:column;flex:1;min-height:0;padding:1.25rem;display:flex;overflow:hidden auto}@keyframes scene-backdrop-fade-in{0%{opacity:0}to{opacity:.4}}@keyframes scenario-spin{to{transform:rotate(360deg)}}.call-debug-panel,.transcript-panel,.vocab-panel{min-height:520px}.transcript-panel,.vocab-panel,.call-debug-panel{flex-direction:column;gap:1rem;display:flex}.live-recognition-panel{background:linear-gradient(#eef2ffb8 0%,#f8fafca6 100%);border:1px dashed #c7d2fe;border-radius:16px;gap:.6rem;padding:1rem;display:grid}.live-recognition-text{color:#312e81;word-break:break-word;margin:0;font-size:1.05rem;line-height:1.6}.transcript-list,.vocab-list{max-height:720px;overflow:auto}.btn-speak{cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.15rem .35rem;font-size:1rem;line-height:1;transition:background .15s}.btn-speak:hover{background:#eef2ff}.btn-speak--active{opacity:.6;cursor:not-allowed}.transcript-bubble.user{background:#eef2ffad}.transcript-bubble.assistant{background:#f8fafc9e}.vocab-group{border-bottom:1px solid #e2e8f0;padding-bottom:1rem}.vocab-group:last-child{border-bottom:none;padding-bottom:0}.vocab-item{background:#f8fafc;border-radius:16px;padding:.9rem 1rem}.vocab-item p{margin:.5rem 0}.speaking{color:#312e81;background:#c7d2fe}@media (width<=860px){.app-header,.header-actions,.two-column,.two-column.history-layout--with-vocab,.two-column.history-layout--list-hidden,.two-column.history-layout--list-hidden.history-layout--with-vocab,.call-layout,.call-layout--with-vocab,.call-layout--panel-expanded{flex-direction:column;grid-template-columns:1fr}.tab-nav{overflow-x:auto}.help-tip-panel{left:auto;right:0}}.site-footer{text-align:center;color:#64748b;margin-top:2rem;padding:1rem 0;font-size:.9rem}.site-footer a,.site-footer-copy{color:#4338ca}.site-footer-copy{font:inherit;color:#4338ca;cursor:pointer;background:0 0;border:none;border-radius:0;margin:0;padding:0;display:inline}.site-footer-copy:hover{text-decoration:underline}.landing-shell{background:radial-gradient(80% 50% at 50% -10%,#6366f12e,#0000),linear-gradient(#eef2ff 0%,#f8fafc 100%);flex-direction:column;justify-content:center;min-height:100vh;padding:2rem 1.25rem 1.5rem;display:flex}.landing-inner{flex-direction:column;flex:1;justify-content:center;gap:1.25rem;width:min(640px,100%);margin:0 auto;display:flex}.landing-brand{letter-spacing:-.03em;color:#1e1b4b;margin:0;font-size:clamp(2rem,5vw,2.75rem);font-weight:800;line-height:1.15}.landing-hook{color:#312e81;margin:0;font-size:clamp(1.35rem,3.5vw,1.75rem);font-weight:700;line-height:1.35}.landing-support{color:#64748b;max-width:36rem;margin:0;font-size:1.05rem}.landing-scenario-viewport{height:9.15rem;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#0000,#000 10% 90%,#0000)}.landing-secondary{color:#64748b;flex-direction:column;gap:.45rem;margin:0;padding:0;font-size:.98rem;list-style:none;animation:28s linear infinite landing-scenario-scroll;display:flex}.landing-secondary li:before{content:"· ";color:#94a3b8}@keyframes landing-scenario-scroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@media (prefers-reduced-motion:reduce){.landing-scenario-viewport{height:auto;-webkit-mask-image:none;mask-image:none}.landing-secondary{animation:none}.landing-secondary li:nth-child(n+6){display:none}}.landing-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.landing-cta{color:#fff;background:#4338ca;border-radius:12px;padding:.85rem 1.4rem;font-weight:600;display:inline-block}.landing-cta:hover{color:#fff;opacity:.92}.landing-shell .site-footer{margin-top:auto}@media (width<=520px){.landing-cta{text-align:center;width:100%}}
