*{box-sizing:border-box}:root{--brand:#ef8428;--brand-dark:#c86216;--brand-soft:#fff0d8;--canvas:#e9e8e3;--app-bg:#fff8ed;--card:#fff;--text:#2f2a24;--muted:#81786e;--line:#eadfce;--success:#278457;--danger:#c64b3d;--amber:#a96a16;--shadow:0 14px 40px rgba(65,50,31,.12);--card-shadow:0 1px 0 rgba(78,56,30,.04),0 7px 20px rgba(78,56,30,.06)}
html{background:var(--canvas);scroll-behavior:smooth}body{margin:0;min-height:100vh;font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:var(--canvas)}.hidden{display:none!important}button,input,textarea,select{font:inherit}:where(button,input,textarea,select):focus-visible{outline:3px solid rgba(239,132,40,.32);outline-offset:2px}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 15%,#fff7e9 0,#eee9df 46%,#dfded8 100%)}.login-card{width:390px;max-width:100%;padding:34px 28px;text-align:center;background:rgba(255,255,255,.94);border-radius:28px;box-shadow:var(--shadow)}.login-logo{width:66px;height:66px;margin:auto;display:grid;place-items:center;font-size:34px;background:var(--brand-soft);border-radius:22px}.login-card h1{margin:12px 0 0;font-size:23px}.sub{margin:6px 0 26px;color:var(--muted);font-size:13px}.login-card label,.field{display:block;margin-bottom:14px;color:var(--muted);text-align:left;font-size:12px;font-weight:650}.login-card input,.field input,.field select{width:100%;min-height:46px;margin-top:6px;padding:10px 12px;color:var(--text);background:#fffdf9;border:1px solid var(--line);border-radius:13px}.err{min-height:22px;color:var(--danger);font-size:13px}.tip{margin:18px 0 0;color:#a39b91;font-size:11px}
.app-stage{min-height:100vh}.app-shell{width:min(100%,620px);min-height:100vh;margin:auto;background:var(--app-bg);box-shadow:var(--shadow);position:relative}.app-header{min-height:92px;padding:21px 20px 12px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(255,248,237,.94);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.app-header.compact{min-height:68px;padding-top:12px;padding-bottom:12px}.header-copy{min-width:0;flex:1}.header-back{width:40px;height:40px;padding:0;border:0;border-radius:13px;background:#fff;color:var(--brand-dark);font-size:30px;line-height:1;cursor:pointer;box-shadow:0 3px 12px rgba(59,45,27,.08)}.eyebrow{margin:0;color:var(--muted);font-size:11px}.app-header h1{margin:1px 0 0;font-size:22px;line-height:1.2}.app-header.compact h1{font-size:20px}.avatar-button{width:44px;height:44px;border:0;border-radius:15px;background:var(--brand-soft);font-size:22px;cursor:pointer}.app-content{padding:8px 16px calc(96px + env(safe-area-inset-bottom))}body.immersive .app-header,body.immersive .bottom-nav{display:none}body.immersive .app-content{padding-top:18px;padding-bottom:30px}body.secondary-page .bottom-nav{display:none}body.secondary-page .app-content{padding-bottom:30px}.page-intro{margin:4px 0 18px;color:var(--muted);font-size:13px}
h2{margin:4px 0 15px;font-size:19px;line-height:1.35}h2 small{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:400}h3{margin:24px 0 10px;font-size:15px}.muted{color:var(--muted);font-size:12px}.section-heading{margin:21px 1px 11px}.section-heading h2{margin:1px 0;font-size:17px}.section-kicker,.hero-kicker{color:var(--brand-dark);font-size:10px;font-weight:800;letter-spacing:.8px}
.continue-hero{min-height:154px;padding:22px;border-radius:23px;color:#572d0d;background:linear-gradient(145deg,#ffc15e,#f68b2d);box-shadow:0 13px 26px rgba(205,104,26,.18)}.continue-hero h2{margin:5px 0 7px;font-size:22px}.continue-hero p{margin:0;color:rgba(74,36,8,.76);font-size:12px}.continue-hero .hero-kicker{color:rgba(78,38,8,.7)}.hero-button{min-height:42px;margin-top:15px;padding:8px 15px;border:0;border-radius:12px;background:#fff;color:var(--brand-dark);font-weight:800}.home-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0}.home-stats div,.stat{padding:13px 8px;text-align:center;background:var(--card);border-radius:16px;box-shadow:var(--card-shadow)}.home-stats strong{display:block;font-size:21px}.home-stats span{display:block;margin-top:4px;color:var(--muted);font-size:9px}
.filters{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.chips{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{min-height:36px;flex:0 0 auto;padding:6px 13px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:#6f675e;font-size:12px}.chip.active{color:#fff;border-color:var(--brand);background:var(--brand)}.wrong-tabs{margin:0 0 14px;padding:4px;display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid var(--line);border-radius:16px;background:#f2ede6}.wrong-tab{min-height:44px;border:0;border-radius:12px;background:transparent;color:var(--muted);cursor:pointer;font-weight:750}.wrong-tab.active{background:#fff;color:var(--brand-dark);box-shadow:0 3px 12px rgba(65,50,31,.09)}.search{width:100%;min-height:46px;padding:10px 13px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.count{color:var(--muted);font-size:12px}.cards{display:grid;grid-template-columns:1fr;gap:10px}.card{padding:16px;display:flex;flex-direction:column;gap:9px;border:1px solid rgba(234,223,206,.82);border-radius:18px;background:var(--card);box-shadow:var(--card-shadow);cursor:pointer;transition:.16s}.card:hover{transform:translateY(-2px);box-shadow:0 11px 28px rgba(78,56,30,.1)}.card .meta{display:flex;gap:6px;flex-wrap:wrap;font-size:10px}.pill{padding:3px 8px;border-radius:999px;color:var(--brand-dark);background:var(--brand-soft)}.pill.red{color:var(--danger);background:#fff0ed}.pill.amber{color:var(--amber);background:#fff4dd}.pill.gray{color:#777066;background:#f2efea}.card .text{color:#443d35;font-size:13px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card .foot{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px}.wrong-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:3px}.wrong-action{min-height:44px;padding:9px 13px;border-radius:12px;cursor:pointer;font-weight:800}.redo-action{border:0;background:var(--brand);color:#fff;box-shadow:0 6px 14px rgba(220,111,25,.18)}.master-action{border:1px solid #efb874;background:#fff8ec;color:var(--brand-dark)}.empty{padding:48px 20px;color:var(--muted);text-align:center}
.btn{min-height:44px;padding:9px 17px;border:0;border-radius:13px;color:#625a51;background:#f2ede6;cursor:pointer;font-weight:650}.btn.primary{color:#fff;background:var(--brand);box-shadow:0 7px 16px rgba(220,111,25,.18)}.btn:disabled{opacity:.45}.full{width:100%}.link,.page-back{border:0;background:transparent;color:var(--brand-dark);cursor:pointer}.page-back{min-height:40px;padding:0}.badge{min-width:17px;height:17px;padding:0 5px;display:grid;place-items:center;position:absolute;top:4px;right:calc(50% - 23px);border-radius:999px;background:var(--danger);color:#fff;font-size:9px;font-style:normal}
.bottom-nav{width:min(calc(100% - 24px),596px);min-height:66px;padding:7px 9px calc(7px + env(safe-area-inset-bottom));display:flex;position:fixed;left:50%;bottom:12px;z-index:30;transform:translateX(-50%);border:1px solid var(--line);border-radius:21px;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(59,45,27,.16);backdrop-filter:blur(16px)}.btab{min-width:0;min-height:50px;flex:1;padding:3px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:0;border-radius:14px;background:transparent;color:#817970;font-size:10px}.btab .ico{font-size:19px;line-height:1.1}.btab.active{color:var(--brand-dark);background:#fff7e9;font-weight:800}
.back{margin-bottom:11px}.quiz-head{margin-bottom:10px;color:var(--brand-dark);font-size:14px;font-weight:750}.stem{margin-bottom:13px;padding:18px;white-space:pre-wrap;line-height:1.9;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--card-shadow)}.images{margin-bottom:15px;display:flex;flex-direction:column;gap:10px;align-items:center}.images img{width:100%;max-width:520px;border-radius:14px}.stem .inline-blank{min-width:145px;max-width:100%;min-height:40px;margin:3px 4px;padding:6px 9px;vertical-align:middle;resize:vertical;border:1px solid #f2c794;border-bottom:2px solid var(--brand);border-radius:7px;background:#fff5e7;color:var(--text)}.standalone-answer{margin-top:16px;display:grid;gap:10px}.standalone-answer label{display:grid;gap:5px;color:var(--brand-dark);font-size:12px;font-weight:750}.stem .standalone-answer-input{width:100%;min-height:88px;margin:0;background:#fff}.answer-block,.extra-answers{margin-bottom:10px;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--card)}.answer-block label{display:block;margin-bottom:7px;color:var(--brand-dark);font-size:12px;font-weight:750}.answer-block textarea{width:100%;min-height:96px;padding:10px;resize:vertical;border:1px solid var(--line);border-radius:11px}.extra-answers summary{color:var(--muted);font-size:12px}.actions,.result-actions,.admin-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:13px}.actions .btn.primary{min-width:150px;flex:1}.ai-toggle{color:var(--muted);font-size:12px}#quizPanel{padding-bottom:108px}#answerForm .actions{width:min(100%,620px);min-height:82px;margin:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));position:fixed;left:50%;bottom:0;z-index:31;transform:translateX(-50%);border-top:1px solid var(--line);background:rgba(255,253,249,.97);box-shadow:0 -8px 24px rgba(65,50,31,.08);backdrop-filter:blur(14px)}#answerForm .actions .muted{width:100%;line-height:1.2}
.exam-top{min-height:52px;display:grid;grid-template-columns:48px 1fr 70px;align-items:center;gap:9px;margin-bottom:13px;position:sticky;top:0;z-index:22;background:rgba(255,248,237,.96);backdrop-filter:blur(14px)}.exam-heading{min-width:0;text-align:center}.exam-top b{display:block;overflow:hidden;font-size:16px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.exam-top .muted{display:block}.exam-head-button{min-height:44px;border:0;border-radius:13px;cursor:pointer;font-weight:800}.exam-head-button:disabled{opacity:.55}.back-button{width:44px;background:#fff;color:var(--brand-dark);font-size:30px;line-height:1;box-shadow:var(--card-shadow)}.submit-button{padding:0 14px;background:var(--brand);color:#fff;box-shadow:0 7px 16px rgba(220,111,25,.18)}.exam-bottom{width:min(100%,620px);min-height:76px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr 1.45fr;gap:8px;position:fixed;left:50%;bottom:0;z-index:31;transform:translateX(-50%);border-top:1px solid var(--line);background:rgba(255,253,249,.97);backdrop-filter:blur(14px)}.exam-bottom .btn{min-width:0;padding:8px 6px}.save-status{grid-column:1/-1;color:var(--danger);font-size:11px;text-align:center}#examPanel{padding-bottom:86px}.exam-controls{margin-bottom:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}.exam-controls select{min-height:38px;padding:5px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.chapter-card{cursor:default}.chapter-card .name{font-weight:800}.chapter-card .info{color:var(--muted);font-size:11px}.chapter-card .btn{align-self:flex-start}.ongoing{margin-bottom:11px;padding:14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px solid #f3d29f;border-radius:16px;background:#fff4df;font-size:12px}.answer-card-backdrop{position:fixed;inset:0;z-index:32;background:rgba(46,37,28,.28);backdrop-filter:blur(2px)}.answer-sheet{width:min(calc(100% - 24px),596px);max-height:55vh;padding:8px 18px 20px;overflow-y:auto;position:fixed;left:50%;bottom:calc(82px + env(safe-area-inset-bottom));z-index:33;transform:translateX(-50%);border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:0 20px 50px rgba(45,34,22,.24);animation:sheet-up .18s ease-out}.sheet-handle{width:42px;height:4px;margin:1px auto 8px;border-radius:99px;background:#d8d0c7}.sheet-heading{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px}.answer-card h4{margin:0;color:var(--muted);font-size:13px}.sheet-heading button{width:38px;height:38px;border:0;border-radius:12px;background:#f3eee7;color:#70675e;font-size:24px;line-height:1;cursor:pointer}.card-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.card-num{min-height:44px;border:1px solid var(--line);border-radius:12px;background:#fff}.card-num.done{background:var(--brand-soft);color:var(--brand-dark)}.card-num.current{background:var(--brand);color:#fff}.card-num.ok{border-color:var(--success)}.card-num.bad{border-color:var(--danger);color:var(--danger)}@keyframes sheet-up{from{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%,0)}}
.result,.result-card,.review-box{margin-top:14px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--card-shadow)}.result-card{text-align:center}.score{color:var(--success);font-size:29px;font-weight:850}.score.low,.big-score.low{color:var(--danger)}.big-score{color:var(--success);font-size:54px;font-weight:850}.point,.review-row{padding:11px 0;border-top:1px solid var(--line);font-size:12px}.point .head{display:flex;gap:7px;align-items:center;font-weight:700}.point .row{margin-top:4px;color:var(--muted)}.mark{width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;background:#aaa;font-size:11px}.mark.ok{background:var(--success)}.mark.no{background:var(--danger)}.mark.half{background:var(--amber)}.ai-box,.ref{margin-top:12px;padding:12px;border-radius:12px;background:#f7f4ef;font-size:12px}.review-answer{max-width:100%;margin:5px 4px;display:inline-flex;align-items:center;gap:6px;vertical-align:middle;white-space:normal}.review-answer .inline-blank{margin:0;background:#f7f4ef;color:var(--text)}.review-reference{max-width:320px;color:var(--muted);font-size:11px;line-height:1.35}.review-status{flex:0 0 auto;padding:3px 8px;border-radius:999px;color:#fff;font-size:10px;font-weight:800}.review-status.ok{background:var(--success)}.review-status.partial{background:var(--amber)}.review-status.bad{background:var(--danger)}.review-status.empty{background:#8b847b}.review-summary{margin:10px 0 0;padding:12px 14px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;border-radius:14px;background:#f4f0e9;font-size:12px}.review-summary span{color:var(--muted)}.overview{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:18px 0;text-align:left}.ov-item{padding:9px;border:1px solid var(--line);border-radius:11px;color:var(--muted);font-size:11px}.ov-item.ok{background:#e8f5ed}.ov-item.bad{background:#fff0ed}.ov-item b{display:block;color:var(--text)}.report-item{cursor:default}.report-item .big{color:var(--success);font-size:24px;font-weight:800}.report-item .big.low{color:var(--danger)}.report-item .report-actions{margin-top:5px;display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:14px}.report-action{min-height:46px;padding:9px 14px;border-radius:13px;cursor:pointer;font-weight:750}.primary-action{border:0;background:var(--brand);color:#fff;box-shadow:0 7px 16px rgba(220,111,25,.16)}.danger-action{border:1px solid #efc6c0;background:#fff8f6;color:var(--danger)}
.ai-comment{margin-top:5px;padding:7px 9px;border-radius:9px;background:#fff5e7;color:#8b541e;font-size:11px}
.stat-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.stat .num{color:var(--brand-dark);font-size:24px;font-weight:850}.stat .lbl{color:var(--muted);font-size:10px}.bar-row{margin-bottom:13px;display:grid;grid-template-columns:92px 1fr;gap:6px 10px;font-size:11px}.bar-track{height:8px;overflow:hidden;border-radius:8px;background:#eee7dd}.bar-fill{height:100%;background:var(--brand)}.bar-row .val{grid-column:2;color:var(--muted);text-align:right}.recent-item{margin-bottom:8px;padding:12px;display:flex;justify-content:space-between;gap:10px;border-radius:13px;background:var(--card);font-size:11px}.recent-item .s{color:var(--success);font-weight:800}.recent-item .s.low{color:var(--danger)}
.profile-card{margin-bottom:14px;padding:18px;display:flex;align-items:center;gap:13px;border-radius:20px;background:linear-gradient(145deg,#fff,#fff1db);box-shadow:var(--card-shadow)}.profile-avatar{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:var(--brand-soft);font-size:27px}.profile-card h2{margin:0}.mine-menu{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--card-shadow)}.mine-menu button{width:100%;min-height:70px;padding:12px 14px;display:grid;grid-template-columns:38px 1fr 14px;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text)}.mine-menu button:last-child{border:0}.menu-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:var(--brand-soft)}.mine-menu b,.mine-menu small{display:block}.mine-menu small{color:var(--muted);font-size:10px}.mine-menu i{color:#a79e93;font-size:21px;font-style:normal}.logout-button{width:100%;min-height:47px;margin-top:17px;border:1px solid #efc6c0;border-radius:14px;background:#fff8f6;color:var(--danger)}
.admin-grid{display:grid;grid-template-columns:1fr;gap:12px}.admin-card{padding:17px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.admin-card h3{margin:0 0 7px}.switch{display:flex;gap:7px;margin-bottom:12px}.msg{min-height:20px;margin-top:9px;color:var(--muted);font-size:11px}.msg.ok{color:var(--success)}.msg.err{color:var(--danger)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:15px;background:var(--card)}.table{width:100%;border-collapse:collapse;font-size:11px}.table th,.table td{padding:10px;text-align:left;border-bottom:1px solid var(--line)}.table th{background:#fbf5ec}.table .ops{display:flex;gap:6px}.table .link.danger{color:var(--danger)}
@media(max-width:620px){html,body{background:var(--app-bg)}.app-shell{box-shadow:none}.bottom-nav{width:100%;bottom:0;border-radius:20px 20px 0 0}.exam-bottom{width:100%}.login-card{padding:28px 20px}}
@media(max-width:390px){.app-header h1{font-size:20px}.app-content{padding-left:12px;padding-right:12px}.continue-hero{padding:19px}.exam-bottom{grid-template-columns:.9fr .9fr 1.3fr;padding-left:10px;padding-right:10px}.exam-bottom .btn{font-size:12px}.stem{padding:15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
