:root{color-scheme:light;--navy:#13294e;--blue:#2559a6;--ink:#1d3151;--muted:#596a80;--line:#dce5ef;--paper:#fff;--green:#16805d;--pink:#fde5ed;--mint:#dff5e8;--yellow:#fff2cd;--purple:#eee5ff;--red:#d6304b;--shadow:0 10px 32px #17345808}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(150deg,#f5f9ff 0%,#fbfaf6 65%,#f3f8ff 100%);color:var(--ink);font:16px/1.55 'Segoe UI',Arial,sans-serif;min-height:100vh}button,input,a{ -webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #eead26;outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;left:12px;top:-100px;background:white;padding:12px;z-index:30}.skip:focus{top:8px}.topbar{min-height:88px;background:#ffffffef;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:16px max(24px,calc((100vw - 1240px)/2));flex-wrap:wrap}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--navy);font-weight:800;font-size:20px;line-height:1.15;white-space:nowrap}.brand small{display:block;font-size:12px;font-weight:600;letter-spacing:.09em;margin-top:5px}.topbar nav{display:flex;gap:4px;margin-left:auto}.navbtn{background:none;border:0;color:var(--muted);padding:10px 14px;border-radius:10px;font-weight:600}.navbtn.active{background:#eaf2ff;color:var(--blue)}#identity{font-size:14px;line-height:1.35;max-width:220px}#identity span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.offline{padding:10px 20px;background:#fff0c4;text-align:center;color:#5e4200}main{max-width:1240px;padding:32px 24px 60px;margin:auto;min-height:calc(100vh - 160px)}main:focus{outline:none}footer{text-align:center;padding:20px 16px;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(28px,4vw,40px);line-height:1.15;letter-spacing:-.035em;color:var(--navy);margin-bottom:14px}h2{font-size:24px;line-height:1.25;color:var(--navy)}h3{font-size:18px;color:var(--navy);margin-bottom:12px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:800;color:var(--blue);margin-bottom:12px}.muted,.small{color:var(--muted)}.small{font-size:14px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}.btn{border:1px solid transparent;border-radius:12px;padding:12px 20px;min-height:48px;background:var(--navy);color:white;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.btn.secondary{background:white;color:var(--navy);border-color:#c3d2e4}.btn.soft{background:#eaf2ff;color:var(--blue)}.btn.danger{background:var(--red)}.btn.smallbtn{font-size:14px;padding:8px 14px;min-height:40px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.back{border:1px solid var(--line);background:white;color:var(--navy);border-radius:10px;padding:8px 12px;font-size:14px;margin-bottom:24px}.login-layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:70px;max-width:1010px;margin:54px auto}.login-intro h1{font-size:clamp(40px,5vw,64px)}.login-intro h1 span{color:var(--blue)}.login-intro p{max-width:450px;font-size:18px;color:var(--muted)}.practice-parts{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.practice-parts span{padding:10px 16px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:14px}.login-card{padding:34px}.login-card label{display:block;font-weight:700;margin-bottom:8px}.id-input{width:100%;font-size:28px;font-weight:700;letter-spacing:.18em;padding:16px;border:1px solid #b7c9df;border-radius:12px;color:var(--navy);margin-bottom:10px}.login-card .btn{width:100%;margin:14px 0}.privacy{border-top:1px solid var(--line);padding-top:16px;margin-top:20px;font-size:13px;color:var(--muted)}.errorbox{padding:14px 16px;border:1px solid #f1b0b9;background:#fff3f4;border-radius:12px;color:#8d2033;margin:16px 0;font-size:15px}.notice{background:#edf5ff;color:#274c79;border:1px solid #d3e4f7;border-radius:12px;padding:14px 16px;margin:16px 0;font-size:14px}.welcome{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}.welcome p{margin-bottom:0}.completion-chip{background:#eaf4ec;color:#276346;padding:10px 16px;border-radius:14px;font-weight:700;white-space:nowrap}.mock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mock-card{position:relative;display:flex;flex-direction:column;min-height:260px;overflow:hidden}.mock-number{font-size:38px;line-height:1;color:#cad8e9;font-weight:800;position:absolute;right:22px;top:20px}.badge{align-self:flex-start;display:inline-block;font-size:12px;font-weight:800;padding:5px 10px;border-radius:7px;letter-spacing:.03em;background:#e8f2ec;color:#226640;margin-bottom:26px}.badge.locked{color:#596a80;background:#edf0f4}.badge.progress{background:#fff2d3;color:#795416}.mock-card h2{font-size:23px;margin-bottom:5px}.mock-card p{margin-bottom:24px}.mock-card .btn{margin-top:auto;align-self:flex-start}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.page-heading h1{margin-bottom:8px}.stage-label{font-size:20px;color:var(--navy);font-weight:700;margin:0}.steps{display:flex;gap:7px;flex-wrap:wrap}.step-pill{border:1px solid var(--line);padding:8px 12px;border-radius:10px;background:white;font-size:14px;font-weight:700}.step-pill.active{background:var(--navy);color:white;border-color:var(--navy)}.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.practice-main{min-width:0;display:flex;flex-direction:column;gap:20px}.stimulus{padding:0;overflow:hidden}.stimulus-title{background:#d5efb5;padding:16px 24px;color:#244328;font-weight:800;font-size:21px;border-bottom:1px solid #c4dda7}.stimulus-body{padding:24px;font-size:19px;color:#1b293b}.stimulus-body ul{margin-bottom:0;padding-left:25px}.stimulus-body li{padding:5px 0}.tips{background:#f3f8ff;margin-bottom:18px}.tips ul{padding-left:21px;margin-bottom:0}.tips li{margin:10px 0;font-size:15px}.language details{border-bottom:1px solid var(--line);padding:11px 0}.language details:last-child{border:0;padding-bottom:0}.language summary{font-size:14px;font-weight:700;cursor:pointer;color:var(--blue)}.language p{font-size:14px;margin:7px 0 0;color:var(--muted)}.mindmap-panel{padding:22px}.mindmap-panel h2{font-size:22px;max-width:600px}.mindmap{position:relative;display:grid;grid-template-columns:1fr .8fr 1fr;grid-template-rows:auto 84px auto;gap:6px;min-height:350px;margin:20px 0}.mindmap svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.node{z-index:1;padding:20px 14px;border-radius:40px;text-align:center;align-self:center;min-width:0}.node strong{display:block;font-size:18px}.node small{display:block;font-size:14px;margin-top:5px;color:#3f526b}.node.n0{grid-column:1;grid-row:1;background:var(--pink)}.node.n1{grid-column:3;grid-row:1;background:var(--mint)}.node.n2{grid-column:1;grid-row:3;background:var(--yellow)}.node.n3{grid-column:3;grid-row:3;background:var(--purple)}.node.center{grid-column:2;grid-row:2;background:#c6e5ff;border-radius:28px;font-weight:800;font-size:20px;line-height:1.2;padding:20px 8px}.decision{margin:0;color:var(--muted);font-size:15px}.decision strong{color:var(--navy)}.conversation{display:flex;flex-direction:column;gap:14px}.conversation h3{margin-bottom:2px}.bubble{padding:16px 18px;border-radius:14px;background:#edf5ff;border-left:3px solid #71a9e7}.bubble.student{background:#f6f8fb;border-color:#b8c7da}.bubble-label{font-size:13px;color:var(--blue);font-weight:800;margin-bottom:6px}.bubble p{margin:0;white-space:pre-wrap}.bubble.student .bubble-label{color:#526784}.bubble.placeholder{color:var(--muted);border-style:dashed}.recorder{border-color:#ccdbec}.recorder-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.recorder-head h3{margin-bottom:4px}.recorder-head p{margin:0}.clock{font-variant-numeric:tabular-nums;font-weight:800;font-size:34px;white-space:nowrap;color:var(--navy);line-height:1.2}.clock span{font-size:16px;color:var(--muted);font-weight:500}.meter{display:block;background:#f1f6fc;border-radius:12px;width:100%;height:66px;margin:18px 0}.rec-status{font-size:14px;font-weight:600;color:var(--green);min-height:24px;margin-bottom:12px}.rec-status.live{color:var(--red)}.review audio{width:100%;margin:8px 0 16px}.record-button{background:var(--red);min-width:180px}.recorder .small{margin:14px 0 0}.prep-clock{font-weight:800;font-size:48px;color:var(--navy);font-variant-numeric:tabular-nums}.processing{background:#edf5ff;color:#234a78;padding:16px;border-radius:12px;margin-top:16px}.processing p{margin:0}.processing small{display:block;margin-top:6px}.feedback-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.feedback-card{padding:20px;border-radius:14px;background:#f1f8f3}.feedback-card.improve{background:#fff6e8}.feedback-card ul{margin:0;padding-left:20px}.feedback-card li{margin:8px 0}.example{padding:20px;border:1px solid var(--line);border-radius:14px;margin-top:18px}.example p:last-child{margin-bottom:0}.quote{padding:12px 16px;background:#eef4ff;border-left:3px solid #5686ca;border-radius:4px;color:var(--navy)}.scores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.score{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}.score b{font-size:26px;color:var(--navy);display:block}.score span{font-size:13px;line-height:1.4;display:block}.report-title{text-align:center;padding:20px 0 28px}.report-title h1{margin-top:10px}.report-section{margin-bottom:22px}.report-section>h2{margin-bottom:4px}.report-section>p{font-size:14px;color:var(--muted)}.report-transcript{margin-top:18px}.report-transcript summary{cursor:pointer;font-weight:600;color:var(--blue)}.report-transcript p{white-space:pre-wrap}.report-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:20px}.empty{padding:40px;text-align:center}.loading{text-align:center;padding:70px 20px;color:var(--muted)}.completed-list{display:flex;flex-direction:column;gap:16px}.completed-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.completed-row h2{margin-bottom:4px}.completed-row p{margin:0}.toast-note{margin-bottom:20px}.record-warning{color:#8d2033}.busy button[data-action="submit"],.busy button[data-action="record"]{pointer-events:none}
@media(max-width:1000px){.practice-layout{grid-template-columns:minmax(0,1fr) 260px}.topbar{padding:16px 24px;gap:14px}.mock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-layout{gap:30px}.node strong{font-size:16px}}
@media(max-width:760px){.topbar{padding:14px 16px;gap:12px;min-height:auto}.brand{font-size:17px}.brand small{font-size:10px}.brand img{width:35px;height:35px}.topbar nav{order:3;width:100%;margin:0}.topbar #identity{margin-left:auto;max-width:140px;font-size:12px}main{padding:24px 16px 40px}.login-layout{grid-template-columns:1fr;margin:14px auto;gap:24px;max-width:480px}.login-intro h1{font-size:40px}.login-intro p{font-size:16px}.practice-parts{margin-top:18px}.login-card{padding:24px}.practice-layout{grid-template-columns:1fr}.practice-main{gap:16px}.practice-aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tips{margin:0}.panel{padding:20px}.stimulus{padding:0}.stimulus-title{padding:14px 20px}.stimulus-body{font-size:18px;padding:20px}.page-heading{display:block}.steps{margin-top:16px}.mindmap{min-height:320px;grid-template-columns:1fr .6fr 1fr;grid-template-rows:auto 70px auto;margin:18px 0}.node{padding:17px 8px;border-radius:28px}.node.center{font-size:17px;padding:16px 5px}.node small{font-size:13px}.recorder-head{gap:10px}.clock{font-size:30px}.scores{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome{align-items:flex-start}.completion-chip{font-size:13px;padding:8px 10px}.welcome h1{font-size:28px}.mock-number{font-size:30px}.mock-card{min-height:250px}.mock-card h2{font-size:21px}}
@media(max-width:480px){.mock-grid,.feedback-grid,.practice-aside{grid-template-columns:1fr}.mock-card{min-height:220px}.page-heading h1{font-size:30px}.stage-label{font-size:18px}.recorder-head{align-items:flex-start;flex-direction:column}.recorder-head .clock{align-self:flex-end;margin-top:-4px}.actions .btn{flex:1 1 auto}.completed-row{align-items:flex-start;flex-direction:column}.node strong{font-size:15px}.node small{font-size:12px}.mindmap-panel h2{font-size:20px}.mindmap{min-height:300px}.node.center{font-size:16px}.welcome{flex-direction:column;gap:12px}.step-pill{font-size:13px;padding:7px 10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{body{background:white;color:#000}.topbar,.offline,footer,.back,.report-actions,nav{display:none!important}main{max-width:none;padding:0}.panel{box-shadow:none;border-color:#ccc;break-inside:avoid}.report-section{break-inside:avoid}.report-transcript{display:none}.scores{grid-template-columns:repeat(4,1fr)}.feedback-grid{grid-template-columns:1fr 1fr}.report-title{padding:0 0 20px}}
