.oxp{--oxp-accent:#8b7cf6;--oxp-accent-2:#38bdf8;--oxp-good:#34d399;--oxp-warn:#fbbf24;--oxp-danger:#f87171;--oxp-text:#ffffffeb;--oxp-text-dim:#fff9;--oxp-surface:#ffffff0d;--oxp-border:#ffffff1a;border:1px solid var(--oxp-border);min-height:380px;color:var(--oxp-text);background:radial-gradient(1100px 380px at 15% -10%,#8b7cf624,#0000 60%),radial-gradient(900px 420px at 110% 110%,#38bdf81a,#0000 55%),#0a0c188c;border-radius:18px;flex-direction:column;gap:18px;padding:18px;display:flex;position:relative}.oxp-topbar{align-items:center;gap:14px;animation:.4s both oxp-fade-in;display:flex}.oxp-timer{flex:none;width:56px;height:56px;position:relative}.oxp-timer svg{width:100%;height:100%}.oxp-timer__bg{fill:none;stroke:var(--oxp-border);stroke-width:3px}.oxp-timer__fg{fill:none;stroke:var(--oxp-accent-2);stroke-width:3px;stroke-linecap:round;transition:stroke-dasharray .25s linear,stroke .4s}.oxp-timer--low .oxp-timer__fg{stroke:var(--oxp-danger)}.oxp-timer--low .oxp-timer__value{color:var(--oxp-danger)}.oxp-timer__value{font-variant-numeric:tabular-nums;place-items:center;font-size:.78rem;font-weight:700;display:grid;position:absolute;inset:0}.oxp-lastcall{color:var(--oxp-warn);letter-spacing:.02em;background:#fbbf241f;border:1px solid #fbbf2473;border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:700;animation:1.6s ease-in-out infinite oxp-pulse-soft}.oxp-controls{align-items:center;gap:12px;margin-left:auto;display:flex}.oxp-toggle{border:1px solid var(--oxp-border);background:var(--oxp-surface);color:var(--oxp-text-dim);letter-spacing:.06em;cursor:pointer;border-radius:8px;padding:6px 10px;font-size:.78rem;font-weight:800;transition:all .18s}.oxp-toggle:hover{color:var(--oxp-text);border-color:#ffffff40}.oxp-toggle.is-on{color:#0b1020;background:var(--oxp-accent-2);border-color:var(--oxp-accent-2)}.oxp-speed{color:var(--oxp-text-dim);align-items:center;gap:8px;font-size:.8rem;display:flex}.oxp-speed input[type=range]{width:110px;accent-color:var(--oxp-accent);cursor:pointer}.oxp-speed__value{font-variant-numeric:tabular-nums;min-width:42px;color:var(--oxp-text);font-weight:600}.oxp-situation{border:1px solid var(--oxp-border);background:var(--oxp-surface);border-radius:12px;max-width:640px;margin:0 auto 12px;overflow:hidden}.oxp-situation__summary{cursor:pointer;letter-spacing:.03em;text-transform:uppercase;color:var(--oxp-accent-2);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 14px;font-size:.82rem;font-weight:700;list-style:none;display:flex}.oxp-situation__summary::-webkit-details-marker{display:none}.oxp-situation__icon{font-size:.95rem}.oxp-situation__body{padding:0 14px 12px}.oxp-situation__text{color:var(--oxp-text);margin:0;font-size:.95rem;line-height:1.5}.oxp-situation__criteria{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.oxp-situation__criteria li{background:var(--oxp-bg,#00000040);border:1px solid var(--oxp-border);color:var(--oxp-text-dim);border-radius:999px;padding:4px 11px;font-size:.8rem}.oxp-intro{flex-direction:column;align-items:flex-start;gap:14px;max-width:640px;margin:auto;padding:12px 4px;animation:.45s both oxp-rise;display:flex}.oxp-intro__badge{color:var(--oxp-accent-2);letter-spacing:.05em;text-transform:uppercase;background:linear-gradient(90deg,#34d3992e,#60a5fa2e);border:1px solid #60a5fa59;border-radius:999px;padding:5px 14px;font-size:.78rem;font-weight:700}.oxp-intro__scenario{margin:0;font-size:1.05rem;line-height:1.55}.oxp-intro__criteria{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.oxp-intro__criteria li{background:var(--oxp-surface);border:1px solid var(--oxp-border);color:var(--oxp-text-dim);border-radius:999px;padding:5px 12px;font-size:.82rem}.oxp-intro__steps{color:var(--oxp-text-dim);margin:0;padding-left:20px;font-size:.9rem;line-height:1.7}.oxp-stage{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:18px;padding:12px 0 20px;animation:.35s both oxp-fade-in;display:flex}.oxp-status{color:var(--oxp-text-dim);margin:0;font-size:1rem;font-weight:600}.oxp-orb{background:radial-gradient(circle at 35% 30%,#8b7cf68c,#38bdf840 65%,#0000);border-radius:50%;place-items:center;width:110px;height:110px;display:grid;position:relative;box-shadow:0 0 50px #8b7cf64d}.oxp-orb span{border:2px solid #8b7cf680;border-radius:50%;position:absolute;inset:0}.oxp-orb--speaking span{animation:1.8s ease-out infinite oxp-wave}.oxp-orb--speaking span:nth-child(2){border-color:#38bdf880;animation-delay:.45s}.oxp-orb--speaking span:nth-child(3){border-color:#34d39973;animation-delay:.9s}.oxp-orb--thinking span{border-color:#8b7cf6cc #0000 #0000;animation:1.1s linear infinite oxp-spin}.oxp-orb--thinking span:nth-child(2){border-top-color:#38bdf8b3;animation-duration:1.5s;animation-direction:reverse;inset:10px}.oxp-orb--thinking span:nth-child(3){border-top-color:#34d39999;animation-duration:1.9s;inset:20px}.oxp-subtitles{max-width:560px;color:var(--oxp-text-dim);margin:0;font-size:1.02rem;line-height:1.65}.oxp-subtitles span{transition:color .2s}.oxp-subtitles span.is-said{color:var(--oxp-text);font-weight:600}.oxp-mic{--mic-level:0;width:104px;height:104px;box-shadow:0 0 0 calc(6px + var(--mic-level) * 26px) rgba(52, 211, 153, calc(.08 + var(--mic-level) * .22));background:#34d3991f;border:2px solid #34d3998c;border-radius:50%;place-items:center;transition:box-shadow 80ms linear;display:grid;position:relative}.oxp-mic__icon{font-size:2.2rem}.oxp-timeup{color:var(--oxp-warn);background:#fbbf241f;border:1px solid #fbbf2466;border-radius:12px;padding:8px 16px;font-size:.88rem;font-weight:600;animation:1.6s ease-in-out infinite oxp-pulse-soft}.oxp-btn{cursor:pointer;border:1px solid #0000;border-radius:12px;padding:12px 26px;font-size:.95rem;font-weight:700;transition:transform .15s,box-shadow .15s,filter .15s}.oxp-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.oxp-btn:active{transform:translateY(0)}.oxp-btn:disabled{opacity:.6;cursor:wait;transform:none}.oxp-btn--primary{color:#0b1020;background:linear-gradient(90deg, var(--oxp-accent), var(--oxp-accent-2));box-shadow:0 8px 26px #8b7cf659}.oxp-btn--send{color:#06281c;background:linear-gradient(90deg,#34d399,#60d2fa);padding:13px 38px;font-size:1.02rem;box-shadow:0 8px 26px #34d39959}.oxp-btn--ghost{color:var(--oxp-text-dim);background:var(--oxp-surface);border-color:var(--oxp-border)}.oxp-error{color:var(--oxp-danger);max-width:520px;margin:0;font-size:.88rem}.oxp-report{flex-direction:column;gap:18px;width:100%;max-width:680px;margin:0 auto;animation:.45s both oxp-rise;display:flex}.oxp-report__head{align-items:center;gap:18px;display:flex}.oxp-report__title{margin:0 0 4px;font-size:1.15rem}.oxp-score{--score:0;background:radial-gradient(circle, #0a0c18e6 58%, transparent 59%), conic-gradient(var(--oxp-accent-2) calc(var(--score) * 1%), var(--oxp-border) 0);border-radius:50%;flex:none;place-items:center;width:92px;height:92px;display:grid;position:relative}.oxp-score__value{font-size:1.7rem;font-weight:800;line-height:1}.oxp-score__max{color:var(--oxp-text-dim);font-size:.72rem}.oxp-cefr{color:var(--oxp-accent-2);background:#38bdf824;border:1px solid #38bdf866;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:700;display:inline-block}.oxp-report__summary{color:var(--oxp-text);margin:0;line-height:1.6}.oxp-criteria{flex-direction:column;gap:10px;display:flex}.oxp-criteria__label{color:var(--oxp-text-dim);justify-content:space-between;margin-bottom:4px;font-size:.85rem;display:flex}.oxp-criteria__score{color:var(--oxp-text);font-variant-numeric:tabular-nums;font-weight:700}.oxp-criteria__bar{background:var(--oxp-border);border-radius:999px;height:7px;overflow:hidden}.oxp-criteria__bar>div{border-radius:inherit;background:linear-gradient(90deg, var(--oxp-accent), var(--oxp-accent-2));transform-origin:0;height:100%;animation:.8s both oxp-bar-grow}.oxp-report__cols{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.oxp-list{background:var(--oxp-surface);border:1px solid var(--oxp-border);border-radius:12px;margin:0;padding:12px 14px 12px 30px;font-size:.88rem;line-height:1.6}.oxp-list--good{border-color:#34d39959}.oxp-list--good li::marker{color:var(--oxp-good)}.oxp-list--next{border-color:#fbbf2459}.oxp-list--next li::marker{color:var(--oxp-warn)}.oxp-transcript{background:var(--oxp-surface);border:1px solid var(--oxp-border);border-radius:12px;padding:10px 14px}.oxp-transcript summary{cursor:pointer;color:var(--oxp-text-dim);font-weight:600}.oxp-transcript__line{color:var(--oxp-text-dim);margin:8px 0 0;font-size:.88rem;line-height:1.55}.oxp-transcript__line strong{min-width:34px;color:var(--oxp-accent-2);margin-right:6px;display:inline-block}.oxp-transcript__line--learner strong{color:var(--oxp-good)}@keyframes oxp-wave{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.55)}}@keyframes oxp-spin{to{transform:rotate(360deg)}}@keyframes oxp-fade-in{0%{opacity:0}to{opacity:1}}@keyframes oxp-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes oxp-pulse-soft{0%,to{opacity:1}50%{opacity:.55}}@keyframes oxp-bar-grow{0%{transform:scaleX(0)}}@media (width<=560px){.oxp-controls{gap:8px}.oxp-speed input[type=range]{width:80px}.oxp-report__head{flex-direction:column;align-items:flex-start}}
