/* ============================================================
   КОЛОКОЛЬЧИК — личные уведомления в шапке
   theme/dist-tutor/css/notices.css

   Живёт в .dt-nav-actions рядом с выбором города, облик — «Класса»:
   кнопка-пилюля, панель-стекло, акцент #0a84ff.

   Ловушки портала (AGENTS.md): 1rem = 10px, глобальное * { margin: 0 auto },
   бутстраповский .hide прячет элемент — поэтому у .dt-bell__badge нельзя
   задавать display в базовом правиле.
   ============================================================ */

.dt-bell {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin: 0 6px 0 0;
    vertical-align: middle;
}

.dt-bell .dt-bell__btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(226, 232, 240, .95);
    border-radius: 9999px;
    background: rgba(255, 255, 255, .82);
    color: #5c6678;
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}
.dt-bell .dt-bell__btn:hover { border-color: rgba(10, 132, 255, .3); color: #0a84ff; }
.dt-bell .dt-bell__btn:focus-visible { outline: 3px solid rgba(10, 132, 255, .24); outline-offset: 2px; }
.dt-bell.is-open .dt-bell__btn { border-color: #0a84ff; color: #0a84ff; }

.dt-bell .dt-bell__badge {
    position: absolute;
    top: -3px;
    right: -3px;
    min-width: 18px;
    height: 18px;
    margin: 0;
    padding: 0 5px;
    border-radius: 9999px;
    background: #dc2626;
    font-size: 11px;
    font-weight: 700;
    line-height: 18px;
    color: #fff;
    text-align: center;
}

/* ---------- панель ---------- */

.dt-bell .dt-bell__panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 1050;
    width: 360px;
    max-width: calc(100vw - 24px);
    margin: 0;
    border: 1px solid rgba(148, 163, 184, .3);
    border-radius: 20px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 30px 60px -34px rgba(15, 23, 42, .55);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    overflow: hidden;
    text-align: left;
}

.dt-bell .dt-bell__head {
    margin: 0;
    padding: 14px 18px 10px;
    border-bottom: 1px solid rgba(226, 232, 240, .9);
    font-family: 'Manrope', 'Inter', var(--dt-font, Arial, sans-serif);
    font-size: 14px;
    font-weight: 750;
    letter-spacing: -.01em;
    color: #14243d;
}

.dt-bell .dt-bell__body {
    max-height: 60vh;
    margin: 0;
    overflow-y: auto;
}

.dt-bell .dt-bell__list { margin: 0; padding: 0; list-style: none; }
.dt-bell .dt-bell__item {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid rgba(226, 232, 240, .7);
}
.dt-bell .dt-bell__item:last-child { border-bottom: 0; }

/* Непрочитанное помечаем точкой слева, а не заливкой: список читают
   сверху вниз, и полосатый фон только мешает. */
.dt-bell .dt-bell__item.is-new { position: relative; }
.dt-bell .dt-bell__item.is-new:before {
    content: '';
    position: absolute;
    top: 20px;
    left: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #0a84ff;
}

.dt-bell .dt-bell__link {
    display: block;
    margin: 0;
    padding: 13px 18px 13px 20px;
    color: inherit;
    text-decoration: none;
}
a.dt-bell__link:hover { background: rgba(10, 132, 255, .05); text-decoration: none; }

.dt-bell .dt-bell__title {
    display: block;
    margin: 0;
    font-size: 13.5px;
    font-weight: 650;
    line-height: 1.4;
    color: #1f2c3e;
    overflow-wrap: anywhere;
}
.dt-bell .dt-bell__text {
    display: block;
    margin: 3px 0 0;
    font-size: 12.5px;
    line-height: 1.45;
    color: #64748b;
    overflow-wrap: anywhere;
}
.dt-bell .dt-bell__time {
    display: block;
    margin: 5px 0 0;
    font-size: 11.5px;
    color: #a4b0c0;
}

.dt-bell .dt-bell__empty {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 26px 18px;
    text-align: center;
}
.dt-bell .dt-bell__empty strong { margin: 0; font-size: 14px; font-weight: 700; color: #334155; }
.dt-bell .dt-bell__empty span { margin: 0; font-size: 12.5px; color: #94a3b8; }

@media (max-width: 760px) {
    .dt-bell .dt-bell__panel { width: 300px; border-radius: 16px; }
    .dt-bell .dt-bell__btn { width: 36px; height: 36px; }
}

@media (prefers-reduced-motion: reduce) {
    .dt-bell .dt-bell__btn { transition: none; }
}
