/* Алоха · единый стиль интерфейсов (al.css) — источник: ИИАлоха/_дизайн/al, бренд-бук: _дизайн/Бренд-бук.html
   Основа — фирменный стиль сайта alohatur.ru (синий #098CCD, «солнце» #FCB84C, Open Sans).
   Подключать ПОСЛЕ своих стилей сервиса: старые переменные (--acc, --ink…) переопределяются на фирменные. */
@import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700&display=swap");
:root{
  /* бренд */
  --al-blue:#098CCD;--al-blue-hover:#0777B0;--al-blue-soft:#E7F4FC;--al-sky:#38ACE6;
  --al-sun:#FCB84C;--al-sun-ink:#8A5A00;--al-sun-soft:#FFF3DC;
  --al-menu:#098CCD;--al-menu-2:#0A7DB7;--al-menu-ink:#E6F4FC;--al-menu-mute:#A9D8F2;
  /* нейтрали — с лёгким синим оттенком */
  --al-text:#22323E;--al-muted:#687A88;--al-line:#DCE6EE;--al-bg:#F2F7FB;--al-card:#FFFFFF;--al-hover:#F6FAFD;--al-field:#C9D6E1;
  /* статусы */
  --al-ok:#1F8A4C;--al-ok-soft:#E3F3E9;--al-warn:#A86A12;--al-warn-soft:#FCF0D9;
  --al-bad:#D42A41;--al-bad-soft:#FCE8EB;--al-info:#5B57C9;--al-info-soft:#EEEDFB;
  /* чаты */
  --al-in:#FFFFFF;--al-out:#E7F4FC;--al-draft:#FFFBF2;
  /* форма */
  --al-r-s:6px;--al-r:8px;--al-r-l:12px;--al-shadow:0 8px 24px rgba(9,60,92,.10);--al-side:240px;
  --al-font:"Open Sans",-apple-system,"Segoe UI",Roboto,sans-serif;
  /* совместимость со старыми шаблонами сервисов */
  --acc:var(--al-blue);--ink:var(--al-text);--mute:var(--al-muted);--line:var(--al-line);--bg:var(--al-bg);--card:var(--al-card);
  --ok:var(--al-ok);--bad:var(--al-bad);--warn:var(--al-warn);--hl:var(--al-sun-soft);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --al-blue:#3AA9E4;--al-blue-hover:#62BCEB;--al-blue-soft:#12324A;--al-sky:#5BBDEB;
  --al-sun:#FCB84C;--al-sun-ink:#FFD58A;--al-sun-soft:#3A2E16;
  --al-menu:#0B4C70;--al-menu-2:#0E5B85;--al-menu-ink:#E2F1FA;--al-menu-mute:#8DBFDB;
  --al-text:#E3ECF2;--al-muted:#91A5B4;--al-line:#24394A;--al-bg:#0D1923;--al-card:#14232F;--al-hover:#182B39;--al-field:#2E4659;
  --al-ok:#4CC17E;--al-ok-soft:#14321F;--al-warn:#E5A84A;--al-warn-soft:#34280F;
  --al-bad:#FF6B7E;--al-bad-soft:#3A1820;--al-info:#A19EF0;--al-info-soft:#24224A;
  --al-in:#14232F;--al-out:#12324A;--al-draft:#2A2414;--al-shadow:0 8px 24px rgba(0,0,0,.35);color-scheme:dark}}
:root[data-theme="dark"]{
  --al-blue:#3AA9E4;--al-blue-hover:#62BCEB;--al-blue-soft:#12324A;--al-sky:#5BBDEB;
  --al-sun:#FCB84C;--al-sun-ink:#FFD58A;--al-sun-soft:#3A2E16;
  --al-menu:#0B4C70;--al-menu-2:#0E5B85;--al-menu-ink:#E2F1FA;--al-menu-mute:#8DBFDB;
  --al-text:#E3ECF2;--al-muted:#91A5B4;--al-line:#24394A;--al-bg:#0D1923;--al-card:#14232F;--al-hover:#182B39;--al-field:#2E4659;
  --al-ok:#4CC17E;--al-ok-soft:#14321F;--al-warn:#E5A84A;--al-warn-soft:#34280F;
  --al-bad:#FF6B7E;--al-bad-soft:#3A1820;--al-info:#A19EF0;--al-info-soft:#24224A;
  --al-in:#14232F;--al-out:#12324A;--al-draft:#2A2414;--al-shadow:0 8px 24px rgba(0,0,0,.35);color-scheme:dark}

*{box-sizing:border-box}
body.al{margin:0;font:15px/1.5 var(--al-font);background:var(--al-bg);color:var(--al-text);-webkit-font-smoothing:antialiased}
body.al a{color:var(--al-blue)}body.al a:hover{color:var(--al-blue-hover)}
body.al h1{font-size:24px;line-height:1.25;font-weight:700;margin:0 0 4px;text-wrap:balance}
body.al h2{font-size:18px;font-weight:600;margin:0 0 12px}
body.al h3{font-size:15px;font-weight:600;margin:16px 0 8px}
.al-sub,.mute{color:var(--al-muted)}.al-sub{margin:0 0 22px}
.al-num{font-size:26px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
body.al :focus-visible{outline:2px solid var(--al-blue);outline-offset:2px}

/* ===== каркас: синее меню слева + контент ===== */
body.al.al-shell{padding-left:var(--al-side)}
.al-aside{position:fixed;inset:0 auto 0 0;width:var(--al-side);background:var(--al-menu);color:var(--al-menu-ink);display:flex;flex-direction:column;padding:20px 14px;z-index:50;overflow-y:auto}
.al-aside .al-logo{display:block;margin:2px 10px 24px}.al-aside .al-logo svg{height:30px;width:auto;display:block}
.al-aside .al-grp{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--al-menu-mute);margin:16px 12px 6px;font-weight:600}
.al-aside a.al-item{display:flex;gap:12px;align-items:center;color:var(--al-menu-ink);text-decoration:none;padding:9px 12px;border-radius:var(--al-r);font-size:14px;line-height:1.3}
.al-aside a.al-item svg{width:20px;height:20px;flex:none}
.al-aside a.al-item:hover{background:var(--al-menu-2);color:#fff}
.al-aside a.al-item.on{background:#fff;color:#0777B0;font-weight:600}
.al-aside .al-cnt{margin-left:auto;background:var(--al-sun);color:#3B2600;border-radius:999px;font-size:11px;font-weight:700;padding:1px 7px;font-variant-numeric:tabular-nums}
.al-aside .al-secs{margin:4px 0 8px 22px;padding-left:12px;border-left:1px solid rgba(255,255,255,.28);display:flex;flex-direction:column}
.al-aside .al-secs a{color:var(--al-menu-ink);opacity:.85;text-decoration:none;font-size:13.5px;padding:6px 10px;border-radius:var(--al-r-s)}
.al-aside .al-secs a:hover{opacity:1;background:var(--al-menu-2)}
.al-aside .al-secs a.on{opacity:1;color:#fff;font-weight:600;background:var(--al-menu-2)}
.al-aside .al-me{margin-top:auto;border-top:1px solid rgba(255,255,255,.22);padding:14px 8px 0;display:flex;gap:10px;align-items:center;font-size:13px}
.al-aside .al-me b{color:#fff;font-weight:600;display:block}.al-aside .al-me a{color:var(--al-menu-mute);text-decoration:none}.al-aside .al-me a:hover{color:#fff}
.al-ava{width:34px;height:34px;border-radius:50%;background:var(--al-sun);color:#3B2600;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
nav.al-sections{display:none}/* разделы сервиса переносятся в меню скриптом */
.al-main{max-width:1240px;padding:28px 32px 48px}
.al-main.al-full{max-width:none;padding:0;height:100vh;height:100dvh}
.al-top,.al-veil{display:none}
@media(max-width:900px){
  body.al.al-shell{padding-left:0}
  .al-aside{transform:translateX(-100%);transition:transform .2s}
  body.al-open .al-aside{transform:none}
  body.al-open .al-veil{display:block;position:fixed;inset:0;background:rgba(5,30,45,.45);z-index:40}
  .al-top{display:flex;align-items:center;gap:12px;height:56px;padding:0 16px;background:var(--al-menu);position:sticky;top:0;z-index:30}
  body.al .al-top button,body.al .al-top button:hover{background:none;border:0;color:#fff;padding:6px;cursor:pointer;display:grid}.al-top button svg{width:26px;height:26px}.al-top svg.al-l{height:24px;width:auto}
  .al-main{padding:20px 16px 40px}
  .al-main.al-full{height:calc(100dvh - 56px)}
  html:has(body.al.al-shell),body.al.al-shell{overflow-x:clip}
  .al-main{min-width:0;max-width:100vw}
  .al-main table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .al-main th,.al-main td{min-width:130px}.al-main th.n,.al-main td.n{min-width:0}
}
@media (prefers-reduced-motion:reduce){.al-aside{transition:none}}

/* ===== компоненты ===== */
.al-card,.card{background:var(--al-card);border:1px solid var(--al-line);border-radius:var(--al-r-l);padding:18px 20px;margin-bottom:16px;break-inside:avoid}
.al-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:16px}
.al-kpi{background:var(--al-card);border:1px solid var(--al-line);border-radius:var(--al-r-l);padding:16px 18px;break-inside:avoid}
.al-kpi small{display:block;color:var(--al-muted);font-size:12px;margin-bottom:6px}
.al-kpi .al-d{font-size:12px;margin-top:6px;color:var(--al-muted)}.al-kpi .al-d.ok{color:var(--al-ok)}.al-kpi .al-d.bad{color:var(--al-bad)}
.al-list>div,body.al .al-list>a{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--al-line);color:var(--al-text);text-decoration:none;font-size:14px}
.al-list>*:last-child{border-bottom:0}body.al .al-list>a:hover{color:var(--al-blue)}

/* кнопки: синяя — главное действие, одна на блок */
body.al button,.al-btn,.btn{font:600 14px/1.2 var(--al-font);display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--al-r);border:1px solid var(--al-blue);background:var(--al-blue);color:#fff;cursor:pointer;text-decoration:none}
body.al button:hover,.al-btn:hover,.btn:hover{background:var(--al-blue-hover);border-color:var(--al-blue-hover);color:#fff}
body.al button.sec,.al-btn.sec,.btn.sec{background:var(--al-card);color:var(--al-text);border-color:var(--al-field)}
body.al button.sec:hover,.al-btn.sec:hover,.btn.sec:hover{border-color:var(--al-blue);background:var(--al-card);color:var(--al-blue)}
.al-btn.ghost,body.al button.ghost{background:none;border-color:transparent;color:var(--al-blue);padding-left:4px;padding-right:4px}
body.al button.bad,.al-btn.bad{background:var(--al-card);color:var(--al-bad);border-color:var(--al-bad)}
body.al button.bad:hover,.al-btn.bad:hover{background:var(--al-bad-soft);color:var(--al-bad);border-color:var(--al-bad)}
body.al button:disabled{opacity:.45;cursor:default}
body.al a.al-btn,body.al a.btn,body.al a.al-btn:hover,body.al a.btn:hover{color:#fff}
body.al a.al-btn.sec,body.al a.btn.sec{color:var(--al-text)}body.al a.al-btn.ghost,body.al a.al-btn.ghost:hover{color:var(--al-blue)}
body.al button.sm,.al-btn.sm{padding:6px 10px;font-size:13px;border-radius:var(--al-r-s)}

/* поля */
body.al input:not([type=checkbox]):not([type=radio]),body.al select,body.al textarea{font:14px/1.4 var(--al-font);padding:9px 12px;border:1px solid var(--al-field);border-radius:var(--al-r);background:var(--al-card);color:var(--al-text)}
body.al input:focus,body.al select:focus,body.al textarea:focus{outline:none;border-color:var(--al-blue);box-shadow:0 0 0 3px rgba(9,140,205,.18)}
body.al label{display:block;font-size:13px;color:var(--al-muted);margin:10px 0 4px}
body.al input[type=checkbox],body.al input[type=radio]{accent-color:var(--al-blue)}

/* таблицы — строки не рвутся при печати */
body.al table{width:100%;border-collapse:collapse;font-size:14px}
body.al th{font-size:12px;font-weight:600;color:var(--al-muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--al-line);white-space:nowrap}
body.al td{padding:9px 10px;border-bottom:1px solid var(--al-line);vertical-align:top}
body.al tr{break-inside:avoid}body.al tbody tr:hover{background:var(--al-hover)}
body.al td.n,body.al th.n,.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.wrap{overflow-x:auto}

/* метки и статусы */
.tag,.al-tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--al-hover);color:var(--al-muted);border:1px solid var(--al-line);white-space:nowrap}
.tag.ok,.al-tag.ok{background:var(--al-ok-soft);color:var(--al-ok);border-color:transparent}
.tag.bad,.al-tag.bad{background:var(--al-bad-soft);color:var(--al-bad);border-color:transparent}
.tag.warn,.al-tag.warn{background:var(--al-warn-soft);color:var(--al-warn);border-color:transparent}
.tag.acc,.al-tag.acc{background:var(--al-blue-soft);color:var(--al-blue);border-color:transparent}
.tag.info,.al-tag.info{background:var(--al-info-soft);color:var(--al-info);border-color:transparent}
.tag.sun,.al-tag.sun{background:var(--al-sun-soft);color:var(--al-sun-ink);border-color:transparent}
.ok{color:var(--al-ok)}.bad{color:var(--al-bad)}.warn{color:var(--al-warn)}

/* сообщения */
.al-note{border-radius:var(--al-r);padding:12px 16px;font-size:14px;margin-bottom:16px;background:var(--al-blue-soft);color:var(--al-text)}
.al-note.ok{background:var(--al-ok-soft)}.al-note.warn{background:var(--al-warn-soft)}
.al-note.bad,.err{background:var(--al-bad-soft);color:var(--al-bad);border-radius:var(--al-r);padding:10px 14px}
.al-empty{text-align:center;color:var(--al-muted);padding:40px 16px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.sp{flex:1}

/* ===== окно чатов менеджера ===== */
/* три колонки: диалоги 320 · переписка · карточка клиента 300 */
.al-chats{display:grid;grid-template-columns:320px minmax(0,1fr) 300px;height:100%;min-height:520px;background:var(--al-card);border-top:1px solid var(--al-line)}
.al-dlgs{border-right:1px solid var(--al-line);display:flex;flex-direction:column;min-height:0}
.al-dlgs-head{padding:14px 16px 10px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--al-line)}
.al-dlgs-head input{width:100%}
.al-filters{display:flex;gap:6px;flex-wrap:wrap}
.al-filters a{font-size:12.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--al-line);color:var(--al-muted);text-decoration:none}
body.al .al-filters a.on{background:var(--al-blue);border-color:var(--al-blue);color:#fff}
.al-dlg-list{overflow-y:auto;flex:1}
body.al a.al-dlg{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--al-line);text-decoration:none;color:var(--al-text)}
body.al a.al-dlg:hover{background:var(--al-hover)}
body.al a.al-dlg.on{background:var(--al-blue-soft);box-shadow:inset 3px 0 0 var(--al-blue)}
.al-dlg .al-ava,.al-thread-head .al-ava{width:40px;height:40px;background:var(--al-blue-soft);color:var(--al-blue)}
body.al a.al-dlg.on .al-ava{background:var(--al-card)}
.al-dlg-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.al-dlg-row{display:flex;gap:8px;align-items:center;min-width:0}
.al-dlg b{flex:1;min-width:0;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.al-dlg time{font-size:12px;color:var(--al-muted);font-variant-numeric:tabular-nums;flex:none}
.al-dlg p{flex:1;min-width:0;margin:0;font-size:13px;color:var(--al-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.al-dlg .al-dlg-meta{display:flex;gap:6px;align-items:center;flex:none}
.al-unread{background:var(--al-sun);color:#3B2600;border-radius:999px;font-size:11px;font-weight:700;min-width:20px;text-align:center;padding:1px 6px}
.al-wait{font-size:11px;font-weight:600;color:var(--al-bad)}
/* канал: точка цвета канала + подпись */
.al-ch{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--al-muted);font-weight:600}
.al-ch:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.al-ch.tg{color:#2AABEE}.al-ch.wa{color:#25A85A}.al-ch.max{color:#7A5AF5}.al-ch.site{color:var(--al-muted)}

.al-thread{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--al-bg)}
.al-thread-head{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--al-card);border-bottom:1px solid var(--al-line)}
.al-thread-head b{font-size:15px}.al-thread-head small{color:var(--al-muted);display:block;font-size:12px}
.al-feed{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}
.al-day{align-self:center;font-size:12px;color:var(--al-muted);background:var(--al-card);border:1px solid var(--al-line);border-radius:999px;padding:2px 10px;margin:6px 0}
.al-msg{max-width:min(560px,82%);padding:9px 13px;border-radius:var(--al-r-l);font-size:14px;line-height:1.45;border:1px solid var(--al-line);break-inside:avoid}
.al-msg.in{align-self:flex-start;background:var(--al-in);border-bottom-left-radius:4px}
.al-msg.out{align-self:flex-end;background:var(--al-out);border-color:transparent;border-bottom-right-radius:4px}
.al-msg time{display:block;font-size:11px;color:var(--al-muted);margin-top:3px;text-align:right;font-variant-numeric:tabular-nums}
.al-msg .who{display:block;font-size:11.5px;font-weight:600;color:var(--al-blue);margin-bottom:2px}
.al-sys{align-self:center;font-size:12.5px;color:var(--al-muted)}

/* черновик бота: жёлтая подложка = «ещё не отправлено клиенту» */
.al-draft{align-self:stretch;background:var(--al-draft);border:1px dashed var(--al-sun);border-radius:var(--al-r-l);padding:12px 14px;break-inside:avoid}
.al-draft-head{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--al-muted);margin-bottom:6px;flex-wrap:wrap}
.al-draft-head b{color:var(--al-sun-ink);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.al-draft-text{font-size:14px;white-space:pre-line}
.al-flags{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.al-draft-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* карточка варианта тура */
.al-offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:8px 0 2px}
.al-offer{background:var(--al-card);border:1px solid var(--al-line);border-radius:var(--al-r);padding:12px 14px;font-size:13px;display:flex;flex-direction:column;gap:4px;break-inside:avoid}
.al-offer h4{margin:0;font-size:14px;font-weight:600}
.al-offer .st{color:var(--al-sun);letter-spacing:1px}
.al-offer .meta{color:var(--al-muted)}
.al-offer .price{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:4px}
.al-offer .pp{color:var(--al-muted);font-size:12px}
.al-offer .tip{border-top:1px solid var(--al-line);padding-top:6px;margin-top:4px;color:var(--al-text)}

.al-compose{display:flex;gap:10px;align-items:flex-end;padding:12px 20px;background:var(--al-card);border-top:1px solid var(--al-line)}
.al-compose textarea{flex:1;min-height:44px;resize:vertical}

.al-side{border-left:1px solid var(--al-line);padding:16px;overflow-y:auto;font-size:13.5px}
.al-side h3{margin:0 0 8px}
.al-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0 0 16px}
.al-kv dt{color:var(--al-muted)}.al-kv dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}

@media(max-width:1180px){.al-chats{grid-template-columns:280px minmax(0,1fr)}.al-side{display:none}}
@media(max-width:760px){.al-chats{grid-template-columns:minmax(0,1fr)}.al-dlgs{display:none}.al-chats.list .al-dlgs{display:flex}.al-chats.list .al-thread{display:none}}

@media print{body.al.al-shell{padding-left:0}.al-aside,.al-top,.al-compose{display:none}.al-card,.card,.al-msg,.al-draft{break-inside:avoid}}
