/* 患者故事 + 积分中心页面样式 */
.stories-hero { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px; margin:24px 0 20px; }
.stories-hero h1 { margin:0 0 6px; font-size:2rem; }
.stories-hero p { margin:0; color:#556; }
.stories-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:20px; }
/* 「分享我的故事」放在排序行内靠右；积分入口紧挨在按钮左侧，两者一起贴右端 */
.stories-sort { display:flex; flex:1; align-items:center; gap:8px; }
.stories-sort a:not(.stories-sort-cta):not(.stories-sort-points) { padding:6px 14px; border:1px solid #d7dde6; border-radius:999px; text-decoration:none; color:#3a4658; font-size:.92rem; background:#fff; }
.stories-sort a.active { background:#1f6feb; border-color:#1f6feb; color:#fff; }
.stories-sort .stories-sort-points { margin-left:auto; }
.story-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
.story-card { display:flex; flex-direction:column; background:#fff; border:1px solid #e5e9f0; border-radius:14px; overflow:hidden; text-decoration:none; color:inherit; transition:box-shadow .15s ease, transform .15s ease; }
.story-card:hover { box-shadow:0 10px 28px rgba(23,42,70,.10); transform:translateY(-2px); }
.story-card-body { padding:16px 18px 18px; display:flex; flex-direction:column; gap:10px; flex:1; }
.story-card-title { margin:0; font-size:1.08rem; line-height:1.45; color:#16233a; }
.story-card-meta { display:flex; flex-wrap:wrap; gap:8px; font-size:.82rem; color:#7b8798; margin-top:auto; }
.story-tag { display:inline-block; padding:2px 10px; border-radius:999px; background:#eef4ff; color:#1f6feb; font-size:.78rem; margin-right:6px; }
.story-tag.tag-HOSPITAL { background:#eefaf2; color:#1a8a4a; }
/* 后台词典标签分组配色（卡片/详情/筛选栏共用） */
.story-tag.tag-EXPERIENCE { background:#fdeeec; color:#c0392b; }
.story-tag.tag-DISEASE_NAME { background:#eef4ff; color:#1f6feb; }
.story-tag.tag-DISEASE_CATEGORY { background:#eefaf2; color:#1a8a4a; }
.story-tag.tag-HOSPITAL_KEYWORD { background:#fff7ed; color:#b45309; }
.story-tag.tag-POLICY { background:#f3efff; color:#6f3fd1; }
.story-tag.tag-OTHER { background:#f1f4f8; color:#4a5668; }
/* ===== 列表页标签筛选栏：一行一个分类，每行「全部」紧跟分类名 ===== */
.stories-filter { display:block; background:#fff; border:1px solid #e5e9f0; border-radius:14px; padding:14px 18px; margin-bottom:22px; }
.stories-filter-all { padding:5px 14px; border:1px solid #d7dde6; border-radius:999px; text-decoration:none; color:#3a4658; font-size:.88rem; background:#fff; }
.stories-filter-all.is-active { background:#16233a; border-color:#16233a; color:#fff; }
.stories-filter-group { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.stories-filter-group + .stories-filter-group { margin-top:8px; }
.stories-filter-label { font-size:.82rem; color:#7b8798; margin-right:2px; }
.stories-filter .story-tag { margin-right:0; text-decoration:none; border:1px solid transparent; cursor:pointer; }
.stories-filter .story-tag:hover { filter:brightness(.96); }
.stories-filter .story-tag.is-active { box-shadow:inset 0 0 0 1.5px currentColor; font-weight:600; }
.stories-filter-count { font-weight:400; opacity:.65; margin-left:4px; font-size:.72rem; }
/* ===== 列表页分页：页码式（上一页 / 页码 / 下一页），仅多于一页时渲染 ===== */
.pagination.stories-pagination { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:30px; }
.pagination.stories-pagination a,
.pagination.stories-pagination .current { display:grid; min-width:38px; height:38px; place-items:center; padding:0 10px; border:1px solid #cad7e3; border-radius:6px; background:#fff; color:#26323f; font-size:.9rem; font-weight:700; text-decoration:none; }
.pagination.stories-pagination a:hover { border-color:#1f6feb; color:#1f6feb; }
.pagination.stories-pagination .current { border-color:#16233a; background:#16233a; color:#fff; }
.pagination.stories-pagination .page-arrow { min-width:auto; padding:0 14px; font-weight:600; }
.pagination.stories-pagination .page-arrow.is-disabled { display:grid; min-width:auto; height:38px; place-items:center; padding:0 14px; border:1px solid #e5e9f0; border-radius:6px; background:#f7f9fc; color:#9aa8b8; font-size:.9rem; font-weight:600; }
.pagination.stories-pagination .ellipsis { color:#8a97a6; font-weight:700; letter-spacing:1px; }
/* 发布/编辑表单：标签选择器分组标题 */
.story-picker-group { padding:6px 0 2px; }
.story-picker-group-label { display:block; font-size:.78rem; color:#7b8798; margin:2px 0 4px; }
.story-status-badge { display:inline-block; padding:3px 12px; border-radius:999px; font-size:.8rem; font-weight:600; }
.story-status-PENDING { background:#fff5e0; color:#a86500; }
.story-status-APPROVED { background:#e7f6ec; color:#1a7f43; }
.story-status-REJECTED, .story-status-HIDDEN { background:#fdeaea; color:#b42318; }
/* 详情卡片铺满 .container，两端与导航栏对齐（原先 max-width:820px 导致比导航栏窄、观感不一致）。
   正文同样铺满卡片，与导航栏同宽。 */
.story-detail { margin:24px 0 48px; background:#fff; border:1px solid #e5e9f0; border-radius:16px; padding:32px 36px; }
.story-detail h1 { font-size:1.9rem; line-height:1.35; margin:0 0 12px; }
.story-detail-meta { color:#7b8798; font-size:.88rem; display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.story-inline-image { width:100%; max-width:100%; border-radius:10px; margin:14px auto; display:block; }
/* 正文与编辑器预览均铺满所在卡片（.story-detail / .story-form-page 本就是容器全宽），与导航栏同宽；
   预览与成品同宽，保证编辑时所见即发布后所得。 */

/* ===== 文章级阅读版式（详情正文与编辑器预览共用） ===== */
.formatted-content { font-size:1.05rem; line-height:1.9; color:#2b3442; word-wrap:break-word; }
.formatted-content > *:first-child { margin-top:0; }
.formatted-content p { margin:0 0 1.1em; text-indent:2em; }
.formatted-content p:has(> img) { text-indent:0; } /* 图片段不缩进 */
.formatted-content p > em:only-child { display:block; text-indent:0; text-align:center; font-size:.92rem; color:#5f7078; margin-top:-.5em; } /* 图注：独立斜行居中 */
.formatted-content h2 { font-size:1.35rem; line-height:1.5; margin:1.9em 0 .8em; color:#16233a; font-weight:700; text-indent:0; }
.formatted-content h3 { font-size:1.16rem; line-height:1.5; margin:1.7em 0 .7em; color:#16233a; font-weight:700; text-indent:0; }
.formatted-content blockquote { margin:1.4em 0; padding:10px 18px; border-left:4px solid #1f6feb; background:#f6f9ff; border-radius:0 8px 8px 0; color:#3a4658; }
.formatted-content blockquote p { text-indent:0; margin:0 0 .5em; }
.formatted-content blockquote p:last-child { margin-bottom:0; }
.formatted-content ul, .formatted-content ol { margin:0 0 1.1em; padding-left:1.6em; }
.formatted-content li { margin:.3em 0; }
.formatted-content img { display:block; max-width:75%; height:auto; border-radius:10px; margin:1.2em auto; }
.formatted-content hr { border:0; border-top:1px solid #e5e9f0; margin:2.2em auto; max-width:60%; }
.formatted-content a { color:#0b5cab; }
.formatted-content strong { color:#16233a; }
.formatted-content code { background:#f2f5f9; padding:2px 6px; border-radius:5px; font-size:.92em; }
.formatted-content pre { background:#f6f8fb; padding:14px 16px; border-radius:10px; overflow-x:auto; }
.formatted-content pre code { background:none; padding:0; }

/* ===== 富文本编辑器（仿公众号排版） ===== */
.rte { border:1px solid #d7dde6; border-radius:10px; background:#fff; }
.rte-bar { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; justify-content:space-between; padding:8px 10px; border-bottom:1px solid #eef1f5; background:#fafbfd; border-radius:10px 10px 0 0; }
.rte-tools { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.rte-group { display:flex; align-items:center; gap:4px; padding-right:8px; border-right:1px solid #e6eaf0; }
.rte-group:last-child { padding-right:0; border-right:0; }
.rte-tool { display:inline-flex; align-items:center; justify-content:center; min-width:30px; height:30px; padding:0 6px; border:1px solid transparent; border-radius:7px; background:none; color:#3a4658; font:inherit; font-size:.9rem; line-height:1; cursor:pointer; }
.rte-tool:hover { background:#eef4ff; border-color:#c9dcf7; color:#1f6feb; }
.rte-tool.is-active { background:#e7f0ff; border-color:#a9c8f2; color:#1f6feb; }
.rte-tool svg { display:block; }
.rte-tool-image { color:#1a8a4a; }
.rte-tool-image:hover { background:#e9f8f0; border-color:#b5e3c8; color:#127a3c; }
.rte-select { height:30px; max-width:132px; padding:0 6px; border:1px solid #d7dde6; border-radius:7px; background:#fff; color:#3a4658; font:inherit; font-size:.85rem; }
.rte-size { max-width:88px; }
.rte-color { display:inline-flex; align-items:center; gap:4px; height:30px; padding:0 4px; border:1px solid transparent; border-radius:7px; cursor:pointer; }
.rte-color:hover { background:#eef4ff; border-color:#c9dcf7; }
.rte-color-text { font:inherit; font-size:.85rem; font-weight:700; color:#2b3442; line-height:1; }
.rte-color-bg { background:#fff2a8; padding:1px 2px; border-radius:3px; }
.rte-color input[type=color] { width:24px; height:22px; padding:0; border:1px solid #d7dde6; border-radius:4px; background:#fff; cursor:pointer; }
.story-editor-tabs { display:flex; gap:6px; }
.story-editor-tabs button { padding:7px 14px; border:1px solid #d7dde6; border-radius:8px; background:#fff; color:#5a6577; font:inherit; font-size:.88rem; cursor:pointer; }
.story-editor-tabs button.active { background:#1f6feb; border-color:#1f6feb; color:#fff; }
.rte-surface { padding:14px 18px; }
.rte-content { min-height:320px; outline:none; }
.rte-content[hidden], .rte-preview[hidden] { display:none; }
.rte-content.is-empty:before { content:attr(data-placeholder); color:#9aa5b4; pointer-events:none; }
.rte-content img { cursor:pointer; }
.rte-content img.is-selected { outline:2px solid #1f6feb; outline-offset:2px; }
.rte-preview { min-height:320px; }
.rte-image-bar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:8px 14px; border-top:1px solid #eef1f5; background:#f7fbf8; color:#4a5568; font-size:.86rem; }
.rte-image-bar[hidden] { display:none; }
.rte-image-hint { color:#7b8798; font-weight:400; }
/* 选中图片后在四角显示拖拽手柄：手柄层用 fixed 定位贴合图片，不进入正文 HTML */
.rte-img-handles { position:fixed; z-index:120; pointer-events:none; }
.rte-img-handles[hidden] { display:none; }
.rte-img-handle { position:absolute; width:12px; height:12px; border-radius:3px; background:#fff; border:2px solid #1f6feb; box-shadow:0 1px 3px rgba(15,23,42,.28); pointer-events:auto; touch-action:none; }
.rte-img-handle:before { content:""; position:absolute; inset:-6px; }
.rte-img-handle[data-corner=nw] { left:0; top:0; transform:translate(-50%,-50%); cursor:nwse-resize; }
.rte-img-handle[data-corner=ne] { left:100%; top:0; transform:translate(-50%,-50%); cursor:nesw-resize; }
.rte-img-handle[data-corner=sw] { left:0; top:100%; transform:translate(-50%,-50%); cursor:nesw-resize; }
.rte-img-handle[data-corner=se] { left:100%; top:100%; transform:translate(-50%,-50%); cursor:nwse-resize; }
.rte-img-size-tip { position:absolute; left:50%; top:100%; transform:translate(-50%,8px); padding:2px 8px; border-radius:999px; background:rgba(31,111,235,.92); color:#fff; font-size:.72rem; line-height:1.6; white-space:nowrap; }
.rte-img-size-tip[hidden] { display:none; }
body.rte-img-resizing { user-select:none; }
.rte-chip { padding:4px 11px; border:1px solid #cfe0d5; border-radius:999px; background:#fff; color:#2f6b47; font:inherit; font-size:.82rem; cursor:pointer; }
.rte-chip:hover { background:#eef8f2; }
.rte-chip-danger { color:#b23c3c; border-color:#eccfcf; }
.rte-chip-danger:hover { background:#fdf1f1; }
.rte-link-pop { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:8px 12px; border-top:1px solid #eef1f5; background:#f8fafc; font-size:.86rem; }
.rte-link-pop[hidden] { display:none; }
.rte-link-pop input { min-width:170px; padding:6px 8px; border:1px solid #d7dde6; border-radius:6px; font:inherit; font-size:.86rem; }
.rte-link-pop button { padding:6px 12px; border:1px solid #d7dde6; border-radius:6px; background:#fff; color:#3a4658; font:inherit; font-size:.85rem; cursor:pointer; }
.rte-link-pop button[data-role=link-apply] { background:#1f6feb; border-color:#1f6feb; color:#fff; }
.story-editor textarea#storyContent[hidden] { display:none; }
.story-editor-status { margin:8px 2px 0; font-size:.86rem; color:#1a8a4a; font-weight:400; }
.story-editor-status.is-error { color:#c0392b; }
.story-detail-head { display:flex; align-items:flex-start; gap:10px 18px; flex-wrap:wrap; margin-bottom:12px; }
.story-detail-head h1 { flex:1 1 320px; min-width:0; margin:0; }
.story-head-alert { flex:1 0 100%; }
.story-head-actions { display:flex; flex-wrap:nowrap; align-items:center; gap:10px; flex:none; margin:2px 0 0; }
.story-head-actions form { margin:0; }
.story-head-actions .favorite-control { margin-top:0; flex:none; }
.story-head-actions .story-like-btn { padding:7px 16px; font-size:.9rem; white-space:nowrap; }
.story-head-actions .story-like-count { white-space:nowrap; color:#7b8798; font-size:.9rem; }
.public-site .story-head-actions .favorite-button.story-fav-btn { display:inline-flex; align-items:center; gap:6px; padding:7px 16px !important; border-radius:999px; font-size:.9rem !important; line-height:1.2; white-space:nowrap; border:1px solid #e2c47f !important; background:#fff !important; color:#8a6208 !important; cursor:pointer; text-decoration:none; box-shadow:none; }
.public-site .story-head-actions .story-fav-btn span { color:#c9a227; font-size:1.05rem; line-height:1; }
.public-site .story-head-actions .story-fav-btn:hover { background:#fffaf0 !important; border-color:#d4ab4e !important; color:#8a6208 !important; }
.public-site .story-head-actions .favorite-button.saved.story-fav-btn { background:#fff7e0 !important; border-color:#e2c47f !important; color:#8a6208 !important; }
.story-actions { display:flex; gap:12px; align-items:center; margin:28px 0 8px; padding-top:18px; border-top:1px solid #eef1f5; }
.story-like-form form { display:inline; }
.story-like-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 18px; border-radius:999px; border:1px solid #d7dde6; background:#fff; cursor:pointer; font-size:.95rem; }
.story-like-btn.liked { background:#fff0f0; border-color:#f3b0b0; color:#c0392b; }
.story-login-tip { font-size:.88rem; color:#7b8798; }
.comments { margin-top:30px; }
.comments h2 { font-size:1.25rem; margin-bottom:14px; }
.comment { border-bottom:1px solid #f0f2f6; padding:14px 0; }
.comment-meta { font-size:.82rem; color:#7b8798; margin-bottom:4px; display:flex; gap:10px; }
.comment-author { font-weight:600; color:#3a4658; }
.comment p { margin:0; white-space:pre-wrap; }
.comment-form { margin-top:20px; display:flex; flex-direction:column; gap:10px; }
.comment-form textarea { width:100%; min-height:96px; border:1px solid #d7dde6; border-radius:10px; padding:10px 12px; font:inherit; resize:vertical; }
.comment-form-row { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.story-form-page { max-width:none; margin:24px auto 48px; background:#fff; border:1px solid #e5e9f0; border-radius:16px; padding:32px 36px; }
.story-form-page label.field { display:block; margin-bottom:18px; font-weight:600; }
.story-form-page .field { margin-bottom:18px; }
.story-form-page input[type=text], .story-form-page input[type=file],
.story-form-page select, .story-form-page textarea { width:100%; margin-top:6px; padding:10px 12px; border:1px solid #d7dde6; border-radius:10px; font:inherit; box-sizing:border-box; }
.story-form-page textarea { min-height:220px; resize:vertical; }
.story-form-page .field-hint { font-weight:400; color:#7b8798; font-size:.84rem; margin-top:4px; }
.story-reward { margin:0 0 24px; padding:22px 26px; border:1px solid #ecd9a0; border-radius:14px; background:linear-gradient(135deg,#fffaec 0%,#f2f7ff 100%); }
.story-reward-title { margin:0 0 8px; font-size:1.05rem; font-weight:700; color:#8a6208; }
.story-reward-intro { margin:0 0 14px; color:#5a6577; font-size:.92rem; line-height:1.7; }
.story-reward-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.story-reward-list li { display:flex; gap:12px; align-items:flex-start; margin:0; font-size:.92rem; line-height:1.7; color:#3a4658; }
.story-reward-num { flex:0 0 auto; min-width:46px; text-align:center; font-weight:800; color:#a9780f; background:#fff; border:1px solid #ecd9a0; border-radius:8px; padding:3px 8px; line-height:1.4; }
.story-reward-foot { margin:14px 0 0; font-size:.9rem; color:#5a6577; }
.story-reward-foot a { color:#0b5cab; font-weight:600; text-decoration:none; }
.story-reward-foot a:hover { text-decoration:underline; }
.story-form-actions { display:flex; gap:12px; margin-top:24px; }
.btn-primary, .btn-secondary { display:inline-block; padding:10px 22px; border-radius:10px; text-decoration:none; font-size:.98rem; cursor:pointer; border:1px solid transparent; }
.btn-primary { background:#1f6feb; color:#fff; }
.btn-secondary { background:#fff; color:#3a4658; border-color:#d7dde6; }
.story-banner { padding:12px 16px; border-radius:10px; margin-bottom:18px; font-size:.92rem; }
.story-banner-PENDING { background:#fff5e0; color:#8a5400; }
.story-banner-REJECTED { background:#fdeaea; color:#9b2118; }
.points-hero { background:linear-gradient(120deg,#1f6feb,#3b8bff); color:#fff; border-radius:16px; padding:28px 32px; margin:24px 0 22px; display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between; }
.points-hero .balance { font-size:2.6rem; font-weight:700; line-height:1; }
.points-hero a { color:#fff; text-decoration:underline; }
.points-table { width:100%; border-collapse:collapse; background:#fff; border-radius:14px; overflow:hidden; border:1px solid #e5e9f0; }
.points-table th, .points-table td { padding:12px 16px; text-align:left; border-bottom:1px solid #f0f2f6; font-size:.92rem; }
.points-table th { background:#f7f9fc; color:#5a6577; font-weight:600; }
.points-plus { color:#1a8a4a; font-weight:700; }
.points-minus { color:#c0392b; font-weight:700; }
.points-rules { background:#fff; border:1px solid #e5e9f0; border-radius:14px; padding:18px 22px; margin:22px 0; }
.points-rules h2 { font-size:1.1rem; margin:0 0 10px; }
.points-rules ul { margin:0; padding-left:20px; color:#4a5668; line-height:1.9; font-size:.92rem; }
.story-tag.tag-CITY { background:#f3efff; color:#6f3fd1; }
.story-tag.tag-CUSTOM_DISEASE { background:#fff7ed; color:#b45309; border:1px dashed #f0b267; padding:1px 9px; }
.story-card-tags { margin-bottom:2px; }
.story-field-label { display:block; font-weight:600; margin-bottom:6px; }
.story-content-hint { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.story-counter { color:#7b8798; white-space:nowrap; }
.story-counter b.is-limit { color:#c0392b; }
.story-form-page select[multiple] { min-height:118px; padding:6px; }
.story-picker { border:1px solid #d7dde6; border-radius:10px; background:#fff; padding:10px 12px; }
.story-picker-search { width:100%; padding:8px 10px; border:1px solid #d7dde6; border-radius:8px; font:inherit; box-sizing:border-box; }
.story-picker-panel { max-height:180px; overflow-y:auto; margin-top:8px; border:1px solid #eef1f5; border-radius:8px; }
.story-picker-opt { display:flex; align-items:center; gap:8px; padding:7px 10px; font-weight:400; border-bottom:1px solid #f2f4f8; cursor:pointer; }
.story-picker-opt:last-child { border-bottom:0; }
.story-picker-opt:hover { background:#f6f9ff; }
.story-picker-opt[hidden] { display:none; }
.story-picker-opt input[type=checkbox] { width:auto; margin:0; }
.story-picker-empty { margin:8px 2px 0; font-weight:400; color:#7b8798; font-size:.84rem; }

/* 标签选择器：每个分类一行（仅 storyTagPicker，不影响城市/医院/疾病列表） */
#storyTagPicker .story-picker-panel { max-height:none; overflow:visible; border:0; border-radius:0; margin-top:10px; padding:0; display:block; }
#storyTagPicker .story-picker-opt { display:inline-flex; align-items:center; padding:7px 14px; border:1px solid #d7dde6; border-bottom:1px solid #d7dde6; border-radius:999px; background:#fff; font-weight:400; transition:background .12s ease, border-color .12s ease, color .12s ease; }
#storyTagPicker .story-picker-opt:hover { background:#f6f9ff; }
#storyTagPicker .story-picker-opt input[type=checkbox] { position:absolute; width:1px; height:1px; opacity:0; margin:0; padding:0; }
#storyTagPicker .story-picker-opt:has(input:checked) { border-color:#2f6df6; background:#eaf1ff; color:#1a4fd0; font-weight:600; }
/* 分类行：标签按分类分行平铺，行内每类只能选一个 */
#storyTagPicker .story-tag-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:7px 0; }
#storyTagPicker .story-tag-row + .story-tag-row { border-top:1px dashed #eef1f5; }
#storyTagPicker .story-tag-row-label { flex:0 0 92px; font-size:.82rem; font-weight:600; color:#7b8798; }
#storyTagPicker .story-tag-row[hidden] { display:none; }

.story-form-page .field-hint.is-error { color:#c0392b; font-weight:600; }
/* 图片上传组件：正文配图累积缩略图 */
.story-upload-add { display:inline-flex; align-items:center; gap:8px; margin-top:6px; padding:10px 16px; border:1px dashed #c2ccd9; border-radius:10px; background:#f7faff; color:#2b6cb0; font:inherit; cursor:pointer; }
.story-upload-add:hover { background:#eef5ff; border-color:#9bb8e0; }
.story-upload-add:disabled { opacity:.5; cursor:not-allowed; }
.story-upload-add-icon { font-size:1.1rem; line-height:1; }
.story-upload-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:10px; margin-top:12px; }
.story-upload-grid:empty { display:none; }
.img-prev { position:relative; aspect-ratio:1/1; border:1px solid #e2e8f0; border-radius:10px; overflow:hidden; background:#f2f5f9; }
.img-prev img { width:100%; height:100%; object-fit:cover; display:block; }
.img-prev-del { position:absolute; top:4px; right:4px; width:22px; height:22px; border:0; border-radius:50%; background:rgba(20,30,50,.6); color:#fff; font-size:15px; line-height:1; cursor:pointer; }
.img-prev-del:hover { background:rgba(180,30,30,.85); }
.story-upload-count { margin-left:8px; }
/* 个人中心「我的故事」列表 */
.story-mine-list { display:flex; flex-direction:column; gap:14px; margin-top:18px; }
.story-mine-card { display:flex; align-items:stretch; gap:14px; background:#fff; border:1px solid #e5e9f0; border-radius:14px; padding:14px; }
.story-mine-main { display:flex; gap:14px; flex:1; min-width:0; text-decoration:none; color:inherit; }
.story-mine-body { display:flex; flex-direction:column; gap:8px; min-width:0; padding:2px 0; }
.story-mine-title { margin:0; font-size:1.05rem; line-height:1.4; color:#16233a; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.story-mine-meta { display:flex; flex-wrap:wrap; gap:8px; }
.story-mine-stats { display:flex; flex-wrap:wrap; gap:14px; font-size:.86rem; color:#7b8798; margin-top:auto; }
.story-stat { display:inline-flex; align-items:center; gap:4px; }
.story-mine-edit { flex:0 0 auto; align-self:center; padding:8px 16px; border:1px solid #1f6feb; border-radius:999px; color:#1f6feb; text-decoration:none; font-size:.88rem; white-space:nowrap; }
.story-mine-edit:hover { background:#1f6feb; color:#fff; }
/* 审核未通过：卡片内展示驳回原因，并把入口改为实心「修改后重新提交」 */
.story-mine-reject { padding:8px 12px; border:1px solid #f0c36d; border-left:3px solid #d98a17; border-radius:8px; background:#fff8e8; color:#8a5a12; font-size:.88rem; line-height:1.6; word-break:break-word; }
.story-mine-reject b { color:#a96a0c; }
.story-mine-card:has(.story-mine-reject) { border-color:#f0c36d; }
.story-mine-edit-resubmit { border-color:#d98a17; background:#d98a17; color:#fff; font-weight:600; }
.story-mine-edit-resubmit:hover { border-color:#b9750f; background:#b9750f; color:#fff; }
/* 详情页：作者已发布故事的编辑入口 */
.story-edit-link { display:inline-flex; align-items:center; padding:8px 18px; border:1px solid #1f6feb; border-radius:999px; color:#1f6feb; text-decoration:none; font-size:.95rem; }
.story-edit-link:hover { background:#1f6feb; color:#fff; }
@media (max-width:640px) {
  .story-detail, .story-form-page { padding:22px 18px; border-radius:0; border-left:0; border-right:0; }
  .story-detail h1 { font-size:1.5rem; }
  /* 窄屏下正文宽度本就有限，图片放宽到整栏，避免缩到过小 */
  .formatted-content img { max-width:100%; }
}
