:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#e2e8f0;background-color:#020617;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#0f172a 0,#020617 55%,#000)}a{font-weight:500;color:#38bdf8;text-decoration:none}a:hover{color:#7dd3fc}.page{min-height:100vh;padding:2.5rem 1.5rem 3rem;max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.top-bar h1{margin:0;font-size:1.9rem}.top-bar-right{display:flex;align-items:center;gap:.75rem}.layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:1.5rem}@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}}.layout-single{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.panel{background:#ffffff05;border-radius:1rem;padding:1.5rem 1.25rem;box-shadow:0 18px 45px #0f172a40;border:1px solid rgba(148,163,184,.18)}.panel h2{margin-top:0;margin-bottom:.35rem}.muted{color:#94a3b8}.small{font-size:.875rem}.test-options-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;margin-bottom:.5rem}.test-option{display:flex;flex-direction:column;gap:.25rem}.test-option-label{font-size:.85rem;color:#94a3b8}.test-select{padding:.5rem .6rem;border-radius:.5rem;border:1px solid rgba(148,163,184,.5);background:#0f172acc;color:#e2e8f0;font-size:.9rem;min-width:180px}.test-list{display:flex;flex-direction:column;gap:.9rem;margin-top:1rem}.test-card{padding:1rem 1.1rem;border-radius:.8rem;border:1px solid rgba(148,163,184,.35);background:radial-gradient(circle at top left,rgba(56,189,248,.06),transparent),radial-gradient(circle at bottom right,rgba(147,51,234,.06),transparent);display:flex;flex-direction:column;gap:.35rem}.test-card h3{margin:0;font-size:1rem}.test-card button{align-self:flex-start;margin-top:.4rem}button{border-radius:999px;border:1px solid transparent;padding:.55rem 1.3rem;font-size:.95rem;font-weight:500;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(135deg,#0ea5e9,#6366f1);color:#0f172a;cursor:pointer;transition:transform .08s ease,box-shadow .12s ease,filter .12s ease}button:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 10px 22px #3b82f666;transform:translateY(-1px)}button:disabled{opacity:.6;cursor:default}button.ghost{background:transparent;color:inherit;border-color:#94a3b8b3;box-shadow:none}.auth-layout{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:4rem;gap:1.1rem}.auth-header{position:absolute;top:1.25rem;left:1.25rem}.auth-back{font-size:.9rem;color:#94a3b8;padding:.4rem .6rem;border-radius:.5rem;transition:color .15s,background .15s}.auth-back:hover{color:#e2e8f0;background:#94a3b826}.auth-tabs{display:inline-flex;padding:.25rem;border-radius:999px;background:#0f172ad9;border:1px solid rgba(148,163,184,.5)}.auth-tab{padding:.4rem 1.1rem;border-radius:999px;font-size:.9rem;color:#cbd5f5}.auth-tab.active{background:linear-gradient(135deg,#0ea5e9,#6366f1);color:#0f172a}.auth-card{width:100%;max-width:430px;padding:2rem 1.75rem 2.1rem;border-radius:1rem;background:#0f172af7;border:1px solid rgba(148,163,184,.5);box-shadow:0 24px 55px #0f172ab3}.auth-card h1{margin-top:0;margin-bottom:.3rem;font-size:1.6rem}.form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}input{border-radius:.6rem;border:1px solid rgba(148,163,184,.7);padding:.5rem .6rem;background:#0f172ae6;color:#e2e8f0;font-size:.95rem}input:focus{outline:2px solid rgba(56,189,248,.7);outline-offset:1px}.error{color:#fecaca;font-size:.85rem}.success{color:#bbf7d0;font-size:.85rem}.center{min-height:100vh;display:flex;align-items:center;justify-content:center}.table-wrapper{margin-top:.9rem;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:.5rem .4rem;text-align:left}thead tr{border-bottom:1px solid rgba(148,163,184,.6)}tbody tr:nth-child(2n){background:#0f172ab3}.section-tabs{display:inline-flex;gap:.3rem;margin-bottom:1rem;padding:.2rem;border-radius:999px;background:#0f172af2;border:1px solid rgba(148,163,184,.6)}.section-tab{border-radius:999px;padding:.35rem .9rem;background:transparent;border:none;color:#cbd5f5;font-size:.9rem}.section-tab.active{background:linear-gradient(135deg,#22c55e,#14b8a6);color:#022c22}.section-body h2{margin-top:0}.qa-list{margin-top:1.25rem;padding-left:2rem;display:flex;flex-direction:column;gap:1.5rem;list-style-type:decimal}.qa-list>li{padding:1rem 1.1rem;border-radius:.75rem;background:#0f172a80;border:1px solid rgba(148,163,184,.2)}.qa-list>li>p{margin:0 0 .75rem;font-weight:500;font-size:.98rem;line-height:1.45}.options{display:flex;flex-direction:column;gap:.5rem;margin-top:0}.option{display:flex;align-items:center;gap:.75rem;font-size:.95rem;padding:.75rem 1rem;border-radius:.6rem;border:1px solid rgba(148,163,184,.35);background:#0f172a66;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.option:hover{border-color:#94a3b88c;background:#1e293b80}.option:has(input:checked){border-color:#38bdf8b3;background:#38bdf814;box-shadow:0 0 0 1px #38bdf840}.option input[type=radio]{flex-shrink:0;width:1.15rem;height:1.15rem;accent-color:#38bdf8;cursor:pointer}.option span{flex:1;line-height:1.4}.reading-text{padding:.75rem .75rem .25rem;background:#0f172ab3;border-radius:.7rem;border:1px solid rgba(148,163,184,.5);font-size:.95rem}.writing-task,.speaking-part{margin-top:.75rem;padding:.8rem;border-radius:.7rem;border:1px solid rgba(148,163,184,.4);background:#0f172ad9}.speaking-question-block{margin-top:1rem;padding:.75rem 0;border-top:1px solid rgba(148,163,184,.3)}.speaking-question-block:first-child{margin-top:.5rem;border-top:none;padding-top:0}.speaking-question-text{margin:0 0 .5rem;font-size:.95rem;white-space:pre-wrap}.speaking-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}button.small{font-size:.85rem;padding:.4rem .75rem}button.danger{background:#ef444433;color:#fca5a5;border-color:#ef444480}button.danger:hover:not(:disabled){background:#ef444459}.speaking-transcript,.speaking-feedback{margin-top:.6rem;padding:.5rem .6rem;border-radius:.5rem;background:#0f172a99;border:1px solid rgba(148,163,184,.25);font-size:.9rem}.speaking-feedback p{margin:.35rem 0 0;white-space:pre-wrap}.ai-listening-block{margin-top:2rem;padding-top:1.25rem;border-top:1px solid rgba(148,163,184,.4)}.ai-listening-block h3{margin-top:0;margin-bottom:.35rem}.topic-input{min-width:200px;padding:.5rem .6rem;border-radius:.5rem;border:1px solid rgba(148,163,184,.6);background:#0f172acc;color:#e2e8f0;font-size:.9rem}.notes{width:100%;min-height:160px;margin-top:1rem;border-radius:.7rem;padding:.7rem;border:1px solid rgba(148,163,184,.7);background:#0f172ae6;color:#e2e8f0;resize:vertical}.sidebar{display:flex;flex-direction:column;gap:.75rem}.summary-list{list-style:none;padding-left:0;margin-top:.5rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.35rem}.scoring-info{margin-top:1rem;padding:.9rem 1rem;border-radius:.7rem;background:#0f172a99;border:1px solid rgba(148,163,184,.25)}.scoring-info h3{margin:0 0 .5rem;font-size:.95rem}.scoring-list{list-style:none;padding-left:0;margin:0;display:flex;flex-direction:column;gap:.6rem;font-size:.85rem;line-height:1.45;color:#cbd5e1}.scoring-list li strong{color:#e2e8f0}.result-card{margin-top:.75rem;padding:.8rem .9rem;border-radius:.7rem;background:#16a34a12;border:1px solid rgba(22,163,74,.4)}.result-card.error{background:#ef444412;border-color:#ef444466}.audio-player-wrapper{margin:1rem 0;padding:.75rem;background:#0f172ab3;border-radius:.7rem;border:1px solid rgba(148,163,184,.5)}.audio-player{width:100%;outline:none}.login-prompt{display:flex;flex-direction:column;gap:.75rem;padding:1rem 0}.login-prompt-small{margin-bottom:.5rem;padding:.6rem .7rem;background:#3b82f60d;border-radius:.6rem;border:1px solid rgba(59,130,246,.2)}
