:root{font-family:Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.6;font-weight:400;color-scheme:light;--canvas: #ffffff;--surface: #ffffff;--surface-soft: #f6f9f8;--ink: #253832;--ink-muted: #5d6e66;--accent: #23765b;--accent-hover: #185b46;--accent-soft: #eaf6ef;--accent-line: #a9d6bf;--coral: #ad4e37;--coral-soft: #fff0e9;--blue: #306da5;--blue-soft: #ecf5fe;--amber: #8a671c;--amber-soft: #fff7df;--violet: #7959a3;--violet-soft: #f4eefb;--danger: #b7464c;--danger-soft: #fff0f1;--success: #257351;--success-soft: #eaf7ef;--line: #e4ece8;--line-strong: #cbd9d1;--on-accent: #ffffff;--shadow: 0 8px 28px #203c2e08;--overlay: #162a263b;--focus: #418a70;--paper: var(--surface);--paper-soft: var(--surface-soft);--paper-line: transparent;--green: var(--accent);--green-soft: var(--accent-soft);--red: var(--danger);--red-soft: var(--danger-soft);--gold: var(--coral);--border-paper: var(--line);--shadow-paper: var(--shadow);color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=sky]{--accent: #286ba2;--accent-hover: #1d537f;--accent-soft: #eaf4fd;--accent-line: #afd0e9;--ink: #253546;--ink-muted: #596d81;--surface-soft: #f6f9fc;--focus: #367fb9}:root[data-theme=peach]{--accent: #ac503a;--accent-hover: #8c3c2a;--accent-soft: #fff0e9;--accent-line: #edc0ae;--ink: #463730;--ink-muted: #75645b;--surface-soft: #fcf8f5;--coral: #27735e;--coral-soft: #eaf6ef;--focus: #ac503a}:root[data-theme=night]{color-scheme:dark;--canvas: #151e22;--surface: #1c282d;--surface-soft: #233238;--ink: #e2eeea;--ink-muted: #a7bbb3;--accent: #9edebd;--accent-hover: #b9edcf;--accent-soft: #233e35;--accent-line: #436c59;--on-accent: #172b22;--coral: #f4b29b;--coral-soft: #432f2b;--blue: #a3caf1;--blue-soft: #263c50;--amber: #e9cd87;--amber-soft: #3f3827;--violet: #ceb2f1;--violet-soft: #3a304b;--danger: #ffb0b6;--danger-soft: #442d35;--success: #a4dfbb;--success-soft: #233e31;--line: #33443f;--line-strong: #52675f;--shadow: 0 8px 28px #00000016;--overlay: #050b1099;--focus: #9edebd}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas)}#root{min-height:100vh}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:where(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--focus);outline-offset:4px}::selection{background:var(--accent-line);color:var(--ink)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.settings-trigger,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:0;background:none;color:var(--ink-muted);padding:.55rem .25rem;font-size:max(14px,.85rem);min-height:40px}.settings-trigger:hover,.icon-button:hover{color:var(--accent)}.settings-dialog{position:fixed;inset:92px 2rem auto auto;margin:0;width:min(390px,calc(100vw - 2rem));max-height:calc(100dvh - 110px);overflow-y:auto;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.5rem;box-shadow:0 20px 60px #12352924}.settings-dialog::backdrop{background:var(--overlay)}.settings-heading{display:flex;align-items:start;justify-content:space-between;gap:.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.settings-heading h2{font-size:max(14px,1.25rem);margin:.3rem 0 0}.eyebrow{font-size:max(14px,.65rem);font-weight:700;letter-spacing:.16em;color:var(--accent);margin:0}.icon-button{width:36px;flex-shrink:0}.theme-field{border:0;padding:1.25rem 0;margin:0;min-width:0}.theme-field legend{float:left;width:100%;font-size:max(14px,.9rem);font-weight:650}.theme-field>p,.font-setting p{font-size:max(14px,.75rem);color:var(--ink-muted);margin:.25rem 0 1rem;clear:both}.theme-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.theme-choice{position:relative;display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:.5rem 0;border-radius:10px}.theme-choice input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.theme-swatch{width:40px;height:40px;border-radius:50%;background:#367f62;display:grid;place-items:center;color:#fff;margin-bottom:.5rem}.theme-sky .theme-swatch{background:#377fb5}.theme-peach .theme-swatch{background:#bd674f}.theme-night .theme-swatch{background:#293e47}.theme-swatch svg{opacity:0}.theme-choice input:checked+.theme-swatch{outline:2px solid var(--accent);outline-offset:4px}.theme-choice input:checked+.theme-swatch svg{opacity:1}.theme-choice input:focus-visible{outline-offset:2px;border-radius:8px}.theme-choice strong{font-size:max(14px,.8rem);font-weight:550}.theme-choice small{font-size:max(14px,.6rem);color:var(--ink-muted);margin-top:.2rem}.font-setting{border-top:1px solid var(--line);padding:1.25rem 0;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.font-setting strong{font-size:max(14px,.9rem)}.font-setting p{margin-bottom:0}.zoom-control{display:flex;align-items:center;gap:.25rem}.zoom-btn{width:34px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--ink)}.zoom-control output{min-width:48px;text-align:center;font-size:max(14px,.8rem);font-variant-numeric:tabular-nums}.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:max(14px,.7rem);color:var(--ink-muted)}.settings-footer span{display:inline-flex;align-items:center;gap:.2rem}.text-button{background:none;border:0;padding:.3rem 0;font-size:max(14px,.75rem);color:var(--accent)}@media(max-width:600px){.settings-dialog{inset:70px 1rem auto auto;padding:1.15rem}}.header{position:sticky;top:0;z-index:100;background:var(--canvas);border-bottom:1px solid var(--line)}.header-container{max-width:1440px;padding:0 2rem;min-height:80px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:2rem}.logo{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.logo-mark{color:var(--accent);background:var(--accent-soft);width:42px;height:42px;border-radius:14px 14px 14px 4px;display:grid;place-items:center;transform:rotate(-5deg)}.logo-text{font-size:max(14px,1.25rem);font-weight:750;letter-spacing:-.04em}.brand-dot{color:var(--coral);font-size:max(14px,1.7rem);margin-left:.12rem}.nav{display:flex;align-items:stretch;gap:1.25rem;align-self:stretch}.nav-link{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;border-bottom:3px solid transparent;color:var(--ink-muted);font-size:max(14px,.9rem);transition:color .18s}.nav-link:hover,.nav-link.active{color:var(--accent)}.nav-link.active{border-bottom-color:var(--accent);font-weight:650}.header-actions,.auth-control{display:flex;align-items:center;gap:.8rem}.header-actions{gap:1rem}.auth-control{border-right:1px solid var(--line);padding-right:1rem}.auth-user{max-width:6rem;overflow:hidden;text-overflow:ellipsis;font-size:max(14px,.85rem)}.user-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--coral-soft);color:var(--coral);font-size:max(14px,.85rem);font-weight:700}.auth-button{font-size:max(14px,.85rem);color:var(--ink-muted);border:0;background:none;padding:.5rem .3rem}.auth-button:hover{color:var(--accent)}@media(max-width:850px){.header-container{gap:1rem;padding:0 1.25rem}.nav{gap:.3rem}.nav-link{font-size:max(14px,.85rem)}.auth-user{display:none}}@media(max-width:600px){.header-container{min-height:auto;flex-wrap:wrap;padding:.75rem 1rem 0;gap:.5rem}.logo-text{font-size:max(14px,1.1rem)}.logo-mark{width:34px;height:34px}.header-actions{margin-left:auto;gap:.6rem}.auth-control{padding-right:.6rem}.nav{order:3;width:100%;justify-content:space-between;gap:0}.nav-link{justify-content:center;flex:1;min-height:44px;padding:.6rem .25rem;font-size:max(14px,.8rem)}.user-avatar{display:none}}.app{min-height:100vh;background:var(--canvas)}.main-content{max-width:1440px;margin:auto;padding:2.5rem 2rem 4rem}.bank-icon{display:inline-grid;place-items:center;position:relative;flex-shrink:0;width:58px;height:58px;border-radius:18px 18px 18px 7px;color:var(--accent);background:var(--accent-soft)}.bank-monogram{position:absolute;right:-3px;bottom:-3px;font-size:max(14px,.6rem);font-weight:650;border:2px solid var(--surface);border-radius:5px;background:var(--accent-soft);color:var(--accent);padding:0 .2rem}.tone-coral{color:var(--coral);background:var(--coral-soft)}.tone-blue{color:var(--blue);background:var(--blue-soft)}.tone-amber{color:var(--amber);background:var(--amber-soft)}.tone-violet{color:var(--violet);background:var(--violet-soft)}.app .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.2rem;border:1px solid transparent;border-radius:9px;font-size:max(14px,.9rem);font-weight:600;min-height:44px;transition:transform .18s,background .18s;text-decoration:none}.app .btn-primary,.app .btn-success{background:var(--accent);color:var(--on-accent)}.app .btn-primary:hover,.app .btn-success:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:none}.app .btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.app .btn-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.home-state,.chapter-state{padding:1.5rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);color:var(--ink-muted)}.home-state.error,.chapter-state.error{background:var(--danger-soft);color:var(--danger)}.sync-notice{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;color:var(--ink-muted);font-size:max(14px,.75rem);margin:0 0 1rem}.sync-notice button{color:var(--accent);background:none;border:0;text-decoration:underline;text-underline-offset:4px;font-size:inherit}.app :is(.chapter-card,.login-panel,.upload-section,.category-item,.wrong-directory,.wrong-item,.empty-state,.review-container,.complete-card){background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:none}.app :is(.chapter-card,.category-item,.wrong-item):hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--accent-line)}.app :is(.chapter-card-index,.question-type-badge,.category-name,.review-category,.chapter-card-meta span){border-radius:6px}.app :is(.chapter-card-title,.chapter-title,.wrong-title,.login-title){letter-spacing:-.03em;font-weight:650}.app :is(.wrong-header,.quiz-manager h1){text-align:left;letter-spacing:-.03em}.app :is(.wrong-book,.chapter-select){max-width:1200px;padding:.5rem 0}.app .quiz-manager{padding:.5rem 0;max-width:920px}.app .upload-section{padding:1.5rem;margin-bottom:1.25rem}.app .upload-section h2{font-size:max(14px,1.1rem);margin-top:0}.app .cloud-upload-section{border-top:3px solid var(--blue)}.app .import-section{border-top:3px solid var(--coral)}.app .chapter-card-index{width:fit-content;padding:.25rem .6rem;background:var(--coral-soft);color:var(--coral)}.app :is(.chapter-clear-button,.directory-item,.back-btn,.template-button,.template-link,.excel-import-button,.manual-sync-button,.cloud-upload-button,.delete-button,.login-submit,.login-mode-button,.login-primary-link,.import-type-field,.review-option,.wrong-list-heading){border-radius:8px}.app :is(.manual-sync-button,.excel-import-button,.login-submit,.login-primary-link){background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:none}.app .cloud-upload-button{background:var(--blue);color:var(--surface);border-color:transparent}.app .login-field input{background:var(--surface-soft);border-color:var(--line);border-radius:8px}.app .login-field input::placeholder{color:var(--ink-muted);opacity:.8}.app .wrong-list-heading{border:0;background:var(--surface-soft)}.app .directory-item.active{box-shadow:none;background:var(--accent-soft);border-color:transparent}.app .remove-btn{width:36px;height:36px}.app .empty-icon{font-size:max(14px,3rem)}@media(max-width:768px){.main-content{padding:1.5rem 1rem 3rem}.app .chapter-grid{grid-template-columns:minmax(0,1fr)}.app .login-page{padding:.5rem 0}}
