:root { --bg: #eef1f4; --panel: #ffffff; --ink: #1f2933; --muted: #617080; --line: #cfd7df; --accent: #176b5d; --accent-strong: #0d5549; --danger: #b42318; --danger-bg: #fff1f0; --shadow: 0 18px 45px rgba(31, 41, 51, 0.1); } * { box-sizing: border-box; } html, body { min-height: 100%; } body { margin: 0; background: var(--bg); color: var(--ink); font-family: Arial, Helvetica, sans-serif; line-height: 1.5; } button, input, textarea { font: inherit; } .topbar { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 28px; border-bottom: 1px solid var(--line); background: #f9fafb; } .topbar h1 { margin: 2px 0 0; font-size: 28px; line-height: 1.15; } .eyebrow { margin: 0; color: var(--accent); font-size: 12px; font-weight: 700; letter-spacing: 0; text-transform: uppercase; } .topbar__actions, .editor-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .button { min-height: 38px; border: 1px solid var(--line); border-radius: 6px; padding: 8px 13px; background: #ffffff; color: var(--ink); cursor: pointer; } .button:hover { border-color: #9aa8b6; } .button:disabled { cursor: not-allowed; opacity: 0.55; } .button--primary { border-color: var(--accent-strong); background: var(--accent); color: #ffffff; } .button--danger { border-color: #f0b8b2; background: var(--danger-bg); color: var(--danger); } .workspace { height: calc(100vh - 92px); display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); } .sidebar { min-height: 0; border-right: 1px solid var(--line); background: #f8fafc; overflow: hidden; display: flex; flex-direction: column; } .sidebar__header { padding: 18px; border-bottom: 1px solid var(--line); } .sidebar__header label, .field span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 13px; font-weight: 700; } input, textarea { width: 100%; border: 1px solid var(--line); border-radius: 6px; background: #ffffff; color: var(--ink); outline: none; } input { min-height: 38px; padding: 8px 10px; } textarea { resize: vertical; padding: 10px; } .field-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; } input:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(23, 107, 93, 0.14); } .article-list { min-height: 0; overflow: auto; padding: 10px; } .article-list__empty { padding: 18px 8px; color: var(--muted); } .article-item { width: 100%; display: block; border: 1px solid transparent; border-radius: 6px; padding: 10px; background: transparent; text-align: left; } .article-item:hover { background: #eef4f6; } .article-item[aria-selected='true'] { border-color: rgba(23, 107, 93, 0.38); background: #e5f3f0; } .article-item strong { display: block; line-height: 1.25; } .article-item span { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; } .editor { min-width: 0; min-height: 0; overflow: auto; padding: 22px 28px 34px; } .status-line { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; color: var(--muted); font-size: 14px; } .status-line a { color: var(--accent); font-weight: 700; text-decoration: none; } .article-form { display: grid; gap: 18px; } .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); box-shadow: var(--shadow); } .field--wide { grid-column: 1 / -1; } .editor-tools { justify-content: flex-start; } .content-layout { min-height: 680px; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr); gap: 18px; } .content-field, .preview { min-width: 0; min-height: 0; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); box-shadow: var(--shadow); } .content-field { padding: 14px; } .content-field__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; } .content-field__header > span { margin-bottom: 0; } .markdown-toolbar { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; } .tool-button { min-height: 30px; border: 1px solid var(--line); border-radius: 6px; padding: 5px 8px; background: #f8fafc; color: var(--ink); cursor: pointer; font-size: 12px; font-weight: 700; } .tool-button:hover { border-color: #9aa8b6; background: #ffffff; } .content-field textarea { flex: 1; min-height: 560px; font-family: SFMono-Regular, Menlo, Consolas, monospace; font-size: 14px; line-height: 1.55; } .preview { overflow: hidden; } .preview__cover { min-height: 190px; border-bottom: 1px solid var(--line); background: #f8fafc; } .preview__cover img { width: 100%; height: 260px; object-fit: cover; } .preview iframe { width: 100%; flex: 1; min-height: 420px; border: 0; background: #ffffff; } @media (max-width: 980px) { .topbar { align-items: flex-start; flex-direction: column; } .workspace { height: auto; grid-template-columns: 1fr; } .sidebar { max-height: 360px; border-right: 0; border-bottom: 1px solid var(--line); } .content-layout, .form-grid { grid-template-columns: 1fr; } } @media (max-width: 640px) { .topbar, .editor { padding-left: 16px; padding-right: 16px; } .topbar__actions, .editor-tools { width: 100%; } .button { flex: 1 1 auto; } .status-line { align-items: flex-start; flex-direction: column; } }