:root{--ink:#2f3440;--muted:#6f7784;--paper:#faf9f6;--panel:#ffffff;--line:#e6e7e4;--accent:#71899a;--sage:#95a99a;--violet:#a69aae;--danger:#b96161}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.shell{max-width:1180px;margin:0 auto;padding:24px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 24px rgba(47,52,64,.04)}.field{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:14px}.input{height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;outline:none;color:var(--ink);background:#fff}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(113,137,154,.16)}.btn{min-height:44px;border:0;border-radius:10px;padding:0 16px;background:var(--accent);color:white;font-weight:600}.btn.secondary{background:#edf1f1;color:var(--ink)}.muted{color:var(--muted)}.error{color:var(--danger);font-size:14px;margin:0}.write-layout{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr);background:var(--paper)}.chapter-nav{padding:20px;border-right:1px solid var(--line);background:#f4f5f2;display:grid;align-content:start;grid-gap:20px;gap:20px}.chapter-nav nav{display:grid;grid-gap:16px;gap:16px}.chapter-nav nav div{display:grid;grid-gap:5px;gap:5px}.chapter-nav nav strong{font-size:14px;color:var(--muted);padding:0 8px}.chapter-nav nav a{padding:8px;border-radius:8px;font-size:14px}.chapter-nav nav a.selected{background:#dfe8e8;color:#314753;font-weight:600}.write-main{min-width:0;padding:28px clamp(16px,5vw,80px)}.editor-wrap{max-width:820px;margin:0 auto}.editor-header{display:grid;grid-gap:8px;gap:8px;margin-bottom:16px}.editor-header input{font-size:30px;font-weight:700;border:0;outline:0;padding:8px 0;background:transparent;color:var(--ink)}.editor-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px;background:white;position:-webkit-sticky;position:sticky;top:10px;z-index:2}.editor-tools span{flex:1 1}.editor-tools button{border:0;border-radius:6px;padding:7px 9px;background:#f2f3f1;color:var(--ink);font-size:13px}.editor-tools button.active{background:#dce8e8}.editor-tools button.primary{background:var(--accent);color:white}.prose-editor{min-height:65vh;padding:28px 4px;outline:none;font-family:Songti SC,STSong,serif;font-size:18px;line-height:2}.prose-editor p{margin:0 0 1em;text-indent:2em}.prose-editor h2{margin:1.5em 0 .7em;font-family:inherit}.prose-editor ul{line-height:1.7}.empty{padding:36px;text-align:center}.lore-grid{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.lore-list{padding:14px;display:grid;grid-gap:10px;gap:10px;position:-webkit-sticky;position:sticky;top:16px}.lore-list nav{display:grid;grid-gap:3px;gap:3px;max-height:60vh;overflow:auto}.lore-list nav button{display:grid;grid-template-columns:1fr auto;text-align:left;grid-gap:2px;gap:2px;border:0;background:transparent;border-radius:8px;padding:9px;color:var(--ink)}.lore-list nav button.active,.lore-list nav button:hover{background:#e6eeee}.lore-list nav small{grid-column:1/-1;color:var(--muted)}.lore-list nav span{color:var(--muted);font-size:11px}.lore-detail{padding:24px;min-height:480px}.lore-detail h1{margin:0;font-size:24px}@media (max-width:767px){.shell{padding:16px}.write-layout{display:block}.chapter-nav{border-right:0;border-bottom:1px solid var(--line);padding:12px 16px;gap:12px}.chapter-nav form{display:none}.chapter-nav nav{display:flex;overflow:auto;gap:8px}.chapter-nav nav div{display:contents}.chapter-nav nav strong{display:none}.chapter-nav nav a{white-space:nowrap;background:white;border:1px solid var(--line)}.write-main{padding:16px}.editor-header input{font-size:24px}.prose-editor{min-height:60vh;font-size:17px;padding-top:20px}.editor-tools{top:6px}.lore-grid{grid-template-columns:1fr}.lore-list{position:static}.lore-list nav{max-height:210px}.lore-detail{padding:18px}}