
:root{--sage:#93c0a0;--green:#6e9277;--green-dk:#415e49;--green-ink:#2c3f32;--ink:#25282a;--muted:#5c655f;--line:#e4e0d6;--cream:#f6f3ec;--cream-2:#efeadf;--paper:#fff;
--red:#9b3b2e;--red-bg:#f7e9e5;--amber:#7a5a12;--amber-bg:#f6efd9;--radius:14px;--radius-sm:9px;--shadow-sm:0 3px 12px rgba(40,55,45,.08)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.5 "Noto Sans","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;font-synthesis:none}
a{color:var(--green-dk)}
.banner{background:var(--green-ink);color:#fff;font-size:14px;line-height:1.5;padding:8px 16px;text-align:center}
header.top{background:var(--paper);border-bottom:1px solid var(--line)}
.wrap{max-width:960px;margin:0 auto;padding:0 16px}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:56px;padding:8px 0}
.brand{font-weight:600;color:var(--green-ink);text-decoration:none;margin-right:8px;letter-spacing:.02em}
.nav a.item{color:var(--muted);text-decoration:none;font-size:14px;padding:4px 8px;border-radius:var(--radius-sm)}
.nav a.item[aria-current="page"]{background:var(--cream-2);color:var(--green-ink)}
.nav .spacer{flex:1}
main{padding:24px 0 48px}
h1{font-size:26px;line-height:1.35;margin:0 0 8px;color:var(--green-ink);font-weight:600}
h2{font-size:21px;line-height:1.35;margin:32px 0 8px;color:var(--green-ink);font-weight:600}
h3{font-size:18px;line-height:1.35;margin:24px 0 8px;font-weight:600}
p{margin:0 0 12px}.lede{color:var(--muted);margin-bottom:24px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:0 0 16px;box-shadow:var(--shadow-sm)}
.muted{color:var(--muted)}.small{font-size:14px}.xs{font-size:12px}.mono{font-family:ui-monospace,Consolas,Menlo,monospace;font-size:14px}
.btn{display:inline-block;background:var(--green-dk);color:#fff;border:1px solid var(--green-dk);border-radius:var(--radius-sm);padding:10px 16px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.5}
.btn:hover{background:var(--green-ink)}
.btn.secondary{background:var(--paper);color:var(--green-dk)}
.btn.danger{background:var(--red);border-color:var(--red)}
.btn.lg{padding:14px 24px;font-size:18px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5}
th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:12px;letter-spacing:.05em;text-transform:uppercase}
.table-wrap{overflow-x:auto}
.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:var(--radius-sm);background:var(--cream-2);color:var(--green-ink);white-space:nowrap}
.badge.ok{background:#e3efe5;color:var(--green-ink)}.badge.warn{background:var(--amber-bg);color:var(--amber)}.badge.bad{background:var(--red-bg);color:var(--red)}
.notice{border-radius:var(--radius-sm);padding:12px 16px;margin:0 0 16px;font-size:14px}
.notice.error{background:var(--red-bg);color:var(--red);border:1px solid #e6c9c2}
.notice.warn{background:var(--amber-bg);color:var(--amber);border:1px solid #e8dbb0}
.notice.ok{background:#e3efe5;color:var(--green-ink);border:1px solid #cfe0d3}
.empty{background:var(--cream-2);border-radius:var(--radius);padding:24px;color:var(--muted);text-align:center}
.empty strong{display:block;color:var(--ink);margin-bottom:4px}
form .field{margin:0 0 16px}
label{display:block;font-size:14px;color:var(--muted);margin-bottom:4px}
input[type=text],select{width:100%;max-width:480px;font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}
.fixed{display:inline-block;padding:8px 12px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--cream-2);color:var(--ink)}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px}
.stat .n{font-size:26px;line-height:1.2;color:var(--green-ink)}.stat .l{font-size:12px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
.post{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.post img{width:72px;height:72px;object-fit:cover;border-radius:var(--radius-sm);background:var(--cream-2)}
.post .ph{width:72px;height:72px;border-radius:var(--radius-sm);background:var(--cream-2)}
.perm{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;font-size:14px}
.perm code{font-family:ui-monospace,Consolas,Menlo,monospace;color:var(--green-ink);font-size:14px}
footer{border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:14px}
footer a{margin-right:16px}
.check{display:flex;gap:8px;align-items:flex-start}.check input{margin-top:4px}
.mt0{margin-top:0}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mb16{margin-bottom:16px}.m0{margin:0}.avatar{border-radius:50%}.prewrap{white-space:pre-wrap}.img-fluid{max-width:100%;border-radius:var(--radius-sm)}
@media (max-width:480px){h1{font-size:21px}.btn.lg{width:100%;text-align:center}.stats{grid-template-columns:1fr 1fr}}
