:root{
  --bg:#f4f7fb; --panel:#fff; --text:#152033; --muted:#65758f; --border:#dbe4f0;
  --accent:#1267d8; --accent-hover:#0f55b5; --danger:#b42318; --danger-bg:#fef3f2;
  --success:#067647; --success-bg:#ecfdf3; --warn:#9a6700; --warn-bg:#fffbe6;
  --chip:#eef2f7;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

.topbar{background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.bar{width:min(1100px,calc(100% - 32px));margin:0 auto;display:flex;align-items:center;gap:16px;padding:12px 0;flex-wrap:wrap}
.brand{font-weight:700;color:var(--accent);font-size:18px}
.nav{display:flex;gap:14px;flex-wrap:wrap}
.nav a{color:var(--muted);font-size:14px}
.nav a:hover{color:var(--text);text-decoration:none}
.userbox{margin-left:auto;display:flex;align-items:center;gap:12px}
.uname{color:var(--muted);font-size:13px}
.logout{font-size:13px}

.wrap{width:min(1100px,calc(100% - 32px));margin:0 auto;padding:26px 0 60px}
.narrow{max-width:440px;margin:48px auto}

.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:22px;box-shadow:0 12px 30px rgba(21,32,51,.06);margin-bottom:18px}
h1{margin:0 0 14px;font-size:24px}
h2{margin:0 0 12px;font-size:18px}
h3{margin:0 0 8px;font-size:15px}
p{line-height:1.5;color:var(--muted)}

label{display:block;margin:14px 0 6px;font-weight:700;font-size:13px}
input,select,textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font:inherit;background:#fff;color:var(--text)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:3px solid rgba(18,103,216,.14)}
input.small{width:120px;display:inline-block}
.row{display:flex;gap:14px;flex-wrap:wrap}
.row>div{flex:1;min-width:160px}

.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:var(--accent);color:#fff;min-height:42px;padding:0 18px;font-weight:700;cursor:pointer;margin-top:14px}
.btn:hover{background:var(--accent-hover);text-decoration:none}
.btn.secondary{background:#fff;color:var(--accent);border:1px solid var(--accent)}
.btn.danger{background:var(--danger)}
.btn.small{min-height:32px;padding:0 12px;font-size:13px;margin:0}
.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}

.notice{border-radius:8px;padding:12px 14px;margin-bottom:16px;line-height:1.45}
.notice.error{color:var(--danger);background:var(--danger-bg);border:1px solid #fecdca}
.notice.success{color:var(--success);background:var(--success-bg);border:1px solid #abefc6}
.notice.warn{color:var(--warn);background:var(--warn-bg);border:1px solid #ffe69c}

table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:middle}
th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.inline{display:inline}

.tag{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--chip);font-size:12px;color:var(--muted)}
.tag.on{background:var(--success-bg);color:var(--success)}
.tag.off{background:#f1f3f7;color:var(--muted)}
.tag.admin{background:#eaf1ff;color:var(--accent)}
.tag.danger{background:var(--danger-bg);color:var(--danger)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}
.stat{font-size:30px;font-weight:700}
.muted{color:var(--muted)}
.small{font-size:13px}
.right{text-align:right}
.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

/* лента канала */
.post{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:14px}
.post .meta{display:flex;gap:12px;color:var(--muted);font-size:12px;margin-bottom:8px;flex-wrap:wrap}
.post .body{white-space:pre-wrap;line-height:1.5;margin-bottom:10px}
.placeholder{display:inline-block;border:1px dashed var(--border);border-radius:8px;padding:10px 14px;color:var(--muted);background:#fafcff;margin:6px 0;font-size:13px}
.reactions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.reaction{display:inline-flex;align-items:center;gap:6px;background:var(--chip);border-radius:999px;padding:4px 10px;font-size:14px}
.reaction b{color:var(--accent)}
.checks{display:flex;flex-wrap:wrap;gap:6px 16px}
.checks label{display:flex;align-items:center;gap:6px;font-weight:400;margin:4px 0}
.checks input{width:auto}
.emoji-pick label{font-size:16px}
fieldset{border:1px solid var(--border);border-radius:10px;padding:14px;margin:14px 0}
legend{font-weight:700;padding:0 6px}
.progress{height:10px;border-radius:6px;background:var(--chip);overflow:hidden;margin-top:8px}
.progress > span{display:block;height:100%;background:var(--accent);width:0}
