*,:before,:after{box-sizing:border-box}:root{--bg:#fbf9f5;--paper:#fff;--surface:#f5f0e7;--line:#e7ded0;--line-2:#d6c9b4;--ink:#191610;--ink-2:#5d564b;--ink-3:#8d8578;--brand:#2c6e49;--brand-hover:#235739;--brand-soft:#edf5ef;--brand-line:#c9e0d2;--wood:#b08968;--wood-deep:#8a6a4f;--wood-soft:#f8f1e6;--danger:#b3261e;--danger-soft:#fdf0ef;--warn:#9a6b12;--warn-soft:#fdf5e4;--r-sm:7px;--r:11px;--r-lg:16px;--sh-1:0 1px 2px #1e180c0d;--sh-2:0 8px 24px -12px #1e180c2e;--sh-3:0 28px 60px -30px #1e180c4d;--sans:system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Roboto, sans-serif;--serif:"Songti SC", "Source Han Serif SC", "Noto Serif CJK SC", Georgia, "Times New Roman", serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.65}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:640;line-height:1.3}.top{z-index:30;-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);background:#fbf9f5eb;align-items:center;gap:14px;padding:11px 20px;display:flex;position:sticky;top:0}.top .mark{letter-spacing:-.01em;white-space:nowrap;font-weight:700}.top .mark span{color:var(--brand)}.top .sep{background:var(--line-2);width:1px;height:18px}.top .title{text-overflow:ellipsis;white-space:nowrap;font-weight:620;overflow:hidden}.top .spacer{flex:1}.top .meta{color:var(--ink-3);white-space:nowrap;font-size:12.5px}.wrap{max-width:1500px;margin:0 auto;padding:22px 20px 80px}.wrap.narrow{max-width:780px}.btn{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:7px 13px;font-size:13.5px;transition:background .12s,border-color .12s,transform 60ms;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface);border-color:var(--wood)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.btn.danger{color:var(--danger);border-color:#e8cdcb}.btn.danger:hover:not(:disabled){background:var(--danger-soft)}.btn.tiny{border-radius:6px;padding:3px 8px;font-size:12px}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface);border-color:var(--line)}.btn.block{justify-content:center;width:100%}input:not([type=checkbox]):not([type=radio]),textarea,select{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);width:100%;color:var(--ink);font:inherit;padding:8px 11px;font-size:14px}textarea{resize:vertical;line-height:1.6}input:focus,textarea:focus,select:focus{outline:2px solid var(--brand-line);outline-offset:-1px;border-color:var(--brand)}label.field{margin-bottom:12px;display:block}label.field>span{color:var(--ink-2);margin-bottom:4px;font-size:12.5px;font-weight:560;display:block}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.muted{color:var(--ink-3);font-size:13px}.err{border-radius:var(--r-sm);background:var(--danger-soft);color:var(--danger);border:1px solid #e8cdcb;padding:8px 12px;font-size:13px}.hint{border:1px solid var(--line);border-left:3px solid var(--wood);border-radius:var(--r-sm);background:var(--wood-soft);color:var(--ink-2);padding:10px 13px;font-size:13px}.chip{border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11.5px;line-height:1.7;display:inline-flex}.chip.green{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand)}.chip.wood{background:var(--wood-soft);color:var(--wood-deep);border-color:#e7d7c0}.chip.warn{background:var(--warn-soft);color:var(--warn);border-color:#ecd9ab}.chip.red{background:var(--danger-soft);color:var(--danger);border-color:#e8cdcb}.chip.solid{background:var(--brand);border-color:var(--brand);color:#fff}.shelf{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;display:grid}.book{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);box-shadow:var(--sh-1);color:inherit;padding:16px 18px;transition:box-shadow .15s,transform .15s,border-color .15s;display:block}.book:hover{box-shadow:var(--sh-2);border-color:var(--wood);text-decoration:none;transform:translateY(-2px)}.book h3{margin-bottom:3px;font-size:17px}.book .logline{color:var(--ink-2);min-height:34px;margin:4px 0 12px;font-size:13px}.book .stats{flex-wrap:wrap;gap:6px;display:flex}.board{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.05fr);align-items:start;gap:16px;display:grid}@media (max-width:1180px){.board{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (max-width:780px){.board{grid-template-columns:minmax(0,1fr)}}.col{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);box-shadow:var(--sh-1);overflow:hidden}.col-head{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:8px;padding:11px 14px;display:flex}.col-head h2{font-size:14px}.col-head .spacer{flex:1}.col-body{flex-direction:column;gap:9px;max-height:calc(100vh - 260px);padding:12px 14px;display:flex;overflow-y:auto}.col-body.tall{max-height:calc(100vh - 200px)}.group-label{letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase;margin-top:6px;font-size:11.5px;font-weight:620}.group-label:first-child{margin-top:0}.empty{text-align:center;color:var(--ink-3);padding:22px 8px;font-size:13px}.card{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);padding:10px 12px;transition:border-color .12s,background .12s}.card:hover{border-color:var(--line-2)}.card.tap{cursor:pointer}.card .card-top{align-items:flex-start;gap:8px;display:flex}.card .card-top .spacer{flex:1}.card p{color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0;font-size:13.5px}.card .acts{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.card.pinned{border-color:var(--brand-line);background:linear-gradient(0deg, var(--brand-soft), var(--brand-soft)) padding-box}.card.core{border-left:3px solid var(--brand)}.catch{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);box-shadow:var(--sh-1);margin-bottom:16px;padding:12px 14px}.catch textarea{border:none;min-height:42px;padding:2px 0;font-size:15px}.catch textarea:focus{outline:none}.catch .bar{border-top:1px solid var(--line);align-items:center;gap:8px;padding-top:8px;display:flex}.chap{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:inherit;align-items:center;gap:10px;padding:9px 11px;display:flex}.chap:hover{border-color:var(--wood);background:var(--wood-soft);text-decoration:none}.chap .no{text-align:center;width:30px;font-family:var(--mono);color:var(--ink-3);flex:none;font-size:12px}.chap .body{flex:1;min-width:0}.chap .body strong{font-size:14px;font-weight:600}.chap .body .sum{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;display:block;overflow:hidden}.prose{font-family:var(--serif);color:#14110c;font-size:17.5px;line-height:1.95}.prose p{text-indent:2em;margin:0 0 1.15em}.para{border-radius:6px;margin:0 -4px .9em;padding:2px 4px;transition:background .12s;position:relative}.para:hover{background:var(--wood-soft)}.para .para-acts{background:var(--paper);border:1px solid var(--line-2);box-shadow:var(--sh-1);border-radius:999px;gap:4px;padding:2px 4px;display:none;position:absolute;top:-11px;right:4px}.para:hover .para-acts{display:flex}.para.is-pinned{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.para.is-pinned:hover{background:#e4f0e8}.para .pin-flag{float:right;color:var(--brand);font-size:11px;font-family:var(--sans);text-indent:0;margin:0 0 0 8px}.diff{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (max-width:820px){.diff{grid-template-columns:1fr}}.diff-side{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.diff-side>.h{border-bottom:1px solid var(--line);background:var(--surface);color:var(--ink-2);padding:5px 10px;font-size:12px;font-weight:620}.diff-side>.t{white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;padding:10px 12px;font-size:14px;line-height:1.75;overflow-y:auto}.del{background:var(--danger-soft)}.del>.h{color:var(--danger);background:#fbe6e4;border-color:#e8cdcb}.ins{background:var(--brand-soft)}.ins>.h{color:var(--brand);border-color:var(--brand-line);background:#dcecdf}.report{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);padding:10px 12px;font-size:12.5px}.gauge{background:#e2d8c8;border-radius:3px;height:6px;margin:7px 0;overflow:hidden}.gauge>i{background:var(--brand);height:100%;transition:width .25s;display:block}.gauge>i.hot{background:var(--wood-deep)}.report ul{margin:6px 0 0;padding-left:17px}.report li{margin:1px 0}.scrim{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1c160c57;justify-content:center;align-items:flex-start;padding:5vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.sheet{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:760px;box-shadow:var(--sh-3);overflow:hidden}.sheet.wide{max-width:1000px}.sheet-head{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:10px;padding:13px 18px;display:flex}.sheet-head h2{font-size:15.5px}.sheet-head .spacer{flex:1}.sheet-body{max-height:68vh;padding:16px 18px;overflow-y:auto}.sheet-foot{border-top:1px solid var(--line);background:var(--surface);align-items:center;gap:8px;padding:12px 18px;display:flex}.sheet-foot .spacer{flex:1}.tabs{border-bottom:1px solid var(--line);background:var(--surface);gap:2px;padding:0 8px;display:flex}.tabs button{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 11px;font-size:13px}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.editor{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (max-width:1000px){.editor{grid-template-columns:minmax(0,1fr)}}.sticky{position:sticky;top:66px}.reader{max-width:700px;margin:0 auto;padding:46px 22px 120px}.reader .book-title{letter-spacing:-.01em;font-size:30px}.reader .book-logline{color:var(--ink-2);margin:8px 0 0}.reader .toc{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);margin:28px 0 44px;padding:16px 18px}.reader .toc ol{margin:8px 0 0;padding-left:20px}.reader .toc li{margin:3px 0}.reader .chapter-head{border-top:1px solid var(--line);margin:60px 0 22px;padding-top:26px}.reader .chapter-head .no{letter-spacing:.1em;color:var(--wood-deep);font-size:12px;font-weight:620}.reader .chapter-head h2{margin-top:3px;font-size:22px}.reader footer{border-top:1px solid var(--line);color:var(--ink-3);text-align:center;margin-top:70px;padding-top:20px;font-size:12.5px}.wall{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);max-width:400px;box-shadow:var(--sh-2);margin:14vh auto;padding:26px 26px 22px}.wall h1{margin-bottom:4px;font-size:21px}.wall .sub{color:var(--ink-2);margin:0 0 18px;font-size:13.5px}.spin{border:2px solid var(--line-2);border-top-color:var(--brand);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite sp;display:inline-block}@keyframes sp{to{transform:rotate(360deg)}}.mono{font-family:var(--mono);font-size:12px}.stack{flex-direction:column;gap:10px;display:flex}.plaza .mark{color:inherit;margin-bottom:30px;text-decoration:none;display:inline-block}.plaza-head h1{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 18px;font-size:clamp(30px,5.5vw,46px);line-height:1.28}.plaza-head .sub{color:var(--ink-2);max-width:34em;margin:0 0 28px;font-size:17px;line-height:1.75}.plaza-head .cta{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.btn.big{height:42px;padding:0 20px;font-size:15px}.plaza-head .fine{color:var(--ink-3);margin:0;font-size:13.5px}.plaza .problems>div{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-1);padding:18px 20px}.plaza .problems h3{color:var(--ink);margin:0 0 8px;font-size:15px}.plaza .problems h3:before{content:"";vertical-align:-1px;background:var(--wood);border-radius:2px;width:3px;height:13px;margin-right:8px;display:inline-block}.plaza .problems p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.75}.plaza .rule{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--r);padding:22px 24px}.plaza .rule h2{color:var(--brand);margin:0 0 10px;font-size:17px}.plaza .rule p{color:var(--ink-2);margin:0;font-size:14.5px;line-height:1.8}.plaza-books{margin-top:52px}.plaza-books h2{margin:0 0 14px;font-size:17px}.plaza .more{margin-top:14px;font-size:14px;display:inline-block}.land-foot{border-top:1px solid var(--line);color:var(--ink-3);margin-top:60px;padding-top:22px;font-size:13px}.land-foot a{color:var(--ink-3)}.tabs.auth{background:var(--surface);border-radius:var(--r-sm);gap:2px;margin-bottom:16px;padding:3px;display:flex}.tabs.auth button{height:30px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:5px;flex:1;font-size:13.5px}.tabs.auth button.on{background:var(--paper);color:var(--ink);box-shadow:var(--sh-1)}.linkish{color:var(--brand);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.dot{color:var(--line-2);margin:0 7px}.chip.plan{cursor:pointer;text-decoration:none}.chip .dim{opacity:.72}.card.pad{padding:20px 22px}.card.pad h3{margin:0 0 12px;font-size:15px}.warn-text{color:var(--warn)}.ok-box{border-radius:var(--r-sm);background:var(--brand-soft);border:1px solid var(--brand-line);color:var(--brand);margin-bottom:12px;padding:9px 12px;font-size:13.5px}.plans{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:16px 0;display:grid}.plan-card{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);flex-direction:column;gap:3px;padding:12px 14px;display:flex}.plan-card strong{font-size:14px}.plan-card .hint{color:var(--ink-3);background:0 0;border:0;margin:0;padding:0;font-size:12px}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;display:grid}.field.tiny-field{flex:none;width:92px}.fresh-codes{border:1px dashed var(--line-2);border-radius:var(--r-sm);background:var(--surface);margin-top:14px;padding:12px 14px}.fresh-codes pre{white-space:pre-wrap;word-break:break-all;margin:8px 0 0;font-size:13px;line-height:1.7}.table-wrap{margin-top:12px;overflow-x:auto}.tbl{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13.5px}.tbl th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line);padding:6px 12px 6px 0;font-size:12px;font-weight:600}.tbl td{border-bottom:1px solid var(--line);padding:9px 12px 9px 0}.tbl tr:last-child td{border-bottom:0}.plaza .wrap{max-width:960px;padding-top:44px}.plaza .mark{margin-bottom:0}.plaza-head{margin-bottom:52px}.plaza-head h1{margin-bottom:16px}.plaza-books{margin-bottom:56px}.plaza-books h2,.plaza .rule h2{margin:0;font-size:17px}.grid-books{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.plaza .problems{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin:0 0 24px;display:grid}.tabs.seg{background:var(--surface);border-radius:var(--r-sm);gap:2px;margin-bottom:18px;padding:3px;display:inline-flex}.tabs.seg button{height:30px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:0 14px;font-size:13.5px}.tabs.seg button.on{background:var(--paper);color:var(--ink);box-shadow:var(--sh-1)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.stat{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--r-sm);box-shadow:var(--sh-1);flex-direction:column;gap:2px;padding:16px 18px;display:flex}.stat .lbl{color:var(--ink-3);font-size:12px}.stat strong{font-variant-numeric:tabular-nums;font-size:26px;line-height:1.2}.stat .sub{color:var(--ink-3);font-size:12px}.toolbar{flex-wrap:wrap;gap:8px;margin-bottom:12px}.toolbar input,.toolbar select{width:auto}.toolbar select{min-width:120px}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.tbl .wrap-cell{white-space:normal;min-width:220px}.tbl .row-off td{opacity:.55}.tbl td.mono .chip{margin-left:6px}.sorth{font:inherit;color:var(--ink-3);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.sorth.on{color:var(--ink);font-weight:600}.sorth .arrow{opacity:.4;font-size:10px}.sorth.on .arrow{opacity:1}.pager{align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.dimmed{opacity:.5;transition:opacity .15s}.kv{grid-template-columns:auto 1fr;gap:6px 14px;margin-bottom:18px;font-size:14px;display:grid}.kv span{color:var(--ink-3)}.danger-zone{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.btn.danger{background:var(--danger-soft);color:var(--danger);border-color:#e8cdcb}.knob{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:11px 0;display:flex}.knob:last-child{border-bottom:0}.knob-label{flex-wrap:wrap;flex:1;align-items:center;gap:8px;font-size:14px;display:flex}.knob-label .muted{font-size:12.5px}.knob-ctl{align-items:center;gap:8px;display:flex}.knob-ctl input{width:92px}.json{background:var(--surface);border-radius:var(--r-sm);white-space:pre-wrap;word-break:break-all;margin:0;padding:10px 12px;line-height:1.6}select{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);height:32px;color:var(--ink);padding:0 8px;font-size:13.5px}
