:root,:host{--w-e-textarea-bg-color: #fff;--w-e-textarea-color: #333;--w-e-textarea-border-color: #ccc;--w-e-textarea-slight-border-color: #e8e8e8;--w-e-textarea-slight-color: #d4d4d4;--w-e-textarea-slight-bg-color: #f5f2f0;--w-e-textarea-selected-border-color: #B4D5FF;--w-e-textarea-handler-bg-color: #4290f7;--w-e-toolbar-color: #595959;--w-e-toolbar-bg-color: #fff;--w-e-toolbar-active-color: #333;--w-e-toolbar-active-bg-color: #f1f1f1;--w-e-toolbar-disabled-color: #999;--w-e-toolbar-border-color: #e8e8e8;--w-e-modal-button-bg-color: #fafafa;--w-e-modal-button-border-color: #d9d9d9}.w-e-text-container *,.w-e-toolbar *{box-sizing:border-box;margin:0;outline:none;padding:0}.w-e-text-container blockquote,.w-e-text-container li,.w-e-text-container p,.w-e-text-container td,.w-e-text-container th,.w-e-toolbar *{line-height:1.5}.w-e-text-container{background-color:var(--w-e-textarea-bg-color);color:var(--w-e-textarea-color);height:100%;position:relative}.w-e-text-container .w-e-scroll{-webkit-overflow-scrolling:touch;height:100%}.w-e-text-container [data-slate-editor]{word-wrap:break-word;border-top:1px solid transparent;min-height:100%;outline:0;padding:0 10px;white-space:pre-wrap}.w-e-text-container [data-slate-editor] p{margin:15px 0}.w-e-text-container [data-slate-editor] h1,.w-e-text-container [data-slate-editor] h2,.w-e-text-container [data-slate-editor] h3,.w-e-text-container [data-slate-editor] h4,.w-e-text-container [data-slate-editor] h5{margin:20px 0}.w-e-text-container [data-slate-editor] img{cursor:default;display:inline!important;max-width:100%;min-height:20px;min-width:20px}.w-e-text-container [data-slate-editor] span{text-indent:0}.w-e-text-container [data-slate-editor] [data-selected=true]{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-placeholder{font-style:italic;left:10px;top:17px;width:90%}.w-e-max-length-info,.w-e-text-placeholder{color:var(--w-e-textarea-slight-color);pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.w-e-max-length-info{bottom:.5em;right:1em}.w-e-bar{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-color);font-size:14px;padding:0 5px}.w-e-bar svg{fill:var(--w-e-toolbar-color);height:14px;width:14px}.w-e-bar-show{display:flex}.w-e-bar-hidden{display:none}.w-e-hover-bar{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 5px #0000001f;position:absolute}.w-e-toolbar{flex-wrap:wrap;position:relative}.w-e-bar-divider{background-color:var(--w-e-toolbar-border-color);display:inline-flex;height:40px;margin:0 5px;width:1px}.w-e-bar-item{display:flex;height:40px;padding:4px;position:relative;text-align:center}.w-e-bar-item,.w-e-bar-item button{align-items:center;justify-content:center}.w-e-bar-item button{background:transparent;border:none;color:var(--w-e-toolbar-color);cursor:pointer;display:inline-flex;height:32px;overflow:hidden;padding:0 8px;white-space:nowrap}.w-e-bar-item button:hover{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item button .title{margin-left:5px}.w-e-bar-item .active{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item .disabled{color:var(--w-e-toolbar-disabled-color);cursor:not-allowed}.w-e-bar-item .disabled svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-menu-tooltip-v5:before{background-color:var(--w-e-toolbar-active-color);border-radius:5px;color:var(--w-e-toolbar-bg-color);content:attr(data-tooltip);font-size:.75em;opacity:0;padding:5px 10px;position:absolute;text-align:center;top:40px;transition:opacity .6s;visibility:hidden;white-space:pre;z-index:1}.w-e-menu-tooltip-v5:after{border:5px solid transparent;border-bottom:5px solid var(--w-e-toolbar-active-color);content:"";opacity:0;position:absolute;top:30px;transition:opacity .6s;visibility:hidden}.w-e-menu-tooltip-v5:hover:after,.w-e-menu-tooltip-v5:hover:before{opacity:1;visibility:visible}.w-e-menu-tooltip-v5.tooltip-right:before{left:100%;top:10px}.w-e-menu-tooltip-v5.tooltip-right:after{border-bottom-color:transparent;border-left-color:transparent;border-right-color:var(--w-e-toolbar-active-color);border-top-color:transparent;left:100%;margin-left:-10px;top:16px}.w-e-bar-item-group .w-e-bar-item-menus-container{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;display:none;left:0;margin-top:40px;position:absolute;top:0;z-index:1}.w-e-bar-item-group:hover .w-e-bar-item-menus-container{display:block}.w-e-select-list{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;left:0;margin-top:40px;max-height:350px;min-width:100px;overflow-y:auto;position:absolute;top:0;z-index:1}.w-e-select-list ul{line-height:1;list-style:none}.w-e-select-list ul .selected{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li{cursor:pointer;padding:7px 0 7px 25px;position:relative;text-align:left;white-space:nowrap}.w-e-select-list ul li:hover{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li svg{left:0;margin-left:5px;margin-top:-7px;position:absolute;top:50%}.w-e-bar-bottom .w-e-select-list{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-drop-panel{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;margin-top:40px;min-width:200px;padding:10px;position:absolute;top:0;z-index:1}.w-e-bar-bottom .w-e-drop-panel{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-modal{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;color:var(--w-e-toolbar-color);font-size:14px;min-height:40px;min-width:100px;padding:20px 15px 0;position:absolute;text-align:left;z-index:1}.w-e-modal .btn-close{cursor:pointer;line-height:1;padding:5px;position:absolute;right:8px;top:7px}.w-e-modal .btn-close svg{fill:var(--w-e-toolbar-color);height:10px;width:10px}.w-e-modal .babel-container{display:block;margin-bottom:15px}.w-e-modal .babel-container span{display:block;margin-bottom:10px}.w-e-modal .button-container{margin-bottom:15px}.w-e-modal button{background-color:var(--w-e-modal-button-bg-color);border:1px solid var(--w-e-modal-button-border-color);border-radius:4px;color:var(--w-e-toolbar-color);cursor:pointer;font-weight:400;height:32px;padding:4.5px 15px;text-align:center;touch-action:manipulation;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.w-e-modal input[type=number],.w-e-modal input[type=text],.w-e-modal textarea{font-feature-settings:"tnum";background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-modal-button-border-color);border-radius:4px;color:var(--w-e-toolbar-color);font-variant:tabular-nums;padding:4.5px 11px;transition:all .3s;width:100%}.w-e-modal textarea{min-height:60px}body .w-e-modal,body .w-e-modal *{box-sizing:border-box}.w-e-progress-bar{background-color:var(--w-e-textarea-handler-bg-color);height:1px;position:absolute;transition:width .3s;width:0}.w-e-full-screen-container{bottom:0!important;display:flex!important;flex-direction:column!important;height:100%!important;left:0!important;margin:0!important;padding:0!important;position:fixed;right:0!important;top:0!important;width:100%!important}.w-e-full-screen-container [data-w-e-textarea=true]{flex:1!important}.w-e-text-container [data-slate-editor] code{background-color:var(--w-e-textarea-slight-bg-color);border-radius:3px;font-family:monospace;padding:3px}.w-e-panel-content-color{list-style:none;text-align:left;width:230px}.w-e-panel-content-color li{border:1px solid var(--w-e-toolbar-bg-color);border-radius:3px;cursor:pointer;display:inline-block;padding:2px}.w-e-panel-content-color li:hover{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color li .color-block{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;height:17px;width:17px}.w-e-panel-content-color .active{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color .clear{line-height:1.5;margin-bottom:5px;width:100%}.w-e-panel-content-color .clear svg{height:16px;margin-bottom:-4px;width:16px}.w-e-text-container [data-slate-editor] blockquote{background-color:var(--w-e-textarea-slight-bg-color);border-left:8px solid var(--w-e-textarea-selected-border-color);display:block;font-size:100%;line-height:1.5;margin:10px 0;padding:10px}.w-e-panel-content-emotion{font-size:20px;list-style:none;text-align:left;width:300px}.w-e-panel-content-emotion li{border-radius:3px;cursor:pointer;display:inline-block;padding:0 5px}.w-e-panel-content-emotion li:hover{background-color:var(--w-e-textarea-slight-bg-color)}.w-e-textarea-divider{border-radius:3px;margin:20px auto;padding:20px}.w-e-textarea-divider hr{background-color:var(--w-e-textarea-border-color);border:0;display:block;height:1px}.w-e-text-container [data-slate-editor] pre>code{background-color:var(--w-e-textarea-slight-bg-color);border:1px solid var(--w-e-textarea-slight-border-color);border-radius:4px;display:block;font-size:14px;padding:10px;text-indent:0}.w-e-text-container [data-slate-editor] .w-e-image-container{display:inline-block;margin:0 3px}.w-e-text-container [data-slate-editor] .w-e-image-container:hover{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-container [data-slate-editor] .w-e-selected-image-container{overflow:hidden;position:relative}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .w-e-image-dragger{background-color:var(--w-e-textarea-handler-bg-color);height:7px;position:absolute;width:7px}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-top{cursor:nwse-resize;left:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-top{cursor:nesw-resize;right:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-bottom{bottom:0;cursor:nesw-resize;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-bottom{bottom:0;cursor:nwse-resize;right:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container:hover,.w-e-text-container [contenteditable=false] .w-e-image-container:hover{box-shadow:none}.w-e-text-container [data-slate-editor] .table-container{border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin-top:10px;overflow-x:auto;padding:10px;width:100%}.w-e-text-container [data-slate-editor] table{border-collapse:collapse}.w-e-text-container [data-slate-editor] table td,.w-e-text-container [data-slate-editor] table th{border:1px solid var(--w-e-textarea-border-color);line-height:1.5;min-width:30px;padding:3px 5px;text-align:left}.w-e-text-container [data-slate-editor] table th{background-color:var(--w-e-textarea-slight-bg-color);font-weight:700;text-align:center}.w-e-panel-content-table{background-color:var(--w-e-toolbar-bg-color)}.w-e-panel-content-table table{border-collapse:collapse}.w-e-panel-content-table td{border:1px solid var(--w-e-toolbar-border-color);cursor:pointer;height:15px;padding:3px 5px;width:20px}.w-e-panel-content-table td.active{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-textarea-video-container{background-image:linear-gradient(45deg,#eee 25%,transparent 0,transparent 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0,#fff 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin:10px auto 0;padding:10px 0;text-align:center}.w-e-text-container [data-slate-editor] pre>code{word-wrap:normal;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;-webkit-hyphens:none;hyphens:none;line-height:1.5;margin:.5em 0;overflow:auto;padding:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal}.w-e-text-container [data-slate-editor] pre>code .token.cdata,.w-e-text-container [data-slate-editor] pre>code .token.comment,.w-e-text-container [data-slate-editor] pre>code .token.doctype,.w-e-text-container [data-slate-editor] pre>code .token.prolog{color:#708090}.w-e-text-container [data-slate-editor] pre>code .token.punctuation{color:#999}.w-e-text-container [data-slate-editor] pre>code .token.namespace{opacity:.7}.w-e-text-container [data-slate-editor] pre>code .token.boolean,.w-e-text-container [data-slate-editor] pre>code .token.constant,.w-e-text-container [data-slate-editor] pre>code .token.deleted,.w-e-text-container [data-slate-editor] pre>code .token.number,.w-e-text-container [data-slate-editor] pre>code .token.property,.w-e-text-container [data-slate-editor] pre>code .token.symbol,.w-e-text-container [data-slate-editor] pre>code .token.tag{color:#905}.w-e-text-container [data-slate-editor] pre>code .token.attr-name,.w-e-text-container [data-slate-editor] pre>code .token.builtin,.w-e-text-container [data-slate-editor] pre>code .token.char,.w-e-text-container [data-slate-editor] pre>code .token.inserted,.w-e-text-container [data-slate-editor] pre>code .token.selector,.w-e-text-container [data-slate-editor] pre>code .token.string{color:#690}.w-e-text-container [data-slate-editor] pre>code .language-css .token.string,.w-e-text-container [data-slate-editor] pre>code .style .token.string,.w-e-text-container [data-slate-editor] pre>code .token.entity,.w-e-text-container [data-slate-editor] pre>code .token.operator,.w-e-text-container [data-slate-editor] pre>code .token.url{color:#9a6e3a}.w-e-text-container [data-slate-editor] pre>code .token.atrule,.w-e-text-container [data-slate-editor] pre>code .token.attr-value,.w-e-text-container [data-slate-editor] pre>code .token.keyword{color:#07a}.w-e-text-container [data-slate-editor] pre>code .token.class-name,.w-e-text-container [data-slate-editor] pre>code .token.function{color:#dd4a68}.w-e-text-container [data-slate-editor] pre>code .token.important,.w-e-text-container [data-slate-editor] pre>code .token.regex,.w-e-text-container [data-slate-editor] pre>code .token.variable{color:#e90}.w-e-text-container [data-slate-editor] pre>code .token.bold,.w-e-text-container [data-slate-editor] pre>code .token.important{font-weight:700}.w-e-text-container [data-slate-editor] pre>code .token.italic{font-style:italic}.w-e-text-container [data-slate-editor] pre>code .token.entity{cursor:help}:root{--bg: #f3efe7;--panel: #fffcf7;--panel-sub: #f7f3eb;--ink: #2a261f;--ink-2: #5a5348;--muted: #8a8173;--line: #e7e0d4;--line-strong: #d4caba;--accent: #b54a3c;--accent-hover: #9d3d31;--accent-soft: #f6e5e1;--danger: #b54a3c;--danger-soft: #f6e5e1;--ok: #4f7a56;--ok-soft: #e5efe6;--warn: #a4742e;--warn-soft: #f6ecd8;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--h-control: 38px;--h-control-sm: 30px;--r-sm: 8px;--r-md: 10px;--r-lg: 14px;--r-xl: 18px;--hover: #efe9df;--accent-tint: #faf1ee;--shadow: 0 1px 2px rgba(42, 38, 31, .04), 0 8px 24px rgba(42, 38, 31, .05);--ring: 0 0 0 3px rgba(181, 74, 60, .14);--sidebar: 248px;--topbar-h: 56px;--font: "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}html,body{width:100%;max-width:100%;overflow-x:clip}body{margin:0;color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3,h4,p{margin:0}::selection{background:var(--accent-soft)}.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh;width:100%;max-width:100%;overflow-x:clip}.shell-main{min-width:0;width:100%;max-width:100%;display:flex;flex-direction:column;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:var(--sp-5) var(--sp-3);border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;gap:var(--sp-5)}.brand{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-2);min-height:44px}.brand-logo{flex:none;width:40px;height:40px;border-radius:10px;object-fit:cover;background:#f6f1e8;border:1px solid var(--line)}.brand-text{display:grid;gap:1px;min-width:0}.brand-text strong{font-size:15px;line-height:1.3;letter-spacing:.04em}.brand-text span{font-size:11px;color:var(--muted);line-height:1.3;letter-spacing:.08em;text-transform:lowercase}.nav{display:grid;gap:2px}.nav a{display:flex;align-items:center;gap:var(--sp-3);height:var(--h-control);padding:0 var(--sp-3);border-radius:var(--r-md);color:var(--ink-2);font-weight:500;transition:background .15s ease,color .15s ease}.nav a:hover{background:var(--hover);color:var(--ink)}.nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-ico{flex:none;width:18px;height:18px;display:grid;place-items:center;color:currentColor}.nav-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sidebar-foot{margin-top:auto;padding-top:var(--sp-4);border-top:1px solid var(--line);display:grid;gap:var(--sp-3)}.user-chip{display:grid;gap:1px;padding:0 var(--sp-2)}.user-chip strong{font-size:13px}.user-chip span{font-size:12px;color:var(--muted)}.topbar{flex:none;height:56px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:0 var(--sp-8);background:#fffcf7e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-width:0;font-size:13px;color:var(--muted)}.crumb-root{color:var(--muted);font-weight:500}.crumb-root:hover{color:var(--accent)}.crumb-sep{margin:0 6px;color:var(--line-strong)}.crumb-current{color:var(--ink);font-weight:600}.crumb-item a{color:var(--muted)}.crumb-item a:hover{color:var(--accent)}.topbar-right{flex:none;display:flex;align-items:center;gap:var(--sp-2)}.topbar-user{font-size:13px;color:var(--ink-2);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{min-width:0;flex:1;width:100%;max-width:100%;padding:var(--sp-6) var(--sp-8) var(--sp-8);overflow-x:clip}.main-workspace{padding:var(--sp-4) var(--sp-5) var(--sp-5)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:var(--h-control);margin-bottom:var(--sp-5)}.page-header h1{font-size:22px;line-height:1.3;letter-spacing:-.02em}.page-header p{margin-top:var(--sp-1);color:var(--muted)}.page-actions{flex:none;display:flex;align-items:center;gap:var(--sp-2)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:var(--r-md);height:var(--h-control);padding:0 var(--sp-4);font-size:13px;font-weight:600;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);white-space:nowrap;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.secondary{background:var(--panel);color:var(--ink);border-color:var(--line-strong)}.btn.secondary:hover:not(:disabled){background:var(--panel-sub);border-color:#b9c2d0}.btn.ghost{background:transparent;color:var(--muted)}.btn.ghost:hover:not(:disabled){background:var(--hover);color:var(--ink)}.btn.danger{background:var(--danger)}.btn.danger:hover:not(:disabled){background:#9c3a35}.btn.danger-soft{background:var(--danger-soft);color:var(--danger)}.btn.danger-soft:hover:not(:disabled){background:#f7dcda}.btn.block{width:100%}.btn.sm{height:var(--h-control-sm);padding:0 var(--sp-3);font-size:12px;border-radius:var(--r-sm)}.input,.select,.textarea{width:100%;border:1px solid var(--line-strong);background:var(--panel);border-radius:var(--r-md);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input,.select{height:var(--h-control);padding:0 var(--sp-3)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--sp-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%236b7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center}.input.sm,.select.sm{height:var(--h-control-sm);font-size:13px}.textarea{padding:var(--sp-3);resize:vertical;line-height:1.7;min-height:110px}.textarea.tall{min-height:220px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}.input::placeholder,.textarea::placeholder{color:#a6b0bf}.input:disabled,.select:disabled,.textarea:disabled{background:var(--panel-sub);color:var(--muted);cursor:not-allowed}.field{display:grid;gap:var(--sp-2)}.field>label,.field>.field-label{font-size:12px;color:var(--muted);font-weight:600}.field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-4)}.field-grid.tight{gap:var(--sp-3)}.hint{font-size:12px;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0;max-width:100%;overflow:hidden}.card-pad{padding:var(--sp-5)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:56px;padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--line)}.card-head>div{min-width:0}.card-title{font-size:14px;font-weight:700}.card-sub{margin-top:var(--sp-1);font-size:12px;color:var(--muted)}.link-more{color:var(--muted);font-size:12px}.link-more:hover{color:var(--accent)}.page-stack{display:grid;gap:var(--sp-4);align-content:start;width:100%;max-width:100%;min-width:0}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-4);align-items:start}.side-panel{display:grid;gap:var(--sp-4);align-content:start;position:sticky;top:var(--sp-6)}.kv-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4)}.kv-row strong{font-variant-numeric:tabular-nums}.filter-panel{padding:var(--sp-4) var(--sp-5);display:grid;gap:var(--sp-3)}.filter-row{display:flex;align-items:center;gap:var(--sp-3)}.filter-row+.filter-row{padding-top:var(--sp-3);border-top:1px solid var(--line)}.filter-label{flex:none;width:40px;font-size:12px;font-weight:600;color:var(--muted)}.grow{flex:1;min-width:200px}.stack{display:grid;gap:var(--sp-4)}.stack.divided{margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--line)}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);width:100%;max-width:100%;min-width:0;box-sizing:border-box}.stat{min-width:0;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--shadow);display:grid;gap:var(--sp-1);align-content:start}.stat .label{color:var(--muted);font-size:12px;font-weight:600}.stat .value{font-size:clamp(18px,1.5vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat .hint{min-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filters{display:inline-flex;align-items:center;gap:2px;height:var(--h-control);padding:3px;background:#ebe4d8;border-radius:var(--r-md)}.chip{border:none;background:transparent;color:var(--muted);border-radius:var(--r-sm);height:100%;padding:0 var(--sp-3);font-size:13px;font-weight:600;display:inline-flex;align-items:center;white-space:nowrap}.chip:hover{color:var(--ink)}.chip.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #1f273317}.check-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chip-check{display:inline-flex;align-items:center;gap:var(--sp-2);border:1px solid var(--line-strong);background:var(--panel);border-radius:999px;height:var(--h-control);padding:0 var(--sp-4);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}.chip-check input{margin:0;accent-color:var(--accent)}.chip-check:has(input:checked){border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.table-wrap{overflow-x:auto;max-width:100%;min-width:0}.table{width:100%;border-collapse:collapse;min-width:560px}.table.compact{min-width:460px}.table.compact .cell-text{max-width:none}.table th,.table td{text-align:left;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);vertical-align:middle}.table th{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap;background:var(--panel-sub)}.table th:first-child,.table td:first-child{padding-left:var(--sp-5)}.table th:last-child,.table td:last-child{padding-right:var(--sp-5)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--panel-sub)}.table thead th{position:sticky;top:0;z-index:1}.table tbody td{transition:background .12s ease}.table td .mono{display:inline-block}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .col-actions{text-align:right}.table .cell-text{max-width:380px}.cell-main{font-weight:600}.cell-sub{margin-top:2px;font-size:12px;color:var(--muted)}.row-actions{display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.badge{display:inline-flex;align-items:center;height:22px;padding:0 var(--sp-2);border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:#eceff5;color:var(--ink-2)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.teal{background:var(--accent-soft);color:var(--accent)}.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--line-strong);margin-right:var(--sp-2);vertical-align:1px}.online-dot.on{background:#3aa77a;box-shadow:0 0 0 3px #3aa77a2e}.empty{padding:var(--sp-8) var(--sp-5);text-align:center;color:var(--muted);display:grid;gap:var(--sp-2);justify-items:center}.empty strong{color:var(--ink);font-size:15px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:var(--h-control)}.switch{display:inline-flex;align-items:center;gap:var(--sp-3);cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-ui{flex:none;width:42px;height:24px;border-radius:999px;background:var(--line-strong);position:relative;transition:background .2s ease}.switch-ui:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s ease}.switch input:checked+.switch-ui{background:var(--accent)}.switch input:checked+.switch-ui:after{transform:translate(18px)}.switch-label{font-size:13px;font-weight:600}.policy-box{background:var(--panel-sub);border:1px dashed var(--line-strong);border-radius:var(--r-md);padding:var(--sp-4);color:var(--ink-2)}.policy-box strong{font-size:13px}.policy-summary{margin-top:var(--sp-1);font-size:13px}.policy-more{margin-top:var(--sp-2);padding:0;height:auto;color:var(--accent)}.policy-more:hover{background:transparent;color:var(--accent-hover)}.policy-detail{display:grid;gap:var(--sp-3);color:var(--ink-2)}.policy-detail ol{margin:0;padding-left:var(--sp-5);display:grid;gap:var(--sp-1)}.grid-2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:var(--sp-4);align-items:start;width:100%;max-width:100%;min-width:0}.chart{position:relative;width:100%;aspect-ratio:3 / 1;height:auto!important}.chart svg{display:block;overflow:visible;width:100%;height:100%}.chart-legend{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);font-size:12px;color:var(--ink-2)}.chart-legend span{display:inline-flex;align-items:center}.chart-legend i,.kv-row .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:var(--sp-2)}.chart-tip{position:absolute;top:0;transform:translate(-50%);margin-left:40px;pointer-events:none;display:grid;gap:2px;padding:var(--sp-2) var(--sp-3);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:0 8px 24px #1f273324;font-size:12px;white-space:nowrap;z-index:2}.chart-tip strong{font-size:11px;color:var(--muted);font-weight:600}.chart-tip span{display:flex;align-items:center;gap:var(--sp-1)}.chart-tip i{width:8px;height:8px;border-radius:2px;flex:none}.chart-tip b{margin-left:auto;padding-left:var(--sp-3);font-variant-numeric:tabular-nums}.kv-list{display:grid;gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--line)}.kv-pct{margin-left:var(--sp-2);font-style:normal;font-size:11px;font-weight:600;color:var(--muted)}.share-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--line)}.share-bar span{display:block;transition:width .3s ease}.delta{font-weight:600}.delta.up{color:var(--ok)}.delta.down{color:var(--danger)}.delta.flat{color:var(--muted)}.meter-cell{display:flex;align-items:center;gap:var(--sp-2);min-width:180px}.meter{flex:1;min-width:56px;height:6px;border-radius:999px;background:var(--line);overflow:hidden}.meter i{display:block;height:100%;border-radius:999px;background:var(--accent)}.meter.warm i{background:#c08a3e}.meter-value{flex:none;min-width:34px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-2)}.login-page{min-height:100vh;display:grid;place-items:center;padding:var(--sp-6);background:radial-gradient(900px 500px at 10% -10%,#efe4d4 0%,transparent 55%),radial-gradient(700px 400px at 100% 0%,#f0e6dc 0%,transparent 50%),var(--bg)}.login-card{width:min(400px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-8);box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5)}.login-brand img{width:48px;height:48px;border-radius:12px;object-fit:cover;border:1px solid var(--line);background:#f6f1e8}.login-brand strong{display:block;font-size:16px;letter-spacing:.04em}.login-brand span{font-size:11px;color:var(--muted);letter-spacing:.08em}.login-card h1{font-size:20px;letter-spacing:-.02em}.login-card .sub{margin:var(--sp-1) 0 var(--sp-6);color:var(--muted)}.alert{border-radius:var(--r-md);padding:var(--sp-3);font-size:13px;margin-bottom:var(--sp-3)}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.info{background:var(--accent-tint);color:var(--accent)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.toast-wrap{position:fixed;right:var(--sp-5);bottom:var(--sp-5);z-index:80;display:grid;gap:var(--sp-2)}.toast{min-width:240px;max-width:360px;background:#232c3a;color:#fff;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);box-shadow:var(--shadow);font-size:13px;animation:rise .2s ease}.toast.error{background:#7d332f}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f27336b;display:grid;place-items:center;padding:var(--sp-5);z-index:70}.modal{width:min(520px,100%);max-height:calc(100vh - var(--sp-8) * 2);overflow-y:auto;background:var(--panel);border-radius:var(--r-xl);border:1px solid var(--line);box-shadow:0 20px 60px #1f273333;padding:var(--sp-6)}.modal.wide{width:min(720px,100%)}.modal.wide:has(.cover-gen){width:min(980px,100%)}.modal-head{display:grid;gap:var(--sp-2)}.modal-head h3{font-size:17px}.modal-head p{color:var(--muted)}.modal-body{margin-top:var(--sp-5)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--line)}.upload-drop{display:grid;gap:var(--sp-1);justify-items:center;text-align:center;padding:var(--sp-6);border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--panel-sub);cursor:pointer;transition:border-color .15s ease,background .15s ease}.upload-drop:hover{border-color:var(--accent);background:var(--accent-tint)}.upload-drop span{font-size:12px}.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}.book-card{display:grid;grid-template-columns:90px minmax(0,1fr);gap:var(--sp-4);align-items:start;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4);background:var(--panel);box-shadow:var(--shadow);transition:border-color .15s ease,box-shadow .15s ease}.book-card:hover{border-color:#c3ccdb;box-shadow:0 2px 4px #1f27330d,0 12px 28px #1f273312}.book-card-cover{width:90px;aspect-ratio:3 / 4;overflow:hidden;border-radius:var(--r-sm);background:linear-gradient(160deg,#c4a574,#7a6a4e);color:#f4f6ff;display:grid;place-items:center;font-size:26px;font-weight:700}.book-card-cover img{width:100%;height:100%;object-fit:cover;display:block}.book-card-body{min-width:0;min-height:120px;display:flex;flex-direction:column;gap:var(--sp-2)}.book-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.book-card-badges{display:flex;flex-wrap:wrap;gap:4px;flex-shrink:0;justify-content:flex-end}.book-card-title{font-weight:700;font-size:15px;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.book-card-sub{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;padding-top:var(--sp-2);min-width:0}.book-card-actions .btn{flex:none;padding:0 8px}.cover-form{display:grid;grid-template-columns:132px minmax(0,1fr);gap:var(--sp-4);align-items:start}.cover-picker{aspect-ratio:3 / 4;border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--panel-sub);overflow:hidden;display:grid;place-items:center;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.cover-picker:hover{border-color:var(--accent);background:var(--accent-tint)}.cover-picker img{width:100%;height:100%;object-fit:cover;display:block}.cover-picker-hint{display:grid;gap:var(--sp-1);padding:var(--sp-3);font-size:13px;font-weight:600;color:var(--ink-2)}.cover-picker-hint em{font-style:normal;font-size:11px;font-weight:500;color:var(--muted);line-height:1.5}.cover-form-full{grid-column:1 / -1}.book-stats-hero{display:flex;align-items:center;gap:var(--sp-4)}.book-stats-cover{flex:none;width:60px;height:82px;border-radius:var(--r-sm);overflow:hidden;background:linear-gradient(160deg,#c4a574,#7a6a4e);color:#f4f6ff;display:grid;place-items:center;font-size:22px;font-weight:700}.book-stats-cover img{width:100%;height:100%;object-fit:cover;display:block}.book-stats-meta{display:grid;gap:var(--sp-1);font-size:12px;justify-items:start}.ms-workspace{display:flex;flex-direction:column;gap:var(--sp-3);height:calc(100vh - var(--topbar-h) - var(--sp-4) - var(--sp-5))}.ms-topbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}.ms-topbar-left{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.ms-back{flex:none;width:var(--h-control-sm);padding:0;border:1px solid var(--line-strong);color:var(--ink-2);font-size:14px}.ms-title-block{min-width:0;display:grid;gap:var(--sp-1)}.ms-title-block h1{font-size:16px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.ms-meta-line>span+span:before{content:"·";margin-right:var(--sp-2);color:var(--line-strong)}.ms-dirty{color:var(--warn);font-weight:600}.ms-dirty:before{content:none!important}.ms-topbar-actions{flex:none;display:flex;align-items:center;gap:var(--sp-2)}.ms-body{flex:1;min-height:0;display:grid;grid-template-columns:288px minmax(0,1fr);gap:var(--sp-3)}.ms-body.with-proof{grid-template-columns:288px minmax(0,1fr) minmax(260px,320px)}.proof-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}.proof-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);min-width:0}.proof-head-main{min-width:0;flex:1;display:grid;gap:2px}.proof-head-title{display:flex;align-items:baseline;gap:var(--sp-2);min-width:0}.proof-head strong{flex:none;font-size:14px}.proof-model{min-width:0;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proof-total{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proof-toolbar{flex:none;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line)}.proof-toolbar-filters{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.proof-view-toggle{display:inline-flex;align-items:center;gap:2px;height:var(--h-control-sm);padding:3px;background:#ebe4d8;border-radius:var(--r-md);flex:none}.proof-view-toggle button{border:none;background:transparent;color:var(--muted);border-radius:var(--r-sm);height:100%;padding:0 var(--sp-2);font-size:12px;font-weight:600;white-space:nowrap}.proof-view-toggle button:hover{color:var(--ink)}.proof-view-toggle button.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #1f273317}.proof-toolbar-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.proof-dock{flex:none;display:flex;align-items:center;justify-content:stretch;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line);background:var(--panel);box-shadow:0 -8px 20px #1f27330a}.proof-dock .btn{flex:1;justify-content:center;min-width:0}.proof-toolbar .filters{height:auto;min-height:var(--h-control-sm);flex-wrap:wrap;max-width:100%;align-content:center}.proof-toolbar .chip{height:calc(var(--h-control-sm) - 6px);padding:0 var(--sp-2);font-size:12px}.proof-list{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:var(--sp-2);display:grid;align-content:start;gap:var(--sp-2);min-width:0}.proof-empty{padding:var(--sp-8) var(--sp-4);text-align:center;color:var(--muted);font-size:13px}.proof-item{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-sub);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;min-width:0;max-width:100%;box-sizing:border-box;overflow:visible}.proof-item:hover{border-color:var(--line-strong)}.proof-item.active{border-color:var(--accent);box-shadow:var(--ring)}.proof-item-head{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:13px;color:var(--ink);min-width:0}.proof-item-head .badge{flex:none}.proof-item-head>span{min-width:0;flex:1;overflow-wrap:anywhere;word-break:break-word}.proof-item.proof-trace{gap:var(--sp-2);padding:var(--sp-3) var(--sp-3) 10px;border-left:3px solid transparent;background:var(--panel)}.proof-item.proof-trace.is-apply{border-left-color:#7d9b7a;background:linear-gradient(180deg,#f7faf6 0%,var(--panel) 48%)}.proof-item.proof-trace.is-ignore{border-left-color:var(--line-strong);background:var(--panel-sub)}.proof-trace-main{min-width:0}.proof-trace-line{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px;font-size:14px;line-height:1.65;color:var(--ink)}.proof-trace-from{color:#8b8680;text-decoration:line-through;text-decoration-color:#8b86808c;overflow-wrap:anywhere;word-break:break-word}.proof-trace-arrow{color:#b0aaa3;flex:none;font-size:12px}.proof-trace-to{color:#3f6b45;font-weight:600;overflow-wrap:anywhere;word-break:break-word}.proof-trace.is-ignore .proof-trace-from{text-decoration:none;color:var(--muted)}.proof-trace-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-width:0}.proof-trace-status{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;font-size:11px;color:var(--muted);letter-spacing:.02em}.proof-trace-status time{font-variant-numeric:tabular-nums;opacity:.85}.proof-trace-undo{border:none;background:transparent;padding:0;margin:0;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;opacity:.72;transition:color .15s ease,opacity .15s ease}.proof-trace:hover .proof-trace-undo,.proof-trace:focus-within .proof-trace-undo{opacity:1;color:var(--accent)}.proof-trace-undo:hover{color:var(--accent-hover, var(--accent))}.proof-context{font-size:13px;line-height:1.7;color:var(--ink-2);overflow-wrap:anywhere;word-break:break-word;max-width:100%}.proof-context mark{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 2px;font-weight:600}.proof-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--sp-2);min-width:0}.proof-actions .btn{max-width:100%;white-space:normal;height:auto;min-height:var(--h-control-sm);line-height:1.35;padding-top:6px;padding-bottom:6px;text-align:left}.ms-chapters{min-height:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--sp-3);display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:var(--sp-3)}.ms-chapters-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding-left:var(--sp-1)}.ms-chapters-head strong{font-size:14px}.ms-count{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.ms-chapters-tip{font-size:11px;line-height:1.5;color:var(--muted);padding:0 var(--sp-1)}.ms-chapter-list{overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-sub)}.ms-chapter-row{position:relative;border-bottom:1px solid var(--line);background:var(--panel)}.ms-chapter-row:hover{background:var(--hover)}.ms-chapter-row.active{background:var(--accent-soft)}.ms-chapter-row.dragging{opacity:.4}.ms-chapter-row.drop-before:before,.ms-chapter-row.drop-after:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--accent);z-index:1}.ms-chapter-row.drop-before:before{top:-1px}.ms-chapter-row.drop-after:after{bottom:-1px}.ms-chapter-item{width:100%;height:44px;display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);border:none;background:transparent;text-align:left;font-size:13px}.ms-grip{flex:none;color:#b9c2d0;font-size:12px;letter-spacing:-1px;cursor:grab}.ms-chapter-row:hover .ms-grip{color:var(--muted)}.ms-add-row{width:100%;height:44px;border:none;background:transparent;color:var(--accent);font-size:13px;font-weight:600;text-align:left;padding:0 var(--sp-3)}.ms-add-row:hover:not(:disabled){background:var(--accent-tint)}.ms-add-row:disabled{color:var(--muted);cursor:not-allowed}.context-menu{position:fixed;z-index:90;min-width:156px;padding:var(--sp-1);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 12px 32px #1f27332e;display:grid;gap:1px}.context-menu button{width:100%;height:32px;padding:0 var(--sp-3);border:none;border-radius:var(--r-sm);background:transparent;text-align:left;font-size:13px;color:var(--ink-2)}.context-menu button:hover{background:var(--hover);color:var(--ink)}.context-menu button.danger{color:var(--danger)}.context-menu button.danger:hover{background:var(--danger-soft)}.context-sep{height:1px;margin:var(--sp-1) 0;background:var(--line)}.ms-idx{flex:none;min-width:22px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.ms-chapter-row.active .ms-idx{color:var(--accent)}.ms-chapter-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-chapter-words{flex:none;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.ms-empty{display:grid;gap:var(--sp-3);justify-items:center;padding:var(--sp-6) var(--sp-4);color:var(--muted);font-size:13px}.ms-main{min-width:0;min-height:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--sp-3);display:grid;grid-template-rows:auto minmax(0,1fr);gap:var(--sp-3)}.ms-chapter-bar{display:flex;align-items:center;gap:var(--sp-3);padding-left:var(--sp-1)}.ms-chapter-no{flex:none;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.ms-chapter-title{font-weight:600}.ms-wordcount{flex:none;white-space:nowrap;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.ms-blank{grid-row:1 / -1;display:grid;place-content:center;justify-items:center;gap:var(--sp-3);border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--panel-sub);padding:var(--sp-8);text-align:center}.ms-blank h2{font-size:17px}.ms-blank-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.ms-editor{min-height:0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--panel);display:flex;flex-direction:column}.ms-editor-toolbar{flex:none;border-bottom:1px solid var(--line)!important;background:var(--panel-sub)!important}.ms-editor-body{flex:1;min-height:0!important;overflow:hidden}.ms-editor .w-e-text-container{background:var(--panel)!important;height:100%!important}.ms-editor .w-e-scroll{height:100%;overflow-y:auto}.ms-editor .w-e-text-container [data-slate-editor]{padding:var(--sp-6) var(--sp-8)!important;line-height:1.9;font-size:15px}.ms-editor .w-e-text-placeholder{top:var(--sp-6);left:var(--sp-8);font-style:normal}::highlight(proof-pending){background-color:#f6e0b8;color:inherit}::highlight(proof-jump){background-color:#f3c4b8;color:#7a2a22}.ms-editor.proof-jumping .w-e-text-container [data-slate-editor]::selection{background:#f3c4b8;color:#7a2a22}.phone-window{position:fixed;z-index:85;display:grid;gap:0;border-radius:var(--r-lg);background:var(--panel);border:1px solid var(--line);box-shadow:0 24px 70px #1f273347;overflow:hidden}body.dragging-window{-webkit-user-select:none;user-select:none;cursor:grabbing}.phone-window-bar{display:flex;align-items:center;gap:var(--sp-3);height:42px;padding:0 var(--sp-2) 0 var(--sp-4);background:var(--panel-sub);border-bottom:1px solid var(--line);cursor:grab}.phone-window-title{flex:1;font-size:13px;font-weight:600;color:var(--ink-2);white-space:nowrap}.phone-window-zoom{flex:none;display:flex;align-items:center;gap:2px;padding:2px;background:#ebe4d8;border-radius:var(--r-sm)}.phone-window-zoom span{min-width:42px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-2)}.phone-window-zoom button{width:24px;height:24px;border:none;border-radius:6px;background:var(--panel);color:var(--ink-2);font-size:13px;line-height:1}.phone-window-zoom button:disabled{opacity:.35;cursor:not-allowed}.phone-window-close{flex:none;width:30px;height:30px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--muted);font-size:18px;line-height:1}.phone-window-close:hover{background:var(--danger-soft);color:var(--danger)}.phone-window-stage{position:relative;overflow:hidden;background:radial-gradient(600px 320px at 50% 0%,#e7ebf6 0%,transparent 70%),var(--panel-sub)}.phone-window-stage .phone{position:absolute;top:12px;left:12px;transform-origin:top left}.phone{flex:none;width:390px;height:844px;padding:12px;border-radius:54px;background:linear-gradient(160deg,#2b3240,#171b23);box-shadow:0 0 0 2px #3a4152 inset,0 24px 60px #171b2359}.phone-screen{position:relative;height:100%;border-radius:42px;overflow:hidden;background:#fdfcfa;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;font-family:var(--font)}.phone-screen:before{content:"";position:absolute;top:10px;left:50%;transform:translate(-50%);width:104px;height:26px;border-radius:999px;background:#171b23;z-index:2}.phone-status{display:flex;align-items:center;justify-content:space-between;padding:14px 26px 6px;font-size:12px;font-weight:700;color:#2b3240}.phone-status-right{letter-spacing:1px;font-size:9px}.phone-nav{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid #efece6;color:#4a4640}.phone-nav-back{font-size:22px;line-height:1;color:#8a8378}.phone-nav-title{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phone-reader{overflow-y:auto;padding:var(--sp-6) 22px var(--sp-8);color:#2b2823;scrollbar-width:none}.phone-reader::-webkit-scrollbar{width:0}.phone-chapter+.phone-chapter{margin-top:var(--sp-8);padding-top:var(--sp-6);border-top:1px solid #efece6}.phone-chapter-title{font-size:19px;font-weight:700;line-height:1.4;margin-bottom:var(--sp-5);color:#1f1c18}.phone-loading{margin-top:var(--sp-6);text-align:center;font-size:12px;color:#a9a29a}.phone-content{font-size:16px;line-height:1.95;letter-spacing:.01em}.phone-content p{margin:0 0 1.15em;text-indent:2em}.phone-content p:last-child{margin-bottom:0}.phone-content h1,.phone-content h2,.phone-content h3{font-size:17px;margin:1.6em 0 .7em;text-indent:0}.phone-content img{max-width:100%;height:auto;border-radius:6px}.phone-content blockquote{margin:1.2em 0;padding-left:var(--sp-4);border-left:3px solid #e3ded4;color:#6b655c;text-indent:0}.phone-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) 22px calc(var(--sp-3) + 8px);border-top:1px solid #efece6;font-size:11px;color:#9a9287;font-variant-numeric:tabular-nums}@media (max-width: 1440px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1240px){.two-col{grid-template-columns:1fr}.side-panel{position:static}}@media (max-width: 1100px){.grid-2,.field-grid{grid-template-columns:1fr}.ms-body{grid-template-columns:240px minmax(0,1fr)}.ms-body.with-proof{grid-template-columns:220px minmax(0,1fr) minmax(240px,300px)}}@media (max-width: 980px){.ms-workspace{height:auto}.ms-body,.ms-body.with-proof{grid-template-columns:1fr}.proof-panel{max-height:70vh}.ms-chapters{grid-template-rows:auto auto 280px}.ms-main{min-height:70vh}.ms-topbar{flex-direction:column;align-items:stretch}.ms-topbar-actions{justify-content:flex-end}}@media (max-width: 860px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:none;border-bottom:1px solid var(--line)}.main{padding:var(--sp-5) var(--sp-4) var(--sp-6)}.page-header,.settings-row{flex-direction:column;align-items:flex-start}.stats{grid-template-columns:1fr}}.site-admin .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.site-admin .section-head h2,.package-card h2{margin:0;font-size:16px;font-weight:700}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.package-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}.package-card{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.package-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.package-upload{margin:0}.package-meta{display:grid;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}.qr-preview{width:140px;height:140px;object-fit:contain;background:#fff;border-radius:8px;border:1px solid var(--line)}.inline-row{display:flex;gap:var(--sp-2);align-items:center}.inline-row .grow{flex:1;min-width:0}.row-actions{display:flex;gap:var(--sp-2)}.site-tip code{font-size:12px;padding:1px 6px;border-radius:4px;background:var(--bg)}@media (max-width: 900px){.form-grid-2,.package-grid{grid-template-columns:1fr}.inline-row{flex-direction:column;align-items:stretch}}.site-subnav{margin-bottom:4px}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4)}.tpl-card{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--panel);box-shadow:var(--shadow);display:flex;flex-direction:column}.tpl-card.is-active{border-color:var(--accent)}.tpl-swatches{display:grid;grid-template-columns:repeat(4,1fr);height:72px}.tpl-swatches span{display:block}.tpl-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);flex:1}.tpl-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.tpl-body h3{margin:0;font-size:16px}.tpl-body p{margin:0;font-size:13px;color:var(--muted);line-height:1.55;flex:1}.layout-preview{height:110px;display:grid;gap:8px;padding:12px;background:#eef0f3}.layout-preview-split{grid-template-columns:1.1fr .9fr}.layout-preview-center{place-items:center}.layout-preview-center .lp-visual{position:absolute;top:12px;right:12px;bottom:12px;left:12px;opacity:.55}.layout-preview-center{position:relative}.layout-preview-center .lp-copy{position:relative;z-index:1;align-items:center}.layout-preview-editorial{grid-template-columns:1fr;align-content:center}.layout-preview-editorial .lp-visual{position:absolute;top:12px;right:12px;bottom:12px;left:12px;opacity:.28}.layout-preview-editorial{position:relative}.layout-preview-folio{grid-template-columns:.95fr .75fr}.layout-preview-folio .lp-visual{order:2}.layout-preview-horizon{position:relative;align-items:end}.layout-preview-horizon .lp-visual{position:absolute;top:12px;right:12px;bottom:12px;left:12px}.layout-preview-horizon .lp-copy{position:relative;z-index:1;width:55%}.layout-preview-mirror{grid-template-columns:1fr 1fr}.layout-preview-mirror .lp-visual{order:2}.layout-preview-stack{grid-template-columns:1fr;grid-template-rows:1fr 1.2fr}.layout-preview-frame{position:relative;place-items:center;padding:18px}.layout-preview-frame .lp-visual{position:absolute;top:10px;right:10px;bottom:10px;left:10px;opacity:.7}.layout-preview-frame .lp-copy{position:relative;z-index:1;width:58%;padding:8px;background:#ffffffb8;border:1px solid rgba(0,0,0,.06)}.layout-preview-corner{position:relative;align-items:end;justify-items:start}.layout-preview-corner .lp-visual{position:absolute;top:12px;right:12px;bottom:12px;left:12px}.layout-preview-corner .lp-copy{position:relative;z-index:1;width:48%}.lp-visual{display:block;min-height:100%;background:linear-gradient(145deg,#c9cfc8,#9aa494);border:1px solid rgba(0,0,0,.06)}.lp-copy{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0}.lp-copy i{display:block;height:6px;background:#17151359;border-radius:2px}.lp-copy i:nth-child(1){width:72%;height:9px}.lp-copy i:nth-child(2){width:48%}.lp-copy i:nth-child(3){width:60%;opacity:.55}.style-preview{height:110px;padding:12px;display:grid;grid-template-rows:18px 1fr;gap:10px;background:#e8e6e1}.sp-swatches{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;height:18px}.sp-swatches span{display:block}.sp-sample{display:flex;align-items:flex-end;justify-content:space-between;padding:8px 10px;background:#ffffff8c;border:1px solid rgba(0,0,0,.06)}.sp-sample em{font-family:Georgia,serif;font-style:italic;font-size:28px;line-height:1;opacity:.55}.sp-sample strong{font-size:22px;letter-spacing:.18em}.style-preview-seal .sp-sample{border-width:2px}.style-preview-seal .sp-sample strong{border:1px solid currentColor;padding:2px 6px}.style-preview-studio .sp-sample{border-left:4px solid #111}.style-preview-studio .sp-sample em{font-size:34px}.style-preview-continuum .sp-sample{border-radius:24px}.style-preview-monolith .sp-sample strong{font-size:28px;letter-spacing:.04em}.site-asset-preview{display:block;width:100%;max-width:220px;max-height:140px;object-fit:cover;border:1px solid var(--line, #e5e2db);background:#f4f2ed}.site-logo-preview{width:64px;height:64px;max-width:64px;max-height:64px;object-fit:contain;padding:8px}.ai-provider-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-2)}.ai-provider{display:grid;gap:4px;text-align:left;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-sub);cursor:pointer;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.ai-provider strong{font-size:13px}.ai-provider span{font-size:11px;color:var(--muted);line-height:1.4}.ai-provider:hover{border-color:var(--line-strong)}.ai-provider.active{border-color:var(--accent);box-shadow:var(--ring);background:var(--accent-tint)}.ai-help-list{margin:var(--sp-3) 0 0;padding-left:var(--sp-5);display:grid;gap:var(--sp-2);color:var(--ink-2);font-size:13px;line-height:1.6}.cover-gen{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr);gap:var(--sp-5);align-items:start}.cover-gen-preview-wrap{display:grid;gap:var(--sp-3);justify-items:center}.cover-gen-preview{width:100%;max-width:300px;border-radius:4px;border:1px solid var(--line);background:var(--panel-sub);box-shadow:0 12px 36px #2a261f1f;overflow:hidden}.cover-gen-canvas{display:block;width:100%;height:auto;vertical-align:top}.cover-gen-sizes{height:var(--h-control-sm)}.cover-gen-size-hint{margin:0;text-align:center}.cover-gen-form{display:grid;gap:var(--sp-4);min-width:0}.cover-gen-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-3)}.cover-gen-row.narrow-first{grid-template-columns:132px minmax(0,1fr)}.cover-gen-scale-head{display:flex;align-items:center;justify-content:space-between}.cover-gen-scale-head .link-more{border:none;background:none;padding:0;cursor:pointer}.cover-gen-scales{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2) var(--sp-4)}.cover-gen-scale{display:grid;grid-template-columns:56px minmax(0,1fr) 42px;align-items:center;gap:var(--sp-2);font-size:12px;color:var(--ink-2)}.cover-gen-scale input[type=range]{width:100%;accent-color:var(--accent)}.cover-gen-scale-val{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.cover-gen-templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:var(--sp-3) var(--sp-2)}.cover-gen-tpl{display:grid;gap:6px;padding:0;border:none;background:none;cursor:pointer;color:var(--ink-2)}.cover-gen-tpl-thumb{display:block;aspect-ratio:3 / 4;border-radius:6px;border:1px solid var(--line);background-size:cover;background-position:center;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.cover-gen-tpl-name{font-size:12px;text-align:center;white-space:nowrap}.cover-gen-tpl:hover .cover-gen-tpl-thumb{border-color:var(--line-strong);transform:translateY(-1px)}.cover-gen-tpl.active .cover-gen-tpl-thumb{border-color:var(--accent);box-shadow:var(--ring)}.cover-gen-tpl.active .cover-gen-tpl-name{color:var(--accent);font-weight:600}@media (max-width: 860px){.cover-gen{grid-template-columns:1fr}.cover-gen-preview{max-width:260px;margin:0 auto}}
