:root{--bg:#14171a;--panel:#1b1f23;--panel2:#22272c;--line:#2c3238;--ink:#e8e6e1;--dim:#a8a49c;--mute:#6f6b64;--accent:#c98b6b;--teal:#7fa88c;--danger:#c4695e;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px}button,input,textarea{font-family:inherit;font-size:inherit;color:inherit}.btn{background:var(--panel2);border:1px solid var(--line);color:var(--dim);cursor:pointer;white-space:nowrap;border-radius:7px;padding:7px 13px}.btn:hover{border-color:var(--mute);color:var(--ink)}.btn:disabled{opacity:.35;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1a1006;font-weight:600}.btn.danger:hover{border-color:var(--danger);color:var(--danger)}.btn.big{padding:11px 20px;font-size:.95rem}.app{grid-template-columns:250px 1fr;height:100%;display:grid}.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;padding:18px 14px;display:flex;overflow-y:auto}.brand{font-family:var(--serif);color:var(--accent);margin-bottom:22px;font-size:1.3rem;line-height:1.1}.brand span{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-top:4px;font-size:.6rem;display:block}.cls-head{letter-spacing:.15em;text-transform:uppercase;color:var(--mute);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.6rem;display:flex}.cls-head button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:1.1rem;line-height:1}.cls{flex-direction:column;gap:3px;display:flex}.cls button{text-align:left;color:var(--dim);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:8px 9px;font-size:.86rem;display:flex}.cls button:hover{background:var(--panel2)}.cls button.on{background:var(--panel2);color:var(--ink)}.cls i{border-radius:50%;flex:none;width:9px;height:9px}.hint,.space{color:var(--mute);font-size:.72rem;line-height:1.5}.space{padding-top:10px}.keep{flex-direction:column;gap:6px;margin-top:auto;padding-top:18px;display:flex}.keep .btn{text-align:center;cursor:pointer;width:100%;font-size:.78rem}.main{padding:26px 30px 60px;overflow-y:auto}.blank{text-align:center;max-width:460px;margin:14vh auto}.blank h1{font-family:var(--serif);color:var(--accent);margin:0 0 12px;font-size:2.4rem}.blank p{color:var(--dim);margin-bottom:22px;line-height:1.7}.head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.head h1{font-family:var(--serif);align-items:center;gap:10px;margin:0;font-size:1.6rem;display:flex}.head h1 i{border-radius:50%;width:11px;height:11px}.tabs{gap:4px;display:flex}.tabs button{color:var(--mute);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 12px}.tabs button.on{background:var(--panel2);color:var(--ink)}.tabs b{color:var(--accent);margin-left:5px;font-weight:600}.acts{gap:7px;margin-left:auto;display:flex}.empty{color:var(--mute);padding:26px 0}.files{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.files li{background:var(--panel);border:1px solid var(--line);border-radius:9px;align-items:stretch;display:flex;overflow:hidden}.f-open{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;padding:13px 15px}.f-open:hover{background:var(--panel2)}.f-name{color:var(--ink);font-size:.95rem;display:block}.f-meta{color:var(--mute);margin-top:3px;font-size:.75rem;display:block}.f-del{border:none;border-left:1px solid var(--line);color:var(--mute);cursor:pointer;background:0 0;width:44px;font-size:1.1rem}.f-del:hover{color:var(--danger)}.search{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:100%;margin-bottom:14px;padding:10px 13px}.notes{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.notes li{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:13px 15px 13px 20px;position:relative}.notes li.todo{border-left:2px solid var(--accent)}.n-dot{border-radius:50%;width:6px;height:6px;position:absolute;top:16px;left:8px}.n-text{font-family:var(--serif);color:var(--ink);margin:0;font-size:1rem;line-height:1.6}.n-note{color:var(--teal);margin:7px 0 0;font-size:.85rem;line-height:1.6}.n-note.dim{color:var(--mute);font-style:italic}.n-src{color:var(--mute);margin-top:8px;font-size:.72rem;display:block}.drop{border:3px dashed var(--accent);color:var(--accent);z-index:100;pointer-events:none;text-align:center;background:#14171ae6;justify-content:center;align-items:center;padding:40px;font-size:1.35rem;line-height:1.5;display:flex;position:fixed;inset:0}.reader{flex-direction:column;height:100%;display:flex;overflow-y:auto}.rd-bar{background:var(--panel);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:14px;padding:11px 16px;display:flex;position:sticky;top:0}.rd-name{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;max-width:34ch;font-size:.9rem;overflow:hidden}.rd-pager,.rd-zoom{color:var(--mute);align-items:center;gap:7px;font-size:.8rem;display:flex}.rd-pager{margin-left:auto}.rd-pager input{text-align:center;background:var(--panel2);border:1px solid var(--line);border-radius:6px;width:52px;padding:5px}.rd-body{grid-template-columns:1fr 380px;align-items:start;gap:20px;padding:20px;display:grid}.rd-stage{justify-content:center;display:flex;position:relative}.rd-msg{color:var(--mute);padding:60px}.rd-msg.err{color:var(--danger)}.rd-page{line-height:1;position:relative;box-shadow:0 10px 40px #00000080}.rd-page canvas{border-radius:2px;display:block}.rd-text{opacity:.25;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2;line-height:1;position:absolute;inset:0;overflow:hidden}.rd-text span,.rd-text br{color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}.rd-text ::selection{background:#c98b6b8c}.rd-marks{pointer-events:none;z-index:1;position:absolute;inset:0}.rd-mark{opacity:.32;mix-blend-mode:normal;border-radius:2px;position:absolute}.rd-pick{background:var(--panel);border:1px solid var(--line);z-index:40;border-radius:11px;align-items:center;gap:6px;padding:9px 12px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #0000008c}.rd-pick>span{color:var(--mute);margin-right:3px;font-size:.72rem}.rd-pick button{cursor:pointer;color:#1a1006;border:none;border-radius:6px;padding:6px 11px;font-size:.78rem;font-weight:600}.rd-cancel{color:var(--mute)!important;background:0 0!important;font-weight:400!important}.rd-side{max-height:calc(100vh - 100px);position:sticky;top:76px;overflow-y:auto}.rd-side h3{letter-spacing:.15em;text-transform:uppercase;color:var(--mute);margin:0 0 10px;font-size:.62rem}.rd-empty{color:var(--mute);font-size:.8rem;line-height:1.6}.rd-h{background:var(--panel);border:1px solid var(--line);border-radius:9px;margin-bottom:7px;padding:11px 12px;position:relative}.rd-h.on{border-color:var(--accent)}.rd-hjump{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.7rem}.rd-hdot{border-radius:50%;width:7px;height:7px;margin-left:7px;display:inline-block}.rd-htext{font-family:var(--serif);color:var(--dim);margin:6px 0 0;font-size:.9rem;line-height:1.55}.rd-hnote{background:var(--panel2);border:1px solid var(--line);resize:vertical;border-radius:6px;width:100%;min-height:34px;margin-top:8px;padding:7px;font-size:.82rem}.rd-hdel{color:var(--mute);cursor:pointer;background:0 0;border:none;padding:6px 0 0;font-size:.7rem}.rd-hdel:hover{color:var(--danger)}.qs{background:var(--panel);border:1px solid var(--line);border-radius:11px;margin:8px 20px 60px;padding:16px 18px}.qs-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.qs-head h3{font-family:var(--serif);margin:0;font-size:1.1rem}.qs-prog{background:var(--panel2);border-radius:3px;flex:1;min-width:80px;height:4px;overflow:hidden}.qs-prog i{background:var(--teal);height:100%;transition:width .25s;display:block}.qs-count{color:var(--mute);font-size:.75rem}.qs-modes{gap:3px;display:flex}.qs-modes button{color:var(--mute);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 10px;font-size:.76rem}.qs-modes button.on{border-color:var(--line);background:var(--panel2);color:var(--ink)}.qs-add textarea{background:var(--panel2);border:1px solid var(--line);resize:vertical;border-radius:8px;width:100%;padding:11px;line-height:1.6}.qs-addrow{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.qs-addrow span{color:var(--mute);font-size:.74rem}.qs-empty{color:var(--mute);margin:0;font-size:.85rem;line-height:1.6}.qs-list{flex-direction:column;gap:10px;margin:0;padding-left:22px;display:flex}.qs-list li{color:var(--ink)}.qs-list li.done{color:var(--mute)}.qs-list li.done .qs-q span{text-decoration:line-through}.qs-q{align-items:flex-start;gap:9px;display:flex}.qs-q label{cursor:pointer;flex:1;align-items:flex-start;gap:9px;line-height:1.6;display:flex}.qs-goto,.qs-del{color:var(--mute);cursor:pointer;background:0 0;border:none;flex:none;font-size:.74rem}.qs-goto:hover{color:var(--accent)}.qs-del:hover{color:var(--danger)}.qs-a{border-left:2px solid var(--line);color:var(--teal);white-space:pre-wrap;margin:6px 0 0 27px;padding-left:11px;font-size:.85rem;line-height:1.65}.qs-one{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:16px}.qs-onehead{color:var(--mute);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:.76rem;display:flex}.qs-onetext{font-family:var(--serif);margin:0 0 12px;font-size:1.15rem;line-height:1.55}.qs-onebox{background:var(--bg);border:1px solid var(--line);resize:vertical;border-radius:8px;width:100%;min-height:150px;padding:12px;font-size:.92rem;line-height:1.7}.qs-onefoot{flex-wrap:wrap;align-items:center;gap:12px;margin-top:11px;display:flex}.qs-donebox{color:var(--dim);cursor:pointer;align-items:center;gap:7px;margin-right:auto;font-size:.8rem;display:flex}@media (width<=900px){.app{grid-template-rows:auto 1fr;grid-template-columns:1fr}.side{border-right:none;border-bottom:1px solid var(--line);padding:12px 16px;overflow:visible}.brand{margin-bottom:10px}.cls{flex-flow:wrap;gap:4px}.cls button{padding:6px 9px}.cls-new{flex:100%}.keep{flex-direction:row;margin-top:10px;padding-top:0}.keep .btn{flex:1;width:auto}.space{display:none}.main{padding:18px 16px 60px}.acts{flex-wrap:wrap;margin-left:0}.rd-body{grid-template-columns:1fr}.rd-side{max-height:none;position:static}}.btn.on{border-color:var(--teal);color:var(--teal)}.rd-dict{z-index:60;background:var(--panel);border:1px solid var(--line);pointer-events:none;border-radius:9px;max-width:330px;padding:11px 13px;position:fixed;box-shadow:0 14px 44px #0009}.rd-dword{font-family:var(--serif);color:var(--accent);font-size:1.05rem}.rd-dword i{font-family:var(--sans);color:var(--mute);margin-left:8px;font-size:.75rem;font-style:normal}.rd-ddef{color:var(--dim);margin:5px 0 0;font-size:.82rem;line-height:1.6}.rd-dsrc{color:var(--mute);margin-top:7px;font-size:.62rem;display:block}.cls-new{background:var(--panel2);border:1px solid var(--accent);border-radius:7px;width:100%;margin-top:3px;padding:8px 9px;font-size:.85rem}.confirm{color:var(--dim);align-items:center;gap:7px;font-size:.8rem;display:flex}.toast{background:var(--panel);border:1px solid var(--accent);color:var(--ink);z-index:70;cursor:pointer;border-radius:9px;padding:11px 16px;font-size:.85rem;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #0000008c}.rd-scan{background:var(--panel);border:1px solid var(--line);max-width:380px;color:var(--mute);text-align:center;border-radius:8px;padding:9px 12px;font-size:.76rem;line-height:1.5;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.at-wrap{display:block;position:relative}.at-state{pointer-events:none;font-size:.6rem;font-style:normal;transition:opacity .3s;position:absolute;bottom:6px;right:8px}.at-dirty{color:var(--mute)}.at-saved{color:var(--teal);opacity:0;animation:1.8s fade}@keyframes fade{0%{opacity:1}70%{opacity:1}to{opacity:0}}.qs-sets{scrollbar-width:none;align-items:center;gap:5px;margin:0 0 12px;padding-bottom:2px;display:flex;overflow-x:auto}.qs-sets::-webkit-scrollbar{display:none}.qs-set{cursor:pointer;background:var(--panel2);border:1px solid var(--line);color:var(--dim);font:inherit;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:5px 11px;font-size:.78rem;display:flex}.qs-set:hover{color:var(--ink)}.qs-set.on{background:var(--bg);border-color:var(--accent);color:var(--ink)}.qs-setn{color:var(--mute);font-variant-numeric:tabular-nums;font-size:.68rem;font-style:normal}.qs-set.on .qs-setn{color:var(--teal)}.qs-setx{color:var(--mute);padding:0 1px;font-size:.9rem;line-height:1}.qs-setx:hover{color:var(--danger)}.qs-setname{background:var(--bg);border:1px solid var(--accent);width:140px;color:var(--ink);font:inherit;border-radius:999px;flex:none;padding:5px 11px;font-size:.78rem}.qs-setadd{cursor:pointer;border:1px dashed var(--line);color:var(--mute);font:inherit;white-space:nowrap;background:0 0;border-radius:999px;flex:none;padding:5px 11px;font-size:.78rem}.qs-setadd:hover{color:var(--accent);border-color:var(--accent)}.qs-kill{background:var(--panel2);border:1px solid var(--danger);color:var(--ink);border-radius:8px;flex-wrap:wrap;align-items:center;gap:9px;margin:0 0 12px;padding:9px 12px;font-size:.82rem;line-height:1.5;display:flex}.qs-side .qs-sets{margin-left:-2px}.qs-err{border:1px solid var(--danger);color:#f0c4bf;background:#c4695e1f;border-radius:8px;margin:0 0 12px;padding:9px 12px;font-size:.82rem;line-height:1.55}.rd-tabs{background:var(--bg);z-index:2;gap:4px;margin-bottom:12px;padding-bottom:8px;display:flex;position:sticky;top:0}.rd-tabs button{border:1px solid var(--line);color:var(--mute);cursor:pointer;background:0 0;border-radius:6px;flex:1;padding:7px 9px;font-size:.72rem}.rd-tabs button.on{background:var(--panel);color:var(--ink);border-color:var(--accent)}.rd-tabs button i{opacity:.6;margin-left:4px;font-style:normal}.qs-side{background:0 0;border:0;padding:0}.qs-side .qs-head{flex-direction:column;align-items:stretch;gap:8px}.qs-side .qs-modes{width:100%}.qs-side .qs-modes button{flex:1}.qs-side textarea{min-height:80px}.qs-bar{flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0 4px;display:flex}.qs-hint{color:var(--mute);font-size:13px}.qs-loose{border:1px solid var(--line);border-radius:10px;margin:14px 0 22px;padding:16px}.rd-scroll{flex-direction:column;align-items:center;gap:18px;display:flex}.rd-scroll .rd-page{scroll-margin-top:72px}.rd-scroll .rd-active{box-shadow:0 0 0 2px var(--accent,#7aa7d8)}.rd-spacer{background:var(--panel2,#1a1d23);border-radius:2px;justify-content:center;align-items:center;display:flex;position:relative}.rd-spn{color:var(--dim,#8b93a1);opacity:.5;font-size:.8rem}.rd-mode{border:1px solid var(--line);border-radius:8px;flex:none;display:inline-flex;overflow:hidden}.rd-mode button{font:inherit;cursor:pointer;white-space:nowrap;color:var(--dim);border:0;border-right:1px solid var(--line);background:0 0;padding:7px 11px;font-size:.78rem}.rd-mode button:last-child{border-right:0}.rd-mode button:hover{color:var(--fg,#e9eaee)}.rd-mode button.on{background:var(--accent,#7aa7d8);color:#0f1115;font-weight:600}.rd-mode button:focus-visible{outline:2px solid var(--accent,#7aa7d8);outline-offset:-2px}.rd-sidebtn,.rd-backdrop{display:none}@media (width<=900px){.rd-sidebtn{display:inline-block}.rd-side{z-index:40;background:var(--panel);border-left:1px solid var(--line);width:min(380px,92vw);max-height:none;padding:14px 14px 40px;transition:transform .18s;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(101%)}.rd-side.open{transform:none;box-shadow:-18px 0 44px #00000073}.rd-backdrop{z-index:35;background:#00000073;display:block;position:fixed;inset:0}}@media (prefers-reduced-motion:reduce){.rd-side{transition:none}}.rd-read{flex:none;align-items:center;gap:6px;display:inline-flex}.rd-read select{font:inherit;background:var(--panel2);color:var(--dim);border:1px solid var(--line);cursor:pointer;border-radius:7px;padding:5px 6px;font-size:.74rem}.rd-read select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rd-read .btn.on{background:var(--teal);color:#12161a;font-weight:600}.rd-ttsnote{z-index:50;background:var(--panel2);max-width:min(520px,92vw);color:var(--ink);border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:.84rem;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 14px 34px #00000073}.rd-ttsnote button{color:var(--mute);cursor:pointer;font:inherit;background:0 0;border:0;padding:2px 4px}.rd-ttsnote button:hover{color:var(--ink)}.rd-readhere{z-index:6;font:inherit;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);cursor:pointer;opacity:0;background:#14181cd1;border-radius:5px;padding:.3rem .5rem;font-size:.68rem;transition:opacity .15s;position:absolute;top:8px;right:8px}.rd-page:hover .rd-readhere,.rd-active .rd-readhere{opacity:1}.rd-readhere:hover{color:var(--ink);border-color:var(--accent)}.rd-readhere:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:1px}.np-title{min-width:0;color:var(--ink);font:inherit;font-family:var(--serif);background:0 0;border:1px solid #0000;border-radius:6px;flex:1;padding:5px 8px;font-size:1.05rem}.np-title:hover{border-color:var(--line)}.np-title:focus{border-color:var(--accent);background:var(--panel2);outline:none}.np-body{flex:1;grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;padding:24px 20px;display:grid}.np-body:has(.np-side){grid-template-columns:minmax(0,1fr) 380px}.np-sheet{width:100%;max-width:760px;margin:0 auto}.np-sheet .at-wrap{display:block}.np-text,.rd-pnotes{box-sizing:border-box;resize:vertical;background:var(--panel);border:1px solid var(--line);width:100%;color:var(--ink);font-family:var(--serif);border-radius:10px;padding:18px 20px;line-height:1.65}.np-text{min-height:calc(100vh - 140px);font-size:1.05rem}.rd-pnotes{min-height:calc(100vh - 220px);padding:14px 16px;font-size:.95rem}.np-text:focus,.rd-pnotes:focus{border-color:var(--accent);outline:none}.f-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--teal);vertical-align:1px;border:1px solid;border-radius:4px;margin-right:6px;padding:1px 5px;font-size:.62rem;display:inline-block}@media (width<=900px){:is(.np-body,.np-body:has(.np-side)){grid-template-columns:minmax(0,1fr);padding:16px}.np-text{min-height:calc(100vh - 110px)}}
