[hidden]{display:none!important}
.mode-tabs{max-width:1192px;margin:32px auto 0;display:flex;border-bottom:1px solid var(--line)}
.mode-tabs button{flex:1;padding:17px 20px;border:0;border-top:3px solid transparent;background:transparent;color:var(--muted);font:700 16px "Noto Serif SC","Songti SC",serif;cursor:pointer}
.mode-tabs button small{display:block;margin-top:5px;font:10px system-ui,sans-serif;letter-spacing:.12em}
.mode-tabs button.active{color:var(--red);border-top-color:var(--red);background:rgba(255,255,255,.35)}
.outline-view{max-width:1192px;margin:0 auto 90px}
.outline-hero{min-height:330px;padding:54px 58px;display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end;background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.outline-hero:after{content:"背";position:absolute;right:-22px;top:-55px;color:rgba(255,255,255,.035);font:900 360px/1 "Songti SC",serif}
.outline-hero h2{margin:10px 0 0;font-size:clamp(48px,7vw,88px);line-height:.92;letter-spacing:-.06em}
.outline-hero h2 em{color:#e1b65d;font-style:normal}.outline-hero>p{position:relative;z-index:1;margin:0;font-size:16px;line-height:2;color:#d8cdbb}
.outline-toolbar{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.outline-modes{display:flex}.outline-modes button,.weak-button{padding:10px 16px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.outline-modes button+button{border-left:0}.outline-modes button.active,.weak-button.active{background:var(--red);border-color:var(--red);color:white}
.outline-status{display:flex;gap:10px;align-items:center;padding:18px 0;font:12px system-ui,sans-serif;color:var(--muted)}
.outline-units{display:flex;gap:8px;padding:18px 0 2px;overflow-x:auto;scrollbar-width:none}.outline-units::-webkit-scrollbar{display:none}.outline-units button{min-width:128px;padding:11px 14px;text-align:left;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}.outline-units button strong,.outline-units button span{display:block}.outline-units button strong{color:var(--ink);font:700 14px "Noto Serif SC","Songti SC",serif}.outline-units button span{margin-top:4px;font:10px system-ui,sans-serif}.outline-units button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink)}.outline-units button[aria-pressed="true"] strong,.outline-units button[aria-pressed="true"] span{color:var(--paper)}
.outline-status span{padding:7px 11px;border:1px solid var(--line)}.outline-status b{font-size:16px;color:var(--ink)}
.outline-status .bad{border-color:#a34b45;color:#8b2e29}.outline-status .fuzzy{border-color:#b8934c;color:#806323}.outline-status .good{border-color:#5d8063;color:#315a39}
.focus-practice{min-height:520px;display:grid;place-items:start center;padding:12px 0}
.recall-card{width:min(100%,850px);min-height:470px;padding:34px 42px 28px;background:#fffaf0;border:1px solid var(--line);box-shadow:12px 16px 0 rgba(56,39,22,.08);position:relative}
.recall-card:before{content:"";position:absolute;inset:10px;border:1px solid rgba(116,44,36,.13);pointer-events:none}
.recall-meta{display:flex;justify-content:space-between;gap:20px;color:var(--red);font:700 10px system-ui,sans-serif;letter-spacing:.12em}.recall-meta b{font-size:13px}
.recall-lesson{margin:24px 0 8px;color:var(--muted);font-size:13px}.recall-title{margin:0;padding-bottom:15px;border-bottom:1px solid var(--line);color:var(--ink);font-size:clamp(20px,2.5vw,27px);line-height:1.55}.recall-prompt{min-height:135px;padding:18px 0;font-size:clamp(17px,2vw,21px);line-height:1.9}.recall-block{margin:0 0 12px}.recall-block:last-child{margin-bottom:0}.recall-table-wrap{margin:12px 0;overflow:auto}.recall-table{width:100%;min-width:620px;border-collapse:collapse}.recall-table td{padding:9px;border:1px solid var(--line);font-size:14px;line-height:1.65;vertical-align:top}.recall-table tr:first-child td{background:var(--ink);color:var(--paper)}
.memory-blank{display:inline;border:0;padding:1px 4px;background:rgba(116,44,36,.07);color:var(--red);font:inherit;letter-spacing:.08em;cursor:pointer}.memory-blank.static{cursor:default}
.memory-answer{padding:1px 4px;background:#f0ce8e;color:#5a201b;border-radius:2px;animation:answerIn .28s ease both}@keyframes answerIn{from{opacity:0;filter:blur(5px)}to{opacity:1;filter:none}}
.reveal-button{display:block;width:100%;padding:15px;border:0;background:var(--red);color:white;font-weight:800;cursor:pointer}.reveal-button kbd{margin-left:15px;padding:3px 7px;border:1px solid rgba(255,255,255,.35);font:10px system-ui}
.rating{padding:17px;background:#eee2cd;text-align:center}.rating p{margin:0 0 12px;font-size:13px}.rating button{margin:3px;padding:9px 14px;border:1px solid var(--line);background:#fffaf0;cursor:pointer}.rating button:nth-of-type(1){color:#8b2e29}.rating button:nth-of-type(2){color:#806323}.rating button:nth-of-type(3){color:#315a39}
.last-score{text-align:center;color:var(--muted);font-size:11px}.card-nav{display:flex;justify-content:space-between;margin-top:22px}.card-nav button{border:0;background:transparent;color:var(--muted);cursor:pointer}
.outline-browser{max-width:930px;margin:20px auto;padding:45px 50px;background:#fffaf0;box-shadow:0 18px 50px rgba(42,30,18,.08)}
.outline-unit{margin:60px 0 20px;padding:18px 0;border-block:3px double var(--ink);font-size:29px}.outline-unit:first-child{margin-top:0}.outline-lesson{margin:40px 0 16px;color:var(--red);font-size:23px}.outline-line{margin:8px 0;line-height:1.95;font-size:15px}.outline-line.has-memory{padding:10px 12px;background:rgba(177,138,80,.09);border-left:3px solid var(--gold)}
.outline-table-wrap{overflow:auto;margin:20px 0}.outline-table{width:100%;border-collapse:collapse;min-width:680px}.outline-table td{padding:10px;border:1px solid var(--line);font-size:13px;line-height:1.65;vertical-align:top}.outline-table tr:first-child td{background:var(--ink);color:var(--paper);font-weight:700}
@media(min-width:801px) and (max-width:1280px){.reading-layout{width:auto;margin-left:max(32px,calc(env(safe-area-inset-left) + 24px));margin-right:max(32px,calc(env(safe-area-inset-right) + 24px));grid-template-columns:minmax(190px,220px) minmax(0,1fr);gap:clamp(30px,4vw,52px)}.toolbar,.source-note,.mode-tabs,.outline-view,.epilogue{width:auto;margin-left:max(32px,calc(env(safe-area-inset-left) + 24px));margin-right:max(32px,calc(env(safe-area-inset-right) + 24px))}}
@media(max-width:800px){.mode-tabs,.outline-view{margin-inline:18px}.outline-hero{padding:38px 25px;grid-template-columns:1fr;gap:28px}.outline-toolbar{align-items:stretch;gap:10px;flex-direction:column}.outline-modes{display:grid;grid-template-columns:1fr 1fr}.outline-status{overflow:auto}.recall-card{padding:27px 22px;min-height:440px}.outline-browser{padding:28px 18px}.rating button{padding:9px 10px}}
