/* Онлайн-чат НЬЮОС: кнопка-«резервуар» в углу и панель диалога. Цвета — токены сайта. */
.nc-launch{position:fixed;z-index:50;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:10px;height:56px;padding:0 22px 0 16px;border:0;border-radius:999px;background:var(--brand);color:var(--on-brand);font:700 15px/1 var(--sans);cursor:pointer;box-shadow:0 6px 20px rgba(12,36,48,.22)}
.nc-launch:hover{filter:brightness(1.08)}
.nc-launch svg{width:26px;height:26px;flex:none}
.nc-launch .nc-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--on-brand);color:var(--brand);font-size:12px;line-height:20px;text-align:center;font-variant-numeric:tabular-nums}
.nc-launch[aria-expanded="true"]{display:none}
@media (max-width:520px){.nc-launch .nc-lbl{display:none}.nc-launch{padding:0 15px}}

.nc-panel{position:fixed;z-index:60;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));width:min(380px,calc(100vw - 32px));height:min(600px,calc(100vh - 40px));height:min(600px,calc(100dvh - 40px));display:flex;flex-direction:column;background:var(--raised);color:var(--ink);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 18px 48px rgba(12,36,48,.28)}
@media (max-width:520px){.nc-panel{inset:0;width:auto;height:auto;border-radius:0;border:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}}
@media (prefers-reduced-motion:no-preference){.nc-panel{animation:nc-in .18s ease-out}@keyframes nc-in{from{opacity:0;transform:translateY(12px)}}}

.nc-head{display:flex;align-items:center;gap:12px;padding:14px 12px 14px 16px;background:var(--deep);color:var(--on-deep)}
.nc-head svg.nc-mark{width:36px;height:36px;flex:none}
.nc-head .nc-t{display:grid;gap:1px;min-width:0;flex:1}
.nc-head b{font-size:16px;line-height:20px}
.nc-head span{font-size:13px;line-height:18px;color:var(--deep-muted)}
.nc-close{width:44px;height:44px;flex:none;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--on-deep);cursor:pointer}
.nc-close:hover{background:rgba(255,255,255,.1)}
.nc-close svg{width:20px;height:20px}

.nc-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--surface);overscroll-behavior:contain}
.nc-msg{max-width:84%;padding:10px 14px;border-radius:14px;font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.nc-msg.m{align-self:flex-start;background:var(--raised);border:1px solid var(--line);border-bottom-left-radius:4px}
.nc-msg.v{align-self:flex-end;background:var(--brand);color:var(--on-brand);border-bottom-right-radius:4px}
.nc-msg .nc-who{display:block;font-size:12px;font-weight:700;color:var(--brand);margin-bottom:2px}
.nc-msg time{display:block;margin-top:4px;font-size:11px;opacity:.7;font-variant-numeric:tabular-nums}
.nc-msg.v time{text-align:right}
.nc-msg.pending{opacity:.6}
.nc-msg.failed{background:var(--alert-soft,#fbe5e3);color:var(--alert);border:1px solid var(--alert)}
.nc-note{align-self:center;max-width:90%;text-align:center;font-size:13px;line-height:18px;color:var(--muted)}
.nc-quick{display:flex;flex-wrap:wrap;gap:6px}
.nc-quick button{border:1px solid var(--brand);background:transparent;color:var(--brand);border-radius:999px;padding:8px 14px;font:600 13px var(--sans);cursor:pointer;min-height:36px}
.nc-quick button:hover{background:var(--brand-soft)}

.nc-contact{display:grid;gap:8px;padding:12px 14px;border-radius:12px;background:var(--brand-soft);font-size:14px}
.nc-contact .nc-row{display:flex;gap:8px;flex-wrap:wrap}
.nc-contact input{flex:1 1 140px;min-width:0;font:500 15px var(--sans);color:var(--ink);background:var(--raised);border:1px solid var(--line);border-radius:4px;padding:9px 10px}
.nc-contact button{border:0;border-radius:8px;background:var(--brand);color:var(--on-brand);font:700 14px var(--sans);padding:0 16px;min-height:40px;cursor:pointer}

.nc-form{display:flex;align-items:flex-end;gap:8px;padding:10px;border-top:1px solid var(--line);background:var(--raised)}
.nc-form textarea{flex:1;min-width:0;resize:none;max-height:120px;font:500 15px/1.4 var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 14px}
.nc-form textarea:focus,.nc-contact input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.nc-send{width:44px;height:44px;flex:none;display:grid;place-items:center;border:0;border-radius:12px;background:var(--brand);color:var(--on-brand);cursor:pointer}
.nc-send:disabled{opacity:.45;cursor:not-allowed}
.nc-send svg{width:20px;height:20px}
.nc-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.nc-launch:focus-visible,.nc-close:focus-visible,.nc-send:focus-visible,.nc-quick button:focus-visible,.nc-contact button:focus-visible{outline:2px solid var(--aqua);outline-offset:2px}

/* Вложения: скрепка в строке ввода, карточка выбранного файла, файл в сообщении */
.nc-form{flex-wrap:wrap}
.nc-attach{width:44px;height:44px;flex:none;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--brand);cursor:pointer}
.nc-attach:hover{background:var(--brand-soft);border-color:var(--brand)}
.nc-attach svg{width:20px;height:20px}
.nc-chip{flex:1 0 100%;display:flex;align-items:center;gap:6px;min-width:0;padding:6px 6px 6px 10px;border-radius:10px;background:var(--brand-soft);color:var(--ink);font-size:13px;line-height:18px}
.nc-chip[hidden]{display:none}
.nc-chip-n{display:flex;align-items:center;gap:6px;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nc-chip-n svg{width:16px;height:16px;flex:none;color:var(--brand)}
.nc-chip-x{width:28px;height:28px;flex:none;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.nc-chip-x:hover{background:var(--raised);color:var(--ink)}
.nc-chip-x svg{width:14px;height:14px}
.nc-file{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:8px;align-items:center;margin:2px 0 6px;padding:8px 10px;border-radius:10px;text-decoration:none;color:inherit;background:rgba(12,36,48,.06);white-space:normal}
.nc-msg.v .nc-file{background:rgba(255,255,255,.16)}
.nc-file svg{width:20px;height:20px;grid-row:span 2}
.nc-file span{font-weight:700;font-size:14px;line-height:18px;overflow-wrap:anywhere}
.nc-file small{font-size:12px;opacity:.75;font-variant-numeric:tabular-nums}
a.nc-file:hover span{text-decoration:underline}
.nc-attach:focus-visible,.nc-chip-x:focus-visible,a.nc-file:focus-visible{outline:2px solid var(--aqua);outline-offset:2px}
.nc-panel[hidden],.nc-badge[hidden]{display:none!important}

/* Перетаскивание файлов в чат */
.nc-drop{position:absolute;inset:66px 8px 8px;z-index:3;display:grid;place-content:center;justify-items:center;gap:6px;padding:24px;text-align:center;border:2px dashed var(--brand);border-radius:14px;background:var(--brand-soft);color:var(--ink);pointer-events:none}
.nc-drop svg{width:44px;height:44px;color:var(--brand)}
.nc-drop b{font-size:17px;line-height:22px}
.nc-drop span{font-size:13px;line-height:18px;color:var(--muted)}
.nc-launch.drag{outline:3px dashed var(--aqua);outline-offset:4px}
