:root{--fs-base: 15px;--bg: #f7f7f5;--panel: #ffffff;--ink: #1c1c1e;--ink2: #5a5a60;--ink3: #8e8e93;--line: #e4e4e7;--accent: #c0392b;--accent-soft: #fdeceb;--ok: #1d8348;--ok-soft: #e8f6ee;--warn: #b7791f;--warn-soft: #fdf6e3;--src: #2c5f9e;--src-soft: #eef4fb;--hover: #f0f0f2;--opt-hover: #fffafa;--topbar: rgba(255, 255, 255, .92);--statusbar: rgba(255, 255, 255, .7);--mask: rgba(0, 0, 0, .45);--radius: 12px;--shadow: 0 1px 3px rgba(0,0,0,.06), 0 6px 18px rgba(0,0,0,.04)}:root[data-fs=large]{--fs-base: 17px}:root[data-fs=xl]{--fs-base: 19px}:root[data-theme=dark]{--bg: #16161a;--panel: #1e1e24;--ink: #e9e9ec;--ink2: #b3b3ba;--ink3: #8b8b93;--line: #2f2f38;--accent: #e2604f;--accent-soft: #3a201c;--ok: #57c98d;--ok-soft: #142c1f;--warn: #d9a94a;--warn-soft: #33280f;--src: #8ab6e8;--src-soft: #1b2735;--hover: #2a2a33;--opt-hover: #26262e;--topbar: rgba(22, 22, 26, .92);--statusbar: rgba(22, 22, 26, .75);--mask: rgba(0, 0, 0, .6);--shadow: 0 1px 3px rgba(0,0,0,.4), 0 6px 18px rgba(0,0,0,.3)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-size:var(--fs-base)}html,body{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,Hiragino Sans,Noto Sans JP,sans-serif;font-size:1rem;line-height:1.65}ruby{ruby-align:center}rt{font-size:.52em;color:var(--ink3);font-weight:400;letter-spacing:.02em}body.no-ruby rt{display:none}body.no-ruby ruby{ruby-position:initial}#app{display:flex;flex-direction:column;min-height:100vh}.tabbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--topbar);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}.tabbar button{flex:1 1 0;min-height:52px;border:0;background:transparent;color:var(--ink3);font-family:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px;position:relative;transition:color .15s;-webkit-tap-highlight-color:transparent}.tabbar button.on{color:var(--accent)}.tabbar button:active{background:var(--hover)}.tb-ico{width:24px;height:24px;display:block}.tb-ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tabbar button.on .tb-ico svg [fill]{fill:currentColor}.tb-tx{font-size:10.5px;font-weight:500;letter-spacing:.02em}.tabbar button.has-due .tb-ico:after{content:"";position:absolute;top:6px;left:calc(50% + 6px);width:7px;height:7px;border-radius:50%;background:var(--accent);border:1.5px solid var(--panel)}.tabs button.has-due{position:relative}.tabs button.has-due:after{content:"";position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--topbar);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{font-weight:700;font-size:16px;letter-spacing:.02em;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.brand:before{content:"あ";color:var(--accent);margin-right:7px;font-size:18px}.tabs{display:flex;gap:2px;flex:1;overflow-x:auto}.topbar .tbar-btn{flex:0 0 auto}.tabs button{border:0;background:transparent;color:var(--ink2);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:14px;font-family:inherit;white-space:nowrap;transition:.15s}.tabs button:hover{background:var(--hover);color:var(--ink)}.tabs button.on{background:var(--accent);color:#fff;font-weight:600}.tbar-btn{border:1px solid var(--line);background:var(--panel);color:var(--ink2);padding:6px 12px;border-radius:999px;font-size:12.5px;cursor:pointer;font-family:inherit;white-space:nowrap;transition:.15s;display:inline-flex;align-items:center;gap:5px;min-height:32px}.tbar-btn:hover{border-color:var(--accent);color:var(--accent)}.tbar-btn .tbar-ico{color:var(--accent);font-size:14px;display:inline-flex}.tbar-btn .tbar-ico svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tbar-ico.ico-ruby{font-weight:700}.tbar-btn .tbar-ico.ico-moon{display:none}:root[data-theme=dark] .tbar-btn .tbar-ico.ico-sun{display:none}:root[data-theme=dark] .tbar-btn .tbar-ico.ico-moon{display:inline-flex}main{flex:1;padding:22px;max-width:1060px;width:100%;margin:0 auto}h2{font-size:1.267rem;margin:0 0 4px;font-weight:700}h3{font-size:1.033rem;margin:22px 0 10px;font-weight:650}h3.first,dl.first{margin-top:0}.sub{color:var(--ink3);font-size:.867rem;margin-bottom:18px}.sub.center,.center{text-align:center}.tiny{font-size:.78rem;color:var(--ink3)}.hint{font-size:.867rem;color:var(--ink3)}.strong{font-weight:600}.grow{flex:1 1 auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow)}.card.nopad{padding:6px 14px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.chk{font-size:.9rem;color:var(--ink2);display:inline-flex;align-items:center;gap:5px}button.btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:8px 15px;border-radius:9px;cursor:pointer;font-size:.933rem;font-family:inherit;transition:.15s}button.btn:hover{border-color:var(--accent);color:var(--accent)}button.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.btn.primary:hover{filter:brightness(1.08);color:#fff}button.btn.ghost{border-color:transparent;color:var(--ink2);background:transparent}button.btn.danger{color:var(--accent);border-color:var(--accent-soft)}button.btn.ghost.ico{padding:4px 9px;font-size:1rem;line-height:1.2;min-width:32px;min-height:32px}.btn.ghost.speak{border-color:var(--line);background:var(--panel);color:var(--ink3);margin-left:6px;padding:0 9px;border-radius:999px;min-width:0;min-height:24px;font-size:.74rem;vertical-align:middle}.btn.ghost.speak:hover{border-color:var(--accent);color:var(--accent)}button.btn:disabled{opacity:.4;cursor:not-allowed}input[type=text],select{border:1px solid var(--line);border-radius:9px;padding:8px 12px;font-size:.933rem;font-family:inherit;background:var(--panel);color:var(--ink);outline:none;transition:.15s}input[type=text]:focus,select:focus{border-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.seg{display:inline-flex;gap:2px;padding:3px;margin-bottom:12px;background:var(--hover);border-radius:10px}.seg-btn{border:0;background:transparent;color:var(--ink2);cursor:pointer;padding:6px 14px;border-radius:8px;font-family:inherit;font-size:.9rem;transition:.15s;white-space:nowrap;min-height:34px}.seg-btn:hover{color:var(--ink)}.seg-btn.on{background:var(--panel);color:var(--accent);font-weight:600;box-shadow:var(--shadow)}.seg-n{display:inline-block;margin-left:5px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:600;vertical-align:1px}.seg-btn.on .seg-n{background:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat .k{font-size:.8rem;color:var(--ink3)}.stat .v{font-size:1.733rem;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.stat .v small{font-size:.867rem;font-weight:500;color:var(--ink2)}.gitem{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow)}.gitem .head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.gitem .pat{font-size:1.1rem;font-weight:700}.gitem .pat.sm{font-size:1rem;font-weight:600}.badge{font-size:11.5px;padding:1.5px 8px;border-radius:999px;background:var(--hover);color:var(--ink2);font-weight:600;letter-spacing:.02em}.badge.lv{background:var(--accent-soft);color:var(--accent)}.badge.src{background:var(--src-soft);color:var(--src);font-weight:500}.badge.tier{background:var(--panel);border:1px solid var(--line);color:var(--ink2)}.badge.tier.t1{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}.badge.tier.t2{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-soft)}.badge.tier.t3{background:var(--hover);color:var(--ink3)}.badge.tier.t4{background:var(--panel);color:var(--ink3)}.gitem .mean{color:var(--ink2);margin-top:5px;font-size:.967rem}.mean-alt{font-size:.74rem;color:var(--ink3);margin-left:8px;white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:0 7px}.gitem dl{margin:10px 0 0;font-size:.933rem}.gitem dt,.fb dt{font-size:.78rem;color:var(--ink3);font-weight:600;margin-top:9px;letter-spacing:.04em}.gitem dd,.fb dd{margin:2px 0 0;color:var(--ink)}.ex{padding:5px 0 5px 12px;border-left:2.5px solid var(--accent-soft);margin:5px 0}.ex .jp{font-size:1.033rem}.ex .zh{color:var(--ink3);font-size:.9rem;margin-top:1px}.note{background:var(--warn-soft);padding:9px 12px;border-radius:8px;font-size:.9rem;margin-top:8px;border-left:3px solid var(--warn)}.note-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.note-tags .badge{background:var(--panel);color:var(--ink3)}.note-i{position:relative;padding-left:14px;line-height:1.7;color:var(--ink)}.note-i+.note-i{margin-top:6px}.note-i:before{content:"";position:absolute;left:2px;top:.68em;width:5px;height:5px;border-radius:50%;background:var(--warn)}.note-i .q{color:var(--ink);font-weight:600}.usage{margin-top:7px;padding-left:12px;border-left:2px solid var(--line)}.usage-l{color:var(--ink2);font-size:.9rem;line-height:1.6}.usage-l+.usage-l{margin-top:3px}.dup-hint{font-size:.833rem;color:var(--ink3);margin-top:7px}.card-acts{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rf-src-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:20px 0 8px;padding-bottom:6px;font-size:.933rem;font-weight:700;color:var(--ink);border-bottom:1px solid var(--line)}.rf-src-h:first-child{margin-top:2px}.rf-src-h .rf-src-n{font-size:.78rem;font-weight:500;color:var(--ink3)}.rf-ch-h{display:inline-block;margin:12px 0 8px;font-size:.833rem;font-weight:600;color:var(--src);background:var(--src-soft);padding:3px 10px;border-radius:999px}.rf-lead{color:var(--ink3);font-size:.867rem;line-height:1.65;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gitem.ref.open .rf-lead{display:none}.gitem.ref .body{border-left:3px solid var(--line);padding-left:12px;margin-top:8px}.rf-raw{font-size:.8rem;color:var(--ink3);background:var(--hover);border-radius:6px;padding:6px 9px;margin-bottom:8px;word-break:break-word}.rf-conn{font-size:.9rem;color:var(--ink2);margin-bottom:6px}.rf-l{font-size:.9rem;line-height:1.7;color:var(--ink2);margin-top:6px;word-break:break-word}.rf-l.rf-cols{color:var(--ink);font-weight:600;border-bottom:1px dashed var(--line);padding-bottom:4px}.rf-l.rf-mark{color:var(--ink);background:var(--hover);border-radius:6px;padding:6px 10px}.rf-q{color:var(--ink);font-weight:600}.rf-zh{color:var(--ink3)}.rf-hr{border-top:1px solid var(--line);margin:13px 0 2px}.rf-h{font-size:.867rem;font-weight:700;color:var(--src);margin:14px 0 6px;padding-left:8px;border-left:3px solid var(--src)}.rf-p{font-size:.9rem;line-height:1.75;color:var(--ink2);margin:7px 0 0;word-break:break-word}.rf-p.rf-mark{color:var(--ink);background:var(--hover);border-radius:6px;padding:7px 10px;margin-top:8px}.rf-ul{margin:7px 0 0;padding-left:20px}.rf-ul li{font-size:.9rem;line-height:1.75;color:var(--ink2);margin-top:4px;word-break:break-word}.rf-ul li::marker{color:var(--ink3)}.rf-tbwrap{margin-top:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:8px}.rf-tb{border-collapse:collapse;width:100%;font-size:.833rem}.rf-tb th,.rf-tb td{padding:7px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);line-height:1.6;min-width:84px}.rf-tb th{background:var(--hover);color:var(--ink);font-weight:700;white-space:nowrap;position:sticky;top:0}.rf-tb tbody tr:last-child td{border-bottom:0}.rf-tb td:first-child{color:var(--ink);font-weight:600}.rf-tb td{color:var(--ink2)}.lk-q{width:100%;font-family:inherit;font-size:1rem;padding:11px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}.lk-q:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.lk-q::placeholder{color:var(--ink3)}.lk-weak{margin-top:18px;border-top:1px dashed var(--line);padding-top:10px}.lk-weak>summary{cursor:pointer;font-size:.867rem;color:var(--ink3);list-style:none;-webkit-user-select:none;user-select:none}.lk-weak>summary::-webkit-details-marker{display:none}.lk-weak>summary:before{content:"＋ ";color:var(--accent);font-weight:700}.lk-weak[open]>summary:before{content:"－ "}.lk-weak>summary:hover{color:var(--ink)}.lk-entry{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 560px){.lk-entry{grid-template-columns:1fr}}.lk-entry-card{display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;font-family:inherit;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;transition:border-color .15s,transform .15s}.lk-entry-card:hover{border-color:var(--accent)}.lk-entry-card:active{transform:scale(.995)}.lk-entry-k{font-size:1.067rem;font-weight:700;color:var(--ink)}.lk-entry-v{font-size:.933rem;color:var(--accent);font-weight:600}.lk-entry-d{font-size:.833rem;color:var(--ink3);line-height:1.6;margin-top:2px}.lk-entry-go{font-size:.833rem;color:var(--ink3);margin-top:8px}.rf-src-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width: 560px){.rf-src-list{grid-template-columns:1fr}}.rf-src-card{display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;font-family:inherit;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;transition:border-color .15s}.rf-src-card:hover{border-color:var(--accent)}.rf-src-top{display:flex;align-items:baseline;gap:8px}.rf-src-name{font-size:.933rem;font-weight:700;color:var(--ink);line-height:1.45}.rf-src-meta{font-size:.8rem;color:var(--ink3)}.rf-src-peek{font-size:.78rem;color:var(--ink3);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lk-group{display:flex;align-items:baseline;gap:8px;margin:20px 0 8px;padding-bottom:6px;font-size:.933rem;font-weight:700;color:var(--ink);border-bottom:1px solid var(--line)}.lk-group:first-child{margin-top:4px}.lk-group-n{font-size:.78rem;font-weight:500;color:var(--ink3)}.badge.dup{background:var(--hover);color:var(--ink3)}.gitem .fold{border:0;background:transparent;color:var(--ink3);cursor:pointer;font-family:inherit;font-size:.833rem;padding:3px 4px;margin-left:auto;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.gitem .fold:hover{color:var(--accent)}.gitem .fold .caret{transition:transform .15s;display:inline-block}.gitem.open .fold .caret{transform:rotate(180deg)}.gitem .body{display:none}.gitem.open .body{display:block}.hero{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow)}.hero-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:.8rem;color:var(--ink3)}.hero-meta b{color:var(--ink2);font-variant-numeric:tabular-nums}.hero-meta .goal{display:inline-flex;align-items:center;gap:4px}.hero-meta input{width:54px;padding:4px 6px;font-family:inherit;font-size:.8rem;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);text-align:center}.hero-meta input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.hero-meta .btn.ico{padding:4px 8px;font-size:.78rem}.cta{display:block;width:100%;border:0;background:var(--accent);color:#fff;font-family:inherit;font-size:1.067rem;font-weight:600;letter-spacing:.02em;padding:15px 18px;border-radius:12px;cursor:pointer;text-align:center;transition:.15s}.cta:hover{filter:brightness(1.08)}.cta:disabled{opacity:.45;cursor:not-allowed}.cta-sub{display:block;font-size:.8rem;font-weight:400;opacity:.88;margin-top:3px}.cta.ghost{background:var(--panel);color:var(--ink);border:1px solid var(--line)}.cta.ghost .cta-sub{color:var(--ink3);opacity:1}.cta.ghost:hover{border-color:var(--accent);color:var(--accent);filter:none}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 14px;cursor:pointer;font-family:inherit;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;transition:.15s;box-shadow:var(--shadow);position:relative;min-height:92px}.tile:hover{border-color:var(--accent)}.tile-ico{width:32px;height:32px;border-radius:10px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}.tile-ico svg{width:18px;height:18px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tile-tx{font-size:1rem;font-weight:600}.tile-sub{font-size:.78rem;color:var(--ink3)}.tile-n{position:absolute;top:12px;right:12px;min-width:20px;height:20px;border-radius:999px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 6px}.foldbar{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:11px 14px;font-size:.867rem;color:var(--ink3);flex-wrap:wrap}.foldbar button{border:0;background:transparent;color:var(--accent);font-family:inherit;font-size:.867rem;font-weight:600;cursor:pointer;padding:4px 2px}.rate-row{display:flex;flex-direction:column;gap:8px;margin-top:14px}.rate-row .btn{width:100%;min-height:46px;text-align:left;padding:11px 15px}.rate-row .btn .rate-hint{display:block;font-size:.78rem;color:var(--ink3);margin-top:1px}.rate-row .btn.primary .rate-hint{color:#fff;opacity:.88}.totop{position:fixed;right:16px;z-index:45;bottom:calc(78px + env(safe-area-inset-bottom,0px));width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink2);font-size:18px;line-height:1;cursor:pointer;box-shadow:var(--shadow);display:none;align-items:center;justify-content:center}.totop.on{display:flex}.totop:hover{border-color:var(--accent);color:var(--accent)}@media (min-width: 721px){.totop{bottom:24px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.tok{border-bottom:1px dotted var(--ink3);cursor:pointer}.tok:hover,.tok:active{background:var(--accent-soft)}.tok ruby{border-bottom:0}.typed{display:flex;flex-direction:column;gap:10px}.typed input[type=text]{width:100%;font-size:1.2rem;padding:14px 16px;border-radius:12px;text-align:center;letter-spacing:.04em}.hintbox{background:var(--src-soft);color:var(--src);border-radius:8px;padding:8px 12px;font-size:.9rem;margin:0 0 12px}.duebar{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px;font-size:.933rem}.duebar b{font-size:1.1rem}.badge.due{background:var(--accent);color:#fff;font-weight:600}.ex-detail{margin-top:12px}.ex-detail>summary{cursor:pointer;font-size:.86rem;color:var(--ink3);padding:6px 2px;list-style:none}.ex-detail>summary::-webkit-details-marker{display:none}.ex-detail>summary:before{content:"▸ "}.ex-detail[open]>summary:before{content:"▾ "}.ex-detail[open]>summary{color:var(--ink2)}.qinstr{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;padding:8px 12px;margin:0 0 10px}.qinstr-jp{font-size:.86rem;line-height:1.6;color:var(--ink2)}.qinstr-zh{font-size:.8rem;line-height:1.5;color:var(--ink3);margin-top:2px}.quiz-stem{font-size:1.267rem;line-height:1.9;margin:8px 0 16px}.quiz-stem.zh{font-size:1.133rem;background:var(--src-soft);color:var(--src);border-radius:10px;padding:12px 16px;line-height:1.8}.quiz-stem.zh .stem-q{display:block;font-size:.78rem;font-weight:600;opacity:.75;margin-bottom:2px}.opts{display:flex;flex-direction:column;gap:8px}.opt{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:11px 15px;cursor:pointer;position:relative;font-size:1.033rem;font-family:inherit;color:var(--ink);transition:.13s}.opt:hover:not(:disabled){border-color:var(--accent);background:var(--opt-hover)}.opt:disabled{cursor:default}.opt.right{border-color:var(--ok);background:var(--ok-soft);font-weight:600}.opt.wrong{border-color:var(--accent);background:var(--accent-soft)}.opt-key{display:inline-block;min-width:1.1em;margin-right:8px;font-size:.78rem;color:var(--ink3);font-variant-numeric:tabular-nums}.opt.sent{line-height:2;padding:10px 15px}.opt.sent .opt-key{float:left;line-height:2}.opt .kj{pointer-events:none}.opt .kj:hover{background:none}.kj{cursor:pointer;border-radius:3px;transition:background .12s}.kj:hover,ruby .kj:hover{background:var(--accent-soft)}.plan-nums{display:flex;gap:18px;flex-wrap:wrap;margin:4px 0 10px}.plan-nums span{font-size:.9rem;color:var(--ink2)}.plan-nums b{font-size:1.25rem;color:var(--ink);margin-right:2px;font-variant-numeric:tabular-nums}.sched-ok{margin-top:14px;padding:8px 12px;border-radius:8px;background:var(--ok-soft);color:var(--ok);font-size:.93rem}.sched-again{margin-top:14px;padding:8px 12px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:.93rem}.gitem:not(.open) .mean{display:flex;align-items:baseline;gap:7px}.gitem:not(.open) .mean-tx{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mean-alt{flex:0 0 auto}.ex-norb{font-size:.68rem;color:var(--ink3);margin-left:8px;white-space:nowrap;border:1px solid var(--line);border-radius:4px;padding:0 5px;vertical-align:1px}.badge.fn{background:var(--hover);color:var(--ink2);font-weight:500}.badge.books{background:var(--src-soft);color:var(--src)}.badge.sense{background:var(--warn-soft);color:var(--warn);font-weight:500}.srcrows{margin:4px 0 12px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.srcrows-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 12px;background:var(--hover);font-size:.82rem;font-weight:700;color:var(--ink2)}.srcrows-h span{font-weight:400;color:var(--ink3);font-size:.78rem}.srcrow{display:grid;grid-template-columns:minmax(84px,auto) 1fr auto;gap:4px 10px;align-items:baseline;width:100%;padding:9px 12px;border:0;border-top:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;font-family:inherit;font-size:.9rem;cursor:pointer;transition:.12s}.srcrow:hover{background:var(--opt-hover)}.srcrow-k{display:flex;gap:5px;align-items:baseline;flex-wrap:wrap}.srcrow-src{font-weight:700;font-size:.875rem;white-space:nowrap}.srcrow-sense{font-size:.72rem;color:var(--warn);background:var(--warn-soft);border-radius:999px;padding:0 6px;white-space:nowrap}.srcrow-mean{color:var(--ink2);font-size:.875rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.srcrow-n{color:var(--ink3);font-size:.75rem;white-space:nowrap;font-variant-numeric:tabular-nums}.srcrow-n.off{color:var(--accent);opacity:.7}.srcrows-more{padding:8px 12px;border-top:1px solid var(--line);font-size:.8rem;color:var(--ink3)}.gp-top{display:flex;align-items:center;gap:10px;margin-bottom:6px}.gp-head{margin-bottom:6px}.gp-title-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.gp-title{font-size:1.55rem;margin:0;font-weight:750;letter-spacing:.01em}.gp-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.gp-mean{color:var(--ink2);margin-top:9px;font-size:1rem;line-height:1.7}.gp-alias{margin-top:8px;font-size:.8rem;color:var(--ink3);display:flex;flex-wrap:wrap;gap:5px;align-items:baseline}.gp-alias code{font-family:inherit;background:var(--hover);color:var(--ink2);border-radius:5px;padding:1px 6px}.gp-h{font-size:.82rem;letter-spacing:.06em;color:var(--ink3);font-weight:700;margin:26px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}.gp-h.first{margin-top:16px}.gp-h-n{font-weight:400;letter-spacing:0;margin-left:8px;font-size:.78rem}.gp-cmp tbody tr{cursor:pointer}.gp-cmp tbody tr:hover td{background:var(--hover)}.gp-cmp td{vertical-align:top}.gp-cmp td:first-child{white-space:nowrap;color:var(--ink)}.gp-cmp td:nth-child(2){white-space:nowrap;color:var(--warn)}.gp-cmp .gp-cmp-n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.gp-cmp .gp-cmp-n.off{color:var(--ink3)}.srcblk{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:13px 16px;margin-bottom:12px;box-shadow:var(--shadow);scroll-margin-top:12px}.srcblk-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.srcblk-src{font-weight:750;font-size:1rem}.srcblk-ch{font-size:.78rem;color:var(--ink3)}.srcblk-pat{font-size:.8rem;color:var(--ink3);margin-top:4px}.srcblk-pat b{color:var(--ink2);font-weight:600}.srcblk dl{margin:8px 0 0;font-size:.933rem}.srcblk dt{font-size:.78rem;color:var(--ink3);font-weight:600;margin-top:10px;letter-spacing:.04em}.srcblk dd{margin:2px 0 0;color:var(--ink)}.srcblk-ex .ex:first-child{margin-top:3px}.progress{height:4px;background:var(--line);border-radius:3px;overflow:hidden;margin-bottom:16px}.progress.bar{flex:1 1 auto;margin:0}.progress i{display:block;height:100%;background:var(--accent);transition:width .3s}.fb{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.fb-head{font-weight:700;font-size:1rem;display:flex;align-items:baseline;justify-content:space-between;gap:10px}.fb-head.ok{color:var(--ok)}.fb-head.bad{color:var(--accent)}.fb-ans{font-weight:400;font-size:.84rem;color:var(--ink3);white-space:nowrap}.fb-ans b{font-weight:700;font-size:1rem;color:var(--ink);margin-left:4px}.fb-ans-long{margin-top:10px;font-size:.92rem;line-height:1.8;color:var(--ink3)}.fb-ans-long b{color:var(--ink);font-weight:600;margin-left:8px}.fb-ans-g{margin-left:2px;color:var(--ink2);font-size:.9rem}.fb-ans-long .fb-ans-g{margin-left:6px;color:var(--ink2);font-weight:400}.fb-sent{margin-top:10px;padding:10px 13px;border-radius:10px;background:var(--hover);color:var(--ink);font-size:1.06rem;line-height:1.95}.fb-fill{font-weight:700;color:var(--ok);border-bottom:2px solid var(--ok);padding:0 2px}.fb-ex{margin-top:12px;font-size:.93rem;line-height:1.8;color:var(--ink2)}.fb-ex-k{color:var(--ink3);font-size:.8rem;margin-right:8px}.fb-gp{font-size:.98rem;color:var(--ink);margin-right:6px}.fb-ex-body{margin-top:6px;color:var(--ink2)}.fb-ex-sub{margin-top:4px;font-size:.86rem;color:var(--ink3)}.olx-tag{font-size:.7rem;color:var(--ink3);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-right:4px}.fb-kp{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.88rem;color:var(--ink3)}.fb-none{margin-top:10px;font-size:.86rem;color:var(--ink3)}.fb-more{margin-top:10px}.olx{margin-top:14px}.olx-hd{font-size:.82rem;color:var(--ink3);margin-bottom:8px}.olx-tip{margin-left:6px;font-size:.78rem;color:var(--ink3);opacity:.85}.olx-row{border:1px solid var(--line);border-radius:9px;padding:8px 11px;margin-bottom:6px;background:var(--panel)}.olx-row.on{border-color:var(--ok);background:var(--ok-soft, rgba(22,163,74,.07))}.olx-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.olx-n{font-size:.8rem;color:var(--ink3)}.olx-s{font-weight:600;font-size:.98rem}.olx-row.on .olx-s{color:var(--ok)}.olx-m{display:inline-flex;gap:8px;font-size:.8rem;color:var(--ink3);flex-wrap:wrap}.olx-pos{padding:0 5px;border:1px solid var(--line);border-radius:5px;font-size:.74rem}.olx-hom{color:var(--ink3);font-size:.72rem;cursor:help;margin-left:-4px}.olx-none{font-size:.78rem;color:var(--ink3);opacity:.7}.olx-badge{margin-left:auto;font-size:.72rem;color:var(--ok);border:1px solid currentColor;border-radius:999px;padding:0 7px}.olx-badge.bad{color:var(--accent)}.olx-kp{font-size:.72rem;color:var(--ok);border:1px solid var(--ok);border-radius:999px;padding:0 6px;margin-right:6px}.fb-sense{color:var(--ink2);font-size:.88rem}.fb-sense:before{content:"·";margin-right:6px;color:var(--ink3)}.olx-z{font-size:.86rem;color:var(--ink2);margin-top:3px}.olx-ex{margin-left:8px;font-size:.82rem;color:var(--ink3)}.pct-cell{display:flex;align-items:center;gap:8px}.bar-row{display:flex;align-items:center;gap:10px;margin:6px 0}.bar-lb{width:88px;font-size:.83rem;color:var(--ink3)}.bar-val{width:76px;text-align:right;font-size:.83rem;color:var(--ink3);font-variant-numeric:tabular-nums}.set-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:8px 0}.set-k{width:64px;font-size:.9rem;color:var(--ink3)}.goal-day{display:inline-flex;align-items:center;gap:6px;font-size:.83rem;color:var(--ink3);white-space:nowrap}.goal-day input{width:56px;text-align:center;padding:7px 4px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-family:inherit;font-size:.95rem}textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-family:inherit;font-size:1rem;resize:vertical;min-height:72px;background:var(--panel);color:var(--ink);outline:none}textarea:focus{border-color:var(--accent)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}th{color:var(--ink3);font-weight:600;font-size:.8rem}th{white-space:nowrap}.statusbar{padding:7px 22px;font-size:12px;color:var(--ink3);border-top:1px solid var(--line);background:var(--statusbar);display:flex;gap:16px;flex-wrap:wrap}.empty{color:var(--ink3);text-align:center;padding:46px 0;font-size:.933rem}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--mask);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal-box{background:var(--panel);border-radius:14px;padding:20px;max-width:560px;width:100%;max-height:86vh;overflow:auto;border:1px solid var(--line)}.toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%) translateY(8px);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:999px;font-size:.87rem;z-index:200;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;max-width:88vw}.toast.on{opacity:.95;transform:translate(-50%) translateY(0)}@media (max-width: 720px){.tabs{display:none}.tabbar{display:flex}.topbar{gap:8px;padding:8px 12px}.brand{font-size:15px;margin-right:auto}.tbar-tx{display:none}.tbar-btn{padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%}.tbar-ico{font-size:18px;line-height:1}.tbar-btn .tbar-ico svg{width:20px;height:20px}.tbar-ico.ico-ruby{font-size:17px}main{padding:14px 14px calc(64px + env(safe-area-inset-bottom,0px))}.statusbar{display:none}.quiz-stem{font-size:1.133rem}button.btn{padding:10px 16px}.seg-btn{padding:9px 14px}.tbar-btn{min-width:44px;min-height:44px}.tabbar button{min-height:56px}button.btn.ghost.ico{min-width:44px;min-height:44px}.seg-btn,.card-acts .btn{min-height:44px}.foldbar button{min-height:40px;padding:4px 6px}.tile{min-height:104px}.gitem .fold{min-height:40px;padding:4px 8px}main{padding:14px 14px calc(72px + env(safe-area-inset-bottom,0px))}.card{padding:14px 15px}.gitem{padding:13px 14px}.cta{padding:16px 18px}}@media (max-width: 380px){.brand{font-size:14px}}@media (max-width: 480px){table{font-size:.84rem}th,td{padding:7px 5px}th{font-size:.74rem;letter-spacing:0}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.rb-lvs{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px;margin:10px 0 16px}.rb-lv{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 13px;font-family:inherit;font-size:1rem;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s;min-height:84px}.rb-lv:hover{border-color:var(--accent)}.rb-lv:active{background:var(--hover)}.rb-lv-h{display:flex;align-items:center;gap:6px}.rb-lv-n{font-size:.8rem;color:var(--ink3);font-variant-numeric:tabular-nums}.rb-lv-sub{display:block;font-size:.78rem;color:var(--ink3);margin-top:4px}.rb-lv .progress{height:5px}.rb-u{text-decoration:underline;text-underline-position:under;text-underline-offset:2px;text-decoration-thickness:1.5px;text-decoration-color:var(--accent)}.rb-blank{display:inline-block;min-width:3.2em;height:1em;margin:0 .15em;border-bottom:1.5px solid var(--ink3);vertical-align:-.18em}.rb-passage{background:var(--hover);border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin:0 0 14px;font-size:.95rem;line-height:2;max-height:42vh;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.rb-passage .rb-blank{min-width:2.6em}.psg-zh{margin:-6px 0 14px}.psg-zh>summary{cursor:pointer;font-size:.85rem;color:var(--ink3);padding:3px 2px;list-style:none}.psg-zh>summary::-webkit-details-marker{display:none}.psg-zh>summary:before{content:"▸ "}.psg-zh[open]>summary:before{content:"▾ "}.psg-zh-body{white-space:pre-wrap;word-break:break-word;background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:10px 13px;margin-top:4px;font-size:.92rem;line-height:1.9;color:var(--ink2);max-height:40vh;overflow-y:auto}.rb-item .pat.sm{line-height:1.7}.ex-slot{letter-spacing:-.05em;color:var(--ink3)}.ex-star{color:var(--accent);font-size:1.05em}.ex-opts{list-style:none;padding:0;margin:8px 0 6px;display:flex;flex-direction:column;gap:3px}.ex-opt{font-size:.98rem;line-height:1.8;color:var(--ink2)}.ex-opt b{display:inline-block;min-width:1.5em;margin-right:6px;color:var(--ink3);font-weight:600;font-variant-numeric:tabular-nums}.ex-opt.ok{color:var(--ok);font-weight:600}.ex-opt.ok b{color:var(--ok)}.ex-ans{color:var(--ok);margin:4px 0 0}.rb-passage .ex-slot{color:var(--ink3)}.grp-q{border-top:1px dashed var(--line)}.grp-q:first-of-type{border-top:0}.opt.sel{border-color:var(--accent);background:var(--opt-hover)}.grp-fb{margin:6px 0 4px;font-size:13px;color:var(--ink2)}.grp-fb details>summary{cursor:pointer;color:var(--accent)}.grp-card .rb-passage{max-height:none;overflow:visible}@media (max-width: 480px){.rb-lvs{grid-template-columns:1fr 1fr;gap:8px}.rb-lv{min-height:78px;padding:10px 11px}}.mock-top{position:sticky;top:0;z-index:20;margin:-4px 0 0;padding:10px 0 8px;background:var(--topbar);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.mock-timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:1.1rem;min-width:64px;text-align:right}.mock-timer.warn{color:var(--accent)}.mock-card{margin-top:12px}.mock-card-sum{cursor:pointer;font-weight:600}.mock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px;margin-top:10px}.mock-cell{height:36px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink2);font:inherit;cursor:pointer}.mock-cell.done{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.mock-cell.flag{box-shadow:inset 0 0 0 2px var(--warn)}.mock-cell.cur{outline:2px solid var(--accent);outline-offset:1px}.mock-q{margin:8px 0}.mock-q>summary{cursor:pointer;font-weight:600;line-height:1.6}.opt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.ex-opt.bad,.ex-opt.bad b{color:var(--accent)}.ls-script-box{margin:2px 0 0}.ls-script-box>summary{cursor:pointer;font-weight:600}.ls-script{margin:10px 0 0;padding:10px 12px;max-height:52vh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:.92rem;line-height:1.85;color:var(--ink2)}.lq-prob{margin:18px 0 6px;font-weight:600}.lq-prob .tiny{font-weight:400}.lq-q{margin:8px 0;padding:10px 12px}.lq-no{font-size:.9rem;color:var(--ink2);margin-bottom:6px}.lq-opts{gap:6px}.lq-opts .opt{padding:8px 10px}.adv{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.adv>summary{cursor:pointer;font-size:.867rem;color:var(--ink3);list-style:none;-webkit-user-select:none;user-select:none}.adv>summary::-webkit-details-marker{display:none}.adv>summary:before{content:"＋ ";color:var(--accent);font-weight:700}.adv[open]>summary:before{content:"－ "}.adv>summary:hover{color:var(--ink)}.rf-ch-n{font-size:.75rem;color:var(--ink3);font-weight:500;margin-left:4px}.rf-ch-desc{margin:-2px 0 10px}.rf-ch-desc .note{background:var(--src-soft);border-radius:8px;padding:9px 12px}.rf-ch-desc .note-i{font-size:.833rem;line-height:1.65;color:var(--ink2)}.rf-notehint{font-size:.78rem;color:var(--ink3);margin-top:8px}.ex-overview{display:flex;gap:10px;margin:10px 0 4px}.ex-ov{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.ex-ov-k{font-size:.78rem;color:var(--ink3)}.ex-ov-v{font-size:1.2rem;font-weight:700;color:var(--ink)}.ex-ov-v small{font-size:.75rem;font-weight:500;color:var(--ink3)}.ex-sec-h{font-size:.867rem;font-weight:700;color:var(--src);margin:14px 0 2px;padding-left:8px;border-left:3px solid var(--src)}.btn i{font-style:normal;font-size:.74em;font-weight:500;color:var(--ink3);margin-left:4px}.btn i.real{color:var(--ok)}.btn i.prac{color:var(--warn)}.vs-list{display:flex;flex-direction:column;gap:10px}.vs-card{display:block;width:100%;text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;font-family:inherit;color:var(--ink);box-shadow:var(--shadow);transition:.15s}.vs-card:hover{border-color:var(--accent)}.vs-card-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.vs-title{font-size:1.1rem;font-weight:700}.vs-card-sub{display:block;font-size:.8rem;color:var(--src);margin-top:3px}.vs-card-lead{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.9rem;color:var(--ink2);margin-top:6px;line-height:1.6}.vs-card-cols{display:block;font-size:.78rem;color:var(--ink3);margin-top:7px}.vs-pick{margin:14px 0 4px;padding:13px 16px;border-radius:var(--radius);background:var(--accent-soft);border-left:4px solid var(--accent)}.vs-pick-h{font-size:.78rem;font-weight:700;letter-spacing:.08em;color:var(--accent);margin-bottom:7px}.vs-pick-i{font-size:.93rem;color:var(--ink);line-height:1.7;display:flex;gap:8px}.vs-pick-i+.vs-pick-i{margin-top:4px}.vs-pick-i b{flex:0 0 auto;min-width:1.2em;height:1.2em;margin-top:.22em;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;border-radius:50%;background:var(--accent);color:#fff}.vs-tbwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.vs-tb{min-width:520px}.vs-tb th.vs-tb-k,.vs-tb td.vs-tb-k{position:sticky;left:0;z-index:1;background:var(--panel);color:var(--ink2);font-weight:600;white-space:nowrap;text-align:left;border-right:1px solid var(--line)}.vs-tb thead th.vs-tb-k{background:var(--hover)}.vs-tb thead th{white-space:nowrap}.vs-tb td{vertical-align:top}.vs-tb td.vs-no{color:var(--accent)}.vs-mem{scroll-margin-top:12px}.vs-desc{font-size:.933rem;color:var(--ink);margin-top:8px;line-height:1.75}.vs-ex{margin-top:6px}.vs-memtrap{margin-top:8px;padding:7px 11px;border-radius:8px;background:var(--warn-soft);color:var(--warn);font-size:.85rem;line-height:1.6}.vs-traps{border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;background:var(--panel)}.vs-trap-i{font-size:.9rem;color:var(--ink2);line-height:1.7;position:relative;padding-left:15px}.vs-trap-i+.vs-trap-i{margin-top:7px}.vs-trap-i:before{content:"!";position:absolute;left:0;top:.18em;width:1.05em;height:1.05em;line-height:1.05em;text-align:center;font-size:.72rem;font-weight:700;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.vs-pager{display:flex;justify-content:space-between;gap:10px;margin:26px 0 10px}.vs-pager .btn{max-width:48%}.gp-vs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0 2px;padding:10px 13px;background:var(--src-soft);border-radius:10px}.gp-vs-k{font-size:.76rem;font-weight:700;letter-spacing:.08em;color:var(--src)}.gp-vs-b{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:4px 12px;font-family:inherit;font-size:.86rem;cursor:pointer;transition:.15s}.gp-vs-b:hover{border-color:var(--src);color:var(--src)}.gp-vs-b span{color:var(--ink3);font-size:.8em;margin-left:4px}.vs-entry{margin-top:10px}.vs-scroll-hint{display:none;font-size:.78rem;color:var(--ink3);margin-top:6px;text-align:right}@media (max-width: 720px){.vs-scroll-hint{display:block}}.func-mx{margin:4px 0 14px}.func-mx>summary{font-size:.84rem;color:var(--ink3);line-height:2;padding:2px 0}.func-mx[open]>summary{color:var(--ink2)}.mx-tb{min-width:430px}.mx-tb th.mx-k{position:sticky;left:0;z-index:1;background:var(--panel);color:var(--ink2);font-weight:600;font-size:.78rem;white-space:nowrap;text-align:left;border-right:1px solid var(--line)}.mx-tb thead th.mx-k{background:var(--hover)}.mx-tb td{padding:0;text-align:center}.mx-c{width:100%;min-height:30px;border:0;background:transparent;color:var(--src);font-family:inherit;font-size:.82rem;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:6px}.mx-c:hover{background:var(--src-soft)}.mx-c.on{background:var(--accent);color:#fff}.mx-0{color:var(--ink3);opacity:.35;font-size:.8rem}.vs-lvseg{display:flex;gap:2px;overflow-x:auto;max-width:100%;margin-bottom:12px}.vs-lvseg .seg-btn{flex:0 0 auto}.pwa-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:flex-start;gap:10px;padding:11px 14px calc(11px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -6px 18px #00000012;font-size:.86rem;line-height:1.55;color:var(--ink2)}.pwa-bar .pwa-tx{flex:1 1 auto;min-width:0}.pwa-bar .pwa-tx b{color:var(--ink);font-weight:600}.pwa-bar .pwa-acts{flex:0 0 auto;display:flex;gap:6px}.pwa-bar .pwa-btn{min-height:30px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink2);font-family:inherit;font-size:.82rem;cursor:pointer;white-space:nowrap}.pwa-bar .pwa-btn:hover{border-color:var(--accent);color:var(--accent)}.pwa-bar .pwa-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}@media (max-width: 720px){.pwa-bar{bottom:calc(52px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 14px #00000012}.pwa-bar .pwa-acts{flex-direction:column}}[lang=ja]{font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,YuGothic,Meiryo,Noto Sans JP,Source Han Sans JP,sans-serif}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:1px}rt{font-size:max(9px,.52em)}.topbar{padding-top:calc(10px + env(safe-area-inset-top,0px))}.modal-box{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-box:focus{outline:none}button,a,input,select,textarea,summary{touch-action:manipulation}*{scrollbar-color:var(--line) transparent}.skip-link{position:absolute;left:8px;top:-56px;z-index:999;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-size:.9rem;text-decoration:none;transition:top .15s}.skip-link:focus{top:calc(8px + env(safe-area-inset-top,0px))}.tb-tx{font-size:11px}.errbar{position:fixed;left:50%;transform:translate(-50%);top:calc(10px + env(safe-area-inset-top,0px));z-index:300;max-width:min(92vw,720px);display:flex;align-items:center;gap:8px;background:var(--panel);color:var(--ink);border:1px solid var(--accent);border-left-width:4px;border-radius:10px;padding:9px 12px;font-size:.87rem;box-shadow:var(--shadow)}.errbar b{color:var(--accent);flex:0 0 auto}.errbar span{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.errbar button{border:0;background:transparent;color:var(--ink3);font-size:1.1rem;cursor:pointer;padding:0 4px}@media (max-width: 720px){.topbar{padding-top:calc(8px + env(safe-area-inset-top,0px))}input,select,textarea{font-size:max(16px,1rem)}input[type=number]{min-height:40px;padding:8px 10px}.hero-meta input{width:64px;min-height:42px}}.sol-sec{margin-top:12px}.sol-sec:first-child{margin-top:6px}.sol-h{font-size:.76rem;letter-spacing:.08em;color:var(--ink3);margin-bottom:3px}.sol-li{font-size:.88rem;line-height:1.78;color:var(--ink2)}.sol-n{color:var(--ink3);font-weight:600;margin-right:6px}.sol-w{color:var(--ink3)}.rb-ans{margin:2px 0 8px;font-size:.95rem}.rb-ans .sub{margin-right:6px}.vs-toolbar{margin-top:12px;flex-wrap:wrap;gap:8px}.vs-norb-note{font-size:.8rem;color:var(--src);background:var(--panel);border-left:3px solid var(--line);padding:7px 12px;border-radius:6px;margin:0 0 10px}.vs-quiz-q{margin:14px 0;padding:14px 16px;border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.vs-quiz-q .ex{margin:0}.vs-quiz-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:16px 0}.vs-opt{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.vs-opt:hover:not(:disabled){border-color:var(--accent)}.vs-opt:disabled{cursor:default;opacity:.88}.vs-opt.ok{border-color:#1d8348;background:#e8f6ee}.vs-opt.bad{border-color:#c0392b;background:#fdecea}.vs-fb{padding:12px 16px;border-radius:var(--radius);background:var(--panel);border-left:4px solid var(--line);font-size:.92rem;line-height:1.7}.vs-fb.ok{border-left-color:#1d8348}.vs-fb.bad{border-left-color:#c0392b}.vs-fb-h{font-weight:700;margin-bottom:4px}.vs-fb-s{color:var(--src);font-size:.85rem}.vs-fb-t{margin-top:6px;color:#c0392b;font-size:.85rem}.vs-quiz-pick{margin-top:18px;font-size:.86rem;color:var(--ink2);line-height:1.7}.vs-quiz-pick b{color:var(--accent)}.vs-score{text-align:center;padding:24px 0}.vs-score-n{font-size:2rem;font-weight:700;color:var(--accent)}
