@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600&family=Manrope:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--void:#0a0518;--violet-deep:#6c3ce9;--violet-bright:#a66cff;--pink:#ff6ec7;--blue:#4f9dff;--gold:#ffd166;--teal:#3fe8c0;--paper:#f3eeff;--paper-dim:#f3eeffa6;--glass:#966eff17;--glass-border:#be9bff47}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--void);color:var(--paper);cursor:default;font-family:Manrope,sans-serif;overflow:hidden}button{cursor:pointer;font-family:inherit}input{cursor:text;font-family:inherit}.app-shell{grid-template-rows:auto 1fr;gap:1rem;height:100vh;padding:1.5rem 2rem 2rem;display:grid;position:relative}.top-bar{z-index:2;justify-content:space-between;align-items:center;gap:1.5rem;display:flex;position:relative}.brand{flex-direction:column;line-height:1.1;text-decoration:none;display:flex}.brand:hover .brand-sub{color:var(--paper)}.brand-mark{letter-spacing:.01em;background:linear-gradient(100deg, var(--violet-bright), var(--pink) 55%, var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;font-family:Fraunces,serif;font-size:2rem;font-weight:600}.brand-sub{letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.72rem}.language-toggle-block{flex-direction:column;align-items:center;gap:.35rem;display:flex}.language-toggle-label{letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.65rem}.language-toggle{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a05188c;border-radius:999px;gap:.4rem;padding:.35rem;display:flex}.language-toggle button{color:var(--paper-dim);background:0 0;border:none;border-radius:999px;padding:.5rem 1.3rem;font-size:.95rem;font-weight:600;transition:background .2s,color .2s}.language-toggle button.is-active{background:linear-gradient(120deg, var(--violet-bright), var(--pink));color:var(--void)}.top-bar-right{align-items:center;gap:.75rem;display:flex}.test-voice-button{border:1px solid var(--glass-border);color:var(--paper);background:#a66cff29;border-radius:999px;padding:.5rem 1rem;font-size:.85rem}.test-voice-button:hover{background:#a66cff4d}.speech-error-banner{z-index:2;color:var(--paper);text-align:center;background:#ff6ec724;border:1px solid #ff6ec766;border-radius:12px;margin:-.4rem 0 .2rem;padding:.6rem 1rem;font-size:.85rem;position:relative}.voice-report-banner{z-index:2;color:var(--paper);text-align:center;background:#4f9dff24;border:1px solid #4f9dff66;border-radius:12px;margin:-.4rem 0 .2rem;padding:.7rem 1.1rem;font-size:.82rem;line-height:1.5;position:relative}.voice-report-banner p{margin:.2rem 0}.status-pill{letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--glass-border);color:var(--paper-dim);background:#0a05188c;border-radius:999px;padding:.4rem .9rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.status-listening{color:var(--teal);border-color:var(--teal)}.status-thinking,.status-speaking{color:var(--violet-bright);border-color:var(--violet-bright)}.center-stage{z-index:1;grid-template-columns:200px minmax(0,720px) 200px;justify-content:center;align-items:center;gap:1.5rem;min-height:0;display:grid;position:relative}.mode-column{flex-direction:column;justify-content:center;gap:1.1rem;height:min(74vh,760px);display:flex}.mode-card{text-align:left;border:1px solid var(--glass-border);color:var(--paper);cursor:pointer;transform-style:preserve-3d;background:linear-gradient(160deg,#140a28a6,#140a2866);border-radius:20px;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1.1rem 1.2rem;transition:transform .12s ease-out,box-shadow .25s,border-color .25s;display:flex;position:relative;box-shadow:0 10px 30px -18px #0009}.mode-card:before{content:"";background:linear-gradient(160deg, var(--mode-accent), transparent 60%);-webkit-mask-composite:xor;opacity:.55;pointer-events:none;border-radius:20px;padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.mode-card:hover{box-shadow:0 18px 44px -18px var(--mode-accent);border-color:var(--mode-accent)}.mode-card.is-active{border-color:var(--mode-accent);background:linear-gradient(160deg, color-mix(in srgb, var(--mode-accent) 22%, #140a28b3), #140a288c);box-shadow:0 0 0 1px var(--mode-accent), 0 20px 50px -18px var(--mode-accent)}.mode-card-icon{font-size:1.6rem}.mode-card-title{font-size:.98rem;font-weight:700}.mode-card-blurb{color:var(--paper-dim);font-size:.78rem;line-height:1.4}.mode-card-active-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--mode-accent);margin-top:.3rem;font-family:IBM Plex Mono,monospace;font-size:.62rem}.track-picker-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#06030eb8;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.track-picker-panel{border:1px solid var(--glass-border);background:linear-gradient(160deg,#140a28f2,#140a28d9);border-radius:24px;width:min(560px,100%);padding:1.75rem;box-shadow:0 30px 80px -30px #4f9dff80}.track-picker-header{align-items:center;gap:.6rem;margin-bottom:1.2rem;font-size:1.05rem;font-weight:700;display:flex}.track-picker-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.track-option{border:1px solid var(--glass-border);color:var(--paper);cursor:pointer;text-align:center;background:#ffffff0a;border-radius:16px;flex-direction:column;align-items:center;gap:.4rem;padding:1rem .6rem;font-size:.85rem;transition:border-color .2s,background .2s,transform .15s;display:flex}.track-option:hover{border-color:var(--blue);background:#4f9dff24;transform:translateY(-2px)}.track-option-icon{font-size:1.5rem}.track-picker-close{border:1px solid var(--glass-border);width:100%;color:var(--paper-dim);cursor:pointer;background:0 0;border-radius:12px;margin-top:1.3rem;padding:.6rem}.track-picker-close:hover{color:var(--paper);border-color:var(--paper-dim)}.chat-panel{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#140a2873;border-radius:28px;grid-template-rows:1fr auto;width:min(720px,100%);height:min(74vh,760px);display:grid;overflow:hidden;box-shadow:0 0 70px -20px #a66cff73,0 0 110px -35px #ff6ec74d}.chat-thread{flex-direction:column;gap:1.1rem;padding:1.75rem;display:flex;overflow-y:auto}.message-row{flex-direction:column;gap:.3rem;max-width:86%;display:flex}.from-coach{align-items:flex-start}.from-learner{align-self:flex-end;align-items:flex-end}.message-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.65rem}.fluency-badge{color:var(--teal);background:#3fe8c01a;border:1px solid #3fe8c047;border-radius:999px;align-self:flex-end;margin-top:.15rem;padding:.2rem .65rem;font-family:IBM Plex Mono,monospace;font-size:.68rem}.message-bubble-row{align-items:flex-end;gap:.5rem;display:flex}.message-bubble{border-radius:18px;margin:0;padding:.85rem 1.1rem;font-size:.98rem;line-height:1.45}.from-coach .message-bubble{background:linear-gradient(135deg,#a66cff2e,#ff6ec71a);border:1px solid #a66cff59;border-top-left-radius:4px}.from-learner .message-bubble{background:linear-gradient(135deg,#3fe8c029,#4f9dff24);border:1px solid #3fe8c052;border-top-right-radius:4px}.is-draft .message-bubble{opacity:.6;font-style:italic}.speak-button{border:1px solid var(--glass-border);background:#a66cff24;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:.85rem;display:grid}.speak-button:hover{background:#a66cff47}.chat-input-row{border-top:1px solid var(--glass-border);align-items:center;gap:.75rem;padding:1.1rem 1.5rem;display:flex}.chat-input-row input{border:1px solid var(--glass-border);color:var(--paper);background:#ffffff0d;border-radius:14px;flex:1;padding:.75rem 1rem;font-size:.95rem}.chat-input-row input:focus{outline:2px solid var(--violet-bright);outline-offset:1px}.chat-input-row button[type=submit]{background:linear-gradient(120deg, var(--violet-bright), var(--pink));color:var(--void);border:none;border-radius:14px;height:44px;padding:0 1.4rem;font-weight:700}.mic-button{border:1px solid var(--glass-border);background:#140a28b3;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:1.1rem;display:grid;position:relative}.mic-button:disabled{opacity:.5}.mic-dot{background:var(--gold);border-radius:50%;width:8px;height:8px;position:absolute;top:4px;right:4px}.mic-button.is-listening .mic-dot{background:var(--teal);box-shadow:0 0 0 4px #3fe8c047}.cursor-sparkle-layer{z-index:999;pointer-events:none;position:fixed;inset:0;overflow:hidden}.spark-dot{will-change:transform, opacity;border-radius:50%;width:8px;height:8px;position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.mic-dot,.status-pill{transition:none}.cursor-sparkle-layer{display:none}}.app-nav{border:1px solid var(--glass-border);background:#0a05188c;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem;display:flex}.app-nav-link{letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);border-radius:999px;padding:.4rem .9rem;font-family:IBM Plex Mono,monospace;font-size:.72rem;text-decoration:none;transition:background .18s,color .18s}.app-nav-link:hover{color:var(--paper);background:#a66cff2e}.app-nav-link.is-active{color:var(--void);background:linear-gradient(120deg, var(--violet-bright), var(--pink))}.status-page,.placeholder-page{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:60vh;padding:2rem;display:flex;position:relative}.status-page-code{background:linear-gradient(120deg, var(--violet-bright), var(--pink));color:#0000;-webkit-background-clip:text;background-clip:text;font-family:IBM Plex Mono,monospace;font-size:3.5rem;font-weight:600;line-height:1}.status-page-title,.placeholder-title{color:var(--paper);margin:0;font-family:Fraunces,serif;font-size:1.6rem;font-weight:600}.status-page-detail,.placeholder-detail{max-width:42ch;color:var(--paper-dim);margin:0;line-height:1.6}.placeholder-note{max-width:46ch;color:var(--paper-dim);opacity:.75;margin:.5rem 0 0;font-size:.85rem;line-height:1.6}.placeholder-note code{background:#a66cff2e;border-radius:4px;padding:.1rem .35rem;font-family:IBM Plex Mono,monospace;font-size:.8rem}.status-page-link{border:1px solid var(--glass-border);color:var(--paper);background:#a66cff29;border-radius:999px;margin-top:.5rem;padding:.55rem 1.4rem;font-size:.85rem;text-decoration:none}.status-page-link:hover{background:#a66cff4d}@media (width<=1100px){.app-nav-link{letter-spacing:.06em;padding:.35rem .7rem}}.login-shell{background:radial-gradient(circle at 20% 20%, #6c3ce959, transparent 55%), radial-gradient(circle at 80% 70%, #ff6ec738, transparent 50%), var(--void);place-items:center;height:100vh;padding:2rem;display:grid}.login-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#140c28b8;border:1px solid #a66cff38;border-radius:20px;flex-direction:column;gap:1.25rem;width:min(400px,100%);padding:2.25rem 2rem;display:flex;box-shadow:0 24px 60px #00000073}.login-panel-quiet{text-align:center;align-items:center;gap:.75rem}.login-brand{align-items:flex-start}.login-intro{color:var(--paper-dim);margin:0;font-size:.95rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-field{flex-direction:column;gap:.4rem;display:flex}.login-field span{letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.68rem}.login-field input{color:var(--paper);background:#0a051899;border:1px solid #a66cff40;border-radius:10px;outline:none;padding:.7rem .85rem;font-family:inherit;font-size:.95rem;transition:border-color .16s,box-shadow .16s}.login-field input::placeholder{color:#f3eeff4d}.login-field input:focus{border-color:var(--violet-bright);box-shadow:0 0 0 3px #a66cff29}.login-error{color:#ffd9e6;background:#ff6ec71f;border:1px solid #ff6ec752;border-radius:10px;margin:0;padding:.6rem .75rem;font-size:.85rem}.login-submit{color:var(--void);background:linear-gradient(100deg, var(--violet-bright), var(--pink) 70%);border:none;border-radius:10px;padding:.75rem 1rem;font-size:.95rem;font-weight:600;transition:transform .14s,opacity .14s}.login-submit:hover:not(:disabled){transform:translateY(-1px)}.login-submit:disabled{opacity:.45;cursor:not-allowed}.login-notice{color:#d6fff4;background:#3fe8c01f;border:1px solid #3fe8c052;border-radius:10px;margin:0;padding:.6rem .75rem;font-size:.85rem}.login-note{color:var(--paper-dim);text-align:center;margin:0;font-size:.78rem}.login-note-lead{margin:-.5rem 0 0;line-height:1.55}.login-link{font-size:inherit;color:var(--violet-bright);background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.password-rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem .75rem;margin:-.35rem 0 0;padding:0;list-style:none;display:grid}.password-rule{color:var(--paper-dim);opacity:.7;font-size:.74rem}.password-rule.is-met{color:var(--teal);opacity:1}.password-rule.is-unmet{color:var(--pink);opacity:1}.account-name{letter-spacing:.06em;color:var(--paper-dim);text-overflow:ellipsis;white-space:nowrap;max-width:12ch;font-family:IBM Plex Mono,monospace;font-size:.72rem;overflow:hidden}.account-page{z-index:1;width:min(760px,100%);margin:0 auto;padding:0 1rem 3rem;position:relative;overflow-y:auto}.account-title{color:var(--paper);margin:0 0 1.25rem;font-family:Fraunces,serif;font-size:1.8rem;font-weight:600}.account-card{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a05188c;border-radius:16px;margin-bottom:1.25rem;padding:1.4rem 1.5rem}.account-section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);margin:0 0 1rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.account-facts{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:0 0 .75rem;display:grid}.account-facts dt{letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:.25rem;font-family:IBM Plex Mono,monospace;font-size:.66rem}.account-facts dd{color:var(--paper);word-break:break-word;margin:0;font-size:.92rem}.account-form{flex-direction:column;gap:.9rem;display:flex}.account-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;display:grid}.account-form select,.account-form textarea{border:1px solid var(--glass-border);color:var(--paper);background:#0a051899;border-radius:10px;padding:.6rem .75rem;font-family:inherit;font-size:.92rem}.account-form textarea{resize:vertical;min-height:4.5rem}.account-form select:focus,.account-form textarea:focus{border-color:var(--violet-bright);outline:none;box-shadow:0 0 0 3px #a66cff29}.account-form select option{color:#f4f0ff;background:#14092b}.account-hint{color:var(--paper-dim);margin:0;font-size:.78rem;line-height:1.55}.account-warning{color:#fff2d6;background:#ffd1661f;border:1px solid #ffd16657;border-radius:10px;margin:0;padding:.6rem .75rem;font-size:.8rem;line-height:1.5}.account-submit{align-self:flex-start;padding-inline:1.6rem}.account-danger{color:#ffd9e6;background:#ff6ec71f;border:1px solid #ff6ec766;border-radius:10px;padding:.6rem 1.2rem;font-size:.88rem}.account-danger:hover:not(:disabled){background:#ff6ec738}.account-danger:disabled{opacity:.5;cursor:not-allowed}.account-name{text-decoration:none}.account-name:hover,.account-name.is-active{color:var(--paper)}@media (width<=700px){.account-card{padding:1.1rem 1rem}.account-grid{grid-template-columns:1fr}}.admin-page{z-index:1;width:min(1040px,100%);margin:0 auto;padding:0 1rem 3rem;position:relative;overflow-y:auto}.admin-tabs{border:1px solid var(--glass-border);background:#0a05188c;border-radius:999px;gap:.35rem;width:fit-content;max-width:100%;margin-bottom:1.5rem;padding:.25rem;display:flex;overflow-x:auto}.admin-tab{white-space:nowrap;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);border-radius:999px;padding:.45rem 1rem;font-family:IBM Plex Mono,monospace;font-size:.7rem;text-decoration:none}.admin-tab:hover{color:var(--paper);background:#a66cff2e}.admin-tab.is-active{color:var(--void);background:linear-gradient(120deg, var(--violet-bright), var(--pink))}.admin-page-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.admin-title{color:var(--paper);margin:0;font-family:Fraunces,serif;font-size:1.7rem;font-weight:600}.admin-back{color:var(--paper-dim);margin-bottom:.25rem;font-size:.78rem;text-decoration:none;display:inline-block}.admin-back:hover{color:var(--paper)}.admin-card{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a05188c;border-radius:16px;margin-bottom:1.25rem;padding:1.3rem 1.4rem}.admin-card-narrow{max-width:480px}.admin-section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);margin:0 0 1rem;font-family:IBM Plex Mono,monospace;font-size:.7rem}.admin-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:1.25rem;display:grid}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.admin-stats-inline{margin-bottom:.75rem}.admin-stat{border:1px solid var(--glass-border);background:#0a05188c;border-radius:14px;flex-direction:column;gap:.15rem;padding:1rem;display:flex}.admin-stat-value{color:var(--paper);font-family:Fraunces,serif;font-size:1.7rem;font-weight:600;line-height:1}.admin-stat-label{letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.64rem}.admin-stat-hint{color:var(--pink);font-size:.7rem}.admin-list{margin:0;padding:0;list-style:none}.admin-list li{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.admin-list li:last-child{border-bottom:none}.admin-list-main{color:var(--paper);font-size:.92rem;text-decoration:none}a.admin-list-main:hover{color:var(--violet-bright)}.admin-list-meta{color:var(--paper-dim);white-space:nowrap;align-items:center;gap:.5rem;font-size:.78rem;display:flex}.admin-table-scroll{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim);border-bottom:1px solid var(--glass-border);white-space:nowrap;padding:.6rem .75rem;font-family:IBM Plex Mono,monospace;font-size:.64rem}.admin-table td{color:var(--paper);border-bottom:1px solid #ffffff0f;padding:.7rem .75rem}.admin-table tbody tr:hover td{background:#a66cff12}.admin-table a{color:var(--paper);text-decoration:none}.admin-table a:hover{color:var(--violet-bright)}.admin-cell-muted{color:var(--paper-dim)}.admin-filters{flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;display:flex}.admin-input{border:1px solid var(--glass-border);min-width:0;color:var(--paper);background:#0a051899;border-radius:10px;flex:200px;padding:.55rem .75rem;font-family:inherit;font-size:.9rem}.admin-input:focus{border-color:var(--violet-bright);outline:none;box-shadow:0 0 0 3px #a66cff29}.admin-input option{color:#f4f0ff;background:#14092b}.admin-button{border:1px solid var(--glass-border);color:var(--paper);background:#a66cff29;border-radius:999px;align-items:center;padding:.5rem 1rem;font-size:.85rem;text-decoration:none;display:inline-flex}.admin-button:hover:not(:disabled){background:#a66cff4d}.admin-button:disabled{opacity:.45;cursor:not-allowed}.admin-button-primary{color:var(--void);background:linear-gradient(100deg, var(--violet-bright), var(--pink) 70%);border-color:#0000;font-weight:600}.admin-actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.admin-pill{letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--glass-border);white-space:nowrap;border-radius:999px;padding:.25rem .6rem;font-family:IBM Plex Mono,monospace;font-size:.62rem}.admin-pill-on{color:var(--teal);background:#3fe8c01a;border-color:#3fe8c073}.admin-pill-off{color:var(--pink);background:#ff6ec71a;border-color:#ff6ec773}.admin-state{text-align:center;color:var(--paper-dim);margin:0;padding:1.75rem 1rem;font-size:.88rem}.admin-state-error{color:#ffd9e6}.admin-state-error button{margin-top:.75rem}.admin-pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.admin-pagination-status{color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.72rem}.admin-sessions{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.admin-session{border:1px solid var(--glass-border);background:#0a05188c;border-radius:14px;padding:1rem 1.1rem}.admin-session-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.admin-session-module{color:var(--paper);font-size:.95rem}.admin-session-meta{color:var(--paper-dim);flex-wrap:wrap;gap:1rem;font-family:IBM Plex Mono,monospace;font-size:.72rem;display:flex}.admin-session-feedback{color:var(--paper);border-top:1px solid #ffffff0f;margin:.7rem 0 0;padding-top:.7rem;font-size:.86rem;line-height:1.6}.admin-transcript-meta{color:var(--paper-dim);margin:-.5rem 0 1rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.admin-transcript{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.admin-turn{border-left:2px solid var(--glass-border);padding-left:.9rem}.admin-turn-learner{border-left-color:var(--violet-bright)}.admin-turn-coach{border-left-color:var(--teal)}.admin-turn-role{letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:.25rem;font-family:IBM Plex Mono,monospace;font-size:.64rem;display:block}.admin-turn-text{color:var(--paper);white-space:pre-wrap;margin:0;font-size:.92rem;line-height:1.65}.admin-turn-fluency{color:var(--paper-dim);margin-top:.3rem;font-family:IBM Plex Mono,monospace;font-size:.68rem;display:block}.admin-dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#04020cd1;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.admin-dialog{border:1px solid var(--glass-border);background:#14092b;border-radius:18px;flex-direction:column;gap:.9rem;width:min(460px,100%);padding:1.6rem;display:flex}.admin-dialog-title{color:var(--paper);margin:0;font-family:Fraunces,serif;font-size:1.3rem;font-weight:600}.admin-dialog-lead{color:var(--paper-dim);margin:0;font-size:.88rem;line-height:1.6}.admin-secret{background:#a66cff1a;border:1px solid #a66cff66;border-radius:12px;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.admin-secret code{letter-spacing:.04em;color:var(--paper);word-break:break-all;-webkit-user-select:all;user-select:all;flex:1;font-family:IBM Plex Mono,monospace;font-size:1.05rem}.admin-dialog-warning{color:#fff2d6;background:#ffd1661f;border:1px solid #ffd16657;border-radius:10px;margin:0;padding:.6rem .75rem;font-size:.8rem;line-height:1.55}@media (width<=700px){.admin-page-head{flex-direction:column;align-items:stretch}.admin-card{padding:1.1rem 1rem}}.admin-chip{border:1px solid var(--glass-border);color:var(--paper-dim);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:#0a05188c;border-radius:999px;padding:.4rem .85rem;font-family:IBM Plex Mono,monospace;font-size:.68rem}.admin-chip.is-active{color:var(--void);background:linear-gradient(120deg, var(--violet-bright), var(--pink));border-color:#0000}.admin-range-field input[type=date]::-webkit-calendar-picker-indicator{filter:invert();opacity:.6;cursor:pointer}.admin-range-note{margin:-.5rem 0 1.25rem}@media (width<=700px){.admin-range-custom{flex:100%}.admin-range-field{flex:1}}.admin-card-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.admin-card-head .admin-section-title{margin:0}.admin-chip{border:1px solid var(--glass-border);color:var(--paper-dim);white-space:nowrap;background:#0a05188c;border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .95rem;font-size:.85rem;display:inline-flex}.admin-chip:hover:not(:disabled){color:var(--paper);background:#a66cff2e}.admin-chip.is-active{color:var(--void);background:linear-gradient(120deg, var(--violet-bright), var(--pink));border-color:#0000;font-weight:600}.admin-chip:disabled{opacity:.5;cursor:not-allowed}.admin-chip-count{background:#00000040;border-radius:999px;padding:.1rem .4rem;font-family:IBM Plex Mono,monospace;font-size:.68rem}.admin-chip.is-active .admin-chip-count{background:#0000002e}.admin-range{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.admin-range-presets{flex-wrap:wrap;gap:.4rem;display:flex}.admin-range-custom{gap:.6rem;display:flex}.admin-range-field{flex-direction:column;gap:.3rem;display:flex}.admin-range-field-wide{margin-bottom:1rem}.admin-range-field span{letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.64rem}.admin-range-note{margin-top:-.5rem;margin-bottom:1.25rem}.perm-groups{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin:1.25rem 0;display:grid}.perm-module{letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);border-bottom:1px solid var(--glass-border);margin:0 0 .6rem;padding-bottom:.4rem;font-family:IBM Plex Mono,monospace;font-size:.66rem}.perm-list{margin:0;padding:0;list-style:none}.perm-row{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.5rem 0;display:flex}.perm-label{cursor:pointer;align-items:flex-start;gap:.6rem;min-width:0;display:flex}.perm-label input{accent-color:var(--violet-bright);flex-shrink:0;width:1rem;height:1rem;margin-top:.25rem}.perm-label input:disabled{cursor:not-allowed}.perm-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.perm-key{color:var(--paper);font-family:IBM Plex Mono,monospace;font-size:.78rem}.perm-desc{color:var(--paper-dim);font-size:.76rem;line-height:1.45}.perm-state{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;flex-shrink:0;margin-top:.2rem;padding:.18rem .5rem;font-family:IBM Plex Mono,monospace;font-size:.6rem}.perm-state-default{color:var(--paper-dim);background:#ffffff0f}.perm-state-granted{color:var(--teal);background:#3fe8c024}.perm-state-revoked{color:var(--pink);background:#ff6ec724}.setting-list{margin:0 0 1rem;padding:0;list-style:none}.setting-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-meta{flex-direction:column;gap:.2rem;min-width:0;display:flex}.setting-key{color:var(--paper);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.82rem}.setting-desc{color:var(--paper-dim);font-size:.78rem;line-height:1.5}.setting-source{letter-spacing:.08em;text-transform:uppercase;margin-top:.2rem;font-family:IBM Plex Mono,monospace;font-size:.62rem}.setting-source-database{color:var(--teal)}.setting-source-environment{color:var(--gold,#ffd166)}.setting-control{flex-shrink:0;min-width:160px}.setting-control .admin-input{width:100%}.setting-toggle{color:var(--paper);cursor:pointer;align-items:center;gap:.55rem;font-size:.88rem;display:flex}.setting-toggle input{accent-color:var(--violet-bright);width:1.05rem;height:1.05rem}.admin-cell-nowrap{white-space:nowrap}.audit-action{border:1px solid var(--glass-border);color:var(--paper);white-space:nowrap;background:#a66cff29;border-radius:4px;padding:.12rem .4rem;font-family:IBM Plex Mono,monospace;font-size:.76rem}.audit-details{word-break:break-word;max-width:32ch;font-size:.78rem}@media (width<=700px){.setting-row{flex-direction:column;align-items:stretch}.setting-control{min-width:0}}.role-meta{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.role-meta-form{margin-bottom:1rem}.history-panel{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#100922eb;border-left:1px solid #a66cff38;flex-direction:column;gap:.75rem;width:min(340px,100%);height:100vh;padding:1.25rem 1rem;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-18px 0 50px #0006}.history-head{justify-content:space-between;align-items:center;display:flex}.history-title{letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.7rem}.history-close{color:var(--paper-dim);background:0 0;border:none;border-radius:6px;padding:.2rem .4rem;font-size:.95rem}.history-close:hover{color:var(--paper);background:#a66cff24}.history-new{width:100%;color:var(--paper);background:0 0;border:1px dashed #a66cff59;border-radius:10px;padding:.6rem;font-size:.85rem}.history-new:hover{background:#a66cff1f;border-style:solid}.history-error{color:#ffd9e6;background:#ff6ec71f;border:1px solid #ff6ec74d;border-radius:8px;margin:0;padding:.5rem .65rem;font-size:.78rem}.history-empty{color:var(--paper-dim);margin:.5rem 0;font-size:.82rem;line-height:1.5}.history-list{flex-direction:column;flex:1;gap:.35rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.history-item{border:1px solid #0000;border-radius:10px;align-items:stretch;gap:.25rem;transition:background .14s,border-color .14s;display:flex}.history-item:hover{background:#a66cff1a}.history-item.is-active{background:#a66cff29;border-color:#a66cff66}.history-open{text-align:left;min-width:0;color:var(--paper);background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:.2rem;padding:.6rem .7rem;display:flex}.history-item-title{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.88rem;overflow:hidden}.history-item-meta{color:var(--paper-dim);text-overflow:ellipsis;white-space:nowrap;width:100%;font-family:IBM Plex Mono,monospace;font-size:.66rem;overflow:hidden}.history-rename{min-width:0;color:var(--paper);border:1px solid var(--violet-bright);background:#0a0518b3;border-radius:8px;outline:none;flex:1;margin:.4rem .5rem;padding:.4rem .5rem;font-family:inherit;font-size:.85rem}.history-actions{opacity:0;flex-direction:column;justify-content:center;gap:.1rem;padding-right:.35rem;transition:opacity .14s;display:flex}.history-item:hover .history-actions,.history-item.is-active .history-actions{opacity:1}.history-actions button{color:var(--paper-dim);background:0 0;border:none;border-radius:5px;padding:.15rem .3rem;font-size:.75rem}.history-actions button:hover{color:var(--paper);background:#a66cff33}.progress-panel{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#100922eb;border-right:1px solid #a66cff38;flex-direction:column;gap:1rem;width:min(360px,100%);height:100vh;padding:1.25rem 1.1rem;display:flex;position:fixed;top:0;left:0;overflow-y:auto;box-shadow:18px 0 50px #0006}.progress-head{justify-content:space-between;align-items:center;display:flex}.progress-title{letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.7rem}.progress-close{color:var(--paper-dim);background:0 0;border:none;border-radius:6px;padding:.2rem .4rem;font-size:.95rem}.progress-close:hover{color:var(--paper);background:#a66cff24}.progress-error{color:#ffd9e6;background:#ff6ec71f;border:1px solid #ff6ec74d;border-radius:8px;margin:0;padding:.5rem .65rem;font-size:.78rem}.progress-empty{color:var(--paper-dim);margin:0;font-size:.82rem;line-height:1.55}.progress-streak{background:linear-gradient(120deg,#6c3ce959,#ff6ec72e);border:1px solid #a66cff4d;border-radius:14px;align-items:baseline;gap:.5rem;padding:1rem 1.1rem;display:flex}.progress-streak-value{color:var(--paper);font-family:Fraunces,serif;font-size:2.4rem;font-weight:600;line-height:1}.progress-streak-label{color:var(--paper-dim);font-size:.85rem}.progress-streak-best{color:var(--paper-dim);margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:.68rem}.progress-stats{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.progress-stat{background:#a66cff14;border:1px solid #a66cff24;border-radius:10px;flex-direction:column;gap:.15rem;padding:.7rem .8rem;display:flex}.progress-stat-value{color:var(--paper);font-size:1.25rem;font-weight:600}.progress-stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.62rem}.progress-section{flex-direction:column;gap:.55rem;display:flex}.progress-section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);margin:0;font-family:IBM Plex Mono,monospace;font-size:.64rem;font-weight:500}.progress-chart{grid-template-columns:repeat(7,1fr);gap:.35rem;height:96px;display:grid}.progress-bar-slot{flex-direction:column;align-items:center;gap:.3rem;min-width:0;display:flex}.progress-bar-track{background:#a66cff12;border-radius:5px;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.progress-bar-fill{background:linear-gradient(180deg, var(--violet-bright), var(--pink));opacity:.25;border-radius:5px;width:100%;min-height:2px;transition:height .26s}.progress-bar-fill.has-value{opacity:1}.progress-bar-label{color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.58rem}.progress-modules,.progress-feedback{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.progress-modules li{background:#a66cff0f;border-radius:8px;flex-direction:column;gap:.1rem;padding:.5rem .65rem;display:flex}.progress-module-name{text-transform:capitalize;font-size:.85rem}.progress-module-meta,.progress-feedback-meta{color:var(--paper-dim);font-family:IBM Plex Mono,monospace;font-size:.62rem}.progress-feedback li{background:#a66cff0f;border-left:2px solid #a66cff66;border-radius:8px;padding:.6rem .7rem}.progress-feedback p{color:var(--paper);margin:.25rem 0 0;font-size:.8rem;line-height:1.5}.progress-note{color:var(--paper-dim);margin:auto 0 0;padding-top:.5rem;font-family:IBM Plex Mono,monospace;font-size:.6rem}.app-shell,.login-shell,.history-panel,.progress-panel{height:100dvh}.login-shell{overflow-y:auto}.static-backdrop{z-index:0;pointer-events:none;background:radial-gradient(circle at 25% 15%, #6c3ce959, transparent 55%), radial-gradient(circle at 80% 85%, #ff6ec72e, transparent 50%), radial-gradient(circle at 60% 40%, #4f9dff1f, transparent 45%), var(--void);position:fixed;inset:0}.top-bar-menu-toggle{display:none}.mode-strip{scroll-snap-type:x proximity;scrollbar-width:none;gap:.6rem;width:100%;padding:.15rem .15rem .5rem;display:flex;overflow-x:auto}.mode-strip::-webkit-scrollbar{display:none}.mode-strip .mode-card{scroll-snap-align:start;flex:none;width:190px}.mode-strip .mode-card-blurb{display:none}@media (width<=1024px){.top-bar{flex-wrap:wrap;row-gap:.75rem}.center-stage.is-compact{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:stretch center;gap:.75rem}.center-stage.is-compact .mode-strip{max-width:720px}.center-stage.is-compact .chat-panel{height:100%;min-height:0}.admin-page,.account-page{padding-bottom:2rem}}@media (width<=640px){.app-shell{padding:.75rem .75rem calc(.75rem + env(safe-area-inset-bottom));gap:.6rem}.top-bar{z-index:40;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand toggle""center center";align-items:center;gap:.5rem;display:grid}.brand{grid-area:brand}.brand-mark{font-size:1.5rem}.brand-sub{display:none}.top-bar>.language-toggle-block{grid-area:center;justify-self:stretch}.language-toggle-label{display:none}.top-bar-menu-toggle{border:1px solid var(--glass-border);width:44px;height:44px;color:var(--paper);background:#140a28bf;border-radius:12px;grid-area:toggle;place-items:center;font-size:1.15rem;display:grid}.top-bar-right{display:none}.top-bar.is-menu-open .top-bar-right{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#100922f7;border-radius:18px;flex-direction:column;align-items:stretch;gap:.5rem;max-height:calc(100dvh - 6rem);padding:.75rem;display:flex;position:absolute;top:calc(100% + .4rem);left:0;right:0;overflow-y:auto;box-shadow:0 24px 60px -20px #000000b3}.top-bar.is-menu-open .top-bar-right>*{width:100%}.top-bar.is-menu-open .test-voice-button{text-align:left;justify-content:flex-start}.top-bar.is-menu-open .app-nav{border-radius:14px;flex-wrap:wrap}.top-bar.is-menu-open .status-pill{align-self:flex-start;width:auto}.account-name{max-width:none;padding:.6rem .25rem}.mode-strip .mode-card{border-radius:16px;width:150px;padding:.75rem .85rem}.mode-strip .mode-card-icon{font-size:1.25rem}.mode-strip .mode-card-title{font-size:.85rem}.chat-panel{border-radius:20px}.chat-thread{gap:.85rem;padding:1rem}.message-row{max-width:92%}.message-bubble{padding:.7rem .9rem;font-size:.95rem}.chat-input-row{gap:.5rem;padding:.6rem}.chat-input-row input{min-width:0}.chat-input-row button[type=submit]{padding:0 1rem}.voice-report-banner,.speech-error-banner{margin:0;font-size:.78rem}.history-panel,.progress-panel{width:100%;padding-bottom:calc(1rem + env(safe-area-inset-bottom));border:none}.track-picker-overlay{align-items:flex-end;padding:.75rem}.track-picker-panel{border-radius:20px;max-height:calc(100dvh - 1.5rem);padding:1.1rem;overflow-y:auto}.track-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-shell{padding:1rem}.login-panel{padding:1.5rem 1.25rem}.account-page{padding-inline:0}.account-card{padding:1rem}.admin-page{padding-inline:0}.admin-tabs{width:100%}.admin-title{font-size:1.4rem}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stat{padding:.8rem}.admin-stat-value{font-size:1.35rem}.admin-table-scroll{overflow-x:visible}.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{width:100%;display:block}.admin-table tr{border:1px solid var(--glass-border);background:#0a05188c;border-radius:14px;margin-bottom:.6rem;padding:.55rem .8rem}.admin-table tbody tr:hover td{background:0 0}.admin-table td{text-align:right;word-break:break-word;border-bottom:none;justify-content:space-between;align-items:baseline;gap:1rem;padding:.35rem 0;display:flex}.admin-table td:before{content:attr(data-label);text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);flex-shrink:0;font-family:IBM Plex Mono,monospace;font-size:.62rem}.admin-table td:not([data-label]){text-align:left;justify-content:flex-start;font-weight:600}.admin-table td:not([data-label]):before{content:none}.admin-cell-nowrap{white-space:normal}.audit-details{max-width:none}.admin-range{flex-direction:column;align-items:stretch}.admin-range-custom{width:100%}.admin-range-custom .admin-range-field{flex:1;min-width:0}.admin-range-custom .admin-input{width:100%}.admin-pagination{flex-wrap:wrap;gap:.6rem}.admin-pagination-status{text-align:center;order:-1;width:100%}.perm-groups{grid-template-columns:minmax(0,1fr)}.admin-dialog{max-height:calc(100dvh - 2rem);padding:1.2rem;overflow-y:auto}.admin-secret{flex-wrap:wrap}}@media (pointer:coarse){input,select,textarea{font-size:16px}.speak-button{width:44px;height:44px;font-size:1rem}.test-voice-button,.admin-button,.admin-chip,.app-nav-link,.history-close,.progress-close,.account-danger{justify-content:center;align-items:center;min-height:44px;display:inline-flex}.history-close,.progress-close{min-width:44px}.perm-label input{width:1.3rem;height:1.3rem}.mode-card{transform:none!important}}
