/* 练习专用样式；chapter.css / topic.css 保持原样。 */
.practice-site{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.85}
.practice-shell{max-width:1440px;margin:auto;padding:0 36px 40px}
.practice-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);font-size:13px}
.practice-brand{display:flex;align-items:center;gap:11px;color:var(--ink);line-height:1.4;flex-shrink:0}
.practice-brand:hover{text-decoration:none}.practice-brand b{font-size:18px;letter-spacing:.08em}.practice-brand small{display:block;margin-top:3px;font:10px var(--mono);letter-spacing:.1em;color:var(--muted)}
.practice-logo{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--teal);color:white;font:30px Georgia,serif}
.list-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:38px 0 27px}.list-heading .eyebrow{margin-bottom:7px}.list-heading h1{font-size:30px;line-height:1.4;margin:0}.list-heading p{margin:8px 0 0;font-size:14px;color:var(--muted)}.list-heading>span{font:13px var(--mono);color:var(--teal);white-space:nowrap}
.question-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.question-card{display:flex;flex-direction:column;min-width:0;padding:18px 20px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);transition:transform .15s,border-color .15s,box-shadow .15s}
.question-card:hover{text-decoration:none;transform:translateY(-3px);border-color:var(--teal);box-shadow:0 8px 24px #17343c0c}.question-number{font:22px var(--mono);color:var(--teal);letter-spacing:.04em}.question-card h2{font-size:16px;margin:12px 0 20px}.question-card-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:8px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.question-card-foot span:last-child{color:var(--teal);font-size:17px}
.question-shell{max-width:1120px;margin:auto;padding:0 36px 90px}.question-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 0 16px}.question-heading .eyebrow{margin-bottom:7px}.question-heading h1{font-size:29px;line-height:1.4;margin:0}.question-heading h1 small{font:13px var(--mono);color:var(--muted);margin-left:8px}
.question-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;margin:0 0 20px}.question-nav a,.question-nav span{padding:5px 0}.question-nav [aria-disabled]{color:#9baaaa}
.stem-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px 28px;font-size:18px;overflow-wrap:break-word}.stem-card>p:first-child{margin-top:0}.stem-card>p:last-child{margin-bottom:0}.stem-card ol{padding-left:1.6em}.stem-card ol>li::marker{color:var(--ink);font:inherit}.stem-card h1,.stem-card h2{font-size:21px}
.stem-image{display:block;width:auto;max-width:100%;max-height:430px;margin:18px auto;object-fit:contain}.stem-card .katex-display{max-width:100%;overflow:auto}.stem-card .katex{max-width:100%}.stem-card .katex.kx-wide{display:inline-block;max-width:100%;overflow-x:auto;overflow-y:hidden;vertical-align:middle;padding-bottom:4px}
.work-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:30px;margin-bottom:12px}.work-heading h2{font-size:18px;margin:0}.work-heading span{font-size:12px;color:var(--muted)}
.writing-page{position:relative;height:100svh;min-height:500px;margin:0 0 16px;background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.writing-page::before{content:attr(data-page-label);position:absolute;top:13px;left:18px;color:#8b9b9d;font:11px var(--mono);letter-spacing:.05em;pointer-events:none}
.page-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0 30px;font-size:12px;color:var(--muted)}.page-actions button{border-style:dashed;padding:8px 25px}.solution-placeholder{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-bottom:24px}.solution-placeholder button:disabled{cursor:default;background:#eef3ef;color:#7b8b88;border-color:var(--line)}.solution-placeholder span{font-size:12px;color:var(--muted)}
.practice-footer{margin:24px 0 0;padding:20px 0 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
#whiteboard{position:fixed;inset:0;overflow:auto;z-index:35;background:var(--bg);overscroll-behavior:contain}#whiteboard[hidden]{display:none}.board-toolbar{position:sticky;top:0;z-index:45;display:flex;align-items:center;gap:12px;padding:12px 24px;background:#fbfcfa;border-bottom:1px solid var(--line);font-size:14px}.board-toolbar strong{margin-right:auto}.board-toolbar>span{color:var(--muted);font-size:12px}#board-pages{max-width:1120px;margin:auto;padding:20px 24px 90px}#board-pages .writing-page{height:calc(100svh - 110px);min-height:450px}.board-open{overflow:hidden}.board-open .question-content{visibility:hidden}
/* 画布覆盖书写区，导航与工具仍可点击；白板工具不被画布遮挡。 */
.question-nav,.page-actions,.question-heading button{position:relative;z-index:45}#whiteboard{z-index:35}body.board-open #kc-ink-base,body.board-open #kc-ink-live{z-index:40}body.board-open .board-toolbar{position:fixed;inset:0 0 auto;z-index:46}body.board-open #board-pages{padding-top:78px}
#kc-dock .kc-fab span{display:inline}#kc-dock .kc-fab{font-family:var(--sans)}
@media(max-width:979px){.question-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-shell{padding:0 24px 30px}.question-shell{padding:0 22px 90px}}
@media(max-width:600px){.practice-shell{padding:0 16px 30px}.question-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.practice-topbar{padding:16px 0;gap:12px}.practice-topbar>a:last-child:not(.practice-brand){font-size:11px;text-align:right}.practice-brand b{font-size:14px}.practice-brand small{font-size:8px}.practice-logo{width:32px;height:32px;font-size:25px}.practice-brand{gap:8px}.list-heading{padding:25px 0 22px;align-items:flex-start}.list-heading h1{font-size:23px}.list-heading>span{font-size:11px;padding-top:5px}.question-card{padding:15px 15px 10px}.question-card h2{font-size:15px}.question-number{font-size:20px}.question-shell{padding:0 14px 100px}.question-heading{padding-top:23px}.question-heading h1{font-size:25px}.question-heading .eyebrow{font-size:10px}.stem-card{font-size:16px;padding:17px 16px;border-radius:11px}.stem-image{max-height:300px}.work-heading span{font-size:10px}.writing-page{min-height:420px}.board-toolbar{padding:10px 12px;gap:7px;flex-wrap:wrap}.board-toolbar strong{font-size:12px}.board-toolbar button{padding:5px 8px;font-size:12px}.board-toolbar>span{display:none}#board-pages{padding:14px 12px 90px}body.board-open #board-pages{padding-top:68px}#kc-dock{max-width:calc(100vw - 20px)}#kc-dock .kc-fab span{font-size:12px}}
@media print{.practice-topbar,.question-nav,.question-heading button,.page-actions,.solution-placeholder,#whiteboard{display:none!important}.question-shell{max-width:none;padding:0}.writing-page{height:240mm;break-inside:avoid}}
/* Stage 3: source summaries, authenticated answer reveal. */
.question-source{font-size:12px;color:var(--muted);margin:0 0 10px;line-height:1.7}
.question-card .question-summary{font-size:13px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
#practice-solution{margin:24px 0;scroll-margin-top:24px}.solution-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-block:1px solid var(--line);padding:20px 0;margin-bottom:18px;position:relative;z-index:45}.solution-controls span{font-size:12px;color:var(--muted)}.solution-controls button:disabled{cursor:default;background:#eef3ef;color:#7b8b88;border-color:var(--line)}.solution-controls [hidden]{display:none}
.solution-unit{margin-bottom:18px}.solution-unit h2{font-size:17px;color:var(--teal)}.solution-unit .katex-display{overflow:auto}.solution-unit .table-wrap{overflow:auto}.solution-unit table{font-size:14px}.solution-unit li{margin:9px 0}
.practice-site #kc-account{position:relative;top:auto;right:auto;margin-left:auto}.practice-site .kc-account-panel{position:absolute;right:0;z-index:100}.practice-site .practice-topbar{flex-wrap:wrap}.practice-site .kc-save-status{display:none}

/* Match the existing topic card spacing instead of inheriting .unit h2's 46px gap. */
.solution-unit{padding:18px 22px;margin:20px 0}.solution-unit>h2{margin:4px 0 8px;font-size:17px}.solution-unit>div>:first-child{margin-top:8px}
