/* CRM Олимского — тёплый тёмный стиль дашбордов (как potok.html), золото на главном. */
:root{
  /* бренд RE:BALANCE: чёрный, белый, кислотный лайм */
  --bg:#000000; --panel:#111111; --panel2:#1A1A1A; --ink:#FFFFFF; --dim:#8C8C8C; --mute:#666666;
  --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.17); --gold:#B7FF00; --gold-soft:rgba(183,255,0,.12);
  --ok:#B7FF00; --bad:#FF5C4D; --blue:#9CC3FF;
  --f-head:"Inter","Segoe UI",system-ui,sans-serif; --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink)}
body{font-family:var(--f-head);font-size:14.5px;line-height:1.45;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}
.eyebrow{font:500 12px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
em{font-style:normal;color:var(--gold)}
.hint{font:400 12px var(--f-mono);color:var(--mute)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 14px var(--f-head);color:#000;background:var(--gold);border:0;border-radius:999px;padding:10px 18px;cursor:pointer;text-decoration:none}
.btn.ghost{color:var(--ink);background:transparent;border:1px solid var(--line2)}
.btn.sm{padding:6px 12px;font-size:13px}
.btn.ok{background:var(--ok)}
.btn.bad{background:transparent;color:var(--bad);border:1px solid rgba(255,92,77,.4)}
.btn:disabled{opacity:.5;cursor:default}
.link{background:none;border:0;color:var(--dim);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.login{max-width:520px;margin:8vh auto;padding:0 16px;display:grid;gap:16px;text-align:center}
.login .hero{width:100%;aspect-ratio:1195/420;object-fit:cover;border-radius:18px;display:block}
.login .rb{height:16px;width:auto;margin:6px auto 0}
.login h1{margin:0;font-size:38px;font-weight:800;letter-spacing:-.03em}
.login h1 em,.logo em{color:var(--dim)}
.login p{color:var(--dim);margin:0}

.bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:20px;padding:12px max(16px,env(safe-area-inset-left));background:rgba(0,0,0,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{font-weight:800;font-size:17px;text-decoration:none;white-space:nowrap}
.bar nav{display:flex;gap:4px;flex:1;overflow-x:auto}
.bar nav a{text-decoration:none;color:var(--dim);padding:7px 12px;border-radius:999px;white-space:nowrap;font-weight:600}
.bar nav a.on{color:#000;background:var(--gold)}
.badge{display:inline-block;min-width:20px;padding:0 6px;border-radius:99px;background:var(--gold);color:#000;font:600 11.5px var(--f-mono);text-align:center;margin-left:4px}
.me{display:flex;gap:12px;align-items:center;color:var(--dim);font-size:13px;white-space:nowrap}
@media (max-width:720px){.me span{display:none}.bar{gap:10px}.logo em{display:none}}

main{max-width:1320px;margin:0 auto;padding:18px max(16px,env(safe-area-inset-left)) 60px}
.tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.tools input[type=search]{flex:1 1 260px;background:var(--panel);border:1px solid var(--line2);border-radius:10px;padding:10px 12px}
select,input[type=text],input[type=number],textarea{background:var(--panel);border:1px solid var(--line2);border-radius:10px;padding:8px 10px}
textarea{width:100%;resize:vertical;min-height:70px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:500 12.5px var(--f-mono);color:var(--dim);background:var(--panel);border:1px solid var(--line2);border-radius:999px;padding:6px 12px;cursor:pointer;text-decoration:none}
.chip.on{color:#000;background:var(--gold);border-color:var(--gold)}

.list{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}
.row{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1.6fr) minmax(0,1.1fr) 110px minmax(0,1fr);gap:12px;align-items:center;padding:11px 14px;border-top:1px solid var(--line);text-decoration:none}
.row:first-child{border-top:0}
.row:hover{background:var(--panel2)}
.row.h{font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mute);background:var(--panel)}
.row .nm b{display:block;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .sub{display:block;font:400 12px var(--f-mono);color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wait{color:var(--gold);font:500 12px var(--f-mono)}
@media (max-width:820px){.row{grid-template-columns:1fr auto}.row>:nth-child(2),.row>:nth-child(3),.row>:nth-child(5){display:none}.row.h{display:none}}
.pager{display:flex;gap:8px;justify-content:center;margin-top:12px;align-items:center;color:var(--dim)}

.st{display:inline-block;font:500 11px var(--f-mono);padding:2px 9px;border-radius:99px;border:1px solid var(--line2);color:var(--dim);white-space:nowrap}
.st.lead{color:var(--dim)} .st.booked{color:var(--blue);border-color:rgba(156,195,255,.4)} .st.partial{color:#C7A2FF;border-color:rgba(199,162,255,.4)}
.st.paid{color:var(--ok);border-color:rgba(183,255,0,.45)} .st.refund,.st.lost{color:var(--bad);border-color:rgba(255,92,77,.4)}
.st.pending{color:#E8A23A;border-color:rgba(232,162,58,.4)} .st.confirmed{color:var(--ok);border-color:rgba(183,255,0,.45)} .st.rejected,.st.refunded{color:var(--bad);border-color:rgba(255,92,77,.4)}

.card-head{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:14px}
.card-head h1{margin:0;font-size:clamp(22px,3vw,30px);font-weight:800;letter-spacing:-.02em}
.card-head .ctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}
.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;align-items:start}
@media (max-width:980px){.grid{grid-template-columns:1fr}}
.panel{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:14px 16px;display:grid;gap:10px;min-width:0;margin-bottom:16px}
.panel h2{margin:0;font:500 11.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);display:flex;justify-content:space-between;align-items:center;gap:8px}
.kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px 12px;font-size:14px}
.kv dt{color:var(--mute);font:400 12.5px var(--f-mono);padding-top:2px}
.kv dd{margin:0;overflow-wrap:anywhere}
.inline{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.inline input,.inline select{min-width:0}

.note{border-top:1px solid var(--line);padding-top:8px}
.note:first-of-type{border-top:0;padding-top:0}
.note .who{font:400 12px var(--f-mono);color:var(--mute)}
.note p{margin:3px 0 0;white-space:pre-wrap}
.pay{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;border-top:1px solid var(--line);padding-top:8px}
.pay:first-of-type{border-top:0;padding-top:0}
.pay .sum{font-weight:700}
.pay .meta{font:400 12px var(--f-mono);color:var(--dim)}
.pay .acts{grid-column:1/-1;display:flex;gap:6px}
form.add{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));background:var(--panel2);border-radius:10px;padding:10px}

.chat{display:flex;flex-direction:column;gap:6px;max-height:62vh;overflow-y:auto;padding:4px 2px}
.msg{max-width:82%;padding:8px 11px;border-radius:12px;background:var(--panel2);white-space:pre-wrap;overflow-wrap:anywhere}
.msg.in{align-self:flex-start;border-bottom-left-radius:4px}
.msg.out{align-self:flex-end;background:#1C2608;border-bottom-right-radius:4px}
.msg.bot{align-self:flex-end;background:transparent;border:1px dashed var(--line2);color:var(--dim)}
.msg .t{display:block;font:400 11px var(--f-mono);color:var(--mute);margin-top:3px}
.msg img{max-width:100%;max-height:320px;border-radius:8px;display:block}
.msg audio,.msg video{max-width:100%}
.send{display:flex;gap:8px;align-items:flex-end}
.send textarea{min-height:44px}
.ev{font:400 12.5px var(--f-mono);color:var(--dim);border-top:1px solid var(--line);padding-top:6px}
.ev:first-of-type{border-top:0}
.empty{color:var(--dim);font:400 13px var(--f-mono);padding:6px 0}

.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:10px 16px;z-index:20;max-width:90vw}

/* Телефон и мини-приложение Telegram: переписка выше карточки, крупнее кнопки и поля */
@media (max-width:980px){.grid>div:last-child{order:-1}.chat{max-height:55vh}}
.tma .me span,.tma .logo{display:none}
.tma .bar{padding-top:8px;padding-bottom:8px}
.tma main{padding-top:12px}
@media (max-width:720px){.card-head .ctl{margin-left:0;width:100%}.card-head .ctl select{flex:1}.send textarea{font-size:16px}input,select,textarea{font-size:16px}}

/* Заявки: канбан */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:10px;overflow-x:auto;padding-bottom:10px;align-items:start}
.col{background:var(--panel);border:1px solid var(--line);border-radius:14px;min-height:200px;display:flex;flex-direction:column}
.col.over{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.colh{display:flex;justify-content:space-between;padding:10px 12px;font-weight:700;font-size:13.5px;border-bottom:3px solid var(--line2);border-radius:14px 14px 0 0}
.colh.new{border-color:#5BC0EB}.colh.work{border-color:var(--ink)}.colh.wait_pay{border-color:#E8A23A}.colh.booked{border-color:var(--blue)}.colh.partial{border-color:#C7A2FF}.colh.paid{border-color:var(--ok)}.colh.lost{border-color:var(--bad)}
.colsum{font:400 11.5px var(--f-mono);color:var(--dim);padding:6px 12px 0}
.drop{display:grid;gap:8px;padding:10px;flex:1;align-content:start;max-height:calc(100vh - 210px);overflow-y:auto}
.dcard{display:grid;gap:3px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 11px;text-decoration:none;cursor:grab}
.dcard:hover{border-color:var(--line2)}
.dcard.dragging{opacity:.4}
.dcard b{font-weight:700}
.dcard .sub{font:400 11.5px var(--f-mono);color:var(--dim)}
.deal{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:8px}
.deal:first-of-type{border-top:0;padding-top:0}
.st.new{color:#5BC0EB;border-color:rgba(91,192,235,.4)}.st.work{color:var(--ink);border-color:var(--line2)}.st.wait_pay{color:#E8A23A;border-color:rgba(232,162,58,.4)}

/* Новая заявка и команда */
.nd{margin-bottom:14px}
.nd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.chk{display:inline-flex;gap:5px;align-items:center;font-size:13px;color:var(--dim);white-space:nowrap;cursor:pointer}
.chk input{accent-color:var(--gold)}
.team-row{grid-template-columns:minmax(0,1.4fr) minmax(0,2fr) auto!important}
.team-row.off{opacity:.5}
@media (max-width:820px){.team-row{grid-template-columns:1fr!important}.team-row>*{display:flex!important}}
