/* ModerBot panel — перенос дизайна «Переработка сайта под новый дизайн» (Claude Design). */
:root{
  --bg:#131211; --panel:#1c1a19; --panel2:#171514; --input:#201e1d;
  --line:#423e3d; --line2:#373433; --line3:#2e2b2a; --line4:#201e1d;
  --txt:#f5f2f1; --txt2:#d8d3d1; --txt3:#b3adab; --txt4:#a8a2a0;
  --mut:#97918f; --mut2:#8e8886; --mut3:#7d7876;
  --accent:#ff563c; --accent2:#ff7f68; --accent3:#dd2b0f;
  --av:#3a3634; --av2:#2c2928; --av3:#3f3a38;
  --ok:#3ba55d; --err:#ff563c;
  --mono:ui-monospace,Menlo,Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--txt);font-family:"Archivo",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;font-size:15px}
a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent2)}
button{font-family:inherit}
::selection{background:rgba(255,86,60,.3)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:#373433;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:#5a5654}
code{font-family:var(--mono)}
@keyframes mb-shimmer{0%{background-position:-320px 0}100%{background-position:320px 0}}
@keyframes mb-pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes mb-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes mb-pulse{0%,100%{opacity:.35}50%{opacity:1}}

.mono{font-family:var(--mono)}
.app-root{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}
/* заблокированная высота: скроллятся только сайдбар и main, без второго скролла страницы */
.app-root.locked{height:100vh;min-height:0;overflow:hidden}

/* ── buttons ── */
.btn{height:38px;padding:0 16px;background:transparent;border:1px solid #4a4645;color:var(--txt);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .16s,border-color .16s;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:hover{background:#2a2726;border-color:#6b6664}
.btn-accent{border:0;background:var(--accent);color:#131211;font-weight:800}
.btn-accent:hover{background:var(--accent2)}
.btn-accent:active{transform:translateY(1px);background:var(--accent3)}
.btn-sm{height:30px;padding:0 12px;font-size:11px;letter-spacing:.06em}

/* ── header ── */
.hdr{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:60px;flex:none;background:var(--panel);border-bottom:2px solid var(--line)}
.brand{display:flex;align-items:center;gap:14px}
.brand img{width:28px;height:28px;display:block;object-fit:cover}
.brand .name{font-weight:800;font-size:16px;letter-spacing:-.01em}
.brand .sep{width:1px;height:18px;background:var(--line)}
.brand .tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.me{display:flex;align-items:center;gap:16px}
.me .who{display:flex;align-items:center;gap:10px}
.me .ava{width:28px;height:28px;background:var(--av);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;color:#c9c3c1;object-fit:cover}
.me .nm{display:flex;flex-direction:column;line-height:1.15}
.me .nm b{font-size:13px;font-weight:600}
.me .nm span{font-family:var(--mono);font-size:10px;color:var(--mut)}

/* ── login hero ── */
.hero{flex:1;display:grid;grid-template-columns:1.05fr .95fr;min-height:0}
.hero-left{padding:72px;display:flex;flex-direction:column;justify-content:center;gap:26px;border-right:2px solid var(--line)}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.hero-left h1{margin:0;font-size:60px;line-height:.98;font-weight:800;letter-spacing:-.03em;max-width:13ch}
.hero-left p{margin:0;max-width:44ch;font-size:16px;line-height:1.6;color:var(--txt3)}
.feats{display:flex;flex-direction:column;max-width:460px;border-top:2px solid var(--line)}
.feat{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid var(--line3)}
.feat .n{font-family:var(--mono);font-size:11px;color:var(--accent);width:28px;flex:none}
.feat .t{font-size:14px;color:var(--txt2)}
.hero-cta{align-self:flex-start;height:52px;padding:0 22px;font-size:15px;gap:12px}
.hero-cta .arr{font-size:18px;line-height:1}
.hero-right{position:relative;overflow:hidden;background:#171514;display:flex;align-items:center;justify-content:center;padding:48px}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#201e1d 1px,transparent 1px),linear-gradient(90deg,#201e1d 1px,transparent 1px);background-size:56px 56px}
.hero-card{position:relative;width:100%;max-width:420px;background:var(--panel);border:1px solid var(--line2);box-shadow:0 24px 60px rgba(0,0,0,.55)}
.hero-card .hc-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line3)}
.hero-card .hc-dot{width:8px;height:8px;background:var(--accent)}
.hero-card .hc-ch{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.hero-card .hc-body{padding:18px 16px;display:flex;flex-direction:column;gap:14px}
.log-item{border-left:3px solid var(--accent);padding:10px 14px;background:var(--input)}
.log-item.dim{border-left-color:#4a4645}
.log-item .li-t{font-size:13px;font-weight:800;letter-spacing:.02em}
.log-item.dim .li-t{color:var(--txt2)}
.log-item .li-b{margin-top:6px;font-family:var(--mono);font-size:11.5px;line-height:1.7;color:var(--txt3)}
.log-item.dim .li-b{color:var(--mut2)}

/* ── layout ── */
.layout{flex:1;display:grid;grid-template-columns:312px 1fr;min-height:0}
.sidebar{border-right:2px solid var(--line);background:var(--panel2);display:flex;flex-direction:column;min-height:0}
.sb-head{padding:16px 16px 12px;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid var(--line3)}
.sb-top{display:flex;align-items:baseline;justify-content:space-between}
.sb-top .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.sb-top .cnt{font-family:var(--mono);font-size:10.5px;color:var(--accent)}
.search{display:flex;align-items:center;gap:8px;height:38px;padding:0 10px;background:var(--input);border:1px solid var(--line2);transition:border-color .16s}
.search:focus-within{border-color:#5a5654}
.search .sl{font-family:var(--mono);font-size:12px;color:var(--mut)}
.search input{flex:1;min-width:0;background:transparent;border:0;color:var(--txt);font-family:"Archivo",sans-serif;font-size:13.5px;outline:none}
.search .clr{width:20px;height:20px;background:transparent;border:0;color:var(--mut);font-size:14px;cursor:pointer;line-height:1}
.search .clr:hover{color:var(--accent)}
.glist{flex:1;overflow-y:auto;min-height:0}
.sb-group{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 6px;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut3);background:var(--panel2);border-bottom:1px solid var(--line4);position:sticky;top:0;z-index:1}
.sb-group span{color:var(--accent)}
.grow{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px 10px 16px;background:transparent;border:0;border-bottom:1px solid var(--line4);cursor:pointer;text-align:left;transition:background .16s}
.grow:hover{background:#221f1e}
.grow.sel{background:#221f1e}
.grow .gbar{position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background .16s}
.grow.sel .gbar{background:var(--accent)}
.gav{width:32px;height:32px;flex:none;background:var(--av2);color:#c9c3c1;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:.02em;object-fit:cover}
.grow.sel .gav{background:var(--av3)}
.grow .gtx{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px}
.gname{font-size:13.5px;font-weight:400;color:var(--txt2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grow.sel .gname{font-weight:600;color:var(--txt)}
.gmeta{font-family:var(--mono);font-size:10px;color:var(--mut3);letter-spacing:.04em}
.gdot{width:6px;height:6px;flex:none;background:#4a4645}
.grow.sel .gdot{background:var(--accent)}
.gdot.on{background:var(--ok)}
.grow.sel .gdot.on{background:var(--accent)}
.gchev{font-size:14px;color:#5a5654;display:none}
.noresults{padding:32px 18px;font-size:13px;color:var(--mut2);line-height:1.6}
.noresults span{color:var(--mut3)}

/* ── main ── */
.main{overflow-y:auto;min-height:0;position:relative}
.state-empty{height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 64px;max-width:820px;gap:20px}
.state-empty .rule{width:40px;height:2px;background:var(--accent)}
.state-empty h2{margin:0;font-size:38px;font-weight:800;letter-spacing:-.025em;line-height:1.05}
.state-empty p{margin:0;font-size:15px;line-height:1.65;color:var(--txt4);max-width:52ch}
.skel-wrap{padding:32px 40px;display:flex;flex-direction:column;gap:18px}
.skel{background:linear-gradient(90deg,#201e1d,#2c2928,#201e1d);background-size:320px 100%;animation:mb-shimmer 1.4s linear infinite}
.skel-note{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut3);animation:mb-pulse 1.4s ease-in-out infinite}

/* ── settings ── */
.settings{padding:28px 32px 120px;display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
.set-col{flex:1 1 520px;display:flex;flex-direction:column;min-width:0}
.ghead{display:flex;gap:18px;align-items:flex-start;padding-bottom:20px;border-bottom:2px solid var(--line)}
.ghead .back{display:none;width:34px;height:34px;flex:none;background:transparent;border:1px solid #4a4645;color:var(--txt);font-size:15px;cursor:pointer;line-height:1}
.gav-lg{width:64px;height:64px;flex:none;background:var(--av);color:#e6e1df;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;letter-spacing:-.02em;object-fit:cover}
.ghead .gh-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.ghead h1{margin:0;font-size:32px;font-weight:800;letter-spacing:-.025em;line-height:1.05;overflow-wrap:anywhere}
.gh-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--mut3)}
.gh-meta .v{width:1px;height:11px;background:#4a4645}
.pills{display:flex;flex-wrap:wrap;gap:6px;padding-top:2px}
.pill{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;padding:4px 8px;border:1px solid var(--line2);color:var(--txt4);background:transparent}
.pill.ok{border-color:rgba(255,86,60,.5);color:var(--accent);background:rgba(255,86,60,.08)}
.pill.no{border-color:#7c1405;color:#ff8b78;background:#241413}
.warn{margin-top:14px;border:1px solid #6b551f;background:#241d0f;color:#f0d9a8;padding:10px 14px;font-size:13px;line-height:1.5}

.section{padding:24px 0;border-bottom:1px solid var(--line3)}
.section:last-child{border-bottom:0}
.sec-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.sec-head .num{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.sec-head h4{margin:0;font-size:16px;font-weight:800;letter-spacing:.01em;text-transform:uppercase}
.sec-head .of{font-family:var(--mono);font-size:11px;color:var(--mut3)}
.sec-head .spacer{flex:1}
.seg{display:flex}
.seg .btn+.btn{margin-left:-1px}

.opt-row{display:flex;align-items:center;gap:16px;padding:16px 18px;background:var(--panel);border:1px solid var(--line2);flex-wrap:wrap}
.opt-row+.opt-row{margin-top:-1px}
.opt-row .om{flex:1;min-width:200px}
.opt-row .om .ot{font-size:15px;font-weight:600}
.opt-row .om .od{font-size:12.5px;color:var(--mut2);margin-top:2px}
.badge{font-family:var(--mono);font-size:10px;letter-spacing:.14em;padding:4px 8px;color:var(--mut2);border:1px solid var(--line2)}
.badge.on{color:var(--accent);border-color:rgba(255,86,60,.5)}

/* ── toggle ── */
.toggle{position:relative;flex:none;width:48px;height:26px;padding:0;cursor:pointer;border:1px solid #4a4645;background:var(--input);transition:background .18s,border-color .18s}
.toggle .knob{position:absolute;top:3px;left:3px;width:18px;height:18px;background:#6b6664;transition:transform .18s cubic-bezier(.4,0,.2,1),background .18s;display:block}
.toggle.on{border-color:var(--accent);background:rgba(255,86,60,.16)}
.toggle.on .knob{background:var(--accent);transform:translateX(22px)}

/* ── custom select ── */
.sel-wrap{position:relative}
.sel-wrap.def{width:280px}
.select{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:38px;padding:0 12px;background:var(--input);border:1px solid var(--line2);cursor:pointer;transition:border-color .16s;color:inherit}
.select:hover{border-color:#6b6664}
.select.open{border-color:#6b6664}
.select .lab{font-family:var(--mono);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt)}
.select .lab.empty{color:var(--mut2)}
.select .car{font-size:10px;color:var(--mut)}
.sel-menu{position:absolute;z-index:40;top:calc(100% + 4px);left:0;width:100%;max-height:300px;overflow-y:auto;background:var(--panel);border:1px solid #5a5654;box-shadow:0 18px 40px rgba(0,0,0,.6);animation:mb-pop .14s ease-out}
.sel-menu.right{left:auto;right:0;width:280px}
.opt-gh{padding:8px 12px 4px;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut3);background:var(--panel2)}
.opt-item{display:block;width:100%;text-align:left;padding:8px 12px 8px 20px;background:transparent;border:0;color:var(--txt2);font-family:var(--mono);font-size:12px;cursor:pointer;transition:background .14s}
.opt-item:hover{background:#2a2726}
.opt-item.sel{color:var(--accent)}

/* ── events ── */
.events{display:flex;flex-direction:column;border-top:1px solid var(--line3)}
.ev-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;padding:14px 12px;border-bottom:1px solid var(--line3);transition:background .16s}
.ev-row:hover{background:#1a1817}
.ev-text{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:transparent;border:0;padding:0;cursor:pointer;text-align:left}
.ev-text .et{font-size:14.5px;font-weight:600;color:var(--txt4);transition:color .16s}
.ev-row.on .ev-text .et{color:var(--txt)}
.ev-text .ed{font-size:12.5px;color:var(--mut2);line-height:1.45}
.ev-row .sel-wrap{flex:0 1 250px;min-width:150px}

/* ── preview ── */
.preview{position:sticky;top:28px;flex:1 1 320px;max-width:380px;min-width:0;display:flex;flex-direction:column;border:1px solid var(--line2);background:var(--panel2)}
.pv-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line3)}
.pv-head .l{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.pv-head .c{font-family:var(--mono);font-size:10px;color:var(--accent);max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-body{padding:16px 14px;display:flex;flex-direction:column;gap:12px}
.pv-msg{display:flex;gap:10px}
.pv-msg img{width:32px;height:32px;flex:none;display:block;object-fit:cover}
.pv-name{display:flex;align-items:baseline;gap:8px}
.pv-name b{font-size:13px;font-weight:600}
.pv-bot{font-size:9px;font-weight:800;letter-spacing:.06em;background:var(--av);color:#c9c3c1;padding:2px 4px}
.pv-time{font-family:var(--mono);font-size:10px;color:var(--mut3)}
.pv-embed{margin-top:8px;border-left:3px solid var(--accent);background:var(--input);padding:10px 12px}
.pv-embed .t{font-size:12.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.pv-fields{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.pv-f{display:flex;gap:8px;font-family:var(--mono);font-size:11px;line-height:1.5}
.pv-f .k{width:82px;flex:none;color:var(--mut3)}
.pv-f .val{flex:1;min-width:0;color:var(--txt2)}
.pv-foot{margin-top:10px;padding-top:8px;border-top:1px solid var(--line2);font-family:var(--mono);font-size:10px;color:var(--mut3)}
.pv-tabs{display:flex;border-top:1px solid var(--line3);padding-top:12px}
.pv-tab{flex:1;padding:6px 4px;background:transparent;border:0;border-top:2px solid transparent;color:var(--mut2);font-size:11.5px;font-weight:600;cursor:pointer;transition:color .16s}
.pv-tab:hover{color:var(--txt)}
.pv-tab.sel{color:var(--txt);border-top-color:var(--accent)}

/* ── save bar ── */
/* всегда у нижней кромки видимой области настроек (справа от сайдбара) */
.save-bar{position:fixed;left:312px;right:0;bottom:0;z-index:30;transform:translateY(110%);transition:transform .22s cubic-bezier(.4,0,.2,1)}
.save-bar.show{transform:translateY(0)}
.save-inner{display:flex;align-items:center;gap:14px;padding:12px 32px;background:var(--panel);border-top:2px solid var(--line)}
.dirty-dot{width:8px;height:8px;flex:none;background:#6b6664}
.dirty-dot.on{background:var(--accent);animation:mb-pulse 1.6s ease-in-out infinite}
.save-hint{flex:1;font-size:13px;color:var(--txt3)}

/* ── toast ── */
.toast{position:fixed;left:50%;bottom:80px;transform:translate(-50%,10px);opacity:0;pointer-events:none;background:var(--panel);border:1px solid var(--line2);padding:12px 20px;font-size:13px;z-index:90;transition:opacity .2s,transform .2s;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{border-color:#2f6b45}
.toast.err{border-color:#7c1405}

/* ── error card ── */
.err-wrap{padding:40px}
.err-card{max-width:640px;border:1px solid #7c1405;background:#1e1615}
.err-card .top{height:3px;background:var(--accent)}
.err-card .body{padding:24px 26px;display:flex;flex-direction:column;gap:14px}
.err-card .tag{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.err-card h3{margin:0;font-size:24px;font-weight:800;letter-spacing:-.02em}
.err-card p{margin:0;font-size:14.5px;line-height:1.65;color:var(--txt3)}

/* ── responsive ── */
@media(max-width:900px){
  .hero{grid-template-columns:1fr}
  .hero-right{display:none}
  .hero-left{padding:48px 28px;border-right:0}
  .hero-left h1{font-size:44px}
}
@media(max-width:820px){
  .layout{grid-template-columns:1fr}
  .sidebar{border-right:0}
  .layout.detail .sidebar{display:none}
  .layout:not(.detail) .main{display:none}
  .grow{padding:12px 14px;min-height:56px}
  .gchev{display:block;margin-left:auto}
  .grow .gdot{display:none}
  .ghead .back{display:flex}
  .settings{padding:18px 16px 120px}
  .ghead h1{font-size:24px}
  .save-bar{left:0}
  .save-inner{padding:12px 16px}
  .me .nm{display:none}
  .brand .sep,.brand .tag{display:none}
}
