:root { color-scheme: dark light; --bg: #0a0a0a; --fg: #e8e8e8; --muted: #8a8a8a; --border: #2a2a2a; --accent: #5fb3ff; --red: #ff7a7a; --green: #5fd97a; --blue: #5fb3ff; --code-bg: #161616; } @media (prefers-color-scheme: light) { :root { --bg: #fafaf8; --fg: #111; --muted: #555; --border: #e5e5e5; --accent: #0066cc; --red: #c83232; --green: #1e8a3e; --blue: #0066cc; --code-bg: #f0f0eb; } } * { box-sizing: border-box; } html, body { margin: 0; padding: 0; } body { background: var(--bg); color: var(--fg); font: 16px/1.65 ui-sans-serif, -apple-system, "SF Pro Text", "Inter", system-ui, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .md-nav { max-width: 720px; margin: 0 auto; padding: 28px 24px 0; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.85rem; letter-spacing: 0.02em; color: var(--muted); } .md-nav a { color: var(--muted); text-decoration: none; transition: color 0.1s; } .md-nav a:hover, .md-nav a.nav-active { color: var(--fg); } .md-nav-sep { margin: 0 0.4em; opacity: 0.45; } main.md { max-width: 720px; margin: 0 auto; padding: 56px 24px 120px; } main.md h1, main.md h2, main.md h3 { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-weight: 600; letter-spacing: -0.01em; } main.md h1 { font-size: clamp(2rem, 6vw, 2.6rem); margin: 0 0 0.4rem; } main.md h2 { font-size: 0.95rem; margin: 3rem 0 1rem; color: var(--muted); text-transform: lowercase; letter-spacing: 0.04em; } main.md h3 { font-size: 1rem; margin: 2rem 0 0.6rem; } main.md blockquote { margin: 0 0 2rem; padding: 0; border: none; color: var(--muted); font-size: 1.1rem; line-height: 1.5; } main.md hr { border: none; border-top: 1px solid var(--border); margin: 3rem 0; } main.md p { margin: 0 0 1.2rem; } main.md a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; transition: text-decoration-thickness 0.1s; } main.md a:hover { text-decoration-thickness: 2px; } main.md code { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.9em; background: var(--code-bg); border: 1px solid var(--border); padding: 0.1em 0.4em; border-radius: 4px; } main.md pre { background: var(--code-bg); border: 1px solid var(--border); padding: 1rem 1.2rem; border-radius: 6px; overflow-x: auto; font-size: 0.9rem; line-height: 1.55; margin: 0 0 1.5rem; } main.md pre code { background: transparent; border: none; padding: 0; font-size: inherit; } main.md table { width: 100%; border-collapse: collapse; margin: 0 0 1.5rem; font-size: 0.95rem; } main.md th, main.md td { text-align: left; padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--border); vertical-align: top; } main.md th { font-weight: 600; font-family: ui-monospace, monospace; font-size: 0.8rem; text-transform: lowercase; letter-spacing: 0.04em; color: var(--muted); } main.md ul, main.md ol { margin: 0 0 1.2rem; padding-left: 1.4rem; } main.md li { margin: 0.3rem 0; } main.md strong { font-weight: 600; } .red { color: var(--red); } .green { color: var(--green); } .blue { color: var(--blue); } .muted { color: var(--muted); } ::selection { background: var(--accent); color: var(--bg); } /* --- reports / dashboard ---------------------------------------------- */ .report-mockup-banner { background: var(--code-bg); border: 1px dashed var(--border); padding: 0.7rem 1rem; border-radius: 4px; font-size: 0.85rem; color: var(--muted); margin: 0 0 2rem; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; } .report-mockup-banner a { color: var(--muted); text-decoration: underline; text-underline-offset: 2px; } .report-mockup-banner a:hover { color: var(--fg); } .report-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 1.5rem 0 2.5rem; } .report-tile { border: 1px solid var(--border); border-radius: 6px; padding: 1.2rem 1.2rem 1rem; background: var(--code-bg); } .report-tile-name { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.8rem; text-transform: lowercase; letter-spacing: 0.04em; color: var(--muted); margin: 0 0 0.6rem; } .report-tile-name a { color: inherit; text-decoration: none; } .report-tile-name a:hover { color: var(--fg); } .report-tile-score { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 2.2rem; font-weight: 600; letter-spacing: -0.02em; margin: 0; line-height: 1.1; } .report-tile-score-suffix { font-size: 0.95rem; color: var(--muted); font-weight: 400; } .report-tile-trend { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.9rem; margin: 0.4rem 0 0.6rem; } .report-tile-trend.up { color: var(--green); } .report-tile-trend.down { color: var(--red); } .report-tile-trend.flat { color: var(--muted); } .report-tile-volume { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.78rem; color: var(--muted); margin: 0 0 0.8rem; } .report-tile-issue { font-size: 0.82rem; color: var(--muted); border-top: 1px solid var(--border); padding-top: 0.7rem; } .report-tile-issue strong { color: var(--fg); font-weight: 500; } .report-bars { margin: 1rem 0 2rem; } .report-bar-row { display: grid; grid-template-columns: 180px 1fr 50px; align-items: center; gap: 0.8rem; margin: 0.5rem 0; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.85rem; } .report-bar-label { color: var(--muted); } .report-bar-track { height: 10px; background: var(--code-bg); border: 1px solid var(--border); border-radius: 2px; overflow: hidden; } .report-bar-fill { display: block; height: 100%; background: var(--accent); } .report-bar-fill.red { background: var(--red); } .report-bar-fill.green { background: var(--green); } .report-bar-fill.muted { background: var(--muted); } .report-bar-pct { text-align: right; color: var(--fg); } .report-streak { display: inline-block; padding: 0.4rem 0.8rem; border: 1px solid var(--border); border-radius: 4px; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.85rem; color: var(--muted); margin: 0 0 1.5rem; } .report-streak-num { font-weight: 600; color: var(--fg); } .report-streak.broken { color: var(--red); border-color: var(--red); } .report-streak.broken .report-streak-num { color: var(--red); } .report-streak.long { color: var(--green); border-color: var(--green); } .report-streak.long .report-streak-num { color: var(--green); } .report-sparkline { width: 100%; height: 80px; display: block; margin: 0.5rem 0 1.2rem; } @media (max-width: 600px) { .report-tiles { grid-template-columns: 1fr; } .report-bar-row { grid-template-columns: 130px 1fr 50px; } } /* tests overview */ .test-snapshots { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin: 1rem 0 1.5rem; } .test-snapshot { border: 1px solid var(--border); border-radius: 6px; padding: 1rem 1.1rem; background: var(--code-bg); } .test-snapshot.bad { border-left: 3px solid var(--red); } .test-snapshot.ok { border-left: 3px solid var(--green); } .test-snapshot-head { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.95rem; margin: 0 0 0.3rem; } .test-snapshot-branch { color: var(--muted); font-weight: 400; font-size: 0.85rem; } .test-snapshot-stats { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.8rem; color: var(--muted); margin: 0 0 0.7rem; } .test-list { list-style: none; margin: 0; padding: 0; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.82rem; } .test-list li { margin: 0.25rem 0; padding-left: 1.2rem; position: relative; line-height: 1.4; } .test-list li::before { position: absolute; left: 0; top: 0; } .test-list-fail { color: var(--fg); } .test-list-fail::before { content: "✗"; color: var(--red); } .test-list-pass { color: var(--green); } .test-list-pass::before { content: "✓"; color: var(--green); } .test-list-collapsed { color: var(--muted); } .test-list-collapsed::before { content: "+"; color: var(--muted); } .test-list-meta { color: var(--muted); font-size: 0.78rem; } main.md table.test-stability { width: 100%; border-collapse: collapse; font-size: 0.85rem; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; margin: 1rem 0 1.5rem; } main.md table.test-stability th, main.md table.test-stability td { text-align: left; padding: 0.55rem 0.6rem; border-bottom: 1px solid var(--border); vertical-align: top; } main.md table.test-stability th.num, main.md table.test-stability td.test-stab-num { text-align: right; width: 50px; } .test-stab-name { color: var(--fg); } .test-stab-repo { color: var(--muted); font-size: 0.75rem; margin-top: 0.15rem; } .test-stab-num.red { color: var(--red); font-weight: 600; } .test-stab-num.green { color: var(--muted); } .test-stab-row.flagged { background: color-mix(in srgb, var(--red) 8%, transparent); } .test-stab-warn { color: var(--red); margin-left: 0.25rem; cursor: help; } .agent-tag { font-size: 0.78rem; padding: 0.15rem 0.5rem; border: 1px solid var(--border); border-radius: 999px; color: var(--muted); text-decoration: none; white-space: nowrap; } .agent-tag:hover { color: var(--fg); border-color: var(--fg); } @media (max-width: 600px) { .test-snapshots { grid-template-columns: 1fr; } main.md table.test-stability { font-size: 0.78rem; } } /* projects */ .project-form { display: grid; gap: 0.6rem; margin: 1.2rem 0 1.5rem; max-width: 540px; } .project-form label { font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.82rem; color: var(--muted); } .project-form label code { font-size: 0.78rem; background: var(--code-bg); border: 1px solid var(--border); padding: 0.05em 0.35em; border-radius: 3px; } .project-form input[type="text"] { font: inherit; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.95rem; padding: 0.65rem 0.8rem; background: var(--code-bg); color: var(--fg); border: 1px solid var(--border); border-radius: 4px; outline: none; } .project-form input[type="text"]:focus { border-color: var(--accent); } .project-form button { font: inherit; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.85rem; padding: 0.55rem 1rem; background: var(--accent); color: var(--bg); border: 1px solid var(--accent); border-radius: 4px; cursor: pointer; justify-self: start; } .project-form button:hover { filter: brightness(1.1); } .project-form-error { background: color-mix(in srgb, var(--red) 10%, transparent); border: 1px solid var(--red); color: var(--fg); padding: 0.7rem 0.9rem; border-radius: 4px; font-size: 0.9rem; margin: 0 0 1.2rem; } .project-form-error strong { color: var(--red); } /* ----------------------------------------------------------------- Docs layout — content + on-this-page rail. Used by /sama/*, /guides/*, /blog/* via renderDocsPage. Mobile drops the rail entirely. ----------------------------------------------------------------- */ .docs-body main.md { max-width: none; padding: 0; } .docs-layout { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 2rem; max-width: 1100px; margin: 0 auto; padding: 1rem 1.5rem 4rem; align-items: start; } .docs-rail { position: sticky; top: 1rem; font-size: 0.88rem; align-self: start; max-height: calc(100vh - 2rem); overflow-y: auto; } .docs-content { min-width: 0; font-size: 1rem; line-height: 1.65; } .docs-content > h1:first-child { margin-top: 0; } .docs-content img { max-width: 600px; width: 100%; height: auto; display: block; margin: 1.75rem auto; border-radius: 6px; } .docs-content h2, .docs-content h3 { scroll-margin-top: 1rem; position: relative; } .docs-h-anchor { position: absolute; left: -1.2rem; color: var(--muted); text-decoration: none; opacity: 0; transition: opacity 0.1s; font-weight: normal; } .docs-content h2:hover .docs-h-anchor, .docs-content h3:hover .docs-h-anchor { opacity: 1; } .docs-h-anchor:hover { color: var(--accent); } .docs-edit { text-align: right; font-size: 0.85rem; margin: 0 0 0.5rem; } .docs-edit a { color: var(--muted); text-decoration: none; } .docs-edit a:hover { color: var(--accent); } .docs-rail-title { margin: 0 0 0.5rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); } .docs-rail-list { list-style: none; padding: 0; margin: 0; border-left: 1px solid color-mix(in srgb, var(--muted) 30%, transparent); } .docs-rail-link { display: block; padding: 0.25rem 0.6rem; margin-left: -1px; border-left: 2px solid transparent; color: var(--muted); text-decoration: none; line-height: 1.35; } .docs-rail-link:hover { color: var(--fg); border-left-color: color-mix(in srgb, var(--fg) 40%, transparent); } .docs-rail-link-h3 { padding-left: 1.4rem; font-size: 0.82rem; } .docs-prev-next { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 3rem 0 0; border-top: 1px solid color-mix(in srgb, var(--muted) 25%, transparent); padding-top: 1.5rem; } .docs-pn-prev, .docs-pn-next { display: flex; align-items: center; gap: 0.5rem; padding: 0.8rem 1rem; border: 1px solid color-mix(in srgb, var(--muted) 30%, transparent); border-radius: 6px; text-decoration: none; color: var(--fg); background: color-mix(in srgb, var(--muted) 6%, transparent); } .docs-pn-prev:hover, .docs-pn-next:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); } .docs-pn-prev { justify-content: flex-start; } .docs-pn-next { justify-content: flex-end; text-align: right; } .docs-pn-arrow { color: var(--muted); font-size: 1.1rem; } .docs-pn-label { font-weight: 500; } .docs-pn-spacer {} @media (max-width: 1080px) { .docs-layout { grid-template-columns: 1fr; } .docs-rail { display: none; } } /* ----------------------------------------------------------------- Editor pages — /edit/:section/:slug, /admin/proposals/*. Wider content area, full-width form controls, side-by-side diff blocks. ----------------------------------------------------------------- */ .edit-body main.md { max-width: none; padding: 0; } .edit-container { max-width: 1100px; margin: 0 auto; padding: 1rem 1.5rem 4rem; } .edit-meta { color: var(--muted); font-size: 0.9rem; } .edit-form { display: flex; flex-direction: column; gap: 0.8rem; } .edit-textarea { width: 100%; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.92rem; line-height: 1.55; padding: 0.8rem 1rem; background: color-mix(in srgb, var(--muted) 6%, transparent); color: var(--fg); border: 1px solid color-mix(in srgb, var(--muted) 30%, transparent); border-radius: 4px; resize: vertical; outline: none; } .edit-textarea:focus { border-color: var(--accent); } .edit-actions { display: flex; gap: 0.8rem; align-items: center; } .edit-actions-row { flex-wrap: wrap; } .edit-actions button, .edit-form-inline button { font: inherit; font-family: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace; font-size: 0.88rem; padding: 0.55rem 1rem; background: var(--accent); color: var(--bg); border: 1px solid var(--accent); border-radius: 4px; cursor: pointer; } .edit-actions button:hover, .edit-form-inline button:hover { filter: brightness(1.1); } .edit-cancel, .edit-action-link { color: var(--muted); text-decoration: none; font-size: 0.9rem; } .edit-cancel:hover, .edit-action-link:hover { color: var(--accent); } .edit-form-inline { display: inline-flex; gap: 0.4rem; align-items: center; } .edit-form-inline input[type="text"] { font-family: inherit; padding: 0.45rem 0.7rem; background: color-mix(in srgb, var(--muted) 6%, transparent); color: var(--fg); border: 1px solid color-mix(in srgb, var(--muted) 30%, transparent); border-radius: 4px; font-size: 0.85rem; min-width: 16rem; } .edit-login-button { display: inline-block; padding: 0.7rem 1.2rem; background: var(--accent); color: var(--bg); text-decoration: none; border-radius: 4px; font-weight: 500; } .edit-login-button:hover { filter: brightness(1.1); } .edit-note { margin-top: 1.2rem; color: var(--muted); font-size: 0.88rem; border-left: 2px solid color-mix(in srgb, var(--muted) 30%, transparent); padding-left: 0.8rem; } .edit-table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; } .edit-table th, .edit-table td { text-align: left; padding: 0.55rem 0.8rem; border-bottom: 1px solid color-mix(in srgb, var(--muted) 18%, transparent); font-size: 0.9rem; } .edit-table th { font-weight: 600; color: var(--muted); text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.05em; } .edit-empty { color: var(--muted); text-align: center; padding: 2rem !important; } .edit-status { font-size: 0.78rem; padding: 0.15rem 0.55rem; border-radius: 999px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.04em; } .edit-status-pending { background: color-mix(in srgb, var(--accent) 18%, transparent); color: var(--accent); } .edit-status-approved { background: color-mix(in srgb, var(--green) 18%, transparent); color: var(--green); } .edit-status-rejected { background: color-mix(in srgb, var(--red) 18%, transparent); color: var(--red); } .edit-diff { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1rem 0 2rem; } .edit-diff-pane { border: 1px solid color-mix(in srgb, var(--muted) 25%, transparent); border-radius: 4px; background: color-mix(in srgb, var(--muted) 5%, transparent); } .edit-diff-label { margin: 0; padding: 0.5rem 0.8rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); border-bottom: 1px solid color-mix(in srgb, var(--muted) 25%, transparent); } .edit-diff-pane pre { margin: 0; padding: 0.8rem; max-height: 60vh; overflow: auto; font-size: 0.82rem; line-height: 1.5; white-space: pre-wrap; } @media (max-width: 900px) { .edit-diff { grid-template-columns: 1fr; } } /* ---- /GIT///commit/ ---- */ .commit-view { max-width: 980px; margin: 0 auto; padding: 1.5rem 1rem 4rem; } .commit-breadcrumb { color: var(--muted); font-size: 0.85rem; margin: 0 0 0.4rem; } .commit-breadcrumb code { font-size: 0.85rem; } .commit-subject { font-size: 1.4rem; margin: 0.2rem 0 0.6rem; line-height: 1.3; font-weight: 600; } .commit-body { margin: 0 0 1rem; padding: 0.6rem 0.8rem; background: color-mix(in srgb, var(--muted) 10%, transparent); border-left: 3px solid color-mix(in srgb, var(--muted) 35%, transparent); font-size: 0.88rem; white-space: pre-wrap; line-height: 1.5; } .commit-meta { display: grid; grid-template-columns: max-content 1fr; gap: 0.25rem 1rem; margin: 0 0 1.4rem; font-size: 0.86rem; } .commit-meta dt { color: var(--muted); text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.05em; align-self: center; } .commit-meta dd { margin: 0; } .commit-meta-email { color: var(--muted); } .commit-meta-empty { color: var(--muted); font-style: italic; } .commit-parent code { font-size: 0.85rem; } .commit-files-summary { margin: 0 0 1rem; padding: 0.5rem 0.8rem; background: color-mix(in srgb, var(--muted) 8%, transparent); border-radius: 4px; font-size: 0.85rem; } .commit-empty { color: var(--muted); font-style: italic; } .commit-file-add { color: #2ea043; font-weight: 600; } .commit-file-rem { color: #f85149; font-weight: 600; } .commit-file { border: 1px solid color-mix(in srgb, var(--muted) 25%, transparent); border-radius: 6px; margin: 0 0 1rem; overflow: hidden; } .commit-file-header { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.8rem; background: color-mix(in srgb, var(--muted) 10%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--muted) 22%, transparent); font-size: 0.85rem; flex-wrap: wrap; } .commit-file-path { font-weight: 600; } .commit-file-stats { margin-left: auto; display: flex; gap: 0.5rem; font-size: 0.82rem; } .commit-file-rename code { font-size: 0.82rem; color: var(--muted); } .commit-file-status { display: inline-block; padding: 0.1rem 0.45rem; border-radius: 3px; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; } .commit-file-status-modified { background: color-mix(in srgb, #d29922 25%, transparent); color: #d29922; } .commit-file-status-added { background: color-mix(in srgb, #2ea043 25%, transparent); color: #2ea043; } .commit-file-status-removed { background: color-mix(in srgb, #f85149 25%, transparent); color: #f85149; } .commit-file-status-renamed { background: color-mix(in srgb, #79c0ff 25%, transparent); color: #79c0ff; } .commit-diff-table { width: 100%; border-collapse: collapse; font-family: var(--font-mono, ui-monospace, "SF Mono", monospace); font-size: 0.78rem; line-height: 1.45; table-layout: fixed; } .commit-diff-table td { padding: 0 0.4rem; vertical-align: top; white-space: pre-wrap; word-break: break-word; } .commit-line-old, .commit-line-new { width: 3.5rem; text-align: right; color: var(--muted); user-select: none; border-right: 1px solid color-mix(in srgb, var(--muted) 18%, transparent); } .commit-line-text { padding-left: 0.6rem; } .commit-line-added { background: color-mix(in srgb, #2ea043 14%, transparent); } .commit-line-added .commit-line-text { color: inherit; } .commit-line-removed { background: color-mix(in srgb, #f85149 14%, transparent); } .commit-line-context .commit-line-text { color: var(--muted); } .commit-hunk-header td { background: color-mix(in srgb, var(--accent) 8%, transparent); color: color-mix(in srgb, var(--accent) 80%, var(--fg)); font-size: 0.75rem; padding: 0.3rem 0.6rem; } .commit-hunk-heading { color: var(--muted); margin-left: 0.6rem; } .commit-footer { margin-top: 1.4rem; padding-top: 0.8rem; border-top: 1px solid color-mix(in srgb, var(--muted) 18%, transparent); font-size: 0.85rem; color: var(--muted); } @media (max-width: 700px) { .commit-line-old, .commit-line-new { width: 2.5rem; } .commit-meta { grid-template-columns: 1fr; gap: 0.1rem; } .commit-meta dt { margin-top: 0.4rem; } } /* ---- /GIT///tree|blob/... ---- */ .repo-tree-table { width: 100%; border-collapse: collapse; margin: 0.4rem 0 1rem; font-size: 0.88rem; } .repo-tree-row td { padding: 0.35rem 0.6rem; border-bottom: 1px solid color-mix(in srgb, var(--muted) 14%, transparent); } .repo-tree-row:hover { background: color-mix(in srgb, var(--accent) 6%, transparent); } .repo-tree-icon { width: 1.6rem; text-align: center; user-select: none; } .repo-tree-name a { text-decoration: none; } .repo-tree-name a:hover { text-decoration: underline; } .repo-tree-row-tree .repo-tree-name a { font-weight: 600; } .repo-tree-sha { color: var(--muted); text-align: right; width: 5rem; } .repo-tree-row-up { background: color-mix(in srgb, var(--muted) 5%, transparent); } .repo-blob-header { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.8rem; background: color-mix(in srgb, var(--muted) 10%, transparent); border: 1px solid color-mix(in srgb, var(--muted) 22%, transparent); border-radius: 6px 6px 0 0; border-bottom: none; font-size: 0.85rem; flex-wrap: wrap; } .repo-blob-path { font-weight: 600; } .repo-blob-meta { color: var(--muted); font-size: 0.82rem; } .repo-blob-actions { margin-left: auto; } .repo-blob-source { margin: 0; padding: 0.8rem; border: 1px solid color-mix(in srgb, var(--muted) 22%, transparent); border-radius: 0 0 6px 6px; background: color-mix(in srgb, var(--muted) 5%, transparent); font-family: var(--font-mono, ui-monospace, "SF Mono", monospace); font-size: 0.8rem; line-height: 1.5; white-space: pre-wrap; overflow-x: auto; max-height: 75vh; } .repo-blob-rendered { padding: 1rem 1.2rem; border: 1px solid color-mix(in srgb, var(--muted) 22%, transparent); border-radius: 0 0 6px 6px; border-top: none; } .commit-meta-pill { display: inline-block; padding: 0.05rem 0.4rem; border-radius: 3px; background: color-mix(in srgb, var(--accent) 10%, transparent); text-decoration: none; } /* ----------------------------------------------------------------- admin sxdoc block editor (Fase 2 of podman→tdd.md CMS port) ----------------------------------------------------------------- */ .admin-form { display: grid; gap: 0.9rem; max-width: 60rem; } .admin-field { display: grid; gap: 0.25rem; font-size: 0.85rem; } .admin-field > span { color: var(--muted); } .admin-field input, .admin-field select, .admin-field textarea { font: inherit; padding: 0.35rem 0.55rem; background: var(--bg); color: var(--fg); border: 1px solid var(--border); border-radius: 4px; } .admin-field textarea { font-family: ui-monospace, SFMono-Regular, monospace; font-size: 0.85rem; } .admin-row { display: grid; grid-template-columns: 1fr 1fr 2fr; gap: 0.75rem; } .admin-actions { display: flex; gap: 0.5rem; align-items: center; } .admin-cancel { color: var(--muted); } .admin-error { padding: 0.5rem 0.75rem; background: color-mix(in srgb, #ff5555 12%, transparent); border: 1px solid color-mix(in srgb, #ff5555 50%, transparent); border-radius: 4px; color: #ff8080; font-size: 0.85rem; } .admin-delete { background: transparent; color: #ff8080; border: 1px solid color-mix(in srgb, #ff5555 40%, transparent); padding: 0.35rem 0.7rem; border-radius: 4px; cursor: pointer; } .block-editor { display: grid; gap: 0.3rem; padding: 0.5rem; border: 1px solid var(--border); border-radius: 4px; background: color-mix(in srgb, var(--bg) 85%, var(--fg) 4%); min-height: 12rem; } .block-editor-mode { margin-bottom: 0.4rem; background: transparent; color: var(--muted); border: 1px solid var(--border); padding: 0.2rem 0.5rem; border-radius: 3px; font-size: 0.75rem; cursor: pointer; } .block-editor-raw { font-family: ui-monospace, monospace; } .block { display: grid; grid-template-columns: 1.5rem 1fr auto; gap: 0.4rem; padding: 0.2rem 0.3rem; border-radius: 3px; align-items: start; } .block:hover { background: color-mix(in srgb, var(--fg) 4%, transparent); } .block-handle { color: var(--muted); cursor: grab; user-select: none; padding-top: 0.4rem; } .block-body :is(p, h1, h2, h3, h4, h5, h6, blockquote, li) { margin: 0; outline: none; min-height: 1.4em; } .block-body :is(p, h1, h2, h3, h4, h5, h6, blockquote, li)[data-placeholder]:empty::before { content: attr(data-placeholder); color: color-mix(in srgb, var(--muted) 60%, transparent); } .block-actions { opacity: 0; transition: opacity 100ms; } .block:hover .block-actions { opacity: 1; } .block-delete { background: transparent; border: 1px solid var(--border); color: var(--muted); width: 1.5rem; height: 1.5rem; border-radius: 3px; cursor: pointer; } .block-empty { color: var(--muted); padding: 0.5rem 0; } .block-empty-hint { margin: 0 0 0.3rem; font-size: 0.85rem; } .block-insert { display: flex; justify-content: flex-start; padding-left: 1.9rem; margin: -0.1rem 0; height: 0; overflow: visible; opacity: 0; transition: opacity 80ms; } .block-editor:hover .block-insert { opacity: 0.5; } .block-insert:hover { opacity: 1; } .block-insert-btn { background: transparent; border: 1px dashed var(--border); color: var(--muted); width: 1.5rem; height: 1.5rem; border-radius: 3px; cursor: pointer; } .code-shell, .img-shell, .shortcode-shell, .hr-shell { display: grid; gap: 0.3rem; } .code-shell .code-lang { font-size: 0.75rem; max-width: 14rem; } .code-shell .code-src, .html-shell { font-family: ui-monospace, monospace; font-size: 0.82rem; background: var(--bg); border: 1px solid var(--border); border-radius: 3px; padding: 0.4rem 0.6rem; color: var(--fg); width: 100%; } .img-row { display: grid; grid-template-columns: 5rem 1fr; gap: 0.4rem; align-items: center; } .img-row span { color: var(--muted); font-size: 0.75rem; } .img-preview { max-width: 24rem; border: 1px solid var(--border); border-radius: 3px; } .hr-shell hr { border: none; border-top: 1px solid var(--border); margin: 0.5rem 0; } .slash-menu { position: fixed; z-index: 1000; min-width: 18rem; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; box-shadow: 0 8px 24px rgba(0,0,0,0.4); padding: 0.3rem; display: grid; gap: 0.2rem; } .slash-menu-filter { font: inherit; background: transparent; border: none; border-bottom: 1px solid var(--border); padding: 0.3rem 0.4rem; color: var(--fg); outline: none; } .slash-menu-list { list-style: none; margin: 0; padding: 0; max-height: 16rem; overflow-y: auto; } .slash-menu-item { display: flex; justify-content: space-between; align-items: center; gap: 0.6rem; padding: 0.3rem 0.5rem; border-radius: 4px; cursor: pointer; font-size: 0.85rem; } .slash-menu-item.highlighted { background: color-mix(in srgb, var(--accent) 15%, transparent); } .slash-menu-label { color: var(--fg); } .slash-menu-hint { color: var(--muted); font-size: 0.75rem; } .slash-menu-empty { color: var(--muted); padding: 0.4rem 0.5rem; font-size: 0.85rem; } .block-editor-toast { position: fixed; bottom: 1rem; right: 1rem; padding: 0.45rem 0.8rem; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; font-size: 0.85rem; opacity: 0; transition: opacity 200ms; pointer-events: none; z-index: 999; } .block-editor-toast-show { opacity: 1; } .block-editor-toast-ok { color: #6fdc6f; border-color: color-mix(in srgb, #6fdc6f 40%, transparent); } .block-editor-toast-error { color: #ff8080; border-color: color-mix(in srgb, #ff5555 40%, transparent); }