:root{
  --bg:#f4f6f6; --surface:#fff; --ink:#15282b; --muted:#5d7073; --line:#d9e2e3; --accent:#0e6f74; --accent-ink:#fff;
  --ok:#2f7d4a; --warn:#a86207; --err:#b3261e; --draft:#5d7073; --appr:#2763b8;
  --f:"Segoe UI", system-ui, -apple-system, Roboto, sans-serif; --mono:ui-monospace, Menlo, Consolas, monospace;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0f1a1c; --surface:#172629; --ink:#e4eeef; --muted:#9db0b3; --line:#2a3c3f; --accent:#5cc3c8; --accent-ink:#0f1a1c;
  --ok:#6cc98d; --warn:#f0a54a; --err:#ff8a80; --draft:#9db0b3; --appr:#7fb0ff; color-scheme:dark}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--f)}
a{color:var(--accent)}
.wrap{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
.top{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:17px}
nav{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center}
nav a{text-decoration:none;color:var(--ink)}
.banner{background:#fff4dc;color:#6b4300;padding:8px 16px;font-size:14px;text-align:center}
@media (prefers-color-scheme: dark){.banner{background:#3a2c10;color:#f6d79b}}
h1{font-size:24px;margin:0 0 12px}
h2{font-size:16px;margin:0 0 10px}
.muted,.hint{color:var(--muted)}
.hint{font-size:13px;margin:4px 0 12px}
.mono{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px}
.form label{display:block;font-weight:600;font-size:14px;margin:12px 0 4px}
.form input:not([type=checkbox]),.form select,.form textarea,.login input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit}
textarea{resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
fieldset{border:0;padding:0;margin:12px 0 0}
legend{font-weight:600;font-size:14px;margin-bottom:4px}
.check{display:inline-flex !important;gap:6px;align-items:center;font-weight:400 !important;margin-right:16px !important}
button,.btn{font:600 14px var(--f);padding:8px 14px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}
button.primary,.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
button.link{border:0;background:none;padding:0;color:var(--ink);font-weight:400}
button.danger{color:var(--err);border-color:var(--err)}
.form button.primary{margin-top:16px}
.side{display:grid;gap:12px;align-content:start}
.side form{margin:0 0 8px}
.grid2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;align-items:start}
.narrow{max-width:640px}
.inline{display:inline}
.flash{padding:10px 12px;border-radius:6px;margin-bottom:12px;border:1px solid var(--line);background:var(--surface)}
.flash.ok{border-color:var(--ok)} .flash.error{border-color:var(--err);color:var(--err)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 16px}
.pill{padding:4px 10px;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:14px;background:var(--surface)}
.pill.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.filters input[type=month]{padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
.scroll{overflow-x:auto}
table.posts{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.posts th,.posts td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.posts th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.posts td.detail{font-family:var(--mono);font-size:12px;max-width:420px;overflow-wrap:anywhere;color:var(--muted)}
.status{font-size:12px;font-weight:600;padding:2px 8px;border-radius:4px;border:1px solid currentColor;white-space:nowrap}
.st-draft{color:var(--draft)} .st-approved{color:var(--appr)} .st-published{color:var(--ok)} .st-failed{color:var(--err)}
.warn{color:var(--warn)}
.preview{display:block;width:100%;max-width:420px;border-radius:8px;border:1px solid var(--line);margin:8px 0}
td.thumb{width:64px;padding:6px 8px}
td.thumb img{display:block;width:56px;height:70px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
.empty{padding:32px;text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:10px}
.log{list-style:none;padding:0;margin:0;font-size:13px;display:grid;gap:4px}
details.danger{margin-top:12px} details.danger summary{cursor:pointer;color:var(--muted);font-size:13px}
.login{max-width:360px;margin:12vh auto 0}
.login label{display:block;margin:12px 0 4px;font-weight:600}
.login button{margin-top:18px;width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:760px){
  .grid2{grid-template-columns:1fr}
  .posts thead{display:none}
  .posts tr{display:grid;grid-template-columns:1fr auto;padding:8px 0;border-bottom:1px solid var(--line)}
  .posts td{border:0;padding:2px 12px}
  .posts td:nth-child(3){grid-column:1/-1;order:-1;font-weight:600}
  .posts td.thumb{grid-row:span 2}
}
