:root{--ink:#243c36;--muted:#637971;--green:#176b5b;--pale:#eaf3ed;--line:#dce5de;--paper:#fff;--bg:#f5f6f1;--red:#a34238;--amber:#865c20;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{min-height:44px;border:1px solid transparent;border-radius:10px;background:var(--green);color:white;padding:10px 20px;cursor:pointer;font-weight:600}button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}button.ghost{background:transparent;border-color:transparent;color:var(--green)}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #bf943e;outline-offset:3px}input,textarea,select{border:1px solid #bdcdc4;background:white;border-radius:9px;color:var(--ink);padding:11px 12px;max-width:100%;width:100%}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--green);flex-shrink:0}textarea{min-height:180px;resize:vertical;line-height:1.8}h1,h2,h3,p{margin:0 0 16px}h1{font-size:38px;line-height:1.3;letter-spacing:-1px}h2{font-size:23px;line-height:1.4}h3{font-size:18px}small,.muted{color:var(--muted)}small{font-size:13px}.top{height:88px;padding:0 max(24px,calc((100vw - 1200px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);font-size:22px;font-weight:700;white-space:nowrap}.brand:hover{text-decoration:none}.brandmark{display:grid;place-items:center;background:var(--green);color:white;width:44px;height:44px;border-radius:13px;font-size:24px}.brand small{display:block;font-size:11px;letter-spacing:1px;font-weight:400}.top nav{display:flex;gap:6px}.top nav a{padding:12px 20px;border-radius:9px;color:var(--muted);font-size:15px;font-weight:600;min-height:44px}.top nav a.active{color:var(--green);background:var(--pale)}#account{display:flex;gap:10px;align-items:center;font-size:14px}main{max-width:1200px;margin:0 auto;padding:42px 24px 56px;min-height:calc(100vh - 170px)}footer{max-width:1200px;margin:auto;padding:20px 24px 30px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.skip{position:absolute;top:-100px;left:15px;background:white;padding:10px;z-index:30}.skip:focus{top:8px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--green);font-weight:700;margin-bottom:12px}.hero{background:#e8f0e8;border:1px solid #d5e3d5;border-radius:24px;padding:38px 40px;display:grid;grid-template-columns:1fr 260px;gap:30px;overflow:hidden}.hero p{max-width:630px;color:#52695d;font-size:16px}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;min-height:180px}.book{transform:rotate(-7deg);padding:25px 28px;width:190px;height:180px;background:#fffdf3;border:1px solid #dae2d2;box-shadow:9px 9px 0 #c6d8c7;border-radius:12px;color:var(--green);display:flex;flex-direction:column;justify-content:space-between}.book strong{font-size:30px;line-height:1.2;letter-spacing:3px}.book small{font-size:12px}.book .bookmark-art{height:40px;width:19px;position:absolute;right:24px;top:0;background:#d8a157;clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%)}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0 36px}.metric,.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.metric{padding:19px 23px}.metric strong{display:block;font-size:29px;line-height:1.4;letter-spacing:-.5px}.metric span{color:var(--muted);font-size:13px}.section-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.section-heading h2{margin:0}.type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.type-card{padding:24px;display:flex;flex-direction:column;align-items:start;gap:12px}.type-card .type-icon{width:42px;height:42px;border-radius:12px;background:var(--pale);color:var(--green);display:grid;place-items:center;font-size:19px}.type-card p{font-size:13px;color:var(--muted);flex:1;margin:0}.type-card h3{margin:0}.type-card .count{font-size:12px;color:var(--muted)}.type-card button{width:100%;margin-top:5px}.two-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:22px;margin-top:28px}.card.pad{padding:26px}.unit-row{display:grid;grid-template-columns:110px 1fr 56px;align-items:center;gap:14px;margin:16px 0;font-size:14px}.track{height:7px;background:#e9ede7;border-radius:99px;overflow:hidden}.fill{height:100%;background:var(--green);width:0}.source-note{color:var(--muted);font-size:13px;line-height:1.9}.page-head{margin-bottom:28px}.page-head h1{font-size:30px}.page-head p{color:var(--muted)}.filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:20px 0}.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}.field small{font-weight:400}.checkline{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:400;cursor:pointer;min-height:44px}.bank-stats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}.badge{display:inline-block;font-size:12px;padding:4px 10px;border-radius:6px;background:#eef2ec;color:#526b5f;max-width:100%;overflow-wrap:anywhere}.badge.green{color:var(--green);background:var(--pale)}.quiz-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:24px;align-items:start}.quiz-main{padding:30px}.quiz-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.quiz-stem{font-size:20px;line-height:1.8;font-weight:600;margin:20px 0 24px;white-space:pre-line}.progress-text{font-size:13px;color:var(--muted)}.option{display:flex;gap:14px;align-items:center;width:100%;min-height:62px;text-align:left;margin:12px 0;padding:14px 16px;background:white;color:var(--ink);border:1px solid var(--line);font-weight:400}.option .letter{width:28px;height:28px;display:grid;place-items:center;border:1px solid #cbd8d0;border-radius:7px;font-size:13px;flex-shrink:0}.option.selected{border-color:var(--green);background:#edf6ef}.option.correct{border-color:var(--green);background:#e7f3e9}.option.wrong{border-color:#d29e96;background:#fcf0ed}.option:disabled{opacity:1;cursor:default}.material{background:#f5f6f1;border:1px solid #e4e9df;border-radius:12px;padding:20px;font-size:15px;line-height:2;white-space:pre-line;margin-bottom:25px}.subquestion{margin:20px 0}.subquestion label{display:block;font-weight:600;margin-bottom:10px}.subquestion textarea{min-height:140px}.quiz-bottom{border-top:1px solid var(--line);margin-top:26px;padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.feedback{border-radius:12px;background:#f0f6ef;border:1px solid #d4e5d6;padding:22px;margin-top:24px;overflow-wrap:anywhere}.feedback.wrong-feedback{background:#fdf5ef;border-color:#eed9c9}.feedback h3{color:var(--green)}.feedback p{font-size:15px;white-space:pre-line;margin-bottom:12px}.rubric{display:flex;gap:10px;align-items:flex-start;margin:14px 0;line-height:1.8;font-size:14px}.rubric input{margin-top:5px}.source-detail{margin-top:18px;font-size:12px;border-top:1px solid var(--line);padding-top:15px;line-height:1.9;overflow-wrap:anywhere}.quiz-aside{padding:23px;position:sticky;top:24px}.answer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0}.answer-grid button{min-height:38px;padding:0;background:#f2f4ee;color:var(--muted);border:1px solid var(--line);border-radius:7px;font-size:12px}.answer-grid button.current{border:2px solid var(--green);color:var(--green)}.answer-grid button.answered{background:#dceee2;color:var(--green)}.answer-grid button.err{background:#f5ded6;color:var(--red)}.answer-grid button.uncertain{box-shadow:inset 0 -3px #c29546}.full{width:100%}.divider{border:0;border-top:1px solid var(--line);margin:20px 0}.note-area{margin-top:20px}.note-area textarea{min-height:100px;font-size:14px}.saved{color:var(--green);font-size:12px;min-height:22px;margin-top:6px}.danger{color:var(--red)}.empty{text-align:center;padding:60px 25px}.empty .empty-icon{font-size:40px;color:var(--green);margin-bottom:15px}.auth-layout{display:grid;grid-template-columns:1fr 430px;align-items:center;gap:90px;padding:34px 40px}.auth-copy h1{font-size:45px;line-height:1.4}.auth-copy p{color:var(--muted);max-width:440px}.auth-card{padding:32px}.auth-card .field{margin-bottom:18px}.auth-card button{margin-top:6px}.form-error{color:var(--red);font-size:14px;min-height:24px;margin:12px 0}.history-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}.history-row p{font-size:13px;color:var(--muted);margin:3px 0 0}.result-score{font-size:44px;color:var(--green);line-height:1.4}.result-line{padding:16px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.result-line p{font-size:14px;margin:0}.result-summary{background:var(--pale);padding:25px;border-radius:15px;margin-bottom:24px}.source-list{font-size:14px;line-height:2}.source-list a{overflow-wrap:anywhere}.invite-url{font-size:14px;overflow-wrap:anywhere;background:var(--pale);padding:16px;border-radius:10px;margin:15px 0}.inline-form{display:flex;gap:12px}.inline-form input{flex:1}.issue-box{border-top:1px solid var(--line);padding:18px 0;font-size:14px}.issue-box p{white-space:pre-line}.loading{padding:90px 20px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#243c36;color:white;max-width:calc(100vw - 32px);padding:12px 20px;border-radius:12px;box-shadow:0 6px 30px #0002;z-index:50;display:none;font-size:14px}dialog{border:1px solid var(--line);border-radius:18px;padding:28px;width:min(450px,calc(100vw - 32px));color:var(--ink)}dialog::backdrop{background:#1a302d66}.intro-callout{padding:18px;border-radius:12px;background:#f7f3e8;font-size:13px;line-height:1.9;color:#6d613e;margin-top:22px}.review-types{display:flex;gap:12px;flex-wrap:wrap}.save-retry{font-size:12px;padding:4px 10px;min-height:32px}.no-margin{margin:0}
@media(min-width:1000px){.auth-copy{padding-bottom:50px}}@media(max-width:1000px){.top{gap:14px}.top nav a{padding:10px 12px}.brand small{display:none}.auth-layout{padding:25px 0;gap:40px}.type-grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr 210px;padding:30px}.hero h1{font-size:32px}.two-cols{grid-template-columns:1fr 1fr}.quiz-layout{grid-template-columns:minmax(0,1fr) 210px}.quiz-aside{padding:18px}.metrics{gap:12px}.metric{padding:17px}}
@media(max-width:700px){body{font-size:15px}.top{height:72px;padding:0 18px}.brand{font-size:20px}.brandmark{width:36px;height:36px;font-size:21px}.top nav{position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid var(--line);z-index:20;justify-content:space-around;padding:7px 6px calc(7px + env(safe-area-inset-bottom));gap:0}.top nav a{font-size:12px;padding:10px 13px}#account{gap:4px;font-size:12px}#account button{padding:7px 9px;font-size:12px}main{padding:26px 18px 44px;min-height:calc(100vh - 160px)}footer{padding:20px 18px 95px;display:block;font-size:11px}footer span{display:block}.hero{display:block;padding:25px;border-radius:18px}.hero h1{font-size:30px;letter-spacing:0}.hero p{font-size:14px}.hero-art{display:none}.hero .actions button{padding:10px 15px;font-size:14px}.metrics{grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0 28px}.metric{padding:15px 18px}.metric strong{font-size:26px}.metric span{font-size:12px}.type-grid{gap:12px}.type-card{padding:18px;gap:8px}.type-card h3{font-size:16px}.type-card .type-icon{width:34px;height:34px;font-size:16px}.type-card button{font-size:13px;padding:8px 10px}.two-cols{grid-template-columns:1fr;gap:18px;margin-top:22px}.card.pad{padding:22px}.section-heading{align-items:start}.section-heading h2{font-size:21px}.section-heading a{font-size:13px}.unit-row{grid-template-columns:95px 1fr 50px;gap:9px}.page-head{margin-bottom:22px}.page-head h1{font-size:27px}.filter-grid{grid-template-columns:repeat(2,1fr);gap:14px}.quiz-layout{display:flex;flex-direction:column;gap:20px}.quiz-main{width:100%;padding:22px 18px}.quiz-aside{width:100%;position:static;padding:20px}.quiz-stem{font-size:18px;line-height:1.8}.quiz-top{margin-bottom:15px;align-items:start}.quiz-top .actions{gap:3px}.quiz-top button{padding:5px 8px;font-size:12px}.option{min-height:62px;padding:13px 12px;font-size:15px;gap:10px}.quiz-bottom{align-items:start}.feedback{padding:18px}.material{padding:16px;font-size:15px}.answer-grid{grid-template-columns:repeat(8,1fr)}.answer-grid button{min-height:44px}.auth-layout{display:flex;flex-direction:column;gap:20px;padding:10px 0}.auth-copy{width:100%}.auth-copy h1{font-size:32px}.auth-copy p{font-size:14px;margin-bottom:0}.auth-card{width:100%;padding:25px}.history-row{gap:12px}.history-row button{padding:8px 12px;font-size:13px}#toast{bottom:85px}.inline-form{flex-wrap:wrap}.inline-form button{width:100%}.bank-stats .badge{font-size:11px}.subquestion textarea{min-height:160px}.result-line{align-items:start}.result-line button{padding:8px 10px;font-size:12px;white-space:nowrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.mt{margin-top:24px}progress{width:100%;height:8px;border:0;appearance:none;border-radius:99px;overflow:hidden}progress::-webkit-progress-bar{background:#e9ede7}progress::-webkit-progress-value{background:var(--green)}progress::-moz-progress-bar{background:var(--green)}

.answer-grid button{min-height:44px}#account button{min-width:44px;min-height:44px}

#conflict{max-height:90vh;overflow-y:auto}#conflict textarea{min-height:110px;font-size:14px}#conflict .field{margin-top:14px}[hidden]{display:none!important}

#account span{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}#account button{flex-shrink:0}@media(max-width:400px){.top{gap:8px;padding:0 12px}.brand{font-size:18px;gap:8px}.brandmark{width:32px;height:32px}#account span{max-width:45px}#account{gap:2px}#account button{padding:6px;min-width:44px}}
