:root{--bg:#f6f7f9;--card:#fff;--text:#1b1f27;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--accent-soft:#e8f0fe;--ok:#15803d;--warn:#b45309;--bad:#b91c1c}
@media (prefers-color-scheme:dark){:root{--bg:#0f1218;--card:#171b24;--text:#e6e9ef;--muted:#8b93a3;--line:#262c39;--accent:#6ea0ff;--accent-soft:#1c2740;--ok:#4ade80;--warn:#fbbf24;--bad:#f87171}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 -apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:860px;margin:0 auto;padding:16px}
.wrap.wide{max-width:1100px}
header.top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
h1{font-size:1.5rem;margin:.2em 0}h2{font-size:1.15rem;margin:1.4em 0 .5em}
.muted{color:var(--muted)}.small{font-size:.85rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.chip{padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font-size:.9rem}
.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.post .meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.85rem;margin-bottom:4px}
.post h3{margin:.1em 0 .35em;font-size:1.08rem;line-height:1.35}
.post p{margin:.2em 0 .5em}
.post .src{font-size:.88rem}
form.search{display:flex;gap:8px;margin:8px 0}
input,textarea,select{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
textarea{min-height:90px;resize:vertical}
form.search input{flex:1}
button,.btn{font:inherit;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:8px 14px;cursor:pointer;display:inline-block}
button.ghost,.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}
button.bad{background:var(--bad)}button.ok{background:var(--ok)}
button.sm{padding:4px 9px;font-size:.85rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:700px){.grid2,.grid3{grid-template-columns:1fr}}
label{display:block;font-size:.88rem;color:var(--muted);margin:10px 0 3px}
label.inline{display:flex;gap:8px;align-items:center;color:var(--text)}label.inline input{width:auto}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600}
td.url{word-break:break-all;max-width:340px}
.tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.78rem;border:1px solid var(--line);color:var(--muted)}
.tag.ok{color:var(--ok);border-color:var(--ok)}.tag.warn{color:var(--warn);border-color:var(--warn)}.tag.bad{color:var(--bad);border-color:var(--bad)}
.flash{background:var(--accent-soft);border:1px solid var(--accent);padding:10px 12px;border-radius:10px;margin:10px 0}
.actions{display:flex;gap:6px;flex-wrap:wrap}.actions form{margin:0}
nav.admin{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.pager{display:flex;justify-content:space-between;margin:14px 0}
.stat{font-size:1.4rem;font-weight:700}
.inline-form{display:inline}
