/* ===== Restart AI CRM — тема: яркий бирюзово-голубой ===== */
:root {
  --primary: #00b8d9;
  --primary-600: #009fc0;
  --primary-700: #047e9c;
  --accent: #14e0c8;
  --ink: #0a3345;
  --ink-soft: #47707f;
  --ink-faint: #7ba0ad;
  --bg: #eefafd;
  --card: #ffffff;
  --line: #d5eef4;
  --danger: #ff5b77;
  --warn: #ffb020;
  --ok: #10c98d;
  --grad: linear-gradient(135deg, #00c6ff 0%, #00b8d9 45%, #14e0c8 100%);
  --grad-deep: linear-gradient(160deg, #063a4d 0%, #052c3c 60%, #04212e 100%);
  --shadow: 0 10px 30px rgba(0, 150, 190, 0.12);
  --shadow-lg: 0 18px 50px rgba(0, 150, 190, 0.18);
  --radius: 16px;
  --sidebar-w: 240px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
button, input, select, textarea { font-family: inherit; }
html, body { height: 100%; }
body {
  font-family: 'Times New Roman', Times, serif;
  background: var(--bg);
  color: var(--ink);
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
}
#app { height: 100vh; }
a { color: var(--primary-700); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #bfe4ee; border-radius: 8px; border: 2px solid var(--bg); }
::-webkit-scrollbar-track { background: transparent; }

/* ---------- Анимации ---------- */
@keyframes fadeInUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes popIn { 0% { opacity: 0; transform: scale(.92); } 100% { opacity: 1; transform: scale(1); } }
@keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(20, 224, 200, .45); } 50% { box-shadow: 0 0 0 8px rgba(20, 224, 200, 0); } }
@keyframes shimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes shake { 10%, 90% { transform: translateX(-2px); } 20%, 80% { transform: translateX(3px); } 30%, 50%, 70% { transform: translateX(-5px); } 40%, 60% { transform: translateX(5px); } }
@keyframes slideRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: none; } }

.anim-up { animation: fadeInUp .45s cubic-bezier(.2,.7,.3,1) both; }
.anim-pop { animation: popIn .3s cubic-bezier(.2,.7,.3,1) both; }
.anim-fade { animation: fadeIn .35s ease both; }

/* ---------- Загрузочный экран ---------- */
.boot-splash { height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
.boot-logo { font-size: 56px; animation: pulse 1.6s infinite; }
.boot-title { font-size: 24px; font-weight: 700; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- Логин ---------- */
.login-wrap { height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--grad-deep); position: relative; overflow: hidden; }
.login-wrap::before { content: ''; position: absolute; width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle, rgba(0,198,255,.22), transparent 65%); top: -200px; right: -150px; }
.login-wrap::after { content: ''; position: absolute; width: 500px; height: 500px; border-radius: 50%; background: radial-gradient(circle, rgba(20,224,200,.16), transparent 65%); bottom: -180px; left: -120px; }
.login-card { position: relative; z-index: 1; width: 400px; max-width: calc(100vw - 32px); background: var(--card); border-radius: 24px; padding: 40px 36px 32px; box-shadow: var(--shadow-lg); animation: fadeInUp .5s cubic-bezier(.2,.7,.3,1) both; }
.login-logo { font-size: 48px; text-align: center; }
.login-title { text-align: center; font-size: 24px; font-weight: 800; margin-top: 6px; }
.login-title span { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.login-sub { text-align: center; color: var(--ink-soft); margin: 6px 0 24px; font-size: 16px; }
.login-error { background: #ffeef1; color: #c22545; border: 1px solid #ffd0d9; padding: 10px 14px; border-radius: 10px; font-size: 15px; margin-bottom: 14px; animation: shake .5s; }
.login-card.shake { animation: shake .5s; }

/* ---------- Оболочка ---------- */
.shell { display: flex; height: 100vh; overflow: hidden; }
.sidebar { width: var(--sidebar-w); background: var(--grad-deep); color: #dff5fb; display: flex; flex-direction: column; flex-shrink: 0; transition: width .25s; }
.sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 22px 20px 18px; }
.sidebar-brand .logo { width: 42px; height: 42px; border-radius: 13px; background: var(--grad); display: grid; place-items: center; font-size: 24px; box-shadow: 0 6px 18px rgba(0,198,255,.4); }
.sidebar-brand .name { font-weight: 800; font-size: 18px; line-height: 1.15; }
.sidebar-brand .name small { display: block; font-weight: 500; font-size: 13px; color: #8fc6d8; }
.sidebar nav { flex: 1; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; }
.nav-item { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 13px; color: #a9d5e4; text-decoration: none; font-weight: 600; font-size: 16.5px; transition: all .2s; position: relative; }
.nav-item .ico { font-size: 21px; width: 24px; text-align: center; }
.nav-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.nav-item.active { background: var(--grad); color: #fff; box-shadow: 0 8px 22px rgba(0,198,255,.35); }
.nav-item.active::before { content: ''; position: absolute; left: -12px; top: 20%; bottom: 20%; width: 4px; border-radius: 4px; background: var(--accent); }
.sidebar-foot { padding: 14px 16px; border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-user { display: flex; align-items: center; gap: 10px; }
.sidebar-user .avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--grad); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 16px; flex-shrink: 0; }
.sidebar-user .who { overflow: hidden; }
.sidebar-user .who .login { font-weight: 700; font-size: 15.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar-user .who .role { font-size: 13.5px; color: #8fc6d8; }
.btn-logout { margin-left: auto; background: none; border: none; color: #8fc6d8; cursor: pointer; font-size: 19px; padding: 6px; border-radius: 8px; transition: .2s; }
.btn-logout:hover { color: #fff; background: rgba(255,255,255,.1); }

.main { flex: 1; overflow-y: auto; padding: 28px 24px 48px 24px; scroll-behavior: smooth; }
.page-title { font-size: 26px; font-weight: 800; margin-bottom: 4px; }
.page-sub { color: var(--ink-soft); margin-bottom: 24px; font-size: 16px; }

/* ---------- Кнопки и поля ---------- */
.btn { display: inline-flex; align-items: center; gap: 8px; border: none; border-radius: 12px; padding: 10px 18px; font-size: 16px; font-weight: 700; cursor: pointer; transition: transform .15s, box-shadow .2s, background .2s; background: var(--grad); color: #fff; box-shadow: 0 6px 16px rgba(0,184,217,.35); position: relative; overflow: hidden; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(0,184,217,.42); }
.btn:active { transform: translateY(0) scale(.98); }
.btn:disabled { opacity: .55; cursor: default; transform: none; }
.btn.secondary { background: #fff; color: var(--primary-700); border: 1.5px solid var(--line); box-shadow: none; }
.btn.secondary:hover { border-color: var(--primary); color: var(--primary); }
.btn.danger { background: linear-gradient(135deg, #ff6b81, #ff5b77); box-shadow: 0 6px 16px rgba(255,91,119,.3); }
.btn.ghost { background: rgba(0,184,217,.08); color: var(--primary-700); box-shadow: none; }
.btn.sm { padding: 7px 12px; font-size: 15px; border-radius: 10px; }

.field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.field label { font-weight: 700; font-size: 15px; color: var(--ink); }
.field .hint { font-size: 14px; color: var(--ink-faint); }
.input, .textarea, .select { width: 100%; border: 1.5px solid var(--line); border-radius: 12px; padding: 11px 14px; font-size: 16.5px; font-family: inherit; background: #fff; color: var(--ink); transition: border-color .2s, box-shadow .2s; outline: none; }
.input:focus, .textarea:focus, .select:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(0,184,217,.12); }
.textarea { resize: vertical; min-height: 90px; line-height: 1.5; }
.textarea.mono { font-family: 'Times New Roman', Times, serif; font-size: 15px; }

.switch { position: relative; width: 46px; height: 26px; flex-shrink: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch .track { position: absolute; inset: 0; background: #cfe8ef; border-radius: 26px; transition: .25s; cursor: pointer; }
.switch .track::after { content: ''; position: absolute; width: 20px; height: 20px; border-radius: 50%; background: #fff; top: 3px; left: 3px; transition: .25s; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.switch input:checked + .track { background: var(--grad); }
.switch input:checked + .track::after { left: 23px; }

/* ---------- Карточки ---------- */
.card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; border: 1px solid rgba(213,238,244,.6); }

/* Обзор — сетка метрик */
.metrics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; margin-bottom: 22px; }
.metric-card { background: var(--card); border-radius: var(--radius); padding: 20px 22px; box-shadow: var(--shadow); border: 1px solid rgba(213,238,244,.6); position: relative; overflow: hidden; transition: transform .2s; }
.metric-card:hover { transform: translateY(-3px); }
.metric-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--grad); }
.metric-card .m-label { font-size: 15px; color: var(--ink-soft); font-weight: 600; }
.metric-card .m-value { font-size: 36px; font-weight: 800; margin: 6px 0 2px; background: var(--grad-deep); -webkit-background-clip: text; background-clip: text; color: transparent; }
.metric-card .m-sub { font-size: 14.5px; color: var(--ink-faint); }
.metric-card .m-ico { position: absolute; right: 16px; top: 16px; font-size: 28px; opacity: .8; }

.period-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; background: var(--card); border-radius: var(--radius); padding: 14px 18px; box-shadow: var(--shadow); margin-bottom: 22px; }
.period-bar .dates { display: flex; align-items: center; gap: 8px; }
.period-bar input[type="date"] { border: 1.5px solid var(--line); border-radius: 10px; padding: 8px 12px; font-family: inherit; font-size: 16px; color: var(--ink); outline: none; }
.period-bar input[type="date"]:focus { border-color: var(--primary); }
.chips { display: flex; gap: 8px; }
.chip { border: 1.5px solid var(--line); background: #fff; border-radius: 20px; padding: 7px 14px; font-size: 15px; font-weight: 600; cursor: pointer; transition: .2s; color: var(--ink-soft); }
.chip:hover { border-color: var(--primary); color: var(--primary-700); }
.chip.active { background: var(--grad); border-color: transparent; color: #fff; box-shadow: 0 4px 12px rgba(0,184,217,.35); }

/* ---------- Kanban ---------- */
.workload-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--card); border-radius: var(--radius); padding: 12px 18px; box-shadow: var(--shadow); margin-bottom: 16px; border: 1px solid rgba(213,238,244,.6); font-size: 14.5px; }
.workload-chip { background: rgba(0,184,217,.09); color: var(--primary-700); font-weight: 700; border-radius: 18px; padding: 5px 13px; font-size: 13px; }
.workload-chip.busy { background: #fff4e0; color: #b26a00; }
.kanban { display: grid; grid-template-columns: repeat(5, minmax(215px, 1fr)); gap: 12px; align-items: start; overflow-x: auto; padding-bottom: 20px; min-height: 70vh; }
.kanban-col { background: #e3f6fa66; border: 1px solid var(--line); border-radius: var(--radius); padding: 12px; min-height: 320px; transition: background .2s, border-color .2s; }
.kanban-col.drag-over { background: rgba(0,184,217,.12); border-color: var(--primary); box-shadow: inset 0 0 0 2px rgba(0,184,217,.25); }
.kanban-col-head { display: flex; align-items: center; justify-content: space-between; padding: 4px 8px 12px; font-weight: 800; font-size: 16px; }
.kanban-col-head .count { background: #fff; border-radius: 12px; padding: 2px 10px; font-size: 14.5px; color: var(--ink-soft); box-shadow: 0 2px 6px rgba(0,0,0,.06); }
.kanban-col-head .dot { width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; }
.kanban-cards { display: flex; flex-direction: column; gap: 10px; min-height: 60px; }

.lead-card { background: var(--card); border-radius: 14px; padding: 13px 14px; box-shadow: 0 4px 14px rgba(0,120,150,.08); cursor: pointer; border: 1.5px solid transparent; transition: transform .18s, box-shadow .2s, border-color .2s; animation: fadeInUp .35s both; }
.lead-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,120,150,.14); border-color: var(--primary); }
.lead-card.dragging { opacity: .5; transform: rotate(2deg); }
.lead-card .row1 { display: flex; justify-content: space-between; align-items: center; margin-bottom: 7px; }
.dialog-tag { background: var(--grad); color: #fff; font-size: 12.5px; font-weight: 800; letter-spacing: .8px; border-radius: 7px; padding: 3px 9px; }
.lead-card .time { font-size: 13.5px; color: var(--ink-faint); }
.lead-card .snippet { font-size: 15px; color: var(--ink-soft); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.4; min-height: 36px; }
.lead-card .badges { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 9px; }
.badge { font-size: 13px; font-weight: 700; padding: 3px 9px; border-radius: 8px; }
.badge.warm { background: #fff4e0; color: #b26a00; }
.badge.hot { background: #ffe8ec; color: #d3224a; animation: pulse 2s infinite; }
.badge.manager { background: #e2f8ff; color: #047e9c; }
.badge.site { background: #ededfd; color: #3d51d3; }
.badge.ai-off { background: #f1f3f5; color: #66707a; }
.badge.followups { background: #e9fbf4; color: #0b8f66; }

/* ---------- Чат-модалка ---------- */
.modal-overlay { position: fixed; inset: 0; background: rgba(4, 44, 60, .55); backdrop-filter: blur(4px); z-index: 100; display: flex; align-items: center; justify-content: center; animation: fadeIn .25s; padding: 24px; }
.modal { background: var(--card); border-radius: 22px; width: 860px; max-width: 100%; height: min(88vh, 780px); display: flex; flex-direction: column; overflow: hidden; box-shadow: var(--shadow-lg); animation: popIn .3s cubic-bezier(.2,.7,.3,1); }
.modal-head { display: flex; align-items: center; gap: 14px; padding: 16px 22px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, rgba(0,198,255,.07), rgba(20,224,200,.07)); }
.modal-head .avatar-lg { width: 44px; height: 44px; border-radius: 14px; background: var(--grad); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 19px; }
.modal-head .title { font-weight: 800; font-size: 18px; }
.modal-head .sub { font-size: 14.5px; color: var(--ink-soft); display: flex; gap: 8px; align-items: center; margin-top: 2px; }
.modal-head .spacer { flex: 1; }
.modal-body { flex: 1; overflow-y: auto; padding: 20px 22px; display: flex; flex-direction: column; gap: 4px; background: #f7fcfe; }
.modal-foot { padding: 14px 22px 18px; border-top: 1px solid var(--line); display: flex; gap: 10px; align-items: flex-end; }

.chat-msg { display: flex; margin-bottom: 10px; animation: fadeInUp .3s both; }
.chat-msg .bubble { max-width: 72%; padding: 10px 14px; border-radius: 16px; font-size: 16px; line-height: 1.5; white-space: pre-wrap; word-break: break-word; box-shadow: 0 2px 8px rgba(0,0,0,.05); }
.chat-msg .meta { font-size: 12.5px; color: var(--ink-faint); margin-top: 4px; }
.chat-msg.client { justify-content: flex-start; }
.chat-msg.client .bubble { background: #fff; border: 1px solid var(--line); border-bottom-left-radius: 5px; }
.chat-msg.agent { justify-content: flex-end; flex-direction: column; align-items: flex-end; }
.chat-msg.agent .bubble { background: var(--grad); color: #fff; border-bottom-right-radius: 5px; }
.chat-msg.agent .who { font-size: 13px; font-weight: 700; color: var(--primary-700); margin-bottom: 3px; }
.chat-msg.system-note { justify-content: center; }
.chat-msg.system-note .bubble { background: #eef4f6; color: var(--ink-soft); font-size: 14px; max-width: 85%; text-align: center; border-radius: 10px; }
.typing { display: inline-flex; gap: 4px; padding: 12px 16px; }
.typing i { width: 7px; height: 7px; border-radius: 50%; background: var(--primary); animation: typing 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .15s; }
.typing i:nth-child(3) { animation-delay: .3s; }
@keyframes typing { 0%, 60%, 100% { transform: translateY(0); opacity: .4; } 30% { transform: translateY(-5px); opacity: 1; } }

.chat-input { flex: 1; }
.chat-input textarea { width: 100%; border: 1.5px solid var(--line); border-radius: 14px; padding: 11px 14px; font-family: inherit; font-size: 16.5px; resize: none; height: 46px; max-height: 120px; outline: none; transition: border-color .2s; }
.chat-input textarea:focus { border-color: var(--primary); }

/* ---------- Настройки ---------- */
.settings-layout { max-width: 980px; }
.settings-section { margin-bottom: 20px; overflow: hidden; }
.settings-section .sec-head { display: flex; align-items: center; gap: 12px; padding: 18px 22px; cursor: pointer; user-select: none; }
.settings-section .sec-head .ico { font-size: 24px; }
.settings-section .sec-head .t { font-weight: 800; font-size: 18px; }
.settings-section .sec-head .d { font-size: 14.5px; color: var(--ink-soft); margin-top: 1px; }
.settings-section .sec-head .chev { margin-left: auto; transition: transform .3s; color: var(--ink-faint); font-size: 15px; }
.settings-section.open .chev { transform: rotate(180deg); }
.settings-section .sec-body { max-height: 0; overflow: hidden; transition: max-height .45s cubic-bezier(.2,.7,.3,1); }
.settings-section.open .sec-body { max-height: 4000px; }
.settings-section .sec-inner { padding: 4px 22px 22px; border-top: 1px solid var(--line); }
.sec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.sec-grid .full { grid-column: 1 / -1; }

.save-bar { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: flex-end; gap: 10px; padding: 14px 0; margin-top: 6px; }
.save-bar .inner { background: #fff; border-radius: 14px; box-shadow: var(--shadow-lg); padding: 10px 14px; display: flex; gap: 10px; }

.radio-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.radio-card { border: 2px solid var(--line); border-radius: 14px; padding: 14px; cursor: pointer; transition: .2s; text-align: center; }
.radio-card .emo { font-size: 26px; }
.radio-card .t { font-weight: 800; font-size: 15.5px; margin-top: 6px; }
.radio-card .d { font-size: 13.5px; color: var(--ink-soft); margin-top: 3px; }
.radio-card:hover { border-color: var(--primary); }
.radio-card.active { border-color: var(--primary); background: rgba(0,184,217,.06); box-shadow: 0 6px 16px rgba(0,184,217,.15); }

.embed-box { background: #0d2b38; color: #9fe8ff; font-family: 'Times New Roman', Times, serif; font-size: 14.5px; padding: 14px 16px; border-radius: 12px; white-space: pre-wrap; word-break: break-all; position: relative; line-height: 1.6; }
.copy-btn { position: absolute; top: 8px; right: 8px; }

.test-chat { border: 1.5px dashed var(--primary); border-radius: 14px; padding: 16px; background: rgba(0,184,217,.04); }
.test-msgs { margin-top: 12px; max-height: 300px; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding-right: 4px; }
.test-empty { color: var(--ink-faint); font-size: 15px; padding: 8px 2px; }
.test-bubble { max-width: 85%; padding: 9px 13px; border-radius: 14px; font-size: 16px; line-height: 1.45; white-space: pre-wrap; word-break: break-word; }
.test-bubble.client { align-self: flex-end; background: var(--grad); color: #fff; border-bottom-right-radius: 5px; }
.test-bubble.ai { align-self: flex-start; background: #fff; border: 1px solid var(--line); border-bottom-left-radius: 5px; box-shadow: 0 2px 8px rgba(0,0,0,.05); }
.test-bubble-wrap { display: flex; flex-direction: column; align-items: flex-start; }
.test-meta { font-size: 12.5px; color: var(--ink-faint); margin: 2px 4px 0; }

.photo-upload { display: flex; align-items: center; gap: 16px; }
.photo-preview { width: 72px; height: 72px; border-radius: 20px; background: var(--grad); display: grid; place-items: center; font-size: 32px; color: #fff; object-fit: cover; overflow: hidden; }

/* Таблица пользователей */
.table { width: 100%; border-collapse: collapse; }
.table th { text-align: left; font-size: 14px; text-transform: uppercase; letter-spacing: .5px; color: var(--ink-faint); padding: 10px 12px; border-bottom: 1.5px solid var(--line); }
.table td { padding: 12px; border-bottom: 1px solid #eaf6f9; font-size: 16px; vertical-align: middle; }
.table tr:hover td { background: rgba(0,184,217,.03); }
.role-tag { font-size: 13.5px; font-weight: 700; padding: 3px 10px; border-radius: 8px; }
.role-tag.admin { background: #e2f8ff; color: #047e9c; }
.role-tag.manager { background: #eafae9; color: #2c8a2c; }

/* ---------- Аудит ---------- */
.tabs { display: flex; gap: 8px; margin-bottom: 22px; background: #fff; padding: 6px; border-radius: 14px; box-shadow: var(--shadow); width: fit-content; }
.tab { padding: 10px 20px; border-radius: 10px; font-weight: 700; font-size: 16px; cursor: pointer; color: var(--ink-soft); transition: .2s; border: none; background: none; font-family: inherit; }
.tab:hover { color: var(--primary-700); }
.tab.active { background: var(--grad); color: #fff; box-shadow: 0 6px 16px rgba(0,184,217,.35); }

.audit-managers { display: flex; flex-direction: column; gap: 8px; }
.manager-check { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 12px; cursor: pointer; transition: .2s; }
.manager-check:hover { border-color: var(--primary); }
.manager-check input { accent-color: var(--primary); width: 17px; height: 17px; }

.report { line-height: 1.65; }
.report h1 { font-size: 22px; margin: 18px 0 10px; }
.report h2 { font-size: 19px; margin: 16px 0 8px; color: var(--primary-700); }
.report h3 { font-size: 17px; margin: 12px 0 6px; }
.report p { margin: 8px 0; }
.report ul, .report ol { margin: 8px 0 8px 22px; }
.report blockquote { border-left: 3px solid var(--accent); background: rgba(20,224,200,.07); padding: 10px 14px; border-radius: 0 10px 10px 0; margin: 10px 0; color: var(--ink-soft); }
.report strong { color: var(--ink); }
.report hr { border: none; border-top: 1.5px solid var(--line); margin: 16px 0; }

.audit-item { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1.5px solid var(--line); border-radius: 14px; margin-bottom: 10px; cursor: pointer; transition: .2s; background: #fff; }
.audit-item:hover { border-color: var(--primary); transform: translateX(4px); }
.status-tag { font-size: 13.5px; font-weight: 800; padding: 4px 11px; border-radius: 8px; }
.status-tag.done { background: #e9fbf4; color: #0b8f66; }
.status-tag.running { background: #fff4e0; color: #b26a00; animation: pulse 1.5s infinite; }
.status-tag.error { background: #ffe8ec; color: #d3224a; }

/* ---------- Тосты ---------- */
#toasts { position: fixed; right: 22px; top: 22px; z-index: 999; display: flex; flex-direction: column; gap: 10px; }
.toast { background: #0d2b38; color: #dff5fb; padding: 13px 18px; border-radius: 13px; font-size: 16px; box-shadow: var(--shadow-lg); animation: slideRight .35s cubic-bezier(.2,.7,.3,1); display: flex; gap: 10px; align-items: center; max-width: 380px; }
.toast.ok::before { content: '✅'; }
.toast.err::before { content: '⚠️'; }

/* ---------- Прочее ---------- */
.empty-state { text-align: center; padding: 50px 20px; color: var(--ink-faint); }
.empty-state .emo { font-size: 48px; margin-bottom: 10px; }
.spinner { width: 30px; height: 30px; border: 3.5px solid rgba(0,184,217,.2); border-top-color: var(--primary); border-radius: 50%; animation: spin .8s linear infinite; margin: 20px auto; }
.loading-center { display: grid; place-items: center; padding: 60px; }

@media (max-width: 1100px) {
  .kanban { grid-template-columns: repeat(5, 260px); }
  .sec-grid { grid-template-columns: 1fr; }
}
