:root { --bg:#fff; --fg:#1b1f24; --muted:#5b6570; --accent:#287d22; --accent-bright:#39ff14; --accent-ink:#13220f; --line:#d8dde3; --card:#f6f8fa; --err:#b3261e; --ok:#287d22; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#14181d; --fg:#e6e9ed; --muted:#97a1ad; --accent:#9af58a; --accent-bright:#39ff14; --accent-ink:#10200c; --line:#2b323a; --card:#1b2128; --err:#f2a29c; --ok:#8ce780; }
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.6 system-ui, sans-serif; }
a { color:var(--accent); }
.site-header { display:flex; flex-wrap:wrap; gap:1rem; align-items:baseline; padding:1rem 1.25rem; border-bottom:2px solid var(--accent-bright); }
.brand { font-weight:700; font-size:1.2rem; text-decoration:none; color:var(--fg); }
.site-header nav { display:flex; flex-wrap:wrap; gap:.25rem 1rem; }
.site-header nav a { text-decoration:none; color:var(--muted); }
.site-header nav a.active, .site-header nav a:hover { color:var(--accent); text-decoration:underline; text-decoration-color:var(--accent-bright); text-decoration-thickness:2px; text-underline-offset:.25em; }
main { max-width:52rem; margin:0 auto; padding:1.5rem 1.25rem 3rem; }
footer { max-width:52rem; margin:0 auto; padding:1rem 1.25rem 2rem; color:var(--muted); font-size:.9rem; }
.lede { color:var(--muted); }
.card { background:var(--card); border:1px solid var(--line); border-inline-start:3px solid var(--accent-bright); border-radius:8px; padding:.5rem 1rem; margin:1rem 0; }
.card h2 { margin:.5rem 0 .25rem; font-size:1.2rem; }
.meta { color:var(--muted); font-size:.9rem; margin:.25rem 0 .75rem; }
.post-body img { max-width:100%; height:auto; }
.post-cover { margin:1rem 0 1.5rem; }
.post-cover img { display:block; width:100%; max-height:34rem; object-fit:cover; border-radius:8px; }
.post-cover + .post-body { margin-top:0; }
.post-body pre, pre.ql-syntax { background:var(--card); border:1px solid var(--line); padding:.75rem; overflow-x:auto; border-radius:6px; }
.post-body code { font-family: ui-monospace, monospace; }
.post-body blockquote { border-left:3px solid var(--line); margin-left:0; padding-left:1rem; color:var(--muted); }
.ql-align-center { text-align:center; } .ql-align-right { text-align:right; } .ql-align-justify { text-align:justify; }
.ql-indent-1 { padding-left:3em; } .ql-indent-2 { padding-left:6em; } .ql-indent-3 { padding-left:9em; }
.stack { display:flex; flex-direction:column; gap:.9rem; }
label { display:flex; flex-direction:column; gap:.25rem; font-weight:600; }
label.check { flex-direction:row; align-items:center; gap:.5rem; font-weight:400; }
input[type=text], input[type=password], textarea, select { font:inherit; padding:.5rem; border:1px solid var(--line); border-radius:6px; background:var(--bg); color:var(--fg); }
button { font:inherit; padding:.5rem 1rem; border:0; border-radius:6px; background:var(--accent-bright); color:var(--accent-ink); font-weight:650; cursor:pointer; align-self:flex-start; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:3px solid var(--accent-bright); outline-offset:2px; }
button.link { background:none; color:var(--accent); text-decoration:underline; padding:0; }
.error { color:var(--err); font-weight:600; }
.flash { color:var(--ok); font-weight:600; }
.nonce { background:var(--card); border:1px solid var(--line); padding:.75rem; word-break:break-all; white-space:pre-wrap; border-radius:6px; }
.admin-bar { display:flex; justify-content:space-between; align-items:baseline; }
#editor-container { height:320px; background:var(--bg); color:var(--fg); }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:.4rem .5rem; border-bottom:1px solid var(--line); }
.cover-image-fields { border:1px solid var(--line); border-left:3px solid var(--accent-bright); border-radius:8px; padding:.75rem 1rem 1rem; }
.cover-image-fields legend { padding:0 .35rem; font-weight:700; }
.cover-image-fields .field-hint { margin:.2rem 0 .8rem; color:var(--muted); font-size:.9rem; }
.cover-image-fields input[type=file] { font:inherit; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-search { display:flex; gap:.35rem; align-items:center; margin-left:auto; }
.site-search input { font:inherit; width:min(13rem,45vw); padding:.35rem .5rem; border:1px solid var(--line); border-radius:6px; background:var(--bg); color:var(--fg); }
.site-search button { padding:.35rem .65rem; }
.related-articles { margin-top:2.5rem; padding-top:1rem; border-top:2px solid var(--accent-bright); }
.related-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); gap:.5rem; }
.related-card { margin:.25rem 0; }
.related-card h3 { margin:.3rem 0; font-size:1.05rem; }
.related-card p:last-child { margin:.25rem 0; }
.search-result h2 { margin:.25rem 0; font-size:1.2rem; }
.action-link { display:inline-block; margin-right:.75rem; }
.relation-option { align-items:flex-start!important; display:flex!important; flex-direction:row!important; border-bottom:1px solid var(--line); padding:.5rem 0; }
.relation-option span { display:flex; flex-direction:column; }
.relation-option small { color:var(--muted); font-weight:400; }
@media (max-width:700px) { .site-search { margin-left:0; width:100%; } .site-search input { flex:1; width:auto; } }
.project-invite { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin:1.5rem 0 2rem; padding:1rem 1.2rem; border:1px solid var(--line); border-inline-start:4px solid var(--accent-bright); border-radius:8px; background:var(--card); }
.project-invite h2, .project-card h2 { margin:.1rem 0 .25rem; }
.project-invite p { margin:.2rem 0; color:var(--muted); }
.button-link { display:inline-block; background:var(--accent-bright); color:var(--accent-ink); font-weight:700; text-decoration:none; padding:.55rem .9rem; border-radius:6px; }
.button-link:hover { filter:brightness(.94); }
.project-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); gap:1rem; margin-top:1.5rem; }
.project-card { padding:1rem 1.2rem; border:1px solid var(--line); border-inline-start:4px solid var(--accent-bright); border-radius:8px; background:var(--card); }
.project-card p { color:var(--muted); }
.project-card .button-link { margin-top:.4rem; }
.project-status { display:inline-block; margin:.2rem 0 .4rem!important; padding:.15rem .5rem; border-radius:1rem; background:var(--accent-bright); color:var(--accent-ink)!important; font-size:.8rem; font-weight:700; }
