:root{color-scheme:light;--bg: #f4f7fb;--panel: #ffffff;--line: #d7e0ea;--text: #1a2433;--muted: #607287;--brand: #0d5ea8;--brand-soft: #d9ebff;--ok: #0f8a4b;--bad: #bf2d2d;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}body{margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:linear-gradient(180deg,#eaf2fb,#f9fbff);color:var(--text)}.app{height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1000}.topbar h1{margin:0;font-size:20px}.topbar-brand{display:flex;align-items:center;gap:10px;min-width:0}.topbar-controls{display:flex;align-items:center;gap:12px}.topbar-icon{width:32px;height:32px;border-radius:8px;flex:0 0 32px}.tabs{display:flex;gap:8px}.language-menu{position:relative}.language-switch{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#fff,#f6f9fd);color:var(--text);padding:0 12px;font:inherit;font-size:14px;height:38px;min-width:72px;cursor:pointer;box-shadow:0 1px #0d5ea80d}.language-switch.open{border-color:var(--brand);box-shadow:0 0 0 3px #0d5ea81f}.language-switch-icon{color:var(--muted);font-size:12px;font-weight:700;line-height:1;letter-spacing:-.04em}.language-switch-value{line-height:1}.language-menu-popover{position:absolute;top:calc(100% + 8px);right:0;min-width:132px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 12px 30px #1a24331f;z-index:1100}.language-menu-item{width:100%;height:36px;display:flex;align-items:center;justify-content:flex-start;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-align:left}.language-menu-item:hover{background:#f6faff}.language-menu-item.active{background:var(--brand-soft);color:var(--brand)}.tabs button{border:1px solid var(--line);background:#fff;padding:8px 12px;height:38px;border-radius:8px;cursor:pointer}.tabs button.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.layout{display:grid;grid-template-columns:320px 1fr;gap:12px;padding:12px;height:calc(100vh - 73px)}.manual-only{padding:12px 12px calc(12px + var(--safe-bottom));flex:1;height:100%;min-height:0;display:flex}.sidebar,.viewer,.quiz-page{background:var(--panel);border:1px solid var(--line);border-radius:10px}.sidebar{padding:10px;overflow:auto}.sidebar h2{margin:0 0 8px;font-size:16px}.toc{display:flex;flex-direction:column;gap:4px}.toc-item{display:flex;justify-content:space-between;align-items:baseline;width:100%;border:1px solid transparent;background:#fff;border-radius:6px;padding:6px 8px;text-align:left;cursor:pointer}.toc-item:hover{background:#f6faff;border-color:var(--line)}.toc-title{color:var(--text);font-size:14px}.toc-page{color:var(--muted);font-size:12px}.status{margin:18px;padding:12px;border-radius:8px;background:#eef5ff;border:1px solid #c9ddf7}.status.error{background:#fff1f1;border-color:#f1c1c1;color:#9f2626}@media (max-width: 900px){.topbar{flex-direction:column;align-items:stretch;flex-wrap:wrap}.topbar h1{font-size:18px}.topbar-brand{width:100%}.topbar-icon{width:28px;height:28px;flex-basis:28px}.tabs{width:100%;overflow-x:auto}.topbar-controls{width:100%;flex-direction:column;align-items:stretch}.language-switch{width:100%;justify-content:center}.language-menu-popover{left:0;right:auto;width:100%}.tabs button{white-space:nowrap}.layout{grid-template-columns:1fr;height:auto}.viewer{min-height:70vh}}.viewer{overflow:hidden;height:100%;flex:1;min-height:0}.manual-desktop{display:grid;grid-template-columns:172px minmax(0,1fr);gap:10px;height:100%;width:100%;min-height:0}.manual-thumbs{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 6px;overflow:auto;display:flex;flex-direction:column;gap:6px}.manual-thumb{border:1px solid var(--line);border-radius:7px;background:#fff;padding:6px;text-align:left;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .24s ease,transform .24s ease}.manual-thumb.active{border-color:var(--brand);background:linear-gradient(180deg,#edf5ff,#e4f0ff);box-shadow:0 0 0 2px #0d5ea82b,0 4px 12px #0d5ea81f;transform:translate(1px);animation:thumb-active-pop .26s ease-out}@keyframes thumb-active-pop{0%{transform:translate(0) scale(.99);box-shadow:0 0 #0d5ea814,0 1px 3px #0d5ea814}to{transform:translate(1px) scale(1);box-shadow:0 0 0 2px #0d5ea82b,0 4px 12px #0d5ea81f}}.manual-thumb-no{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.manual-thumb-box{border:1px solid #dfe6ee;border-radius:6px;overflow:hidden;background:#f8fbff}.manual-thumb-img{display:block;width:100%;height:auto}.manual-thumb-placeholder{aspect-ratio:8.5 / 11;display:grid;place-items:center;color:var(--muted);font-size:11px}.manual-desktop-main{background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.manual-toolbar-desktop{padding:10px;border-bottom:1px solid var(--line);background:var(--panel)}.manual-desktop-page-indicator{color:var(--muted);font-size:13px}.manual-desktop-scroll{flex:1;min-height:0;overflow:auto;padding:14px 12px calc(16px + var(--safe-bottom));scroll-padding-top:16px;scroll-padding-bottom:calc(16px + var(--safe-bottom))}.manual-desktop-page{margin:0 0 12px}.manual-desktop-page-no{font-size:12px;color:var(--muted);margin:0 0 6px 2px}.manual-desktop-page-box{border:1px solid #dfe6ee;border-radius:8px;overflow:hidden;background:#fff;min-height:220px}.manual-desktop-page-img{display:block;width:100%;max-width:none;height:auto;margin:0 auto;box-shadow:0 1px 2px #0000000d}.manual-desktop-page-loading{aspect-ratio:8.5 / 11;display:grid;place-items:center;color:var(--muted);font-size:13px}.pdf-frame{width:100%;height:100%;border:0}.manual-reader{height:100%;flex:1;overflow:hidden;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;min-height:0}.manual-toolbar{display:flex;align-items:center;gap:10px}.manual-toolbar button,.manual-toolbar select{border:1px solid var(--line);border-radius:8px;background:#fff;min-height:36px;padding:6px 10px;font-size:14px}.manual-toolbar select{width:100%;flex:1}.manual-meta{margin:10px 0 8px;color:var(--muted)}.manual-tip{margin:0 0 12px;color:var(--muted)}@media (max-width: 900px){.manual-reader{padding:10px}.manual-desktop{grid-template-columns:1fr}.manual-thumbs{display:none}.manual-toolbar{display:flex}}.question-page-img{display:block;width:auto;max-width:320px;max-height:140px;object-fit:contain;border:1px solid var(--line);border-radius:6px;margin:4px 0 10px}.quiz-page{margin:12px;padding:12px 12px calc(12px + var(--safe-bottom));overflow:auto;flex:1;min-height:0;scroll-padding-bottom:calc(16px + var(--safe-bottom))}.exam-page,.practice-page{padding-top:0}.quiz-summary{display:flex;gap:16px;flex-wrap:wrap;padding:8px 0 14px;color:var(--muted)}.exam-summary{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 12px 12px;margin:0 -12px 12px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:0 2px #00000008}.practice-summary{position:sticky;top:0;z-index:20;align-items:center;padding:10px 12px 12px;margin:0 -12px 12px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:0 2px #00000008}.exam-summary>div{display:flex;align-items:center;min-height:30px}.exam-summary button,.practice-summary button,.question-actions button{border:1px solid var(--brand);background:var(--brand);color:#fff;padding:6px 10px;border-radius:6px;cursor:pointer}.exam-summary button,.practice-summary button{margin-left:auto}.question-card{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:12px;background:#fcfeff}.question-title{font-weight:600;margin-bottom:8px}.question-page-note{color:var(--muted);font-size:13px;margin:4px 0 10px}.options{display:grid;gap:8px}.option{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.option:hover{border-color:var(--brand);background:#f3f9ff}.option.locked{cursor:default;opacity:.9}.option input{margin-top:3px;cursor:pointer}.option input:disabled{cursor:not-allowed}.option span{cursor:pointer}.option.locked span{cursor:default}.question-actions{margin-top:10px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.question-actions button:disabled{opacity:.45;cursor:not-allowed}.ok{color:var(--ok);font-weight:600}.bad{color:var(--bad);font-weight:600}.neutral{color:var(--muted)}.confetti-canvas{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1200}@media (max-width: 900px){.quiz-page{overflow-x:hidden}.practice-summary,.exam-summary{margin:0 0 12px}.exam-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;align-items:start;padding:8px 10px 10px;font-size:13px}.exam-summary>div{min-height:0;line-height:1.35}.exam-summary>div:nth-child(5){grid-column:1 / -1}.exam-summary button{grid-column:1 / -1;width:100%;margin-left:0;margin-top:4px;padding:7px 10px}.practice-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;align-items:start;padding:8px 10px 10px;font-size:13px}.practice-summary>div{min-height:0;line-height:1.35}.practice-summary button{grid-column:1 / -1;width:100%;margin-left:0;margin-top:4px;padding:7px 10px}.question-title,.option span{overflow-wrap:anywhere;word-break:break-word}}@media (prefers-reduced-motion: reduce){.confetti-canvas{display:none}}
