:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#182433;background:#f4f7fb;font-synthesis:none}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}button{font:inherit;cursor:pointer}.app-shell{min-height:100vh;padding-bottom:82px}.loading-screen,.login-screen{display:grid;min-height:100vh;place-content:center;gap:18px;text-align:center;color:#5a7189}.spinner{width:30px;height:30px;margin:auto;border:3px solid #d9e7f6;border-top-color:#124e96;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{padding:24px;background:radial-gradient(circle at 20% 15%,#dbeafe,transparent 35%),#f1f5fa}.login-panel{width:min(100%,430px);padding:46px 42px;border:1px solid #dfe8f1;border-radius:24px;background:#fffffff5;box-shadow:0 25px 75px #1d395821}.brand-icon{display:grid;width:56px;height:56px;margin:0 auto 16px;place-items:center;border-radius:17px;color:#fff;background:#124e96;font-size:26px;font-weight:800}.brand-icon.small{width:34px;height:34px;margin:0;border-radius:10px;font-size:16px}.login-panel h1{margin:8px 0;font-size:29px}.login-panel>p:not(.eyebrow){color:#6f8092;line-height:1.7}.eyebrow{margin:0;color:#4c75a8;font-size:11px;font-weight:800;letter-spacing:.14em}.primary-button,.outline-button{width:100%;min-height:46px;margin-top:20px;border:0;border-radius:11px;color:#fff;background:#124e96;font-size:15px;font-weight:700}.outline-button{color:#275982;border:1px solid #bdd1e4;background:#fff}.link-button{margin-top:14px;border:0;color:#59728d;background:transparent;font-size:14px}.notice,.error-text{margin:18px 0 0;font-size:13px}.notice{color:#6d7f90}.error-text{color:#b42318}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;height:64px;padding:0 max(24px,calc((100vw - 1120px)/2));border-bottom:1px solid #e4ebf3;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;gap:10px;align-items:center}.user-name{color:#56708a;font-size:14px}.page-content{width:min(100% - 48px,1060px);margin:42px auto}.page-content h1{margin:8px 0;font-size:31px}.subtitle{margin:0;color:#6d8092}.bank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:26px}.bank-card,.exam-card,.list-card,.profile-card,.empty-card{border:1px solid #dde7f0;border-radius:17px;background:#fff;box-shadow:0 7px 25px #1e37520a}.bank-card{display:flex;flex-direction:column;justify-content:space-between;min-height:190px;padding:24px}.bank-card h2{margin:0 0 9px;font-size:19px}.bank-card p,.exam-card p,.list-card p,.profile-card p{margin:0;color:#718096;font-size:13px;line-height:1.6}.bank-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.bank-actions button,.exam-card button{min-height:38px;border:0;border-radius:9px;color:#fff;background:#124e96;font-size:13px;font-weight:700}.bank-actions .secondary{color:#285986;border:1px solid #c5d7e9;background:#fff}.exam-section{margin-top:52px}.exam-section h2{margin:8px 0 16px}.exam-card{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:19px 22px;margin:10px 0}.exam-card strong{display:block;margin-bottom:4px}.exam-card button{width:92px}.empty-card{padding:65px 24px;margin-top:25px;color:#7a8b9d;text-align:center}.bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:25;display:flex;justify-content:center;gap:18px;height:70px;padding:10px;border-top:1px solid #e4ebf3;background:#fffffffa}.bottom-nav button{min-width:82px;border:0;border-radius:10px;color:#6f8092;background:transparent;font-size:14px}.bottom-nav button.active{color:#124e96;background:#eef5fd;font-weight:700}.tabs{display:flex;gap:10px;margin:22px 0}.tabs button{padding:9px 18px;border:1px solid #cfdae6;border-radius:999px;color:#5e7288;background:#fff}.tabs button.active{color:#fff;border-color:#124e96;background:#124e96}.list-card{padding:20px 22px;margin:12px 0}.list-card strong{font-size:15px}.list-card.record{display:flex;justify-content:space-between;align-items:center}.list-card.record>b{color:#124e96;font-size:22px}.profile-card{display:flex;gap:15px;align-items:center;padding:26px;margin:22px 0}.avatar{display:grid;width:52px;height:52px;place-items:center;border-radius:50%;color:#fff;background:#124e96;font-size:22px;font-weight:700}.profile-card strong{display:block;margin-bottom:4px}.danger{color:#b42318;border-color:#f2c4c6}.modal-mask{position:fixed;inset:0;z-index:60;display:grid;padding:22px;place-items:center;background:#10233a7a}.resume-modal{width:min(100%,410px);padding:34px;border-radius:21px;background:#fff;text-align:center;box-shadow:0 25px 80px #0003}.resume-modal h2{margin:10px 0 22px;font-size:22px}.resume-modal>p{color:#718096;font-size:13px;line-height:1.7}.resume-badge{display:grid;width:54px;height:54px;margin:auto;place-items:center;border-radius:50%;color:#124e96;background:#e9f2fc;font-size:30px}.practice-page{min-height:100vh;padding-bottom:88px;background:#fff}.practice-header{display:grid;grid-template-columns:40px 1fr auto;gap:16px;align-items:center;min-height:66px;padding:0 max(22px,calc((100vw - 900px)/2));border-bottom:1px solid #e7e7e7;background:#fff}.back-button{border:0;color:#374151;background:transparent;font-size:34px}.practice-header strong,.practice-header span{display:block}.practice-header span{margin-top:3px;color:#8793a0;font-size:12px}.progress-count{font-size:18px}.progress-count b{color:#d92d20;font-size:28px}.progress-bar{height:3px;background:#eef1f4}.progress-bar i{display:block;height:100%;background:#d92d20;transition:width .2s}.question-wrap{width:min(100% - 48px,820px);margin:46px auto}.question-wrap h1{margin:0;color:#202124;font-size:clamp(20px,3vw,27px);font-weight:500;line-height:1.8}.question-image{display:block;max-width:100%;margin:26px auto;border-radius:8px}.options{margin-top:36px}.option{display:flex;gap:18px;align-items:flex-start;width:100%;min-height:74px;padding:13px 6px;border:0;color:#242424;background:#fff;text-align:left;font-size:19px;line-height:1.55}.option>span{display:grid;flex:0 0 auto;width:38px;height:38px;place-items:center;border:1.8px solid #333;border-radius:50%;font-size:18px}.option.selected{color:#b42318;font-weight:600}.option.selected>span{color:#fff;border-color:#d92d20;background:#d92d20}.option.answered{cursor:default}.feedback{padding:20px 22px;margin-top:25px;border-radius:12px;line-height:1.65}.feedback p{margin:8px 0 0}.feedback.correct{color:#17633f;background:#edf9f2}.feedback.incorrect{color:#a12c35;background:#fff4f4}.practice-footer{position:fixed;right:0;bottom:0;left:0;z-index:30;display:flex;justify-content:center;gap:min(9vw,90px);height:76px;border-top:1px solid #ececec;background:#fffffffa}.practice-footer button{display:grid;min-width:58px;padding:7px;place-items:center;border:0;color:#374151;background:transparent;font-size:31px}.practice-footer small{font-size:11px}.practice-footer button:disabled{color:#a0abb6}.practice-footer .confirm{color:#b42318}.answer-card{width:min(100%,500px);padding:25px;border-radius:18px;background:#fff}.answer-card header{display:flex;justify-content:space-between}.answer-card header button{border:0;background:none;font-size:28px}.answer-card p{color:#718096;font-size:13px}.answer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.answer-grid button{aspect-ratio:1;border:1px solid #d5dce4;border-radius:50%;color:#5e6e7d;background:#fff}.answer-grid button.answered{color:#fff;border-color:#25394d;background:#25394d}.answer-grid button.active{outline:3px solid #f4c2bf;outline-offset:2px}.result-page{display:grid;min-height:80vh;padding:120px 24px;place-content:center;gap:14px;text-align:center}.result-page strong{color:#d92d20;font-size:100px;line-height:1}.result-page span{color:#7d8b98}.result-page .primary-button{margin:40px auto 0;width:240px}.floating-error{position:fixed;z-index:100;right:20px;bottom:90px;max-width:360px;padding:12px 14px;border-radius:10px;color:#8f242c;background:#fff0f0;box-shadow:0 10px 25px #0000001a;font-size:13px}.floating-error button{margin-left:10px;border:0;color:inherit;background:transparent}@media(max-width:600px){.app-shell{padding-bottom:72px}.topbar{height:56px;padding:0 18px}.page-content{width:min(100% - 32px,1060px);margin:28px auto}.page-content h1{font-size:27px}.bank-grid{grid-template-columns:1fr}.bottom-nav{justify-content:space-around;gap:0;height:62px;padding:7px 4px env(safe-area-inset-bottom)}.bottom-nav button{min-width:0;flex:1}.question-wrap{width:min(100% - 34px,820px);margin:34px auto}.option{font-size:18px}.practice-footer{gap:10px;height:calc(70px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.answer-grid{gap:12px}.floating-error{right:14px;bottom:76px;left:14px;max-width:none}}.app-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}.primary-button,.outline-button,.bank-actions button,.exam-card button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.user-name,.exam-card p,.feedback strong,.answer-card header strong,.result-page p,.floating-error{display:flex;align-items:center;gap:7px}.empty-card{display:flex;min-height:150px;flex-direction:column;align-items:center;justify-content:center;gap:11px}.card-icon{display:grid;width:34px;height:34px;margin-bottom:15px;place-items:center;border-radius:10px;color:#124e96;background:#eaf3fd}.card-icon.soft{margin:0 0 8px;color:#815f14;background:#fff6d8}.exam-card>div{min-width:0}.exam-card p .app-icon{margin-right:2px}.resume-hint{padding:9px 12px;border-radius:9px;color:#83561b!important;background:#fff7e9}.result-page p{justify-content:center;color:#17633f;font-weight:700}.answer-card header strong{display:inline-flex}.record-title{display:flex;align-items:center;gap:8px}.status-tag{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700}.status-tag.active{color:#165da1;background:#eaf3fd}.status-tag.submitted{color:#17633f;background:#eaf8ef}.status-tag.abandoned{color:#6f7e8d;background:#eef1f4}.list-card.record>.app-icon{color:#8291a0}.bottom-nav button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.bottom-nav button .app-icon{width:19px;height:19px}.bottom-nav button span{font-size:12px}.floating-error button{display:inline-flex;margin-left:auto;padding:0;border:0;color:inherit;background:transparent}@media(max-width:600px){.record-title{align-items:flex-start;flex-direction:column;gap:5px}.list-card.record{gap:12px}.exam-card{align-items:flex-end}.exam-card button{width:auto;padding:0 13px}}
