:root{
    --oc-primary:#2563eb;
    --oc-primary-dark:#1d4ed8;
    --oc-dark:#0f172a;
    --oc-text:#334155;
    --oc-muted:#64748b;
    --oc-bg:#f8fafc;
    --oc-border:#e2e8f0;
    --oc-success:#22c55e;
    --oc-danger:#ef4444;
}

.openchat-widget{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:99999;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

.openchat-toggle{
    position:relative;
    width:62px;
    height:62px;
    border-radius:50%;
    border:none;
    cursor:pointer;
    background:linear-gradient(135deg,var(--oc-primary),var(--oc-primary-dark));
    box-shadow:0 15px 35px rgba(37,99,235,.35);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.25s ease;
}

.openchat-toggle:hover{
    transform:scale(1.08);
}

.openchat-toggle svg{
    width:30px;
    height:30px;
    fill:white;
}

.openchat-badge{
    position:absolute;
    top:-4px;
    right:-4px;
    min-width:22px;
    height:22px;
    padding:0 6px;
    background:#ef4444;
    color:#ffffff;
    border-radius:11px;
    font-size:11px;
    font-weight:700;
    display:none;
    align-items:center;
    justify-content:center;
    border:2px solid #ffffff;
    box-shadow:0 2px 8px rgba(239,68,68,.4);
    z-index:1;
    line-height:1;
}

.openchat-badge.show{
    display:flex;
}

.openchat-window{
    position:absolute;
    right:0;
    bottom:78px;
    width:380px;
    height:540px;
    background:white;
    border-radius:18px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    box-shadow:0 25px 60px rgba(15,23,42,.25);
    opacity:0;
    visibility:hidden;
    transform:translateY(20px) scale(.96);
    transition:.3s ease;
}

.openchat-widget.active .openchat-window{
    opacity:1;
    visibility:visible;
    transform:translateY(0) scale(1);
}

.openchat-header{
    min-height:38px;
    padding:12px 16px;
    background:linear-gradient(135deg,#0f172a,#1e293b);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.openchat-avatar{
    width:38px;
    height:38px;
    border-radius:50%;
    background:#334155;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-weight:700;
    font-size:15px;
    position:relative;
    flex-shrink:0;
}

.openchat-status{
    position:absolute;
    right:1px;
    bottom:1px;
    width:10px;
    height:10px;
    border-radius:50%;
    background:#22c55e;
    border:2px solid #0f172a;
}

.openchat-header-info{
    flex:1;
    margin-left:12px;
}

.openchat-title{
    font-size:15px;
    font-weight:600;
}

.openchat-subtitle{
    margin-top:3px;
    font-size:12px;
    color:#94a3b8;
}

.openchat-close{
    width:32px;
    height:32px;
    border:none;
    background:transparent;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
}

.openchat-close:hover{
    background:rgba(255,255,255,.1);
}

.openchat-close svg{
    width:20px;
    height:20px;
    fill:white;
}
.openchat-messages{
    flex:1;
    padding:20px;
    background:var(--oc-bg);
    overflow-y:auto;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
}

.openchat-message{
    display:inline-flex;
    flex-direction:column;
    width:fit-content;
    max-width:95%;
    padding:10px 14px;
    border-radius:14px;
    font-size:14px;
    line-height:1.35;
    box-sizing:border-box;
    overflow-wrap:anywhere;
    word-break:break-word;
    white-space:pre-wrap;
}

.openchat-message-body{
    display:block;
    white-space:pre-wrap;
    word-break:break-word;
    overflow-wrap:anywhere;
}

.openchat-message.operator{
    align-self:flex-start;
    background:white;
    color:var(--oc-text);
    border-bottom-left-radius:5px;
    box-shadow:0 2px 8px rgba(0,0,0,.06);
}

.openchat-message.client{
    align-self:flex-end;
    background:var(--oc-primary);
    color:white;
    border-bottom-right-radius:5px;
}

.openchat-message.client .openchat-time{
    color:white;
    opacity:.7;
}

.openchat-message.welcome{
    padding:9px 13px;
}

.openchat-time{
    display:block;
    margin-top:3px;
    font-size:10px;
    line-height:1;
    opacity:.55;
    text-align:right;
}

.openchat-footer{
    padding:14px 16px;
    background:#fff;
    border-top:1px solid var(--oc-border);
}

.openchat-input-row{
    display:flex;
    align-items:flex-end;
    gap:8px;
}

.openchat-file,
.openchat-send{
    width:44px;
    height:44px;
    flex-shrink:0;
    border:none;
    border-radius:50%;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.2s;
}

.openchat-file{
    background:#f1f5f9;
    color:#475569;
}

.openchat-file:hover{
    background:#e2e8f0;
}

.openchat-file svg{
    width:20px;
    height:20px;
    fill:#475569;
}

.openchat-send{
    background:var(--oc-primary);
}

.openchat-send:hover{
    background:var(--oc-primary-dark);
}

.openchat-send svg{
    width:20px;
    height:20px;
    fill:white;
}

.openchat-input{
    flex:1;
    min-height:44px;
    max-height:140px;
    padding:9px 16px;
    border:1px solid var(--oc-border);
    border-radius:22px;
    outline:none;
    resize:none;
    overflow-y:auto;
    overflow-x:hidden;
    font:inherit;
    font-size:14px;
    line-height:1.45;
    color:var(--oc-text);
    background:#fff;
    box-sizing:border-box;
    white-space:pre-wrap;
    word-break:break-word;
}

.openchat-input::placeholder{
    color:#94a3b8;
}

.openchat-input:focus{
    border-color:var(--oc-primary);
    box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
/* === КАСТОМНЫЙ ЧЕКБОКС === */

.openchat-consent{
    margin-top:10px;
    display:flex;
    gap:8px;
    font-size:11px;
    line-height:1.4;
    color:var(--oc-muted);
    align-items:flex-start;
    cursor:pointer;
}

.openchat-consent input[type="checkbox"]{
    appearance:none !important;
    -webkit-appearance:none !important;

    width:16px !important;
    height:16px !important;

    min-width:16px !important;
    min-height:16px !important;

    margin:0 !important;
    margin-top:2px !important;

    padding:0 !important;

    border:2px solid var(--oc-primary);
    border-radius:3px;

    background:#fff;

    cursor:pointer;

    position:relative;
    flex-shrink:0;

    transition:all .2s ease;
}


/* Зеленая галочка */

.openchat-consent input[type="checkbox"]:checked{

    background:var(--oc-success);

    border-color:var(--oc-success);

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");

    background-size:12px 12px;

    background-position:center;

    background-repeat:no-repeat;
}


/* Подсветка при наведении */

.openchat-consent input[type="checkbox"]:hover:not(:checked){

    border-color:var(--oc-primary-dark);

}


/* Заблокирован после первого сообщения */

.openchat-consent input[type="checkbox"]:disabled{

    cursor:default !important;

    opacity:1 !important;

}


.openchat-consent input[type="checkbox"]:checked:disabled{

    background:var(--oc-success) !important;

    border-color:var(--oc-success) !important;


    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") !important;


    background-size:12px 12px !important;

    background-position:center !important;

    background-repeat:no-repeat !important;

}


/* ==================================== */


.openchat-consent a{

    color:var(--oc-primary);

    text-decoration:none;

}


.openchat-consent.error{

    color:var(--oc-danger);

}


.openchat-consent-error{

    display:none;

    margin-top:6px;

    font-size:11px;

    color:var(--oc-danger);

}


.openchat-consent-error.active{

    display:block;

}


/* Анимация ошибки */

.openchat-consent-checkbox.error{

    animation:checkboxPulse .45s ease 3;

}


@keyframes checkboxPulse{

    0%{
        transform:scale(1);
    }

    50%{

        transform:scale(1.15);

        filter:drop-shadow(0 0 5px rgba(239,68,68,.8));

    }

    100%{

        transform:scale(1);

    }

}


/* Мобильная версия */

@media(max-width:480px){

    .openchat-widget{

        right:16px;

        bottom:16px;

    }


    .openchat-window{

        width:calc(100vw - 32px);

        height:calc(100vh - 120px);

    }

}
.file-preview{
display:flex;
flex-direction:column;
gap:6px;
margin-bottom:8px;
max-width:100%;
}

.file-item{
display:flex;
align-items:center;
gap:8px;
padding:6px 10px;
background:#f5f5f5;
border-radius:8px;
font-size:13px;
}

.file-item span{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
flex:1;
}

.remove-file{
border:none;
background:none;
cursor:pointer;
font-size:16px;
color:#777;
padding:0;
line-height:1;
}

/* === FIX: Темный цвет для имен файлов только в сообщениях оператора и превью === */
.openchat-widget .openchat-message.operator .openchat-message-body a span,
.openchat-widget .file-item span {
    color: #333333 !important;
}

/* === Мобильная адаптация placeholder === */
@media (max-width: 768px) {
    /* Уменьшаем размер шрифта placeholder */
    .openchat-input::placeholder {
        font-size: 12px;
        opacity: 0.7;
    }

    /* Для WebKit браузеров (Chrome, Safari) */
    .openchat-input::-webkit-input-placeholder {
        font-size: 14px;
    }

    /* Для Firefox */
    .openchat-input::-moz-placeholder {
        font-size: 14px;
    }

    /* Для IE/Edge */
    .openchat-input:-ms-input-placeholder {
        font-size: 14px;
    }
}

/* ===== Mobile: чат на весь экран ===== */
@media (max-width: 768px) {
  .openchat-widget.active .openchat-window {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .openchat-header {
    padding-top: max(12px, env(safe-area-inset-top)) !important;
  }
  .openchat-footer {
    padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
  }
}
