:root{font-family:Microsoft YaHei UI,PingFang SC,Noto Sans SC,sans-serif;color:#17342e;background:#fff8e8;font-synthesis:none;--ink: #17342e;--muted: #66766f;--paper: #fffdf7;--cream: #fff3cf;--teal: #147d74;--teal-dark: #0d5f59;--coral: #ef6b4f;--sun: #f3c64f;--line: #dce4dc;--shadow: 0 18px 50px rgba(54, 70, 55, .12), 0 3px 0 rgba(23, 52, 46, .06)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 8% 5%,#ffe5af 0 7%,transparent 25%),radial-gradient(circle at 92% 12%,#ccece4 0 8%,transparent 26%),linear-gradient(150deg,#fffaf0,#f7fbf5)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,.file-picker:focus-within{outline:3px solid rgba(20,125,116,.28);outline-offset:3px}.page-shell{min-height:100vh;position:relative;overflow:hidden}.login-page{display:grid;place-items:center;padding:32px 20px}.sun-orbit{position:fixed;width:320px;height:320px;border:46px solid rgba(243,198,79,.18);border-radius:50%;top:-175px;right:-110px}.login-card{width:min(100%,440px);position:relative;padding:38px;background:#fffdf7f0;border:2px solid rgba(23,52,46,.09);border-radius:32px 32px 32px 10px;box-shadow:var(--shadow);animation:rise-in .42s ease-out both}.brand-mark{width:60px;height:60px;display:grid;place-items:center;color:#fff;background:var(--coral);border-radius:20px 20px 20px 7px;box-shadow:inset 0 -4px #75231529,0 10px 22px #ef6b4f3d;margin-bottom:25px}.eyebrow{margin:0 0 7px;color:var(--teal);font-weight:800;letter-spacing:.12em;font-size:12px}h1,h2,p{overflow-wrap:anywhere}.login-card h1,.topbar h1,.practice-card h1{margin:0;font-size:clamp(28px,7vw,42px);line-height:1.18;letter-spacing:-.04em}.lead{margin:12px 0 28px;color:var(--muted);line-height:1.7}.login-form{display:grid;gap:10px}.login-form label{font-weight:800;font-size:14px;margin-top:4px}.login-form input{width:100%;min-height:54px;border:2px solid #dfe6dd;border-radius:15px;padding:0 16px;color:var(--ink);background:#fff;transition:border-color .18s,box-shadow .18s}.login-form input:focus{border-color:var(--teal);box-shadow:0 0 0 4px #147d741a;outline:none}.primary-button,.secondary-button{min-height:54px;border:0;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:900;transition:transform .18s,box-shadow .18s,background .18s}.primary-button{margin-top:10px;color:#fff;background:var(--teal);box-shadow:inset 0 -4px #00000024,0 10px 22px #147d7436}.primary-button:hover:not(:disabled){transform:translateY(-2px);background:var(--teal-dark)}.primary-button:disabled{opacity:.46;cursor:not-allowed;box-shadow:none}.secondary-button{padding:0 22px;background:#e7f3ef;color:var(--teal-dark)}.privacy-note{display:flex;align-items:center;justify-content:center;gap:6px;margin:22px 0 0;color:var(--muted);font-size:13px}.form-error{margin:4px 0;padding:11px 13px;border-radius:12px;color:#852b22;background:#ffebe6;font-size:14px}.home-page,.submission-page{width:min(100%,980px);margin:0 auto;padding:34px 24px 70px;overflow:visible}.topbar,.submission-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar h1{font-size:clamp(26px,4vw,38px)}.icon-button{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:#ffffffb3}.task-intro{margin:30px 0 20px;padding:22px 24px;display:flex;align-items:center;gap:20px;border-radius:25px 25px 8px;background:var(--cream);border:2px solid rgba(129,98,13,.09)}.task-intro strong{font-size:20px}.task-intro p{margin:4px 0 0;color:#6d654e}.sound-rings{height:48px;display:flex;align-items:center;gap:5px}.sound-rings span{width:6px;border-radius:9px;background:var(--coral);animation:sound 1.2s ease-in-out infinite}.sound-rings span:nth-child(1),.sound-rings span:nth-child(5){height:16px}.sound-rings span:nth-child(2),.sound-rings span:nth-child(4){height:31px;animation-delay:.1s}.sound-rings span:nth-child(3){height:44px;animation-delay:.2s}.task-list{display:grid;gap:14px}.task-card{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:18px;min-height:126px;padding:20px;border:1px solid rgba(23,52,46,.1);border-radius:24px;background:#fffdf7eb;box-shadow:0 9px 28px #31433614;animation:rise-in .38s ease-out var(--delay) both}.task-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:18px}.task-icon.audio{color:#9e3d28;background:#ffe0d5}.task-icon.video{color:#175e59;background:#d9f0eb}.task-meta{display:flex;gap:8px;margin-bottom:7px}.task-meta span{padding:4px 8px;border-radius:8px;font-size:12px;font-weight:800;color:var(--teal-dark);background:#e7f3ef}.task-copy h2{margin:0;font-size:20px}.task-copy p{margin:7px 0 0;color:var(--muted);font-size:14px}.task-action{min-height:46px;padding:0 15px;display:flex;align-items:center;gap:4px;border:0;border-radius:14px;color:#fff;background:var(--teal);font-weight:800}.empty-card{padding:42px 20px;text-align:center;color:var(--muted);background:#ffffffb8;border:2px dashed var(--line);border-radius:24px}.submission-header{margin-bottom:26px;color:var(--muted);font-weight:700}.back-button{min-height:44px;display:flex;align-items:center;gap:6px;padding:0;border:0;color:var(--teal-dark);background:transparent;font-weight:800}.practice-card{padding:clamp(24px,6vw,42px);border-radius:30px 30px 10px;color:#fffdf7;background:linear-gradient(135deg,#0f756c,#1a9184);box-shadow:var(--shadow)}.practice-card .eyebrow{color:#ffe69a}.reading-text{margin-top:24px;padding:18px 20px;border-radius:18px;color:var(--ink);background:#fffaf0;font-size:clamp(19px,4vw,28px);line-height:1.65;font-weight:800}.reading-text p{margin:4px 0}.capture-card,.submit-card{position:relative;margin-top:18px;padding:26px 28px 28px 82px;border:1px solid rgba(23,52,46,.1);border-radius:25px;background:#fffdf7f0;box-shadow:0 9px 28px #31433612}.step-number{position:absolute;left:25px;top:26px;width:38px;height:38px;display:grid;place-items:center;border-radius:13px;color:#fff;background:var(--coral);font-weight:900;box-shadow:inset 0 -3px #00000021}.capture-heading h2,.submit-card h2{margin:0;font-size:21px}.capture-heading p,.submit-card>div>p{margin:6px 0 18px;color:var(--muted)}.record-button,.file-picker{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 20px;border-radius:16px;font-weight:900}.record-button{border:0;color:#fff;background:var(--coral);box-shadow:inset 0 -4px #0000001f}.record-button.recording{animation:pulse 1.2s infinite}.file-picker{margin-left:10px;color:var(--teal-dark);border:2px solid #b7d9d2;background:#eff8f5;cursor:pointer}.file-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.media-preview{margin-top:16px;padding:14px;display:grid;gap:10px;border-radius:15px;background:#f3f5ef;color:var(--muted);font-size:13px}.media-preview audio,.media-preview video{width:100%;max-height:260px}.submit-button{width:min(100%,320px)}.progress-panel{margin:12px 0}.progress-label{display:flex;justify-content:space-between;margin-bottom:8px}.progress-track{height:12px;overflow:hidden;border-radius:20px;background:#dde8e3}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--teal);transition:width .18s}.progress-actions{display:flex;gap:8px;margin-top:12px}.progress-actions button{min-height:44px;display:flex;align-items:center;gap:6px;padding:0 16px;border:0;border-radius:12px;color:var(--ink);background:#edf2ed;font-weight:800}.success-message{margin:16px 0;padding:16px;display:flex;align-items:center;gap:9px;border-radius:16px;color:#125d43;background:#ddf6e8;font-weight:900}.loading-page{display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted)}.loading-dot{width:26px;height:26px;border:4px solid #d2e3dd;border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}.teacher-login-page{background:radial-gradient(circle at 85% 12%,rgba(20,125,116,.16),transparent 30%),linear-gradient(145deg,#f8fbf7,#edf5f1)}.teacher-shell{width:min(100%,1320px);min-height:100vh;margin:0 auto;padding:32px 28px 60px}.teacher-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.teacher-topbar h1{margin:0;font-size:clamp(29px,4vw,43px);letter-spacing:-.04em}.teacher-topbar p:last-child{margin:8px 0 0;color:var(--muted)}.teacher-actions{display:flex;gap:9px}.teacher-command-bar{display:flex;gap:10px;margin-top:22px}.teacher-command-bar button{min-height:46px;padding:0 16px;display:flex;align-items:center;gap:7px;border:1px solid #bed6ce;border-radius:13px;color:var(--teal-dark);background:#ffffffc7;font-weight:900}.management-panel{margin-top:14px;padding:22px;border:1px solid rgba(23,52,46,.1);border-radius:22px;background:#fffdf7f2;box-shadow:0 9px 28px #31433612}.management-panel h2{margin:0}.management-panel>div>p{margin:6px 0 18px;color:var(--muted)}.management-form{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:13px;align-items:end}.management-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.management-form input,.management-form select,.management-form textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cfdcd4;border-radius:12px;color:var(--ink);background:#fff;font-size:15px;resize:vertical}.management-form .wide-field{grid-column:1 / -1}.management-form .primary-button{margin:0;padding-inline:22px}.management-message{margin:14px 0 0;color:var(--teal-dark);font-weight:800}.account-result{margin-top:14px;overflow:hidden;border:1px solid var(--line);border-radius:14px}.account-result div{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:12px;padding:10px 13px;border-top:1px solid var(--line)}.account-result div:first-child{border-top:0}.account-result code{color:#9a3e2d;font-weight:800}.metric-grid{display:grid;grid-template-columns:repeat(8,minmax(104px,1fr));gap:10px;margin:27px 0 18px}.metric-card{min-height:102px;padding:16px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(23,52,46,.09);border-radius:19px 19px 7px;background:#fffdf7e6;box-shadow:0 7px 20px #3143360f}.metric-card span{color:var(--muted);font-size:13px;font-weight:800}.metric-card strong{font-size:31px;line-height:1}.metric-card:nth-child(2) strong,.metric-card:last-child strong{color:#b44335}.monitor-panel{border:1px solid rgba(23,52,46,.1);border-radius:24px;overflow:hidden;background:#fffdf7f0;box-shadow:var(--shadow)}.monitor-filters{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;padding:18px;background:#f1f6f1}.monitor-filters label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.monitor-filters select{width:100%;min-height:46px;padding:0 38px 0 13px;border:1px solid #cfdcd4;border-radius:12px;color:var(--ink);background:#fff;font-size:15px}.monitor-table{width:100%}.monitor-row{min-height:61px;display:grid;grid-template-columns:1.1fr 1.2fr 2fr .55fr 1.1fr;align-items:center;gap:14px;padding:10px 19px;border-top:1px solid #e6ebe5;font-size:14px}.monitor-row small{grid-column:1 / -1;margin-top:-6px;color:#9b3c31}.monitor-head{min-height:48px;color:var(--muted);background:#fffaf0;border-top:0;font-size:12px;font-weight:800}.status-pill{justify-self:start;padding:7px 10px;border-radius:10px;color:#31544c;background:#e5f1ed;font-size:12px;font-weight:900;white-space:nowrap}.status-missing,.status-failed{color:#963b30;background:#ffe8e1}.status-sent,.status-report_ready{color:#17603f;background:#dcf5e6}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{box-shadow:0 0 0 9px #ef6b4f24,inset 0 -4px #0000001f}}@keyframes sound{50%{transform:scaleY(.55)}}@media(max-width:640px){.login-card{padding:29px 24px;border-radius:26px 26px 26px 8px}.home-page,.submission-page{padding:24px 16px 48px}.task-intro{padding:18px}.task-card{grid-template-columns:48px 1fr;gap:13px;padding:17px}.task-icon{width:48px;height:48px;border-radius:15px}.task-action{grid-column:1 / -1;width:100%;justify-content:center}.capture-card,.submit-card{padding:72px 18px 22px}.step-number{left:18px;top:19px}.record-button,.file-picker{width:100%;margin:0 0 10px}.teacher-shell{padding:22px 14px 44px}.teacher-topbar{align-items:center}.teacher-topbar p:last-child{display:none}.teacher-command-bar{display:grid;grid-template-columns:1fr 1fr}.teacher-command-bar button{justify-content:center;padding:0 9px;font-size:13px}.management-panel{padding:18px 14px}.management-form{grid-template-columns:1fr}.management-form .wide-field{grid-column:auto}.account-result div{grid-template-columns:1fr;gap:4px}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-card{min-height:86px}.monitor-filters{grid-template-columns:1fr}.monitor-head{display:none}.monitor-row{grid-template-columns:1fr auto;gap:7px 12px;padding:16px}.monitor-row>span:nth-child(2),.monitor-row>span:nth-child(3){grid-column:1;color:var(--muted)}.monitor-row>span:nth-child(4){display:none}.monitor-row>.status-pill{grid-column:2;grid-row:1 / span 3}}@media(min-width:641px)and (max-width:980px){.teacher-shell{padding:28px 20px 54px}.metric-grid{grid-template-columns:repeat(4,1fr)}.monitor-row{grid-template-columns:1fr 1.15fr 1.6fr .45fr 1fr;padding-inline:15px}.capture-card,.submit-card{padding-right:24px}.management-form{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}
