/* Article composition and phone preview, isolated from the console shell. */
.article-composer-heading{display:flex;align-items:baseline;gap:12px;margin:6px 0 12px;flex-wrap:wrap}
.article-composer-heading strong{font-size:14px;color:#182b45}
.article-composer-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}
.article-editor-pane{min-width:0;border:1px solid #e1e6ee;border-radius:8px;background:#fff;overflow:clip}
.article-format-toolbar{position:sticky;top:0;z-index:2;display:flex;gap:4px;flex-wrap:wrap;align-items:center;padding:10px;background:#f8fafc;border-bottom:1px solid #e7ebf1}
.article-format-toolbar button,.article-format-toolbar select,.article-insert-toolbar button{min-height:32px;border:1px solid transparent;border-radius:4px;background:transparent;color:#3c4b60;padding:5px 8px;font:inherit;font-size:12px;cursor:pointer;width:auto}
.article-format-toolbar button:hover,.article-insert-toolbar button:hover{background:#eaf1ff;color:#0d5cf2}
.article-format-toolbar button:focus-visible,.article-insert-toolbar button:focus-visible{outline:2px solid #0d5cf2;outline-offset:1px}
.article-format-toolbar select{border-color:#e0e5ed;background:#fff;max-width:106px}
.article-format-toolbar button[title*="加粗"]{font-weight:800}
.article-format-toolbar button[title*="斜体"]{font-style:italic}
.article-blocks{padding:18px;min-height:360px}
.article-editor-block{border:1px solid transparent;border-radius:5px;padding:8px 12px 12px;margin:0 0 6px;position:relative;min-width:0}
.article-editor-block:hover{border-color:#e5eaf2}
.article-editor-block.is-active{border-color:#abc8fb;background:#fcfdff}
.article-block-controls{display:flex;gap:8px;align-items:center;min-height:24px;margin-bottom:4px;color:#8d98a8}
.article-block-label{font-size:10px;flex:1}
.article-block-controls button{border:0;background:transparent;color:#8994a4;padding:2px 4px;font-size:11px;cursor:pointer}
.article-block-controls button:hover{color:#0d5cf2}
.article-block-text{outline:none;min-height:30px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.7;color:#333}
.article-block-text:empty:before{content:attr(data-placeholder);color:#abb3bf;pointer-events:none}
.article-block-heading{font-size:19px;line-height:1.45;font-weight:600;color:#191919}
.article-block-quote{border-left:3px solid #dce4f0;background:#f7f9fc;padding:10px 14px;color:#667085}
.article-block-bullet,.article-block-numbered{padding-left:22px;position:relative}
.article-block-bullet:before{position:absolute;left:3px;content:'•';color:#8a96a8}
.article-block-numbered:before{position:absolute;left:0;content:attr(data-number);color:#8a96a8}
.article-editor-image{max-width:100%;max-height:260px;display:block;margin:0 auto;object-fit:contain}
.article-insert-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:12px;border-top:1px solid #edf0f5}
.article-insert-toolbar .helper{margin-left:auto;font-size:11px}
.article-preview{position:sticky;top:20px;min-width:0}
.article-preview-label{font-size:11px;letter-spacing:1px;color:#8591a3;margin-bottom:12px;text-align:center}
.article-phone{background:#fff;border:1px solid #e1e6ee;border-radius:16px;padding:24px 18px;min-height:480px;max-height:730px;overflow:auto;overflow-wrap:anywhere;box-shadow:0 4px 18px #22314a06}
.article-phone h1{font-size:21px;line-height:1.35;margin:0 0 10px;color:#191919;font-weight:600}
.article-preview-author{font-size:12.5px;line-height:1.5;color:#576b95;margin:0 0 18px}
.article-reading-body{font-size:15px;line-height:1.7;color:#333}
.article-reading-body p{white-space:pre-wrap;margin:0 0 16px;min-height:25px}
.article-reading-body h2{font-size:19px;line-height:1.45;white-space:pre-wrap;font-weight:600;color:#191919;margin:0 0 16px}
.article-reading-body blockquote{white-space:pre-wrap;border-left:3px solid #dce4f0;padding:10px 14px;margin:0 0 16px;background:#f7f9fc;color:#667085}
.article-reading-body figure{margin:0 0 16px}
.article-reading-body img{max-width:100%;height:auto;display:block;margin:auto}
.article-reading-body img[hidden]{display:none}
.article-reading-body figcaption{font-size:12px;color:#999;text-align:center;margin-top:8px;white-space:pre-wrap}
.article-reading-body hr,.article-editor-block hr{height:1px;border:0;background:#e8ebef;margin:10px 0 24px}
.article-reading-body .article-list-line{display:flex;gap:0}
.article-list-marker{min-width:24px;color:#87909d}
.article-list-line>span:last-child{flex:1;min-width:0}
.article-image-failure{display:block;background:#f6f7f9;padding:40px 10px;text-align:center;color:#999;font-size:12px}
.article-image-failure[hidden]{display:none}
.article-image-dialog{width:min(460px,calc(100vw - 40px));box-sizing:border-box;border:1px solid #e1e6ee;border-radius:12px;padding:24px;color:#26344b}
.article-image-dialog::backdrop{background:#13213766}
.article-image-dialog h2{margin:0 0 10px;font-size:18px}
.article-image-dialog .field{margin-top:16px}
.article-image-dialog .actions{margin-top:20px;justify-content:flex-end}
.article-dialog-error{font-size:12px;color:#d94836}
@media(min-width:1450px){.article-composer-layout{grid-template-columns:minmax(0,1fr) 365px}}
@media(max-width:1100px){.article-composer-layout{grid-template-columns:minmax(0,1fr)}.article-preview{position:static}.article-phone{max-width:375px;margin:auto}.article-blocks{padding:10px}}
