.advanced{padding-bottom:32px}.advanced-header{display:flex;flex-direction:column;gap:8px}.advanced-title{margin:0;font-size:22px;line-height:1.3;font-weight:600}.advanced-hint{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.advanced-loading{margin:var(--gap) 0 0;font-size:13px}.advanced-section{margin-top:24px;padding-top:var(--gap);border-top:1px solid var(--line);min-width:0}.advanced-section-title{margin:0 0 12px;font-size:16px;line-height:1.4;font-weight:600}.advanced-form{display:grid;grid-template-columns:1fr;gap:var(--gap);min-width:0}.advanced-note{color:var(--muted);font-size:12px;line-height:1.6}.advanced-range{width:100%;min-width:0;height:44px;margin:0;accent-color:var(--fg)}.advanced-check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;line-height:1.6;cursor:pointer}.advanced-check input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:var(--fg)}.advanced-inline{display:flex;align-items:center;gap:10px;min-width:0}.advanced-inline .muted{font-size:13px;white-space:nowrap}.advanced .input.advanced-number{width:104px;flex:0 0 auto}.advanced-pass{display:grid;grid-template-columns:1fr;gap:var(--gap);margin-top:16px;padding:var(--gap);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);min-width:0}.advanced-json{display:block;width:100%;min-width:0;min-height:260px;margin-top:8px;padding:12px 14px;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.6;resize:vertical}.advanced-json:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.advanced-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.advanced-warnings{margin:12px 0 0;padding-left:20px;color:var(--yellow);font-size:13px;line-height:1.6}.advanced-warnings li+li{margin-top:4px}.advanced-status{margin:12px 0 0;font-size:13px;line-height:1.6}.advanced-ok{color:var(--green)}.advanced-footer{display:flex;flex-direction:column;gap:4px;margin-top:32px;padding-top:var(--gap);border-top:1px solid var(--line);font-size:13px;line-height:1.6}@media (min-width: 560px){.advanced-form{grid-template-columns:repeat(2,minmax(0,1fr))}}.im-page{max-width:640px;min-width:0;margin:0 auto;padding:20px var(--gap) calc(150px + env(safe-area-inset-bottom))}.im-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.im-title{margin:0;font-size:22px;font-weight:600}.im-lead{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.im-lead code,.im-empty code{padding:1px 4px;border-radius:4px;background:#1f1f1f;color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.im-source{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px}.im-file{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;cursor:pointer}.im-file input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}.im-file:focus-within .btn{outline:2px solid var(--fg);outline-offset:2px}.im-file-name{min-width:0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.im-paste-field{margin-bottom:12px}.im-paste,.im-textarea{display:block;padding:10px 14px;line-height:1.6;resize:vertical}.im-paste{min-height:180px}.im-textarea{min-height:72px}.im-parse-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.im-imported{color:var(--green);font-size:13px}.im-errors{margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--red);border-radius:var(--radius)}.im-errors-title{margin:0 0 8px;color:var(--red);font-size:14px;font-weight:600}.im-errors--fail{border-left-color:var(--yellow)}.im-errors--fail .im-errors-title{color:var(--yellow)}.im-error-list{margin:0;padding-left:18px;font-size:13px;line-height:1.6}.im-error-list li{margin-bottom:6px;overflow-wrap:anywhere}.im-error-list li:last-child{margin-bottom:0}.im-error-text{margin:0 0 12px;color:var(--red);font-size:13px}.im-summary{margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev)}.im-summary-main{margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.im-summary-sub{margin:4px 0 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.im-switch{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:8px;font-size:14px;cursor:pointer}.im-switch input{width:20px;height:20px;margin:0;accent-color:var(--fg)}.im-list{display:flex;flex-direction:column;gap:12px;margin:8px 0 0;padding:0;list-style:none}.im-row{min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev)}.im-row--bad{border-color:var(--red)}.im-row--dup{opacity:.75}.im-row-head{display:flex;align-items:flex-start;gap:10px;min-width:0}.im-row-no{flex:0 0 auto;padding-top:2px;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.im-row-main{flex:1 1 auto;min-width:0}.im-row-front{margin:0;font-size:15px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.im-row-meta{margin:2px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.im-row-answer{margin:6px 0 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.im-row-error{margin:8px 0 0;color:var(--red);font-size:13px;overflow-wrap:anywhere}.im-row-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.im-row-actions .btn{font-size:13px;padding:0 12px}.im-fields{display:flex;flex-direction:column;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.im-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.im-empty,.im-done{margin:16px 0 0;color:var(--muted);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.im-done{color:var(--green)}.im-actions{position:fixed;right:0;bottom:0;left:0;z-index:20;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg)}.im-actions-inner{max-width:640px;margin:0 auto}.im-offline{margin:8px 0 0;color:var(--muted);font-size:13px;text-align:center}@media (max-width: 360px){.im-two{grid-template-columns:minmax(0,1fr)}}.lb-page{max-width:640px;min-width:0;margin:0 auto;padding:20px var(--gap) calc(32px + env(safe-area-inset-bottom))}.lb-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.lb-title{margin:0;font-size:22px;font-weight:600}.lb-offline{margin:4px 0 12px;color:var(--yellow);font-size:13px}.lb-search{margin-top:8px}.lb-filters{display:flex;flex-direction:column;gap:8px;margin-top:12px}.lb-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lb-filter-label{flex:0 0 auto;color:var(--muted);font-size:12px}.lb-chip{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.lb-chip[aria-pressed=true]{border-color:var(--fg);background:#232323;color:var(--fg)}.lb-count{margin:12px 0 0;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.lb-notice{margin:12px 0 0;color:var(--green);font-size:13px}.lb-error{margin:12px 0 0;color:var(--red);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.lb-empty{margin:16px 0 0;color:var(--muted);font-size:14px;line-height:1.6}.lb-list{display:flex;flex-direction:column;gap:12px;margin:12px 0 0;padding:0;list-style:none}.lb-item{min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev)}.lb-item-main{display:block;width:100%;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.lb-front{display:block;font-size:15px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.lb-meta{display:block;margin-top:4px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.lb-item-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.lb-item-actions .btn{min-height:44px;padding:0 10px;font-size:13px}.lb-danger-text{color:var(--red)}.lb-danger{border-color:var(--red);color:var(--red)}.lb-confirm{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius)}.lb-confirm p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.lb-confirm-actions{display:flex;flex-wrap:wrap;gap:8px}.lb-editor{display:flex;flex-direction:column;gap:12px}.lb-textarea{display:block;min-height:80px;padding:10px 14px;line-height:1.6;resize:vertical}.lb-editor-actions{display:flex;gap:8px}.lb-editor-actions .btn{flex:1 1 0}.login{max-width:420px;padding-top:56px}.login h1{margin-bottom:var(--gap)}.login .auth-lead{margin-bottom:0}.login .auth-form{margin-top:24px}.rd-root{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;overflow:hidden;background:var(--bg, #111);color:var(--fg, #eee);font-size:16px;line-height:1.6}.rd-root *{box-sizing:border-box}.rd-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px 4px}.rd-title{margin:0;font-size:16px;font-weight:600}.rd-progress{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.rd-link{min-width:44px;min-height:44px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.rd-link:active{background:var(--bg-elev, #1a1a1a)}.rd-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:24px;padding:16px}.rd-group{display:flex;flex-direction:column;gap:10px}.rd-label{margin:0;color:var(--muted);font-size:13px;font-weight:400}.rd-chips{display:flex;flex-wrap:wrap;gap:8px}.rd-chip{min-height:44px;padding:0 16px;border:1px solid var(--line, #2a2a2a);border-radius:var(--radius, 12px);background:transparent;color:var(--muted);font:inherit;font-size:15px;cursor:pointer}.rd-chip[aria-pressed=true]{border-color:var(--fg, #eee);background:#232323;color:var(--fg, #eee)}.rd-chip:disabled{opacity:.45;cursor:default}.rd-chapter{display:flex;flex-direction:column;gap:6px;margin-top:4px}.rd-select{width:100%;min-width:0;min-height:48px;padding:0 12px;border:1px solid var(--line, #2a2a2a);border-radius:var(--radius, 12px);background:var(--bg-elev, #1a1a1a);color:var(--fg, #eee);font:inherit;font-size:16px}.rd-hint{margin:0;color:var(--muted);font-size:13px}.rd-stage{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 16px 16px}.rd-question{max-width:640px;margin:0 auto;font-size:24px;font-weight:600;line-height:1.6;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere}.rd-answer{display:flex;flex-direction:column;gap:16px;max-width:640px;margin:24px auto 0;padding-top:16px;border-top:1px solid var(--line, #2a2a2a)}.rd-points{margin:0;padding-left:20px;font-size:17px;line-height:1.6;overflow-wrap:anywhere}.rd-points li{margin:0 0 12px}.rd-points li:last-child{margin-bottom:0}.rd-points--scored{padding-left:0;list-style:none}.rd-score{margin-left:8px;color:var(--muted);font-size:13px}.rd-compare{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6}.rd-compare th,.rd-compare td{padding:8px 10px;border:1px solid var(--line, #2a2a2a);text-align:left;vertical-align:top;overflow-wrap:anywhere}.rd-actions{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line, #2a2a2a)}.rd-primary{flex:1 1 auto;min-height:52px;border:1px solid var(--fg, #eee);border-radius:var(--radius, 12px);background:var(--fg, #eee);color:#111;font:inherit;font-size:16px;font-weight:600;cursor:pointer}.rd-primary:active:not(:disabled){background:#d4d4d4}.rd-primary:disabled{opacity:.45;cursor:default}.rd-grade{flex:1 1 0;min-height:56px;border:1px solid;border-radius:var(--radius, 12px);background:transparent;font:inherit;font-size:17px;font-weight:600;cursor:pointer}.rd-grade:active{background:var(--bg-elev, #1a1a1a)}.rd-grade--again{border-color:var(--red, #e5484d);color:var(--red, #e5484d)}.rd-grade--good{border-color:var(--green, #30a46c);color:var(--green, #30a46c)}.rd-summary{max-width:640px;margin:10vh auto 0;text-align:center}.rd-summary-rate{margin:0;font-size:48px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.rd-summary-label{margin:4px 0 24px;color:var(--muted);font-size:14px}.rd-summary-list{display:flex;justify-content:center;gap:24px;margin:0 0 24px;font-size:15px}.rd-dot{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;vertical-align:middle}.rd-dot--good{background:var(--green, #30a46c)}.rd-dot--again{background:var(--red, #e5484d)}@media (max-width: 340px){.rd-question{font-size:21px}.rd-summary-rate{font-size:40px}}.rv-root{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;overflow:hidden;background:var(--bg, #111111);color:var(--fg, #eeeeee);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}.rv-root *,.rv-root *:before,.rv-root *:after{box-sizing:border-box}.rv-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:8px 12px 4px}.rv-progress{min-width:0;color:var(--muted, #888888);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.rv-head-actions{display:flex;align-items:center;gap:2px;flex:0 0 auto}.rv-textbtn{min-height:44px;min-width:44px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--muted, #888888);font:inherit;font-size:13px;cursor:pointer}.rv-textbtn:active{background:var(--bg-elev, #1a1a1a)}.rv-textbtn:disabled{opacity:.4;cursor:default}.rv-stage{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:24px 16px 16px}.rv-question{max-width:640px;margin:0 auto;color:var(--fg, #eeeeee);font-size:var(--rv-q-size, 22px);font-weight:600;line-height:1.6;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.rv-empty{margin:25vh auto 0;color:var(--muted, #888888);text-align:center}.rv-answer{display:flex;flex-direction:column;gap:16px;max-width:640px;margin:24px auto 0;padding-top:16px;border-top:1px solid var(--line, #2a2a2a)}.rv-points{margin:0;padding-left:20px;font-size:17px;line-height:1.6;overflow-wrap:anywhere}.rv-points li{margin:0 0 12px}.rv-points li:last-child{margin-bottom:0}.rv-points--scored{list-style:none;padding-left:0}.rv-score{margin-left:8px;color:var(--muted, #888888);font-size:13px;font-variant-numeric:tabular-nums}.rv-hint{margin:0;color:var(--muted, #888888);font-size:15px;text-align:center}.rv-compare-wrap{max-width:100%;overflow-x:hidden}.rv-compare{width:100%;max-width:100%;border-collapse:collapse;table-layout:fixed;font-size:15px;line-height:1.6}.rv-compare th,.rv-compare td{padding:8px 10px;border:1px solid var(--line, #2a2a2a);text-align:left;vertical-align:top;overflow-wrap:anywhere}.rv-compare th{background:var(--bg-elev, #1a1a1a);color:var(--muted, #888888);font-weight:500}.rv-actions{flex:0 0 auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line, #2a2a2a);background:var(--bg, #111111)}.rv-primary{display:block;width:100%;min-height:56px;padding:0 16px;border:1px solid var(--fg, #eeeeee);border-radius:12px;background:var(--fg, #eeeeee);color:var(--bg, #111111);font:inherit;font-size:17px;font-weight:600;cursor:pointer}.rv-primary:active{opacity:.85}.rv-grades{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rv-grade{min-height:56px;padding:0 4px;border:1px solid transparent;border-radius:12px;color:#fff;font:inherit;font-size:17px;font-weight:600;cursor:pointer}.rv-grade--again{background:var(--red, #e5484d)}.rv-grade--hard{background:var(--yellow, #f5a524);color:#111}.rv-grade--good{background:var(--green, #30a46c)}.rv-grade:active{opacity:.85}.rv-grade:disabled{border-color:var(--line, #2a2a2a);background:var(--bg-elev, #1a1a1a);color:var(--muted, #888888);cursor:not-allowed}.rv-summary{max-width:480px;margin:12vh auto 0;text-align:center}.rv-summary-title{margin:0;color:var(--muted, #888888);font-size:15px}.rv-summary-total{margin:8px 0 24px;font-size:28px;font-weight:600;font-variant-numeric:tabular-nums}.rv-summary-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:16px;border:1px solid var(--line, #2a2a2a);border-radius:12px;list-style:none;text-align:left;font-size:16px}.rv-summary-list li{display:flex;align-items:center;gap:8px}.rv-summary-list b{margin-left:auto;font-variant-numeric:tabular-nums}.rv-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%}.rv-dot--good{background:var(--green, #30a46c)}.rv-dot--hard{background:var(--yellow, #f5a524)}.rv-dot--again{background:var(--red, #e5484d)}.rv-scrim{position:absolute;inset:0;display:flex;align-items:flex-end;background:#0009;animation:rv-fade .16s ease-out}.rv-sheet{width:100%;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line, #2a2a2a);border-radius:12px 12px 0 0;background:var(--bg-elev, #1a1a1a);animation:rv-rise .16s ease-out}.rv-sheet-title{margin:0 0 4px;padding:8px 12px;overflow:hidden;color:var(--muted, #888888);font-size:13px;line-height:1.6;text-overflow:ellipsis;white-space:nowrap}.rv-sheet-item{display:block;width:100%;min-height:48px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--fg, #eeeeee);font:inherit;font-size:16px;text-align:left;cursor:pointer}.rv-sheet-item:active{background:var(--bg, #111111)}.rv-sheet-item:disabled{color:var(--muted, #888888);cursor:default}.rv-sheet-item--danger{color:var(--red, #e5484d)}.rv-sheet-cancel{display:block;width:100%;min-height:48px;margin-top:4px;padding:0 12px;border:0;border-top:1px solid var(--line, #2a2a2a);border-radius:8px;background:transparent;color:var(--muted, #888888);font:inherit;font-size:16px;cursor:pointer}@keyframes rv-fade{0%{opacity:0}to{opacity:1}}@keyframes rv-rise{0%{transform:translateY(12px)}to{transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.rv-scrim,.rv-sheet{animation:none}}@media (max-width: 360px){.rv-head{padding:6px 8px 2px}.rv-stage{padding:16px 12px 12px}.rv-actions{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}.rv-textbtn{padding:0 6px;font-size:12px}.rv-points{font-size:16px}.rv-compare{font-size:14px}.rv-compare th,.rv-compare td{padding:6px 8px}}.setup{max-width:440px;padding-top:40px}.setup h1{margin-bottom:var(--gap)}.setup .auth-lead{margin-bottom:24px}.setup-points{margin-bottom:24px;color:var(--muted);font-size:14px}.setup-points li{position:relative;padding-left:16px;margin-bottom:var(--gap);line-height:1.6}.setup-points li:last-child{margin-bottom:0}.setup-points li:before{content:"·";position:absolute;left:2px;color:var(--muted)}.setup .auth-form{margin-top:0}.subj-page{display:flex;flex-direction:column;box-sizing:border-box;width:100%;max-width:640px;min-height:100vh;min-height:100dvh;margin:0 auto;padding:12px 16px 0;background:var(--bg, #111);color:var(--fg, #eee);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.6}.subj-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 8px;min-height:44px;padding-bottom:8px;margin-bottom:16px;border-bottom:1px solid var(--line, #2a2a2a)}.subj-top-left{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}.subj-badge{flex:none;padding:2px 8px;border:1px solid var(--line, #2a2a2a);border-radius:6px;color:var(--muted, #888);font-size:12px;line-height:1.4}.subj-badge-s0{border-color:#3a3a3a}.subj-badge-s1{border-color:#5a4520;color:var(--yellow, #f5a524)}.subj-badge-s2{border-color:#1f4f3a;color:var(--green, #30a46c)}.subj-stage-name{font-size:14px;color:var(--fg, #eee)}.subj-sep{color:var(--muted, #888)}.subj-qtype{font-size:14px;color:var(--muted, #888)}.subj-text-btn{flex:none;min-height:44px;padding:0 8px;border:none;background:none;color:var(--muted, #888);font:inherit;font-size:14px;cursor:pointer}.subj-back{align-self:flex-start;min-height:44px;padding:0 4px}.subj-question{margin-bottom:20px}.subj-front{margin:0;font-size:19px;font-weight:600;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.subj-meta{margin:8px 0 0;color:var(--muted, #888);font-size:13px;line-height:1.6}.subj-body{display:flex;flex:1 1 auto;flex-direction:column;gap:12px;min-width:0;margin-bottom:16px}.subj-label{display:block;margin:0;font-size:15px;font-weight:600;line-height:1.6}.subj-hint{margin:0;color:var(--muted, #888);font-size:13px;line-height:1.6}.subj-warn{margin:0;color:var(--yellow, #f5a524);font-size:13px;line-height:1.6}.subj-h2{margin:0;font-size:17px;font-weight:600;line-height:1.6}.subj-textarea{box-sizing:border-box;width:100%;min-height:120px;padding:12px 14px;border:1px solid var(--line, #2a2a2a);border-radius:var(--radius, 12px);background:var(--bg-elev, #1a1a1a);color:var(--fg, #eee);font:inherit;font-size:16px;line-height:1.6;resize:vertical;-webkit-appearance:none;appearance:none}.subj-textarea::placeholder{color:var(--muted, #888);opacity:.7}.subj-textarea:focus-visible{outline:2px solid var(--fg, #eee);outline-offset:1px}.subj-paper{min-height:240px}.subj-seg{overflow:hidden;border:1px solid var(--line, #2a2a2a);border-radius:var(--radius, 12px)}.subj-seg-head{display:flex;align-items:center;gap:10px;box-sizing:border-box;width:100%;min-height:52px;padding:10px 12px;border:none;background:none;color:var(--fg, #eee);font:inherit;font-size:15px;line-height:1.5;text-align:left;cursor:pointer}.subj-seg-idx{display:grid;flex:none;place-items:center;width:24px;height:24px;border:1px solid var(--line, #2a2a2a);border-radius:6px;color:var(--muted, #888);font-size:12px}.subj-seg-title{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.subj-chev{flex:none;color:var(--muted, #888);font-size:12px}.subj-seg .subj-textarea{border:none;border-top:1px solid var(--line, #2a2a2a);border-radius:0;background:transparent}.subj-timer-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}.subj-timer{padding:2px 10px;border:1px solid var(--line, #2a2a2a);border-radius:8px;color:var(--muted, #888);font-size:15px;font-variant-numeric:tabular-nums;line-height:1.6}.subj-timer.is-warn{border-color:var(--red, #e5484d);color:var(--red, #e5484d)}.subj-switch{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--muted, #888);font-size:14px;cursor:pointer}.subj-switch input{width:20px;height:20px;accent-color:var(--green, #30a46c)}.subj-grade-head{display:flex;flex-direction:column;gap:4px}.subj-progress-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;color:var(--muted, #888);font-size:13px;line-height:1.6}.subj-muted{color:var(--muted, #888)}.subj-check-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.subj-check{border:1px solid var(--line, #2a2a2a);border-radius:var(--radius, 12px);background:var(--bg-elev, #1a1a1a);transition:border-color .12s linear}.subj-check.is-on{border-color:var(--green, #30a46c)}.subj-check-label{display:flex;align-items:flex-start;gap:12px;box-sizing:border-box;min-height:48px;padding:12px 14px;font-size:16px;line-height:1.6;cursor:pointer}.subj-check-label input{flex:none;width:20px;height:20px;margin:3px 0 0;accent-color:var(--green, #30a46c)}.subj-check-text{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.subj-mine{margin-top:4px;padding:0 14px;border:1px solid var(--line, #2a2a2a);border-radius:var(--radius, 12px)}.subj-mine summary{display:flex;align-items:center;min-height:48px;color:var(--muted, #888);font-size:14px;cursor:pointer}.subj-mine-body{display:flex;flex-direction:column;gap:12px;padding-bottom:12px}.subj-mine-seg-title{margin:0;color:var(--muted, #888);font-size:13px;line-height:1.6}.subj-mine-text{margin:0;padding-bottom:12px;font-size:15px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.subj-result{display:flex;flex:1 1 auto;flex-direction:column;gap:8px;min-width:0}.subj-result-label{margin:0;color:var(--muted, #888);font-size:13px;line-height:1.6}.subj-result-pct{margin:0;font-size:56px;font-weight:700;line-height:1.1;letter-spacing:-1px;font-variant-numeric:tabular-nums}.subj-result-pct.is-ok{color:var(--green, #30a46c)}.subj-result-pct.is-warn{color:var(--yellow, #f5a524)}.subj-result-pct.is-bad{color:var(--red, #e5484d)}.subj-result-unit{margin-left:4px;font-size:22px;font-weight:600}.subj-result-verdict{margin:0;font-size:15px;line-height:1.6}.subj-bar{height:4px;margin:4px 0 8px;overflow:hidden;border-radius:2px;background:var(--line, #2a2a2a)}.subj-bar-fill{height:100%;background:var(--fg, #eee)}.subj-bar-fill.is-ok{background:var(--green, #30a46c)}.subj-bar-fill.is-warn{background:var(--yellow, #f5a524)}.subj-bar-fill.is-bad{background:var(--red, #e5484d)}.subj-result-line{margin:0;font-size:15px;line-height:1.6}.subj-result-list{display:flex;flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none}.subj-result-row{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line, #2a2a2a);border-radius:var(--radius, 12px);font-size:15px;line-height:1.6}.subj-result-row.is-hit{border-left:3px solid var(--green, #30a46c)}.subj-result-row.is-miss{border-left:3px solid var(--red, #e5484d)}.subj-mark{flex:none;width:20px;font-weight:700;text-align:center}.is-hit .subj-mark{color:var(--green, #30a46c)}.is-miss .subj-mark{color:var(--red, #e5484d)}.subj-result-text{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.subj-weak-note{margin:12px 0 0;color:var(--red, #e5484d);font-size:14px;line-height:1.6}.subj-weak-note.is-ok{color:var(--green, #30a46c)}.subj-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.subj-footer{position:sticky;bottom:0;display:flex;flex-direction:column;gap:8px;box-sizing:border-box;width:auto;margin:auto -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line, #2a2a2a);background:var(--bg, #111)}.subj-primary{box-sizing:border-box;width:100%;min-height:52px;padding:12px 16px;border:none;border-radius:var(--radius, 12px);background:var(--fg, #eee);color:var(--bg, #111);font:inherit;font-size:17px;font-weight:600;line-height:1.4;cursor:pointer;transition:opacity .12s linear}.subj-primary:active{opacity:.85}.subj-secondary{box-sizing:border-box;width:100%;min-height:44px;padding:10px 16px;border:1px solid var(--line, #2a2a2a);border-radius:var(--radius, 12px);background:transparent;color:var(--fg, #eee);font:inherit;font-size:15px;line-height:1.4;cursor:pointer}.subj-foot-hint{margin:0;color:var(--muted, #888);font-size:12px;line-height:1.6;text-align:center}@media (prefers-reduced-motion: reduce){.subj-check,.subj-primary{transition:none}}.today{padding:20px var(--gap) calc(96px + env(safe-area-inset-bottom));min-width:0}.today-head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);min-width:0}.today-date{min-width:0}.today-date h1{margin:0;font-size:22px}.today-year{color:var(--muted);font-size:14px;font-weight:400}.today-date p{margin:4px 0 0;font-size:13px}.ring{flex:0 0 auto;width:76px;height:76px;border-radius:50%;background:conic-gradient(var(--green) var(--pct, 0%),var(--line) 0);display:grid;place-items:center}.ring-inner{width:60px;height:60px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;gap:1px;font-size:13px;color:var(--muted);line-height:1}.ring-inner strong{font-size:18px;font-weight:600;color:var(--fg)}.sprint-banner{margin:12px 0 0;padding:8px 12px;border:1px solid var(--line);border-left-color:var(--yellow);border-radius:8px;background:var(--bg-elev);color:var(--fg);font-size:13px;line-height:1.5;overflow-wrap:break-word}.pile.pile-stop{display:block}.pile-stop-text{margin:0;color:var(--yellow);font-size:14px;line-height:1.6}.pile-list{display:flex;flex-direction:column;gap:12px;margin-top:24px}.pile{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px var(--gap);padding:var(--gap);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);min-width:0}.pile-main{display:flex;flex-direction:column;min-width:0}.pile-title{margin:0;font-size:16px;font-weight:600;line-height:1.5}.pile-meta{color:var(--muted);font-size:13px;line-height:1.5}.pile-extra{grid-column:1 / -1;min-width:0}.pile-note{margin:0;color:var(--muted);font-size:13px;overflow-wrap:break-word}.empty-note{padding-top:12px;border-top:1px solid var(--line)}.empty-note p{margin:0;color:var(--muted);font-size:13px}.empty-note .btn-text{margin-top:4px;font-size:13px}.empty-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:12px;padding:var(--gap);border:1px dashed var(--line);border-radius:var(--radius)}.empty-card p{margin:0;font-size:14px}.pending-line{margin:var(--gap) 0 0;font-size:14px}.pending-line .muted{font-size:13px}.empty-note .offline-hint,.empty-card .offline-hint{margin-top:4px;color:var(--muted);font-size:13px}.today-loading{margin-top:24px}.today-loading p{font-size:13px}.skeleton-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.skeleton-row{height:76px;border:1px solid var(--line);border-radius:var(--radius);background:#161616}.today-fab{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:20;display:flex;gap:var(--gap)}.fab{display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg);font-size:22px;line-height:1;cursor:pointer}.fab:active{background:#232323}.fab:disabled{opacity:.45;cursor:default}.fab:focus-visible{outline:2px solid var(--fg);outline-offset:2px}@media (max-width: 340px){.ring{width:64px;height:64px}.ring-inner{width:50px;height:50px}.ring-inner strong{font-size:16px}.today-date h1{font-size:20px}}:root{color-scheme:dark;--bg: #111111;--bg-elev: #1a1a1a;--fg: #eeeeee;--muted: #888888;--line: #2a2a2a;--red: #e5484d;--yellow: #f5a524;--green: #30a46c;--radius: 12px;--gap: 16px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg)}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.6;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}#root{min-height:100%}img,svg{max-width:100%}h1{font-size:22px;font-weight:600;line-height:1.4;margin:0 0 var(--gap)}p{margin:0 0 var(--gap)}p:last-child{margin-bottom:0}ul,ol{margin:0;padding:0;list-style:none}.page,.today,.auth{max-width:640px;margin:0 auto;min-width:0}.page{padding:var(--gap)}.muted{color:var(--muted)}button{font:inherit;color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg);font-size:15px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color .12s linear,border-color .12s linear}.btn:active{background:#232323}.btn-primary{background:var(--fg);border-color:var(--fg);color:#111;font-weight:600}.btn-primary:active{background:#d4d4d4}.btn-quiet{background:transparent;border-color:transparent;color:var(--fg)}.btn-quiet:active{background:var(--bg-elev)}.btn-block{display:flex;width:100%}.btn-text{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:0 2px;border:0;background:none;color:var(--fg);font-size:14px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.btn:disabled,.btn-text:disabled{opacity:.55;cursor:default}.btn:focus-visible,.btn-text:focus-visible,.input:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field-label{font-size:14px;color:var(--muted)}.input{width:100%;min-width:0;min-height:48px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg);font:inherit;font-size:16px}.input::placeholder{color:#666}.auth-error{margin:0;color:var(--red);font-size:14px}.notice{margin:var(--gap) 0 0;color:var(--yellow);font-size:13px}.offline-bar{position:sticky;top:0;z-index:10;padding:6px 16px;border-bottom:1px solid var(--line);background:var(--bg-elev);color:var(--muted);font-size:13px;text-align:center}.auth{padding:48px 20px 32px}.auth-lead{color:var(--muted);font-size:15px}.auth-note{color:var(--muted);font-size:13px}.auth-form{display:flex;flex-direction:column;gap:var(--gap);margin-top:24px}.placeholder{padding-top:64px}.placeholder .btn{margin-top:8px}
