.cm-discovery-photo-notice {
    display: flex;
    align-items: center;
    gap: 14px;
    position: fixed;
    right: max(20px, env(safe-area-inset-right));
    bottom: max(68px, calc(68px + env(safe-area-inset-bottom)));
    z-index: 120;
    box-sizing: border-box;
    width: min(420px, calc(100vw - 40px));
    max-height: calc(100vh - 40px);
    max-height: calc(100dvh - 40px);
    min-width: 0;
    padding: 13px 48px 17px 16px;
    border: 1px solid rgba(255, 178, 112, .58);
    border-radius: 11px;
    background: linear-gradient(105deg, #40303b, #222331 48%);
    color: #f5f7fb;
    box-shadow: 0 16px 40px rgba(11, 13, 24, .55);
    overflow-y: auto;
}

.cm-discovery-photo-notice[hidden] { display: none; }

.cm-discovery-photo-notice-trigger {
    position: fixed;
    right: max(20px, env(safe-area-inset-right));
    bottom: max(20px, env(safe-area-inset-bottom));
    z-index: 120;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 7px 12px;
    border: 1px solid rgba(255, 178, 112, .58);
    border-radius: 10px;
    background: #292533;
    color: #f5f7fb;
    box-shadow: 0 10px 28px rgba(11, 13, 24, .5);
    font: inherit;
    font-size: .78rem;
    font-weight: 750;
    cursor: pointer;
}
.cm-discovery-photo-notice-trigger[hidden] { display: none; }
.cm-discovery-photo-notice-trigger:hover,
.cm-discovery-photo-notice-trigger:focus-visible { background: #3d3040; outline: 2px solid #ffca77; outline-offset: 2px; }
.cm-discovery-photo-notice-trigger svg {
    width: 18px;
    height: 18px;
    color: #ffdf86;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linejoin: round;
    filter: drop-shadow(0 0 4px rgba(255, 219, 118, .9));
}

.cm-discovery-photo-notice-icon {
    display: grid;
    flex: 0 0 38px;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #604139;
    color: #ffdf86;
    box-shadow: inset 0 0 0 1px rgba(255, 223, 134, .27), 0 0 18px rgba(255, 185, 83, .28);
}

.cm-discovery-photo-notice-icon svg {
    width: 21px;
    height: 21px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    filter: drop-shadow(0 0 4px rgba(255, 219, 118, .9));
}

.cm-discovery-photo-notice-copy { flex: 1; min-width: 0; }
.cm-discovery-photo-notice-kicker { display: block; margin-bottom: 3px; color: #ffad9e; font-size: .65rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.cm-discovery-photo-notice-copy strong { display: block; font-size: .9rem; font-weight: 650; line-height: 1.35; }
.cm-discovery-photo-notice-copy strong.is-entering { animation: cmReminderEnter .32s ease-out; }

.cm-discovery-photo-notice-count {
    flex: 0 0 auto;
    color: #9eaabc;
    font-size: .73rem;
    font-variant-numeric: tabular-nums;
}

.cm-discovery-photo-notice-link {
    flex: 0 0 auto;
    color: #ffad9e;
    font-size: .86rem;
    font-weight: 800;
    text-decoration: none;
}
.cm-discovery-photo-notice-link:hover,
.cm-discovery-photo-notice-link:focus-visible { color: #fff; text-decoration: underline; }

.cm-discovery-photo-notice-close {
    position: absolute;
    top: 9px;
    right: 10px;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #c5cad7;
    font-size: 1.45rem;
    line-height: 1;
    cursor: pointer;
}
.cm-discovery-photo-notice-close:hover,
.cm-discovery-photo-notice-close:focus-visible { background: rgba(255, 255, 255, .1); color: #fff; }

.cm-discovery-photo-notice-progress {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    overflow: hidden;
    border-radius: 0 0 11px 11px;
    background: rgba(255, 255, 255, .06);
}
.cm-discovery-photo-notice-progress > span {
    display: block;
    width: 100%;
    height: 100%;
    transform-origin: left;
    background: linear-gradient(90deg, #ff806e, #ffb29d);
    animation: cmReminderProgress var(--cm-reminder-interval, 8s) linear forwards;
}

@keyframes cmReminderProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes cmReminderEnter { from { opacity: .35; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }

body.public-mode.color-mode-light .cm-discovery-photo-notice {
    border-color: rgba(214, 70, 49, .35);
    background: linear-gradient(105deg, #fff1ed, #fff 45%);
    color: #202638;
}
body.public-mode.color-mode-light .cm-discovery-photo-notice-kicker { color: #b42e1c; }
body.public-mode.color-mode-light .cm-discovery-photo-notice-count { color: #697487; }
body.public-mode.color-mode-light .cm-discovery-photo-notice-link { color: #b42e1c; }
body.public-mode.color-mode-light .cm-discovery-photo-notice-close { color: #566176; }
body.public-mode.color-mode-light .cm-discovery-photo-notice-trigger { background: #fff; color: #202638; }

@media (max-width: 860px) {
    .cm-discovery-photo-notice {
        left: 0;
        right: 0;
        bottom: calc(var(--cm-mobile-nav-height, 64px) + env(safe-area-inset-bottom));
        width: 100%;
        max-width: none;
        max-height: calc(100vh - var(--cm-mobile-nav-height, 64px) - 68px - env(safe-area-inset-bottom));
        max-height: calc(100dvh - var(--cm-mobile-nav-height, 64px) - 68px - env(safe-area-inset-bottom));
        border-radius: 11px 11px 0 0;
    }
    .cm-discovery-photo-notice-trigger {
        left: max(12px, env(safe-area-inset-left));
        right: auto;
        bottom: calc(var(--cm-mobile-nav-height, 64px) + 12px + env(safe-area-inset-bottom));
    }
}

@media (max-width: 640px) {
    .cm-discovery-photo-notice { flex-wrap: wrap; gap: 8px 10px; padding: 12px 42px 17px 13px; }
    .cm-discovery-photo-notice-copy { flex-basis: calc(100% - 48px); }
    .cm-discovery-photo-notice-count { margin-left: 48px; }
    .cm-discovery-photo-notice-link { margin-left: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .cm-discovery-photo-notice-copy strong.is-entering,
    .cm-discovery-photo-notice-progress > span { animation: none; }
}
