:root {
    --tour-accent: #9a72ff;
    --tour-cyan: #37d7e6;
    --tour-panel: rgba(13, 18, 28, .985);
    --tour-text: #f4f6ff;
    --tour-muted: #aeb6ca;
}

body.tutorial-active { overflow-x: hidden; }

#tutorial-library, #tutorial-stage {
    position: fixed;
    inset: 0;
    z-index: 120000;
    color: var(--tour-text);
    font-family: "Segoe UI", Arial, sans-serif;
}

#tutorial-stage { pointer-events: none; }

#tutorial-library[hidden], #tutorial-stage[hidden] { display: none !important; }

.tutorial-library-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 6, 12, .78);
    backdrop-filter: blur(12px);
}

.tutorial-library-panel {
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(860px, calc(100vw - 32px));
    max-height: min(760px, calc(100dvh - 32px));
    transform: translate(-50%, -50%);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
    border: 1px solid rgba(174, 154, 255, .34);
    border-radius: 20px;
    background: radial-gradient(circle at 85% 0, rgba(55, 215, 230, .12), transparent 34%), var(--tour-panel);
    box-shadow: 0 28px 90px rgba(0, 0, 0, .62), inset 0 0 0 1px rgba(255, 255, 255, .04);
    text-align: left;
}

.tutorial-library-header {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    padding: 26px 28px 19px;
    border-bottom: 1px solid rgba(174, 180, 196, .13);
}

.tutorial-kicker {
    margin: 0 0 7px;
    color: var(--tour-cyan);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.tutorial-library-header h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(24px, 4vw, 34px);
    line-height: 1.08;
}

.tutorial-library-header p:last-child {
    max-width: 620px;
    margin: 9px 0 0;
    color: var(--tour-muted);
    font-size: 14px;
    line-height: 1.45;
}

.tutorial-close, .tutorial-icon-button {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(174, 180, 196, .2);
    border-radius: 50%;
    background: rgba(255, 255, 255, .055);
    color: #eef1fb;
    font-size: 22px;
    cursor: pointer;
}

.tutorial-close:hover, .tutorial-icon-button:hover {
    border-color: rgba(154, 114, 255, .7);
    background: rgba(154, 114, 255, .16);
}

.tutorial-list {
    padding: 20px 28px 26px;
    overflow: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.tutorial-card {
    min-height: 118px;
    border: 1px solid rgba(174, 180, 196, .16);
    border-radius: 14px;
    padding: 16px;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 13px;
    align-items: start;
    background: rgba(255, 255, 255, .035);
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.tutorial-card:hover, .tutorial-card:focus-visible {
    outline: none;
    border-color: rgba(154, 114, 255, .66);
    background: rgba(154, 114, 255, .1);
    transform: translateY(-1px);
}

.tutorial-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, rgba(154, 114, 255, .23), rgba(55, 215, 230, .13));
    color: #fff;
    font-size: 24px;
}

.tutorial-card h3 { margin: 1px 0 6px; color: #f8f9ff; font-size: 16px; }
.tutorial-card p { margin: 0; color: var(--tour-muted); font-size: 13px; line-height: 1.4; }
.tutorial-card-meta { display: block; margin-top: 9px; color: #858ea4; font-size: 11px; }
.tutorial-card-state { min-width: 22px; color: var(--tour-cyan); font-weight: 800; text-align: right; }

.tutorial-library-footer {
    padding: 12px 28px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    border-top: 1px solid rgba(174, 180, 196, .13);
    color: #8e97ac;
    font-size: 12px;
}

.tutorial-reset { border: 0; background: none; color: #bca9ff; cursor: pointer; }

.tutorial-stage-shade {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: rgba(2, 5, 10, .37);
}

.tutorial-focus {
    position: fixed;
    z-index: 1;
    border: 2px solid var(--tour-cyan);
    border-radius: 12px;
    pointer-events: none;
    box-shadow: 0 0 0 5px rgba(55, 215, 230, .13), 0 0 28px rgba(55, 215, 230, .38);
    transition: left .2s ease, top .2s ease, width .2s ease, height .2s ease;
}

.tutorial-focus::after {
    content: "";
    position: absolute;
    inset: -8px;
    border: 1px solid rgba(154, 114, 255, .5);
    border-radius: 16px;
    animation: tutorial-pulse 1.8s ease-out infinite;
}

@keyframes tutorial-pulse {
    0% { opacity: .9; transform: scale(.98); }
    70%, 100% { opacity: 0; transform: scale(1.06); }
}

.tutorial-pointer {
    position: fixed;
    z-index: 4;
    width: 25px;
    height: 31px;
    pointer-events: none;
    filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .7));
    transform-origin: 3px 3px;
}

.tutorial-pointer::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #fff;
    clip-path: polygon(0 0, 0 80%, 19% 61%, 34% 100%, 51% 91%, 36% 55%, 68% 53%);
}

.tutorial-pointer::after {
    content: "";
    position: absolute;
    left: -9px;
    top: -9px;
    width: 20px;
    height: 20px;
    border: 2px solid var(--tour-cyan);
    border-radius: 50%;
    opacity: 0;
    animation: tutorial-click 1.8s ease-out infinite;
}

@keyframes tutorial-click {
    8% { opacity: 0; transform: scale(.4); }
    16% { opacity: 1; transform: scale(.7); }
    34%, 100% { opacity: 0; transform: scale(1.65); }
}

.tutorial-balloon {
    position: fixed;
    z-index: 5;
    width: min(390px, calc(100vw - 28px));
    border: 1px solid rgba(174, 154, 255, .42);
    border-radius: 16px;
    padding: 18px;
    box-sizing: border-box;
    background: radial-gradient(circle at 100% 0, rgba(55, 215, 230, .1), transparent 44%), var(--tour-panel);
    box-shadow: 0 22px 65px rgba(0, 0, 0, .62);
    text-align: left;
    pointer-events: auto;
}

.tutorial-balloon-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 11px; }
.tutorial-progress-label { color: var(--tour-cyan); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tutorial-balloon h3 { margin: 0 0 8px; color: #fff; font-size: 20px; line-height: 1.2; }
.tutorial-balloon-copy { margin: 0; color: #c6ccdb; font-size: 14px; line-height: 1.55; }

.tutorial-gesture-note {
    margin-top: 12px;
    padding: 9px 11px;
    border-left: 3px solid var(--tour-cyan);
    border-radius: 4px 8px 8px 4px;
    background: rgba(55, 215, 230, .08);
    color: #defbff;
    font-size: 12px;
    line-height: 1.42;
}

.tutorial-dots { display: flex; gap: 5px; margin: 16px 0 14px; }
.tutorial-dot { width: 18px; height: 3px; border-radius: 999px; background: rgba(174, 180, 196, .23); }
.tutorial-dot.current, .tutorial-dot.done { background: var(--tour-accent); }

.tutorial-balloon-actions { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; }
.tutorial-balloon-actions button {
    min-height: 38px;
    border: 1px solid rgba(174, 180, 196, .19);
    border-radius: 9px;
    padding: 0 14px;
    background: rgba(255, 255, 255, .055);
    color: #dfe3ef;
    font-weight: 700;
    cursor: pointer;
}
.tutorial-balloon-actions button:hover:not(:disabled) { border-color: rgba(154, 114, 255, .65); background: rgba(154, 114, 255, .14); }
.tutorial-balloon-actions button:disabled { opacity: .35; cursor: default; }
.tutorial-balloon-actions .tutorial-next { background: linear-gradient(135deg, var(--tour-accent), #7047e5); color: #fff; }

.mobile-popover-menu .mobile-tutorial-entry::before {
    content: "?";
    width: 22px;
    height: 22px;
    border: 1px solid currentColor;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 14px;
    font-weight: 900;
}

@media (max-width: 680px) {
    .tutorial-library-panel {
        top: auto;
        bottom: 0;
        width: 100%;
        max-height: min(86dvh, 760px);
        transform: translateX(-50%);
        border-radius: 22px 22px 0 0;
    }
    .tutorial-library-header { padding: 21px 19px 15px; }
    .tutorial-list { grid-template-columns: 1fr; padding: 14px 16px 20px; }
    .tutorial-card { min-height: 104px; padding: 13px; }
    .tutorial-library-footer { padding: 11px 18px calc(11px + env(safe-area-inset-bottom, 0px)); }
    .tutorial-balloon {
        left: 14px !important;
        right: 14px;
        bottom: calc(14px + env(safe-area-inset-bottom, 0px));
        top: auto !important;
        width: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tutorial-focus, .tutorial-card { transition: none; }
    .tutorial-focus::after, .tutorial-pointer::after { animation: none; }
}
