@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

html{ font-size: 18px; } /* крупнее стандартных 16px — весь текст сайта в rem, так что масштабируется целиком */

:root{
  --bg: #0d1410; --bg-deep: #090d0a; --panel: #131b14; --panel-2: #17211a;
  --slime-bright: #a8f2a0; --slime-dark: #3f6b45; --gold: #e3c169;
  --text: #e8f2e6; --muted: #86a086; --danger: #d9695a; --border: #2c3a2b;
  --slot-l: rgba(255,255,255,0.10); --slot-d: rgba(0,0,0,0.55);
}

*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:
    radial-gradient(circle at 15% 0%, rgba(139,224,143,0.06), transparent 45%),
    radial-gradient(circle at 85% 100%, rgba(227,193,105,0.05), transparent 40%),
    var(--bg);
  color:var(--text); font-family:'Manrope', sans-serif; min-height:100vh;
}
a{ color:inherit; }
::selection{ background:var(--slime-dark); color:#fff; }
:focus-visible{ outline:2px solid var(--slime-bright); outline-offset:2px; }
.pixel-font{ font-family:'Press Start 2P', monospace; letter-spacing:0.5px; }
.mono{ font-family:'JetBrains Mono', monospace; }

.slot{ background:var(--panel); border:2px solid var(--border);
  box-shadow: inset 2px 2px 0 var(--slot-l), inset -2px -2px 0 var(--slot-d); border-radius:2px; }
button{ font-family:inherit; cursor:pointer; }
.btn{ padding:12px 20px; border-radius:6px; font-weight:700; font-size:0.8125rem;
  border:2px solid var(--slime-dark); background:var(--slime-bright); color:#0a1a0c;
  box-shadow: inset -2px -2px 0 rgba(0,0,0,0.2), inset 2px 2px 0 rgba(255,255,255,0.35);
  transition: transform .1s ease; text-decoration:none; display:inline-block; }
.btn:active{ transform:translateY(1px); }
.btn.ghost{ background:transparent; color:var(--text); box-shadow:none; }
.btn.ghost:hover{ border-color:var(--slime-bright); color:var(--slime-bright); }
.btn.small{ padding:8px 14px; font-size:0.6875rem; }
.btn.danger{ background:var(--danger); border-color:#a3453a; color:#fff; }
.btn.donate-btn{ background:var(--gold); border-color:#b3903f; color:#3a2c05; }
.btn.donate-btn:hover{ filter:brightness(1.08); color:#3a2c05; }
.donate-nav-item{ color:var(--gold); }
.donate-nav-item:hover{ background:var(--panel-2); color:var(--gold); }
.btn.block{ width:100%; text-align:center; }

/* guest pages */
.guest-topbar{ display:flex; align-items:center; justify-content:space-between; padding:18px 28px; border-bottom:2px solid var(--border); }
.brand{ display:flex; align-items:center; gap:10px; }
.brand-mark{ width:30px; height:30px; border-radius:6px; background:linear-gradient(145deg, var(--slime-bright), var(--slime-dark)); box-shadow: inset -3px -3px 0 rgba(0,0,0,0.35), inset 3px 3px 0 rgba(255,255,255,0.25); position:relative; flex-shrink:0; }
.brand-mark::after{ content:""; position:absolute; inset:7px; background:var(--bg-deep); border-radius:3px; opacity:0.35; }
.brand-name{ font-size:0.875rem; letter-spacing:1px; }
.brand-name span{ color:var(--slime-bright); }
.guest-cta{ display:flex; gap:10px; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 28px; }
@media (max-width:820px){ .wrap{ padding:0 16px; } }

.hero{ position:relative; padding:80px 0 50px; overflow:hidden; display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:center; }
@media (max-width:900px){ .hero{ grid-template-columns:1fr; padding-top:50px; } }
.blob{ position:absolute; border-radius:50%; background:radial-gradient(circle at 35% 30%, var(--slime-bright), var(--slime-dark) 70%); filter:blur(2px); opacity:0.45; }
.blob1{ width:220px; height:220px; top:-60px; right:6%; }
.blob2{ width:120px; height:120px; bottom:-30px; left:4%; opacity:0.3; }
.eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:0.6875rem; color:var(--slime-bright); border:1px solid var(--slime-dark); background:rgba(139,224,143,0.06); padding:6px 12px; border-radius:20px; margin-bottom:22px; }
.hero h1{ font-family:'Press Start 2P', monospace; font-size:clamp(24px, 4vw, 40px); line-height:1.45; text-shadow: 0 0 26px rgba(139,224,143,0.25); margin-bottom:18px; }
.hero h1 span{ color:var(--slime-bright); }
.hero p{ max-width:520px; color:var(--muted); font-size:0.9688rem; line-height:1.65; margin-bottom:26px; }
.ip-row{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.ip-box{ display:flex; align-items:center; gap:12px; padding:12px 18px; }
.ip-box .label{ font-size:0.625rem; color:var(--muted); text-transform:uppercase; letter-spacing:1px; }
.ip-box .ip{ font-size:1rem; color:var(--slime-bright); }

.auth-card{ padding:26px; max-width:380px; justify-self:end; width:100%; }
@media (max-width:900px){ .auth-card{ justify-self:stretch; max-width:100%; } }
.auth-card h2{ font-size:0.875rem; margin-bottom:16px; }
.auth-form{ display:flex; flex-direction:column; gap:12px; }
.auth-form input{ background:var(--bg); border:2px solid var(--border); border-radius:6px; padding:11px 13px; color:var(--text); font-size:0.8125rem; font-family:inherit; }
.auth-form input:focus{ border-color:var(--slime-dark); }
.auth-err{ color:var(--danger); font-size:0.75rem; }
.auth-hint{ font-size:0.6875rem; color:var(--muted); margin-top:2px; }
.auth-switch{ font-size:0.75rem; color:var(--muted); margin-top:14px; text-align:center; }
.auth-switch a{ color:var(--slime-bright); }

.ms-btn{ display:flex; align-items:center; justify-content:center; gap:10px; background:#2f2f2f; border-color:#2f2f2f; color:#fff; box-shadow:none; }
.ms-btn:hover{ background:#1f1f1f; border-color:#1f1f1f; }
.ms-logo{
  display:inline-block; width:15px; height:15px; flex-shrink:0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Crect x='1' y='1' width='9' height='9' fill='%23f25022'/%3E%3Crect x='11' y='1' width='9' height='9' fill='%237fba00'/%3E%3Crect x='1' y='11' width='9' height='9' fill='%2300a4ef'/%3E%3Crect x='11' y='11' width='9' height='9' fill='%23ffb900'/%3E%3C/svg%3E");
  background-size: 100% 100%;
}
.auth-divider{ display:flex; align-items:center; gap:10px; margin:16px 0; font-size:0.6875rem; color:var(--muted); }
.auth-divider::before, .auth-divider::after{ content:""; flex:1; height:1px; background:var(--border); }

.stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:20px; }
@media (max-width:820px){ .stat-row{ grid-template-columns:repeat(2,1fr); } }
.stat{ padding:18px; }
.stat .num{ font-family:'Press Start 2P',monospace; font-size:1.125rem; color:var(--slime-bright); }
.stat .lbl{ font-size:0.6875rem; color:var(--muted); margin-top:8px; }

.section-title{ font-family:'Press Start 2P', monospace; font-size:0.9375rem; margin:60px 0 22px; display:flex; align-items:center; gap:12px; }
.section-title::after{ content:""; flex:1; height:2px; background:var(--border); }
.feature-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:820px){ .feature-grid{ grid-template-columns:1fr; } }
.feature{ padding:22px; }
.feature .ic{ font-size:1.375rem; margin-bottom:12px; display:block; }
.feature h4{ font-size:0.875rem; margin-bottom:8px; }
.feature p{ font-size:0.8125rem; color:var(--muted); line-height:1.6; }
footer.site-footer{ text-align:center; padding:50px 20px 40px; color:var(--muted); font-size:0.6875rem; }

/* app shell */
.app-shell{ display:flex; min-height:100vh; align-items:stretch; max-width:1440px; margin:0 auto; border-left:2px solid var(--border); border-right:2px solid var(--border); }
@media (max-width:1440px){ .app-shell{ border-left:none; border-right:none; } }
.sidebar{ width:226px; flex-shrink:0; background:var(--panel); border-right:2px solid var(--border); position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:16px 10px; gap:2px; overflow-y:auto; }
.sidebar-brand{ display:flex; align-items:center; gap:10px; padding:8px 8px 18px; }
.sidebar-brand .brand-name{ font-size:0.7812rem; }
.nav-item{ display:flex; align-items:center; gap:12px; width:100%; background:transparent; border:2px solid transparent; color:var(--muted); padding:11px 12px; border-radius:6px; font-size:0.8438rem; text-align:left; text-decoration:none; }
.nav-item .ic{ font-size:1rem; width:20px; text-align:center; flex-shrink:0; }
.nav-item:hover{ background:var(--panel-2); color:var(--text); }
.nav-item.active{ background:var(--panel-2); color:var(--slime-bright); border-color:var(--slime-dark); box-shadow: inset 2px 2px 0 var(--slot-l), inset -2px -2px 0 var(--slot-d); }
.nav-spacer{ flex:1; }
.online-pill-side{ display:flex; align-items:center; gap:8px; padding:9px 12px; font-size:0.7188rem; color:var(--muted); }
.online-dot{ width:8px; height:8px; border-radius:50%; background:var(--slime-bright); box-shadow:0 0 8px var(--slime-bright); flex-shrink:0; }
.sidebar-user{ display:flex; align-items:center; gap:10px; padding:10px 8px; border-top:2px solid var(--border); margin-top:6px; }
.sidebar-user .av{ width:32px; height:32px; border-radius:6px; background:linear-gradient(145deg, var(--slime-dark), var(--panel-2)); display:flex; align-items:center; justify-content:center; font-size:0.8125rem; font-weight:700; color:var(--slime-bright); flex-shrink:0; }
.sidebar-user .name{ font-size:0.7812rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
.sidebar-user .logout{ background:transparent; border:none; color:var(--muted); font-size:0.875rem; flex-shrink:0; text-decoration:none; }
.sidebar-user .logout:hover{ color:var(--danger); }
.nav-label{ white-space:nowrap; overflow:hidden; }
.main-content{ flex:1; min-width:0; padding:34px 40px 70px; }
@media (max-width:1000px){ .main-content{ padding:28px 24px 90px; } }
@media (max-width:960px){
  .sidebar{ width:76px; }
  .sidebar-brand .brand-name, .nav-label, .sidebar-user .name{ display:none; }
  .nav-item{ justify-content:center; padding:12px 6px; }
  .sidebar-user{ justify-content:center; }
  .online-pill-side{ justify-content:center; }
  .online-pill-side span:last-child{ display:none; }
}
@media (max-width:620px){
  .app-shell{ flex-direction:column; }
  .sidebar{ position:fixed; bottom:0; left:0; right:0; top:auto; width:100%; height:64px; flex-direction:row; align-items:center; justify-content:space-around; border-right:none; border-top:2px solid var(--border); padding:6px 10px; z-index:60; }
  .sidebar-brand, .sidebar-user, .online-pill-side, .nav-spacer{ display:none; }
  .nav-item{ flex-direction:column; gap:2px; padding:6px 8px; width:auto; }
  .main-content{ padding-bottom:90px; }
}

.page-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:26px; }
.page-head h2{ font-family:'Press Start 2P', monospace; font-size:1rem; }
.page-head .sub{ font-size:0.75rem; color:var(--muted); }

.news-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.news-card{ padding:18px; display:flex; flex-direction:column; gap:10px; }
.news-card .date{ font-size:0.625rem; color:var(--muted); }
.news-card h3{ font-size:0.9375rem; color:var(--slime-bright); }
.news-card p{ font-size:0.8125rem; color:var(--muted); line-height:1.6; white-space:pre-wrap; }
.empty{ color:var(--muted); font-size:0.8125rem; padding:20px; text-align:center; }

/* reactions */
.reaction-bar{ display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.reaction-btn{ display:flex; align-items:center; gap:5px; background:var(--bg); border:1px solid var(--border); border-radius:16px; padding:5px 10px; font-size:0.8125rem; color:var(--muted); }
.reaction-btn:hover{ border-color:var(--slime-dark); }
.reaction-btn.active{ border-color:var(--slime-bright); background:rgba(139,224,143,0.12); color:var(--slime-bright); }
.reaction-count{ font-size:0.6875rem; font-family:'JetBrains Mono', monospace; }

/* comments */
.comments-block{ margin-top:12px; border-top:1px solid var(--border); padding-top:10px; }
.comments-toggle{ background:transparent; border:none; color:var(--muted); font-size:0.7812rem; padding:2px 0; }
.comments-toggle:hover{ color:var(--text); }
.comments-list{ margin-top:10px; }
.comments-items{ display:flex; flex-direction:column; gap:10px; margin-bottom:10px; }
.comment-item{ display:flex; gap:9px; }
.comment-item .av{ width:28px; height:28px; border-radius:6px; flex-shrink:0; background:linear-gradient(145deg, var(--slime-dark), var(--panel-2)); display:flex; align-items:center; justify-content:center; font-size:0.6875rem; font-weight:700; color:var(--slime-bright); }
.comment-body{ background:var(--bg); border:1px solid var(--border); border-radius:4px 10px 10px 10px; padding:8px 11px; flex:1; }
.comment-who{ font-size:0.6875rem; color:var(--slime-bright); margin-bottom:2px; display:flex; gap:7px; align-items:baseline; }
.comment-who .t{ color:var(--muted); font-size:0.625rem; }
.comment-text{ font-size:0.8125rem; line-height:1.5; white-space:pre-wrap; }
.comment-form{ display:flex; gap:8px; }
.comment-form input{ flex:1; background:var(--bg); border:2px solid var(--border); border-radius:6px; padding:8px 12px; color:var(--text); font-size:0.8125rem; font-family:inherit; }
.comment-form input:focus{ border-color:var(--slime-dark); }

/* news reactions & comments */
.reactions-row{ display:flex; gap:6px; flex-wrap:wrap; margin-top:4px; }
.reaction-btn{ display:flex; align-items:center; gap:5px; background:var(--bg); border:1px solid var(--border); border-radius:20px; padding:4px 10px; font-size:0.7812rem; color:var(--muted); }
.reaction-btn:hover{ border-color:var(--slime-dark); }
.reaction-btn.mine{ background:rgba(139,224,143,0.12); border-color:var(--slime-dark); color:var(--slime-bright); }
.reaction-btn .rcount{ font-size:0.6875rem; font-family:'JetBrains Mono', monospace; }

.comments-block{ border-top:1px solid var(--border); margin-top:10px; padding-top:10px; }
.comments-list{ display:flex; flex-direction:column; gap:8px; max-height:180px; overflow-y:auto; margin-bottom:10px; }
.comments-empty{ font-size:0.7188rem; color:var(--muted); }
.comment-item{ font-size:0.75rem; line-height:1.5; }
.comment-who{ color:var(--slime-bright); font-weight:700; margin-right:6px; }
.comment-time{ color:var(--muted); font-size:0.625rem; }
.comment-body{ color:var(--text); margin-top:2px; white-space:pre-wrap; }
.comment-form{ display:flex; gap:8px; }
.comment-form input{ flex:1; background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:8px 11px; color:var(--text); font-size:0.7812rem; font-family:inherit; }
.comment-form input:focus{ border-color:var(--slime-dark); }

.chat-shell{ display:grid; grid-template-columns:200px 1fr; gap:16px; height:calc(100vh - 210px); min-height:480px; }
@media (max-width:820px){ .chat-shell{ grid-template-columns:1fr; height:auto; } }
.chan-list{ padding:12px; display:flex; flex-direction:column; gap:4px; }
.chan-list .h{ font-size:0.625rem; color:var(--muted); text-transform:uppercase; padding:8px 10px; letter-spacing:1px; }
.chan-btn{ display:flex; align-items:center; gap:8px; text-align:left; background:transparent; border:none; color:var(--muted); padding:9px 10px; border-radius:5px; font-size:0.8125rem; text-decoration:none; }
.chan-btn:hover{ background:var(--panel-2); color:var(--text); }
.chan-btn.active{ background:var(--panel-2); color:var(--slime-bright); }
.chan-btn .hash{ color:var(--slime-dark); }
.chat-panel{ display:flex; flex-direction:column; overflow:hidden; }
.chat-head{ padding:14px 18px; border-bottom:2px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
.chat-head .title{ font-size:0.875rem; }
.chat-head .sub{ font-size:0.6875rem; color:var(--muted); }
.chat-msgs{ flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:14px; }
.msg{ display:flex; gap:10px; max-width:78%; }
.msg .av{ width:34px; height:34px; border-radius:6px; flex-shrink:0; background:linear-gradient(145deg, var(--slime-dark), var(--panel-2)); display:flex; align-items:center; justify-content:center; font-size:0.8125rem; font-weight:700; color:var(--slime-bright); }
.msg .bubble{ background:var(--panel-2); border:1px solid var(--border); border-radius:4px 10px 10px 10px; padding:9px 12px; }
.msg .who{ font-size:0.7188rem; color:var(--slime-bright); margin-bottom:3px; display:flex; gap:8px; align-items:baseline; }
.msg .who .t{ color:var(--muted); font-size:0.625rem; }
.msg .body{ font-size:0.8438rem; line-height:1.5; white-space:pre-wrap; }
.msg.mine{ align-self:flex-end; flex-direction:row-reverse; }
.msg.mine .bubble{ background:rgba(139,224,143,0.12); border-color:var(--slime-dark); border-radius:10px 4px 10px 10px; }
.msg.mine .who{ justify-content:flex-end; }
.chat-input{ display:flex; gap:10px; padding:14px 16px; border-top:2px solid var(--border); }
.chat-input input{ flex:1; background:var(--bg); border:2px solid var(--border); border-radius:6px; padding:11px 14px; color:var(--text); font-size:0.8438rem; font-family:inherit; }
.chat-input input:focus{ border-color:var(--slime-dark); }

.map-frame{ width:100%; height:calc(100vh - 130px); min-height:500px; border-radius:8px; overflow:hidden; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; text-align:center; padding:30px; }
.map-frame.has-map{ padding:0; }
.map-frame iframe{ width:100%; height:100%; border:none; }
.map-frame .ph-ic{ font-size:2.125rem; }
.map-frame p{ color:var(--muted); font-size:0.8125rem; max-width:420px; }

.profile-grid{ display:grid; grid-template-columns:260px 1fr; gap:20px; align-items:start; }
@media (max-width:820px){ .profile-grid{ grid-template-columns:1fr; } }
.profile-card{ padding:24px; text-align:center; }
.profile-card .av-big{ width:76px; height:76px; border-radius:12px; margin:0 auto 14px; background:linear-gradient(145deg, var(--slime-dark), var(--panel-2)); display:flex; align-items:center; justify-content:center; font-size:1.75rem; font-weight:700; color:var(--slime-bright); }
.profile-card h3{ font-size:1rem; margin-bottom:4px; }
.profile-card .joined{ font-size:0.7188rem; color:var(--muted); margin-top:14px; }
.profile-form{ padding:22px; }
.profile-form label{ font-size:0.7188rem; color:var(--muted); display:block; margin-bottom:6px; margin-top:14px; }
.profile-form label:first-child{ margin-top:0; }
.profile-form input, .profile-form textarea{ width:100%; background:var(--bg); border:2px solid var(--border); border-radius:6px; padding:10px 13px; color:var(--text); font-size:0.8125rem; font-family:inherit; }
.profile-form textarea{ resize:vertical; min-height:90px; }
.form-ok{ color:var(--slime-bright); font-size:0.7812rem; margin-bottom:12px; }

.admin-tabs{ display:flex; gap:8px; margin-bottom:22px; border-bottom:2px solid var(--border); flex-wrap:wrap; }
.admin-tabs a{ color:var(--muted); padding:10px 4px; font-size:0.8125rem; border-bottom:2px solid transparent; margin-bottom:-2px; text-decoration:none; }
.admin-tabs a.active{ color:var(--slime-bright); border-color:var(--slime-bright); }
.form-row{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.form-row input, .form-row textarea, .form-row select{ flex:1; min-width:180px; background:var(--bg); border:2px solid var(--border); border-radius:6px; padding:10px 13px; color:var(--text); font-size:0.8125rem; font-family:inherit; }
textarea{ resize:vertical; min-height:70px; width:100%; }
table{ width:100%; border-collapse:collapse; font-size:0.8125rem; }
th{ text-align:left; color:var(--muted); font-size:0.6875rem; text-transform:uppercase; letter-spacing:0.5px; padding:10px 12px; border-bottom:2px solid var(--border); }
td{ padding:10px 12px; border-bottom:1px solid var(--border); vertical-align:middle; }
tr:hover td{ background:rgba(139,224,143,0.03); }
.role-tag{ font-size:0.6875rem; padding:3px 9px; border-radius:12px; border:1px solid var(--slime-dark); color:var(--slime-bright); display:inline-block; }
.status-tag{ font-size:0.6875rem; padding:3px 9px; border-radius:12px; display:inline-block; }
.status-active{ color:var(--slime-bright); border:1px solid var(--slime-dark); }
.status-banned{ color:var(--danger); border:1px solid #6b2f28; }
.row-actions{ display:flex; gap:6px; flex-wrap:wrap; }
.icon-btn{ background:transparent; border:1px solid var(--border); color:var(--muted); border-radius:5px; padding:5px 9px; font-size:0.75rem; text-decoration:none; display:inline-block; }
.icon-btn:hover{ color:var(--text); border-color:var(--slime-dark); }
.news-admin-item{ display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding:16px; margin-bottom:10px; }
.news-admin-item h4{ font-size:0.8438rem; margin-bottom:4px; }
.news-admin-item p{ font-size:0.75rem; color:var(--muted); white-space:pre-wrap; }

/* rules */
.rules-section{ padding:22px 24px; margin-bottom:16px; }
.rules-title{ font-size:0.9375rem; color:var(--slime-bright); padding-bottom:12px; margin-bottom:12px; border-bottom:1px solid var(--border); }
.rules-sub{ font-weight:700; font-size:0.8438rem; color:var(--text); margin-top:16px; margin-bottom:6px; }
.rules-sub:first-child{ margin-top:0; }
.rules-list{ list-style:none; margin:0 0 4px; padding:0; }
.rules-list li{ position:relative; padding-left:18px; font-size:0.8438rem; line-height:1.7; color:var(--muted); margin-bottom:6px; }
.rules-list li::before{ content:"›"; position:absolute; left:0; color:var(--slime-bright); font-weight:700; }
.rules-p{ font-size:0.8438rem; line-height:1.7; color:var(--muted); margin-bottom:8px; }

/* about page — admin people */
.admin-people-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; margin-bottom:20px; }
.admin-person-card{ padding:20px 14px; text-align:center; }
a.admin-person-card{ transition: border-color .15s ease, transform .1s ease; }
a.admin-person-card:hover{ border-color:var(--slime-dark); transform:translateY(-2px); }
.admin-person-av{ width:56px; height:56px; border-radius:12px; margin:0 auto 10px; background:linear-gradient(145deg, var(--slime-dark), var(--panel-2)); display:flex; align-items:center; justify-content:center; font-size:1.25rem; font-weight:700; color:var(--slime-bright); }
.admin-person-name{ font-size:0.8438rem; font-weight:700; }
.admin-person-nick{ font-size:0.6875rem; color:var(--muted); margin-top:2px; }


/* admin: homepage feature cards editor */
.feature-edit-row{ display:flex; gap:12px; align-items:flex-start; padding:14px; margin-bottom:10px; }
.feature-icon-input{ width:56px; flex-shrink:0; text-align:center; font-size:1.25rem; background:var(--bg); border:2px solid var(--border); border-radius:6px; padding:8px 4px; color:var(--text); font-family:inherit; }
.feature-edit-fields{ flex:1; display:flex; flex-direction:column; gap:8px; }
.feature-edit-fields input, .feature-edit-fields textarea{ width:100%; background:var(--bg); border:2px solid var(--border); border-radius:6px; padding:9px 12px; color:var(--text); font-size:0.8125rem; font-family:inherit; }
.feature-edit-fields textarea{ min-height:56px; resize:vertical; }
.feature-remove-btn{ flex-shrink:0; }

/* tickets */
.ticket-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px; margin-bottom:10px; text-decoration:none; color:inherit; }
.ticket-row:hover{ border-color:var(--slime-dark); }
.ticket-row-subject{ font-size:0.875rem; font-weight:700; margin-bottom:4px; }
.ticket-row-date{ font-size:0.6875rem; color:var(--muted); }
.ticket-thread{ display:flex; flex-direction:column; gap:14px; }
