/*
    Login tips: cards that fly into the dark left panel of the login page (see Script/loginTips.js).
    A copy of this file is served by LicenseManager (wwwroot/logintips) for its Preview; keep them the same.
*/

.lt-panel {
    position: relative;
    overflow: hidden;
}

/* Logo block: rests where the login page puts it; loginTips.js sets top/transform while a tip shows. */
.lt-panel .lt-logo {
    position: absolute;
    left: 0;
    right: 0;
    top: 40%;
    z-index: 2;
    text-align: center;
    color: #c8c8c8;
    transform-origin: center top;
    transition: top .9s cubic-bezier(.65, 0, .35, 1), transform .9s cubic-bezier(.65, 0, .35, 1), opacity .4s ease;
}

.lt-panel.lt-active .lt-logo * {
    animation-play-state: paused !important;
}

/* ---------- Card ---------- */
.lt-card {
    --lt-accent: #1d9114;
    position: absolute;
    left: 50%;
    top: -50%;
    z-index: 3;
    width: min(92%, 520px); /*wide enough that the 640px tip animations stay sharp and readable*/
    transform: translate(-50%, -50%);
    background: #fff;
    color: #1d2433;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(5, 10, 25, .45);
    font-family: Rubik, "Segoe UI", system-ui, sans-serif;
    text-align: left;
    visibility: hidden;
    transition: top .85s cubic-bezier(.65, 0, .35, 1), opacity .4s ease;
}

.lt-card.lt-shown {
    visibility: visible;
}

.lt-card.lt-notrans {
    transition: none;
}

.lt-media {
    position: relative;
    aspect-ratio: 16 / 9;
    max-width: 100%;
    background: #eef2f8;
    overflow: hidden;
}

.lt-media img,
.lt-media video,
.lt-media iframe,
.lt-media .lt-yt {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: contain;
}

.lt-media .lt-yt {
    background: #000 center / cover no-repeat;
}

.lt-sound {
    position: absolute;
    right: 8px;
    bottom: 8px;
    z-index: 2;
    font: 500 12px Rubik, "Segoe UI", sans-serif;
    color: #fff;
    background: rgba(10, 15, 30, .75);
    border: 0;
    border-radius: 14px;
    padding: 5px 10px;
    cursor: pointer;
}

.lt-bar {
    height: 3px;
    background: #e3e8f0;
}

.lt-bar i {
    display: block;
    height: 100%;
    width: 0;
    background: var(--lt-accent);
}

.lt-bar i.lt-run {
    animation-name: lt-fill;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

.lt-card:hover .lt-bar i.lt-run,
.lt-card.lt-hold .lt-bar i.lt-run {
    animation-play-state: paused;
}

@keyframes lt-fill {
    to { width: 100%; }
}

.lt-text {
    padding: 14px 18px 16px;
    display: grid;
    gap: 6px;
}

.lt-eyebrow {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--lt-accent);
}

.lt-card h3.lt-heading {
    margin: 0;
    font-size: 19px;
    line-height: 1.2;
    font-weight: 600;
    color: #0e3d7a;
    text-wrap: balance;
}

.lt-sub {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #39445a;
}

.lt-body {
    font-size: 13.5px;
    line-height: 1.5;
    color: #4a5263;
}

.lt-body p, .lt-body ul, .lt-body ol {
    margin: 0 0 6px;
}

.lt-body ul, .lt-body ol {
    padding-left: 18px;
}

.lt-body a, .lt-custom a {
    color: #0b62a3;
}

.lt-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 6px;
}

.lt-learn {
    font: 500 13px Rubik, "Segoe UI", sans-serif;
    color: #fff !important;
    background: var(--lt-accent);
    border-radius: 6px;
    padding: 7px 12px;
    text-decoration: none !important;
    cursor: pointer;
}

.lt-learn:hover {
    filter: brightness(.85);
}

.lt-learn:focus-visible, .lt-sound:focus-visible {
    outline: 2px solid #0b62a3;
    outline-offset: 2px;
}

.lt-count {
    font-size: 11.5px;
    color: #6b7486;
    font-variant-numeric: tabular-nums;
}

/* ---------- Layouts ---------- */
.lt-layout-MediaBottom .lt-text { padding-bottom: 12px; }

.lt-layout-MediaOnly .lt-media { aspect-ratio: 4 / 3; }
.lt-layout-MediaOnly .lt-caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    padding: 28px 16px 12px;
    background: linear-gradient(to top, rgba(10, 15, 30, .85), rgba(10, 15, 30, 0));
    color: #fff;
}
.lt-layout-MediaOnly .lt-caption h3.lt-heading { color: #fff; font-size: 17px; }
.lt-layout-MediaOnly .lt-caption .lt-eyebrow { color: #9be38f; }
.lt-layout-MediaOnly .lt-foot { padding: 10px 14px; margin: 0; }

.lt-layout-TextOnly .lt-text { padding: 22px 22px 20px; gap: 10px; }
.lt-layout-TextOnly h3.lt-heading { font-size: 24px; }
.lt-layout-TextOnly .lt-body { font-size: 14.5px; }

.lt-custom {
    padding: 14px 18px 16px;
    font-size: 13.5px;
    line-height: 1.5;
    color: #4a5263;
}
.lt-custom .lt-media { margin: 6px 0; border-radius: 8px; }
.lt-custom img { max-width: 100%; }

/* ---------- New feature: gold ribbon with a shine, glowing border, confetti burst (loginTips.js) ---------- */
.lt-card.lt-new {
    box-shadow: 0 0 0 2px #f0a92b, 0 24px 60px rgba(5, 10, 25, .45);
}

.lt-card.lt-new.lt-shown {
    animation: lt-glow 2.4s ease-in-out 1s infinite;
}

@keyframes lt-glow {
    50% { box-shadow: 0 0 0 3px #f7c548, 0 0 30px 6px rgba(247, 197, 72, .55), 0 24px 60px rgba(5, 10, 25, .45); }
}

.lt-ribbon {
    position: absolute;
    top: 0;
    right: 0;
    width: 130px;
    height: 130px;
    overflow: hidden;
    pointer-events: none;
    z-index: 4;
}

.lt-ribbon span {
    position: absolute;
    top: 26px;
    right: -38px;
    width: 170px;
    transform: rotate(45deg);
    text-align: center;
    font: 700 10.5px/26px Rubik, "Segoe UI", sans-serif;
    letter-spacing: .14em;
    color: #3a2800;
    background: linear-gradient(90deg, #f7c548, #f0a92b 50%, #f7c548);
    box-shadow: 0 3px 10px rgba(0, 0, 0, .3);
    overflow: hidden;
}

.lt-ribbon span::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .8) 50%, transparent 70%);
    transform: translateX(-120%);
    animation: lt-shine 2.6s ease-in-out 1.2s infinite;
}

@keyframes lt-shine {
    55%, 100% { transform: translateX(120%); }
}

.lt-card.lt-new .lt-eyebrow::before {
    content: "\2728  New \00B7  ";
    color: #c98a00;
}

.lt-burst {
    position: absolute;
    width: 0;
    height: 0;
    z-index: 5;
    pointer-events: none;
}

.lt-burst i {
    position: absolute;
    left: 0;
    top: 0;
    width: 7px;
    height: 11px;
    border-radius: 2px;
    opacity: 0;
    animation: lt-pop 1.4s cubic-bezier(.15, .7, .3, 1) forwards;
}

@keyframes lt-pop {
    0% { opacity: 1; transform: translate(0, 0) rotate(0deg) scale(.6); }
    15% { opacity: 1; }
    100% { opacity: 0; transform: translate(var(--dx), var(--dy)) rotate(var(--rot)) scale(1); }
}

/* ---------- Dots: one per tip along the bottom of the panel; click to see that tip again ---------- */
.lt-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    z-index: 4;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px;
    padding: 0 16px;
}

.lt-dot {
    min-width: 18px;
    height: 18px;
    padding: 0 2px;
    border: 0;
    background: none;
    display: grid;
    place-items: center;
    cursor: pointer;
}

.lt-dot::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 4px;
    background: rgba(29, 145, 20, .4); /*brand green #1d9114, faded until seen*/
    transition: width .35s ease, background-color .35s ease;
}

.lt-dot:hover::before { background: rgba(29, 145, 20, .85); }
.lt-dot.lt-seen::before { background: rgba(29, 145, 20, .7); }
.lt-dot.lt-on::before { width: 22px; background: #1d9114; }

/* New-feature tips get a star instead of a dot; the current one grows instead of stretching */
.lt-dot.lt-dot-new::before {
    width: 13px;
    height: 13px;
    border-radius: 0;
    clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
    transition: width .35s ease, height .35s ease, background-color .35s ease;
}

.lt-dot.lt-dot-new.lt-on::before { width: 17px; height: 17px; }

.lt-dot:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 1px;
    border-radius: 9px;
}

@media (prefers-reduced-motion: reduce) {
    .lt-dot::before { transition: none; }
}

@media (prefers-reduced-motion: reduce) {
    .lt-panel .lt-logo, .lt-card {
        transition: opacity .4s ease !important;
    }

    .lt-card.lt-new.lt-shown, .lt-ribbon span::after {
        animation: none;
    }
}
