:root { --danger: #da373c; --success: #23a559; --accent: #ffffff; }
/* =========================================
   МОДУЛЬ САПЁРА (INDUSTRIAL CONSOLE STYLE)
   ========================================= */

.minesweeper-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    background: #0c0c0f;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 2px;
    padding: 10px 12px;
    margin-top: 10px;
    box-sizing: border-box;
    width: 100%;
    max-height: calc(100vh - 240px);
    overflow: visible !important; /* Разрешаем ячейкам вылезать за пределы коробки */
    position: relative;
    z-index: 5;
}

.minesweeper-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
    transition: width 0.3s cubic-bezier(0.18, 0.85, 0.25, 1);
    gap: 8px;
    width: 100%;
}

.minesweeper-controls-center {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

/* Дисплеи мин и времени в стиле приборных ячеек */
.ms-pill-display {
    display: flex;
    align-items: center;
    gap: 7px;
    background: rgba(0, 0, 0, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 2px;
    padding: 4px 10px;
    height: 30px;
    box-sizing: border-box;
    flex-shrink: 0;
}

.ms-disp-lbl {
    font-size: 10px;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.45);
    letter-spacing: 0.8px;
    user-select: none;
}

.ms-disp-val {
    font-family: Consolas, monospace;
    font-size: 14.5px;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.6px;
    min-width: 26px;
    text-align: right;
}

/* Бейдж масштаба поля */
.ms-meta-badge {
    height: 30px;
    padding: 0 10px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 2px;
    color: rgba(255, 255, 255, 0.75);
    font-family: Consolas, monospace;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    user-select: none;
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-shrink: 1;
}

/* Бейдж уровня опасности (плотности мин) */
.ms-status-badge {
    height: 30px;
    padding: 0 10px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 2px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    user-select: none;
    box-sizing: border-box;
    flex-shrink: 0;
}

.ms-status-badge.diff-easy {
    border-color: rgba(56, 189, 248, 0.35);
    color: #38bdf8;
}

.ms-status-badge.diff-normal {
    border-color: rgba(74, 222, 128, 0.35);
    color: #4ade80;
}

.ms-status-badge.diff-hard {
    border-color: rgba(251, 191, 36, 0.35);
    color: #fbbf24;
}

.ms-status-badge.diff-extreme {
    border-color: rgba(248, 113, 113, 0.45);
    color: #f87171;
}

.ms-status-badge.diff-nightmare {
    border-color: rgba(225, 29, 72, 0.6);
    color: #fb7185;
    background: rgba(225, 29, 72, 0.1) !important;
}

.ms-status-badge.defeat {
    background: rgba(218, 55, 60, 0.15) !important;
    border-color: #da373c !important;
    color: #ff6b6b !important;
}

.ms-status-badge.victory {
    background: rgba(74, 222, 128, 0.15) !important;
    border-color: #4ade80 !important;
    color: #4ade80 !important;
}

/* Кнопка рестарта */
.minesweeper-restart-btn {
    height: 30px;
    padding: 0 11px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 2px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s ease;
    flex-shrink: 0;
    box-sizing: border-box;
}

.minesweeper-restart-btn:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: #ffffff;
    color: #ffffff;
}

.minesweeper-restart-btn svg {
    color: rgba(255, 255, 255, 0.6);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.minesweeper-restart-btn:hover svg {
    color: #ffffff;
    transform: rotate(180deg);
}

/* Адаптивный режим для компактных полей: прячем надпись РЕСТАРТ */
.minesweeper-top-bar.is-compact .ms-btn-lbl {
    display: none;
}

.minesweeper-top-bar.is-compact .minesweeper-restart-btn {
    width: 30px;
    height: 30px;
    padding: 0;
    justify-content: center;
}

/* Приборная палитра цифр */
.ms-cell.n-1 { color: #60a5fa; }
.ms-cell.n-2 { color: #4ade80; }
.ms-cell.n-3 { color: #f87171; }
.ms-cell.n-4 { color: #a78bfa; }
.ms-cell.n-5 { color: #fbbf24; }
.ms-cell.n-6 { color: #2dd4bf; }
.ms-cell.n-7 { color: #f472b6; }
.ms-cell.n-8 { color: #e2e8f0; }

/* Полоса особенностей и модификаторов раунда */
.ms-modifiers-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(0, 0, 0, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 2px;
    padding: 0 8px;
    height: 32px;
    box-sizing: border-box;
    transition: width 0.3s cubic-bezier(0.18, 0.85, 0.25, 1);
    width: 100%;
    position: relative;
    overflow: visible;
    gap: 6px;
}

.ms-mod-title {
    font-size: 10px;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.45);
    letter-spacing: 0.8px;
    user-select: none;
    white-space: nowrap;
    flex-shrink: 0;
}

.ms-mod-pills-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    min-width: 0;
    flex: 1;
    overflow: visible;
}

/* Приборный чип модификатора */
.ms-mod-chip {
    font-family: Consolas, monospace;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.6px;
    border-radius: 2px;
    padding: 3px 7px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    user-select: none;
    cursor: pointer;
    white-space: nowrap;
    box-sizing: border-box;
    transition: all 0.15s ease;
    position: relative;
    flex-shrink: 0;
}

/* Компактный режим иконок при 4+ модах */
.ms-mod-pills-row.compact-icons .ms-mod-chip {
    padding: 3px 6px;
    gap: 4px;
}

.ms-mod-pills-row.compact-icons .ms-mod-name {
    display: none !important;
}

.ms-mod-pills-row.compact-icons .ms-mod-chip svg {
    width: 15px;
    height: 15px;
}

/* Всплывающий тултип под чипом (свободное пространство вниз) */
.ms-mod-tooltip {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 250px;
    max-width: 250px;
    background: #111116;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-left: 3px solid #38bdf8;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.95);
    border-radius: 2px;
    padding: 8px 12px;
    color: #ffffff;
    font-family: 'Jura', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.4px;
    white-space: normal;
    word-wrap: break-word;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 99999;
    text-align: left;
}

.ms-mod-chip.silence .ms-mod-tooltip {
    border-left-color: #fbbf24;
}

.ms-mod-chip.default .ms-mod-tooltip {
    border-left-color: rgba(255, 255, 255, 0.35);
}

.ms-mod-chip:hover .ms-mod-tooltip {
    opacity: 1;
    transform: translateY(0);
}

.ms-mod-chip svg {
    flex-shrink: 0;
}

.ms-mod-chip.default {
    color: rgba(255, 255, 255, 0.6);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.ms-mod-chip.shield.active {
    color: #38bdf8;
    background: rgba(56, 189, 248, 0.12);
    border: 1px solid rgba(56, 189, 248, 0.4);
    box-shadow: 0 0 10px rgba(56, 189, 248, 0.15);
}

.ms-mod-chip.shield.spent {
    color: rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.03);
    border: 1px dashed rgba(255, 255, 255, 0.18);
}

/* Адаптивное скрытие текста на узких полях: остаётся только иконка и число */
.minesweeper-top-bar.is-compact ~ .ms-modifiers-strip .ms-mod-name {
    display: none;
}

/* Увеличенные тактильные ячейки поля */
.ms-cell {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Consolas, monospace;
    font-size: 16px;
    font-weight: 900;
    cursor: pointer;
    box-sizing: border-box;
    transition: background 0.08s ease, border-color 0.08s ease;
}

.ms-cell:hover:not(.revealed) {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.28);
}

.ms-cell.revealed {
    background: #08080a;
    border-color: rgba(255, 255, 255, 0.03);
    cursor: default;
}

.ms-cell.flagged {
    color: #fbbf24;
}

.ms-cell.mine {
    background: rgba(218, 55, 60, 0.35) !important;
    border-color: #da373c !important;
    color: #ffffff;
}

/* Обезвреженная щитом мина */
.ms-cell.defused-shield {
    background: rgba(56, 189, 248, 0.15) !important;
    border: 1px dashed rgba(56, 189, 248, 0.6) !important;
    color: #38bdf8 !important;
    cursor: default;
    animation: defusePulse 0.35s ease-out;
}

@keyframes defusePulse {
    0% { transform: scale(1.15); background: rgba(56, 189, 248, 0.5); }
    100% { transform: scale(1); }
}

/* Чип протокола РАДИОМОЛЧАНИЕ */
.ms-mod-chip.silence.active {
    color: #fbbf24;
    background: rgba(251, 191, 36, 0.12);
    border: 1px solid rgba(251, 191, 36, 0.4);
    box-shadow: 0 0 10px rgba(251, 191, 36, 0.12);
}

.ms-mod-chip.silence.depleted {
    color: #f87171;
    background: rgba(248, 113, 113, 0.15);
    border: 1px solid rgba(248, 113, 113, 0.5);
}

/* Тревожная вспышка и микро-тряска чипа при исчерпании маяков */
.ms-mod-chip.shake-alert {
    animation: silenceShake 0.35s ease-in-out !important;
    border-color: #ef4444 !important;
    background: rgba(239, 68, 68, 0.25) !important;
    color: #ffffff !important;
}

@keyframes silenceShake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-3px); }
    40%, 80% { transform: translateX(3px); }
}

/* Чип протокола СМЕЩЕНИЕ */
.ms-mod-chip.drift {
    color: #38bdf8;
    background: rgba(56, 189, 248, 0.12);
    border: 1px solid rgba(56, 189, 248, 0.4);
}
.ms-mod-chip.drift .ms-mod-tooltip {
    border-left-color: #38bdf8;
}

/* Еле заметная помеха при Смещении: клетка не подсвечивается, цифра едва заметно подрагивает */
.ms-cell.drift-glitch {
    animation: subtleDriftJitter 1.2s ease-in-out infinite alternate;
}

@keyframes subtleDriftJitter {
    0%, 80% {
        opacity: 1;
        transform: translateY(0);
        filter: none;
    }
    85% {
        opacity: 0.82;
        transform: translateY(-0.4px);
    }
    90% {
        opacity: 0.95;
        transform: translateY(0.4px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
        filter: none;
    }
}

/* Чип протокола ЗАМЫКАНИЕ */
.ms-mod-chip.short-circuit {
    color: #f59e0b;
    background: rgba(245, 158, 11, 0.12);
    border: 1px solid rgba(245, 158, 11, 0.4);
}
.ms-mod-chip.short-circuit .ms-mod-tooltip {
    border-left-color: #f59e0b;
}

/* Чип протокола ПАРАНОЙЯ */
.ms-mod-chip.paranoia {
    color: #f43f5e;
    background: rgba(244, 63, 94, 0.12);
    border: 1px solid rgba(244, 63, 94, 0.4);
}
.ms-mod-chip.paranoia .ms-mod-tooltip {
    border-left-color: #f43f5e;
}

/* Чип протокола ФОТОЛИЗ */
.ms-mod-chip.photolysis {
    color: #a78bfa;
    background: rgba(167, 139, 250, 0.12);
    border: 1px solid rgba(167, 139, 250, 0.4);
}
.ms-mod-chip.photolysis .ms-mod-tooltip {
    border-left-color: #a78bfa;
}

/* Чип протокола РАЗЛОМ */
.ms-mod-chip.faultline {
    color: #f97316;
    background: rgba(249, 115, 22, 0.12);
    border: 1px solid rgba(249, 115, 22, 0.4);
}
.ms-mod-chip.faultline .ms-mod-tooltip {
    border-left-color: #f97316;
}

/* Стилизация границы разлома на клетках */
.ms-cell.fault-border-right {
    border-right: 2px dashed rgba(249, 115, 22, 0.65) !important;
}

.ms-cell.fault-border-top {
    border-top: 2px dashed rgba(249, 115, 22, 0.65) !important;
}

.ms-cell.fault-border-bottom {
    border-bottom: 2px dashed rgba(249, 115, 22, 0.65) !important;
}

/* Граница разлома в классическом режиме Windows XP */
#xp-board-mount-point .ms-cell.fault-border-right,
#xp-board-mount-point .ms-cell.revealed.fault-border-right,
#xp-board-mount-point .ms-cell:active.fault-border-right,
.xp-sub-board .xp-classic-cell.fault-border-right,
.xp-sub-board .xp-classic-cell.revealed.fault-border-right {
    border-right: 2.5px dashed #ea580c !important;
}

#xp-board-mount-point .ms-cell.fault-border-bottom,
#xp-board-mount-point .ms-cell.revealed.fault-border-bottom,
#xp-board-mount-point .ms-cell:active.fault-border-bottom,
.xp-sub-board .xp-classic-cell.fault-border-bottom,
.xp-sub-board .xp-classic-cell.revealed.fault-border-bottom {
    border-bottom: 2.5px dashed #ea580c !important;
}

/* Стилизация увядания цифр при Фотолизе */
.ms-cell.decayed {
    color: rgba(255, 255, 255, 0.2) !important;
    text-shadow: none !important;
    transition: color 0.8s ease;
}

#xp-board-mount-point .ms-cell.decayed,
.xp-sub-board .xp-classic-cell.decayed {
    color: rgba(0, 0, 0, 0.25) !important;
}

.ms-cell.decayed:hover {
    color: inherit !important;
    transition: color 0.15s ease;
}

/* Чип протокола ПЕРЕГРУЗКА */
.ms-mod-chip.overcharge {
    color: #e11d48;
    background: rgba(225, 29, 72, 0.12);
    border: 1px solid rgba(225, 29, 72, 0.4);
}
.ms-mod-chip.overcharge .ms-mod-tooltip {
    border-left-color: #e11d48;
}

/* Чип протокола НЕВИДИМКА */
.ms-mod-chip.ghost {
    color: #06b6d4;
    background: rgba(6, 182, 212, 0.12);
    border: 1px solid rgba(6, 182, 212, 0.4);
}
.ms-mod-chip.ghost .ms-mod-tooltip {
    border-left-color: #06b6d4;
}

/* Чип ивента РАДАР в полосе особенностей */
.ms-mod-chip.radar.active {
    color: #38bdf8;
    background: rgba(56, 189, 248, 0.12);
    border: 1px solid rgba(56, 189, 248, 0.4);
    box-shadow: 0 0 10px rgba(56, 189, 248, 0.12);
    cursor: pointer;
}
.ms-mod-chip.radar.targeting {
    background: rgba(56, 189, 248, 0.28) !important;
    border-color: #38bdf8 !important;
    color: #ffffff !important;
    box-shadow: 0 0 12px rgba(56, 189, 248, 0.4);
    animation: radarPulse 1s infinite ease-in-out;
}
.ms-mod-chip.radar.spent {
    color: rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.03);
    border: 1px dashed rgba(255, 255, 255, 0.15);
    cursor: default;
}
.ms-mod-chip.radar .ms-mod-tooltip {
    border-left-color: #38bdf8;
}

@keyframes radarPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* Состояние прицела радара над полем */
.minesweeper-board.radar-targeting .ms-cell {
    cursor: crosshair !important;
}

/* Рентген-сканирование радара */
.ms-cell.radar-xray-safe {
    background: rgba(74, 222, 128, 0.18) !important;
    border-color: rgba(74, 222, 128, 0.6) !important;
    box-shadow: inset 0 0 8px rgba(74, 222, 128, 0.2) !important;
}

.ms-cell.radar-xray-mine {
    background: rgba(239, 68, 68, 0.35) !important;
    border-color: #ef4444 !important;
    color: #ffffff !important;
    box-shadow: 0 0 12px rgba(239, 68, 68, 0.5), inset 0 0 10px rgba(239, 68, 68, 0.3) !important;
    animation: xrayPulse 0.3s ease-out;
}

@keyframes xrayPulse {
    0% { transform: scale(0.85); opacity: 0.5; }
    50% { transform: scale(1.08); }
    100% { transform: scale(1); opacity: 1; }
}

/* Индикация двойного флага при Перегрузке */
.ms-cell.flag-x2 {
    color: #f43f5e !important;
    position: relative;
}

.ms-flag-badge {
    position: absolute;
    bottom: 2px;
    right: 3px;
    font-size: 8.5px;
    font-weight: 900;
    font-family: Consolas, monospace;
    color: #ffffff;
    line-height: 1;
    pointer-events: none;
}

/* Вскрытая мина-призрак */
.ms-cell.revealed-ghost {
    color: #06b6d4 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    background: rgba(6, 182, 212, 0.08) !important;
    border-color: rgba(6, 182, 212, 0.3) !important;
    animation: ghostReveal 0.3s ease-out;
}

@keyframes ghostReveal {
    0% { transform: scale(0.8); opacity: 0.3; }
    100% { transform: scale(1); opacity: 1; }
}

/* Чип протокола ТАЙМЕР */
.ms-mod-chip.countdown {
    color: #ef4444;
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.4);
    box-shadow: 0 0 10px rgba(239, 68, 68, 0.15);
}

.ms-mod-chip.countdown .ms-mod-tooltip {
    border-left-color: #ef4444;
}

/* Тревожный цвет счетчика при обратном отсчете */
.ms-disp-val.timer-danger {
    color: #ef4444 !important;
    text-shadow: 0 0 8px rgba(239, 68, 68, 0.6);
}

/* Фаза паники (последние секунды таймера) */
.ms-disp-val.timer-panic {
    color: #ff1111 !important;
    text-shadow: 0 0 14px rgba(255, 17, 17, 0.9), 0 0 4px #ffffff !important;
    animation: timerPanicPulse 0.45s infinite alternate ease-in-out;
}

@keyframes timerPanicPulse {
    0% { transform: scale(1); filter: brightness(1); }
    100% { transform: scale(1.15); filter: brightness(1.6); }
}

/* Статус сканирования в полосе особенностей */
.ms-mod-scanning {
    font-family: Consolas, monospace;
    font-size: 10.5px;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.4);
    letter-spacing: 1px;
    animation: scanBlink 0.6s infinite alternate;
}

@keyframes scanBlink {
    0% { opacity: 0.3; }
    100% { opacity: 0.9; }
}

/* Чип протокола СВЕРХПЛОТНОСТЬ */
.ms-mod-chip.density {
    color: #ec4899;
    background: rgba(236, 72, 153, 0.12);
    border: 1px solid rgba(236, 72, 153, 0.4);
}
.ms-mod-chip.density .ms-mod-tooltip {
    border-left-color: #ec4899;
}

/* Анимация вращения / фиксации слота особенностей */
.ms-mod-chip.rolling-slot {
    opacity: 0.6;
    border-style: dashed;
    animation: modSlotJitter 0.08s infinite alternate;
}

@keyframes modSlotJitter {
    0% { transform: translateY(-1px); }
    100% { transform: translateY(1px); }
}

.ms-mod-chip.slot-locked {
    animation: modLockPop 0.25s cubic-bezier(0.18, 0.85, 0.25, 1);
}

@keyframes modLockPop {
    0% { transform: scale(1.18); filter: brightness(1.6); }
    100% { transform: scale(1); filter: brightness(1); }
}

/* Кинематографичный оверлей с виньеткой поверх игрового поля */
.ms-field-wrapper {
    position: relative;
    width: fit-content;
    margin: 0 auto;
    overflow: visible !important;
}

.minesweeper-board {
    display: grid;
    gap: 1.5px;
    background: rgba(0, 0, 0, 0.55);
    padding: 4px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 2px;
    user-select: none;
    box-sizing: border-box;
    justify-content: center;
    flex-shrink: 0;
    transition: width 0.3s cubic-bezier(0.18, 0.85, 0.25, 1);
    overflow: visible !important;
}

.ms-vignette-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(ellipse at center, rgba(6, 6, 10, 0.72) 0%, rgba(2, 2, 4, 0.94) 100%);
    box-shadow: inset 0 0 45px rgba(0, 0, 0, 0.9);
    z-index: 20;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    border-radius: 2px;
    pointer-events: none;
    overflow: hidden;
}

.ms-vignette-overlay.active {
    display: flex;
}

.ms-vignette-overlay.blinded-noise {
    background: #060609 !important;
    box-shadow: inset 0 0 70px rgba(244, 63, 94, 0.4) !important;
}

.ms-overlay-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    z-index: 2;
    transform-origin: center center;
    transition: transform 0.3s cubic-bezier(0.18, 0.85, 0.25, 1);
}

.ms-bg-tape-scroller {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: none;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    pointer-events: none;
    z-index: 1;
    opacity: 0.18;
    filter: blur(1.2px);
}

.ms-bg-tape-scroller.active {
    display: flex;
}

.ms-bg-tape-column {
    display: flex;
    flex-direction: column;
    gap: 14px;
    font-family: 'Sarpanch', 'Jura', sans-serif;
    font-size: 28px;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.45);
    text-transform: uppercase;
    white-space: nowrap;
    animation: bgTapeScroll 0.35s linear infinite;
    user-select: none;
}

@keyframes bgTapeScroll {
    0% { transform: translateY(0); }
    100% { transform: translateY(-50%); }
}

.ms-overlay-sub {
    font-family: 'Jura', sans-serif;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 2px;
    color: rgba(255, 255, 255, 0.5);
    text-transform: uppercase;
}

.ms-overlay-title {
    font-family: 'Sarpanch', 'Jura', sans-serif;
    font-size: 26px;
    font-weight: 900;
    letter-spacing: 3px;
    color: #ffffff;
    text-transform: uppercase;
    text-align: center;
    padding: 0 16px;
    text-shadow: 0 0 16px rgba(255, 255, 255, 0.45);
    transition: color 0.15s ease, transform 0.15s ease;
}

.ms-overlay-title.locked {
    animation: titleLockImpact 0.3s cubic-bezier(0.18, 0.85, 0.25, 1);
}

@keyframes titleLockImpact {
    0% { transform: scale(1.25); filter: brightness(1.8); }
    100% { transform: scale(1); filter: brightness(1); }
}

/* Жёсткое дёргание регистра процессора */
.ms-overlay-title.glitching {
    color: #ef4444 !important;
    text-shadow: 3px 0 #3b82f6, -3px 0 #ef4444 !important;
    font-family: Consolas, monospace !important;
    letter-spacing: 0.5px !important;
    animation: hardwareJitter 0.05s steps(2, start) infinite !important;
}

@keyframes hardwareJitter {
    0% { transform: translate(-3px, 2px) skewX(2deg); }
    50% { transform: translate(3px, -2px) skewX(-2deg); }
    100% { transform: translate(-1px, -1px); }
}

.ms-overlay-title.pre-glitch {
    color: #fbbf24 !important;
    animation: suddenHaltCut 0.15s steps(1) forwards;
}

@keyframes suddenHaltCut {
    0% { opacity: 1; }
    50% { opacity: 0; }
    100% { opacity: 1; }
}


/* ==============================================================================
   РЕЖИМ WINDOWS XP (ЭЛТ-МОНИТОР, DESKTOP LUNA & CLASSIC MINESWEEPER)
   ============================================================================== */

/* Анимация схлопывания луча кинескопа при выключении */
.batch-modal-card.xp-crt-turnoff {
    animation: crtPowerOff 0.9s cubic-bezier(0.23, 1, 0.32, 1) forwards !important;
    pointer-events: none !important;
}

@keyframes crtPowerOff {
    0% {
        transform: scale(1, 1);
        filter: brightness(1);
    }
    40% {
        transform: scale(1, 0.003);
        filter: brightness(3);
        background: #ffffff;
    }
    75% {
        transform: scale(0.06, 0.003);
        filter: brightness(6);
        background: #ffffff;
    }
    100% {
        transform: scale(0, 0);
        filter: brightness(0);
        opacity: 0;
    }
}

/* Физическое появление монитора */
@keyframes crtMonitorDrop {
    0% {
        transform: translateY(-110vh) scale(0.85);
        opacity: 0;
    }
    68% {
        transform: translateY(16px) scale(1.02);
        opacity: 1;
    }
    84% {
        transform: translateY(-6px) scale(0.995);
    }
    100% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
}

/* Вспышка и развертка луча кинескопа при включении */
@keyframes crtPowerOn {
    0% {
        transform: scale(0.001, 0.001);
        filter: brightness(14);
        background: #ffffff;
        opacity: 0;
    }
    12% {
        transform: scale(0.06, 0.002);
        filter: brightness(10);
        background: #ffffff;
        opacity: 1;
    }
    48% {
        transform: scale(1, 0.003);
        filter: brightness(5);
        background: #ffffff;
        opacity: 1;
    }
    75% {
        transform: scale(1, 0.06);
        filter: brightness(2.2);
        background: #d4e8ff;
    }
    100% {
        transform: scale(1, 1);
        filter: brightness(1);
        background: #000000;
        opacity: 1;
    }
}

.batch-modal-card.xp-running > .batch-modal-container {
    display: none !important;
}

/* Полноэкранный вьюпорт под шапкой 40px */
#xp-fullscreen-viewport {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: 100vh;
    background: #000000 !important;
    z-index: 100015;
    overflow: hidden;
    user-select: none;
    box-sizing: border-box;
    font-family: 'Tahoma', Arial, sans-serif;
}

.xp-crt-turnoff-beam {
    position: absolute;
    inset: 0;
    background: #ffffff;
    z-index: 60;
    pointer-events: none;
    animation: crtPowerOff 0.85s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

.xp-monitor-shell.dropping {
    animation: crtMonitorDrop 0.75s cubic-bezier(0.18, 0.9, 0.28, 1) forwards;
}

.xp-crt-glass {
    position: relative;
    width: 100%;
    height: 100%;
    background: #000000;
    border-radius: 6px 6px 8px 8px;
    overflow: hidden;
    box-shadow: none;
    display: flex;
    flex-direction: column;
}

.minesweeper-board.xp-classic-board {
    background: #c0c0c0 !important;
    border: none !important;
    padding: 0 !important;
    gap: 0 !important;
    box-shadow: none !important;
    width: fit-content !important;
    margin: 0 auto !important;
}

.xp-classic-field-border .ms-field-wrapper {
    margin: 0 !important;
    padding: 0 !important;
    width: fit-content !important;
}

.xp-classic-field-border .ms-vignette-overlay {
    display: none !important;
}

.xp-crt-glass.turning-on {
    animation: crtPowerOn 0.75s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

/* Тонкие горизонтальные строки кинескопа */
.xp-crt-scanlines {
    box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.15);
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        rgba(0, 0, 0, 0.05) 0px,
        rgba(0, 0, 0, 0.05) 1px,
        transparent 1px,
        transparent 3px
    );
    pointer-events: none;
    z-index: 50;
}

/* Экран загрузки Bootscreen */
.xp-boot-screen {
    position: absolute;
    inset: 0;
    background: #000000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 30;
    overflow: hidden;
}

.xp-boot-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
    animation: xpBootRetroFadeIn 0.85s steps(10) forwards;
}

.xp-boot-logo-img {
    width: 275px;
    max-width: 80vw;
    height: auto;
    object-fit: contain;
    user-select: none;
}

@keyframes xpBootRetroFadeIn {
    from {
        opacity: 0;
        filter: brightness(0.2);
    }
    to {
        opacity: 1;
        filter: brightness(1);
    }
}

.xp-boot-footer {
    position: absolute;
    bottom: 24px;
    left: 36px;
    right: 36px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: rgba(255, 255, 255, 0.65);
    font-family: 'Tahoma', sans-serif;
    font-size: 11px;
    letter-spacing: 0.3px;
    user-select: none;
    animation: xpBootRetroFadeIn 0.85s steps(10) forwards;
}

.xp-boot-footer-ms {
    font-family: 'Tahoma', sans-serif;
    font-size: 14px;
    font-weight: 700;
    font-style: italic;
    color: rgba(255, 255, 255, 0.9);
}

.xp-boot-track {
    width: 140px;
    height: 16px;
    border: 2px solid #b2b2b2;
    border-radius: 6px;
    background: #000;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
}
.xp-boot-progress-blocks {
    display: flex;
    gap: 2px;
    position: absolute;
    top: 1px;
    bottom: 1px;
    animation: xpBootAnim 1.8s infinite linear;
}
.xp-boot-progress-blocks span {
    width: 8px;
    height: 100%;
    border-radius: 2px;
    background: linear-gradient(180deg, #0a2f97 0%, #2f6fe8 22%, #8fbaff 50%, #2f6fe8 78%, #0a2f97 100%);
}

@keyframes xpBootAnim {
    0% { left: -36px; }
    100% { left: 160px; }
}

/* Рабочий стол Windows XP Bliss */
.xp-desktop {
    animation: xpDesktopIn 0.6s ease-out;
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-color: #1d69d7;
    background-image: 
        url('assets/xp/desktop.jpg'),
        linear-gradient(180deg, #1d69d7 0%, #3587e9 35%, #76b6ec 55%, #8cb942 60%, #4f8b22 100%);
    background-size: cover;
    background-position: center;
    overflow: hidden;
}
@keyframes xpDesktopIn {
    from { opacity: 0; filter: brightness(1.7); }
    to   { opacity: 1; filter: none; }
}

/* Иконки рабочего стола */
.xp-desktop-icons {
    position: absolute;
    top: 14px;
    left: 14px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    z-index: 2;
}

.xp-desk-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: 76px;
    cursor: default;
}

.xp-icon-art {
    width: 32px;
    height: 32px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.xp-icon-mycomp {
    background-image: url('assets/xp/my_computer.png');
}

.xp-icon-network {
    background-image: url('assets/xp/network.png');
}

.xp-icon-recycle {
    background-image: url('assets/xp/recycle_bin.png');
}

.xp-icon-minesweeper {
    background-image: url('assets/xp/minesweeper.png');
}

.xp-icon-notepad {
    background-image: url('assets/xp/notepad.png');
}

.xp-icon-virus {
    background-image: url('assets/xp/virus.png');
}

.xp-icon-label {
    font-family: 'Tahoma', Arial, sans-serif;
    font-size: 11px;
    color: #fff;
    text-shadow: 1px 1px 1px #000;
    text-align: center;
    line-height: 1.15;
    word-break: break-word;
    padding: 1px 3px;
    border-radius: 1px;
}

.xp-desk-icon.selected .xp-icon-art {
    opacity: 0.68;
    filter: drop-shadow(0 0 1px rgba(11, 97, 255, 0.9));
}

.xp-desk-icon.selected .xp-icon-label {
    background-color: #0b61ff !important;
    color: #ffffff !important;
    outline: 1px dotted #ffff99 !important;
    text-shadow: none !important;
    border-radius: 0 !important;
}

/* Окно Сапёра в стиле Windows XP Luna Blue */

.xp-mine-icon-small {
    width: 16px;
    height: 16px;
    background-image: url('assets/xp/minesweeper.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.xp-window-frame {
    position: absolute;
    top: calc(50% - 15px);
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    width: fit-content !important;
    max-width: calc(100% - 40px);
    padding: 0 0 3px;
    background: #0831d9;
    border-radius: 8px 8px 0 0;
    box-shadow:
        inset -1px -1px #00138c, inset 1px 1px #0831d9,
        inset -2px -2px #001ea0, inset 2px 2px #166aee,
        inset -3px -3px #003bda, inset 3px 3px #0855dd,
        3px 4px 14px rgba(0, 0, 0, 0.55);
    z-index: 10;
    animation: xpWinPop 0.18s ease-out;
}

@keyframes xpWinPop {
    from { transform: translate(-50%, -48%) scale(0.92); opacity: 0; }
    to   { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

.xp-window-frame.xp-not-responding,
.xp-window-frame.xp-not-responding * { cursor: wait !important; }
.xp-window-frame.xp-not-responding .xp-win-titlebar { filter: saturate(0.5) brightness(1.1); }

.xp-win-titlebar {
    height: 30px;
    padding: 0 5px 0 5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 8px 8px 0 0;
    background: linear-gradient(180deg, #0997ff 0%, #0053ee 8%, #0050ee 40%, #0066ff 88%, #0066ff 93%, #005bff 95%, #003dd7 96%, #003dd7 100%);
    user-select: none;
    cursor: default;
}

.xp-win-title {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #fff;
    font: 700 13px 'Trebuchet MS', Tahoma, sans-serif;
    text-shadow: 1px 1px #0f1089;
    white-space: nowrap;
}

.xp-win-controls { display: flex; align-items: center; gap: 2px; }

.xp-btn-ctrl {
    width: 21px;
    height: 21px;
    padding: 0;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #fff;
    border-radius: 3px;
    cursor: default;
    background: radial-gradient(circle at 90% 90%, #0054e9 0%, #2263d5 55%, #4479e4 70%, #a3bbec 90%, #fff 100%);
}
.xp-btn-ctrl svg { pointer-events: none; }
.xp-btn-ctrl:hover { filter: brightness(1.12); }
.xp-btn-ctrl:active { filter: brightness(0.82); }
.xp-btn-ctrl.xp-btn-close {
    background: radial-gradient(circle at 90% 90%, #cc4600 0%, #dc6527 55%, #cd7546 70%, #ffccb2 90%, #fff 100%);
}

.xp-win-menubar {
    height: 20px;
    margin: 0 3px;
    padding: 0 2px;
    display: flex;
    align-items: center;
    background: #ece9d8;
    font: 11px Tahoma, Arial, sans-serif;
    color: #000;
    position: relative;
    user-select: none;
}
.xp-menu-item { padding: 2px 6px; cursor: default; position: relative; }
.xp-menu-item:hover, .xp-menu-item.active { background: #316ac5; color: #fff; }

.xp-menu-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 185px;
    padding: 2px;
    background: #fff;
    border: 1px solid #aca899;
    box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.35);
    color: #000;
    z-index: 100;
    display: none;
    flex-direction: column;
}
.xp-menu-dropdown.show { display: flex; }

.xp-dropdown-entry {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 3px 22px 3px 24px;
    font: 11px Tahoma, Arial, sans-serif;
    color: #000;
    cursor: default;
    white-space: nowrap;
}
.xp-dropdown-entry:hover { background: #316ac5; color: #fff; }
.xp-dd-check { position: absolute; left: 8px; top: 50%; transform: translateY(-52%); font-size: 11px; }
.xp-dropdown-shortcut { margin-left: 28px; }
.xp-dropdown-sep { height: 1px; background: #aca899; margin: 3px 2px 3px 22px; }

/* Классический серый скос 3D Win32 */
.xp-win-client-bevel {
    margin: 0 3px;
    padding: 6px;
    background: #c0c0c0;
    border: 3px solid;
    border-color: #ffffff #7b7b7b #7b7b7b #ffffff;   /* выпуклая рамка */
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.xp-classic-header-bar {
    background: #c0c0c0;
    border: 2px solid;
    border-color: #7b7b7b #ffffff #ffffff #7b7b7b;
    padding: 4px 5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.xp-led-counter {
    width: 41px;
    height: 25px;
    box-sizing: border-box;
    background: #000;
    border: 1px solid;
    border-color: #7b7b7b #ffffff #ffffff #7b7b7b;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.xp-led-counter svg { display: block; }

.xp-face-btn {
    width: 26px;
    height: 26px;
    padding: 0;
    box-sizing: border-box;
    background: #c0c0c0;
    border: 1px solid #7b7b7b;
    box-shadow: inset 2px 2px 0 #fff, inset -2px -2px 0 #7b7b7b;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    outline: none;
}
.xp-face-btn:active, .xp-face-btn.pressed { box-shadow: none; }
.xp-face-ico { display: flex; width: 20px; height: 20px; }
.xp-face-btn:active .xp-face-ico { transform: translate(1px, 1px); }

/* Граница игрового поля */
.xp-classic-field-border {
    border: 3px solid;
    border-color: #808080 #ffffff #ffffff #808080;
    background: #c0c0c0;
    overflow: hidden;
}

/* Клетки Сапёра Windows XP */
.xp-classic-cell,
#xp-board-mount-point .ms-cell {
    background: #c0c0c0 !important;
    border-top: 2px solid #ffffff !important;
    border-left: 2px solid #ffffff !important;
    border-right: 2px solid #7b7b7b !important;
    border-bottom: 2px solid #7b7b7b !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: 'Tahoma', 'Arial Black', sans-serif !important;
    font-weight: 900 !important;
    font-size: calc(var(--xp-cell, 24px) * 0.74) !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    user-select: none !important;
    line-height: 1 !important;
    transition: none !important;
}

.xp-classic-cell:hover:not(.revealed):not(.flagged),
#xp-board-mount-point .ms-cell:hover:not(.revealed):not(.flagged) {
    background-color: #c0c0c0 !important;
}

.xp-classic-cell:active:not(.revealed):not(.flagged),
#xp-board-mount-point .ms-cell:active:not(.revealed):not(.flagged) {
    border: 1px solid #7b7b7b !important;
}

.xp-classic-cell.revealed,
#xp-board-mount-point .ms-cell.revealed {
    border: 0 !important;
    border-top: 1px solid #7b7b7b !important;
    border-left: 1px solid #7b7b7b !important;
    background: #c0c0c0 !important;
    cursor: default !important;
}

.xp-classic-cell.mine,
#xp-board-mount-point .ms-cell.mine {
    border: 0 !important;
    border-top: 1px solid #7b7b7b !important;
    border-left: 1px solid #7b7b7b !important;
    background-color: #c0c0c0 !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M8 1v14M1 8h14M3 3l10 10M13 3L3 13' stroke='%23000' stroke-width='1.4'/><circle cx='8' cy='8' r='4.6' fill='%23000'/><rect x='5.4' y='5.4' width='2' height='2' fill='%23fff'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 80% !important;
}

.xp-classic-cell.mine.exploded-mine,
#xp-board-mount-point .ms-cell.mine.exploded-mine { background-color: #ff0000 !important; }

/* SVG-иконки из updateCellUI в XP-режиме не нужны: рисуем фоном */
#xp-board-mount-point .ms-cell.mine svg,
#xp-board-mount-point .ms-cell.flagged svg,
.xp-sub-board .xp-classic-cell.mine svg,
.xp-sub-board .xp-classic-cell.flagged svg {
    display: none !important;
}

/* Ошибочный флаг после подрыва: мина, перечёркнутая красным */
#xp-board-mount-point .ms-cell.flagged.wrong-flag {
    border: 0 !important;
    border-top: 1px solid #7b7b7b !important;
    border-left: 1px solid #7b7b7b !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M8 1v14M1 8h14M3 3l10 10M13 3L3 13' stroke='%23000' stroke-width='1.4'/><circle cx='8' cy='8' r='4.6' fill='%23000'/><rect x='5.4' y='5.4' width='2' height='2' fill='%23fff'/><path d='M2 2l12 12M14 2L2 14' stroke='%23f00' stroke-width='1.8'/></svg>") !important;
    background-size: 80% !important;
}

/* Флажок Windows XP */
.xp-classic-cell.flagged,
#xp-board-mount-point .ms-cell.flagged,
.xp-classic-cell.flagged:hover,
#xp-board-mount-point .ms-cell.flagged:hover,
.xp-sub-board .xp-classic-cell.flagged,
.xp-sub-board .xp-classic-cell.flagged:hover {
    position: relative;
    background-color: #c0c0c0 !important;
    background-image: url('assets/xp/flag.png') !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: calc(var(--xp-cell, 24px) * 0.65) calc(var(--xp-cell, 24px) * 0.65) !important;
    transition: none !important;
    animation: none !important;
}

.xp-classic-cell.flagged::before,
#xp-board-mount-point .ms-cell.flagged::before {
    display: none !important;
}

/* Канонические цвета чисел Сапёра */
.xp-classic-cell.n-1, #xp-board-mount-point .ms-cell.n-1 { color: #0000ff !important; }
.xp-classic-cell.n-2, #xp-board-mount-point .ms-cell.n-2 { color: #008000 !important; }
.xp-classic-cell.n-3, #xp-board-mount-point .ms-cell.n-3 { color: #ff0000 !important; }
.xp-classic-cell.n-4, #xp-board-mount-point .ms-cell.n-4 { color: #000080 !important; }
.xp-classic-cell.n-5, #xp-board-mount-point .ms-cell.n-5 { color: #800000 !important; }
.xp-classic-cell.n-6, #xp-board-mount-point .ms-cell.n-6 { color: #008080 !important; }
.xp-classic-cell.n-7, #xp-board-mount-point .ms-cell.n-7 { color: #000000 !important; }
.xp-classic-cell.n-8, #xp-board-mount-point .ms-cell.n-8 { color: #808080 !important; }

/* Панель задач Windows XP Luna Blue (30px) */
.xp-taskbar {
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 40;
    user-select: none;
    background: linear-gradient(180deg, #1f2f86 0%, #3165c4 3%, #3682e5 6%, #4490e6 10%, #3883e5 12%, #2b71e0 15%, #2a63d4 18%, #2358cf 20%, #245edb 38%, #245edb 88%, #1f4fb8 93%, #1941a5 100%);
}

.xp-start-btn {
    height: 30px;
    padding: 0 20px 0 8px;
    margin-right: 6px;
    display: flex;
    align-items: center;
    gap: 5px;
    border: none;
    border-radius: 0 12px 12px 0;
    background: linear-gradient(180deg, #5fb855 0%, #3d9f38 7%, #3a9a35 45%, #2f8a2b 85%, #26741f 100%);
    box-shadow: inset 0 1px 2px rgba(255,255,255,0.55), inset 0 -2px 3px rgba(0,0,0,0.28), 2px 0 3px rgba(0,0,0,0.4);
    cursor: pointer;
    outline: none;
}
.xp-start-btn:hover  { filter: brightness(1.1); }
.xp-start-btn:active { filter: brightness(0.85); box-shadow: inset 1px 2px 4px rgba(0,0,0,0.55), 2px 0 3px rgba(0,0,0,0.4); }

.xp-start-text {
    font: italic 700 21px 'Franklin Gothic Medium', 'Trebuchet MS', Arial, sans-serif;
    color: #fff;
    text-shadow: 1px 1px 2px #1b4a14;
    letter-spacing: 0.5px;
    line-height: 1;
}

.xp-task-button {
    height: 24px;
    max-width: 160px;
    padding: 0 8px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 5px;
    color: #fff;
    font: 11px Tahoma, Arial, sans-serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: default;
    border-radius: 2px;
    background: linear-gradient(180deg, #5a96f4 0%, #3c81f3 12%, #3b7ff0 88%, #2d6ee0 100%);
    box-shadow: inset 1px 1px 1px rgba(255,255,255,0.3), inset -1px -1px 1px rgba(0,0,0,0.25);
}
.xp-task-button.active {
    background: #1e52b7;
    box-shadow: inset 1px 1px 3px rgba(0,0,0,0.55), inset -1px -1px 0 rgba(255,255,255,0.12);
}

.xp-tray {
    height: 30px;
    padding: 0 10px;
    display: flex;
    align-items: center;
    gap: 9px;
    background: linear-gradient(180deg, #0c59b9 1%, #139ee9 6%, #18b5f2 10%, #139beb 14%, #1290e8 19%, #0d8dea 63%, #0d9fed 81%, #0f9eed 88%, #119be9 91%, #1392e2 94%, #137ed7 97%, #095bc9 100%);
    border-left: 1px solid #1042af;
    box-shadow: inset 1px 0 1px #18bbff;
}
.xp-tray-clock { font: 11px Tahoma, Arial, sans-serif; color: #fff; }
.xp-tray-lang {
    height: 18px;
    padding: 0 4px;
    display: flex;
    align-items: center;
    font: 700 10px Tahoma, Arial, sans-serif;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.55);
    border-radius: 2px;
    background: rgba(255,255,255,0.14);
}

.xp-start-flag {
    width: 19px;
    height: 19px;
    background-image: url('assets/xp/start_flag.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.5));
}

.xp-taskbar-tasks {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 0 6px;
    min-width: 0;
    overflow: hidden;
}

.xp-task-label {
    overflow: hidden;
    text-overflow: ellipsis;
}

.xp-tray-vol {
    width: 16px;
    height: 16px;
    background-image: url('assets/xp/tray_volume.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.xp-tray-mouse-inv {
    display: none;
    width: 16px;
    height: 16px;
    background-image: url('assets/xp/tray_mouse.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.xp-tray-mouse-inv.active {
    display: block;
    animation: trayBlink 0.6s infinite alternate;
}

@keyframes trayBlink {
    0% { opacity: 0.4; }
    100% { opacity: 1; }
}

.xp-tray-clock {
    font-family: 'Tahoma', Arial, sans-serif;
    font-size: 11px;
    color: #ffffff;
    letter-spacing: 0.3px;
    font-weight: 500;
}

/* Аутентичный Balloon Tooltip */
.xp-balloon-tip {
    position: absolute;
    width: 230px;
    padding: 8px 12px 10px;
    box-sizing: border-box;
    background: #ffffe1;
    border: 1px solid #000;
    border-radius: 8px;
    box-shadow: 2px 3px 4px rgba(0, 0, 0, 0.35);
    font-family: Tahoma, Arial, sans-serif;
    color: #000;
    z-index: 60;
    animation: balloonPop 0.2s cubic-bezier(0.18, 0.85, 0.25, 1);
}
.xp-balloon-system::before {
    content: '';
    position: absolute;
    bottom: -13px;
    right: 19px;
    border-style: solid;
    border-width: 13px 13px 0 0;
    border-color: #000 transparent transparent transparent;
}

.xp-balloon-system::after {
    content: '';
    position: absolute;
    bottom: -11px;
    right: 20px;
    border-style: solid;
    border-width: 11px 11px 0 0;
    border-color: #ffffe1 transparent transparent transparent;
}

@keyframes balloonPop {
    from { transform: scale(0.85); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.xp-balloon-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 5px;
    gap: 5px;
}

.xp-balloon-title {
    font-size: 11px;
    font-weight: 700;
    color: #000000;
    flex: 1;
}

.xp-balloon-ico-info {
    width: 16px;
    height: 16px;
    background-image: url('assets/xp/balloon_info.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.xp-balloon-ico-warn {
    width: 16px;
    height: 16px;
    background-image: url('assets/xp/balloon_warn.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.xp-balloon-close {
    width: 14px;
    height: 14px;
    background: transparent;
    border: none;
    color: #555555;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border-radius: 2px;
}

.xp-balloon-close:hover {
    background: rgba(0, 0, 0, 0.08);
    color: #000000;
}

.xp-balloon-body {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 10.5px;
    line-height: 1.35;
}

.xp-balloon-img {
    width: 32px;
    height: 32px;
    object-fit: cover;
    border: 1px solid #777;
    flex-shrink: 0;
}

.xp-balloon-system {
    right: 12px;
    bottom: 38px;
}

/* Суб-окна памяти Windows XP */
.xp-window-frame.xp-sub-window { transform: none; z-index: 35; animation: xpSubPop 0.18s ease-out; }
.xp-window-frame.xp-sub-window .xp-win-titlebar { height: 26px; }
.xp-window-frame.xp-sub-window .xp-win-title { font-size: 12px; }
.xp-window-frame.xp-sub-window .xp-win-client-bevel { padding: 5px; }
@keyframes xpSubPop {
    from { transform: scale(0.92); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}

.xp-sub-board {
    display: grid !important;
    gap: 0 !important;
    background: #c0c0c0 !important;
    border: 2px solid !important;
    border-color: #808080 #ffffff #ffffff #808080 !important;
    width: fit-content !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

.xp-sub-timer-chip {
    background: #ffffe1;
    border: 1px solid #777;
    color: #000;
    font-family: 'Consolas', monospace;
    font-size: 10px;
    font-weight: 700;
    padding: 0 4px;
    border-radius: 2px;
}

.xp-sub-progress-track {
    width: 100%;
    height: 6px;
    background: #ece9d8;
    border: 1px solid #808080;
    overflow: hidden;
    margin-bottom: 4px;
}

.xp-sub-progress-fill {
    height: 100%;
    background: #2b70f0;
    transition: width 1s linear, background 0.3s ease;
}

.xp-window-closing {
    animation: xpWinClose 0.3s ease forwards;
}

@keyframes xpWinClose {
    to { transform: scale(0.7); opacity: 0; }
}

.ms-cell.xp-mig-source {
    outline: 2px dashed #0055ea !important;
    outline-offset: -2px;
}

.ms-cell.xp-mig-target {
    outline: 2px solid #388e3c !important;
    outline-offset: -2px;
}

.ms-cell.xp-recount-cell {
    animation: xpRecountFlash 0.5s steps(2) 3;
}

@keyframes xpRecountFlash {
    50% { background: #ffffe1 !important; color: #ff0000 !important; }
}

.ms-cell.xp-cover-target {
    outline: 1px dotted #808080;
}

.ms-cell.xp-cover-hidden {
    position: relative;
    color: transparent !important;
    background: #c0c0c0 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><rect x="3" y="3" width="18" height="18" fill="%23e8e8e8" stroke="%23888"/><rect x="5" y="7" width="14" height="2" fill="%232b70f0"/></svg>') center/16px no-repeat !important;
}

.ms-cell.xp-cover-hidden:hover {
    color: inherit !important;
    background-image: none !important;
}

/* Экран Welcome и Завершение сеанса */
.xp-logon-stage-bg {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    background: #5a7edc;
    z-index: 100 !important;
    user-select: none;
    font-family: Tahoma, Arial, sans-serif;
}
.xp-logon-top {
    flex: 0 0 10.5%;
    background: #00309c;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}
.xp-logon-mid {
    flex: 1;
    min-height: 0;
    display: flex;
    align-items: center;
    background: radial-gradient(circle at 10% 12%, rgba(190, 215, 255, 0.55) 0%, rgba(90, 126, 220, 0) 26%), #5a7edc;
}
.xp-center-mid { justify-content: center; }
.xp-logon-bottom {
    flex: 0 0 15.5%;
    box-sizing: border-box;
    padding: 14px 28px 0;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    background: #003399;
    color: #fff;
    font-size: 12px;
    border-top: 2px solid;
    border-image: linear-gradient(90deg, #003399 0%, #d98a2c 50%, #003399 100%) 1;
}

.xp-logon-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 14px;
    padding-right: 34px;
    text-align: right;
}
.xp-logon-logo { width: 230px; max-width: 90%; height: auto; }
.xp-logon-hint { font-size: 16px; color: #fff; opacity: 0.92; }
.xp-logon-divider {
    width: 2px;
    align-self: stretch;
    margin: 3% 0;
    background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,0.7) 50%, rgba(255,255,255,0));
}
.xp-logon-right { flex: 1; display: flex; align-items: center; padding-left: 34px; }
.xp-logon-user {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 8px 28px 8px 8px;
    border-radius: 10px;
}
.xp-logon-user.selected { background: linear-gradient(90deg, rgba(0, 32, 120, 0.6), rgba(0, 32, 120, 0)); }
.xp-logon-avatar {
    width: 48px;
    height: 48px;
    box-sizing: border-box;
    border: 2px solid #fff;
    border-radius: 6px;
    background: linear-gradient(135deg, #ffcc66, #e8832a);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
}
.xp-logon-uname { font-size: 21px; color: #fff; text-shadow: 1px 1px 1px rgba(0,0,0,0.35); }
.xp-logon-usub  { font-size: 12px; color: #fff; opacity: 0.85; margin-top: 2px; }

.xp-logon-off { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.xp-logon-off-btn {
    width: 30px;
    height: 30px;
    box-sizing: border-box;
    border: 2px solid #fff;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 35% 30%, #ff9a7a, #d83a1a 60%, #a82208);
}
.xp-logon-note { max-width: 330px; text-align: left; line-height: 1.35; opacity: 0.9; }

.xp-welcome-label {
    font: italic 700 34px 'Franklin Gothic Medium', 'Trebuchet MS', Tahoma, sans-serif;
    color: #fff;
    text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.45);
}
.xp-shutdown-center { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.xp-shutdown-logo-img { width: 240px; max-width: 75vw; height: auto; object-fit: contain; }
.xp-shutdown-text { font: 700 15px Tahoma, Arial, sans-serif; color: #fff; text-shadow: 1px 1px 3px rgba(0,0,0,0.65); }

.ms-mod-chip.xp {
    color: #ffffff;
    background: linear-gradient(180deg, #2b70f0 0%, #1e5ad4 100%);
    border: 1px solid #0055ea;
    box-shadow: 0 0 10px rgba(43, 112, 240, 0.4);
}

.ms-mod-chip.xp .ms-mod-tooltip {
    border-left-color: #0055ea;
}

.xp-locked-btn {
    opacity: 0.4 !important;
    cursor: wait !important;
    pointer-events: none !important;
    filter: grayscale(0.8) !important;
}

.xp-mig-flyer {
    position: absolute;
    width: 18px;
    height: 18px;
    z-index: 50;
    pointer-events: none;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" fill="%23ffffff" stroke="%23333333" stroke-width="1.5"/><polyline points="14 2 14 8 20 8" fill="%23cce4f7" stroke="%23333333" stroke-width="1.5"/><line x1="8" y1="13" x2="16" y2="13" stroke="%232b70f0" stroke-width="1.5"/><line x1="8" y1="17" x2="13" y2="17" stroke="%232b70f0" stroke-width="1.5"/></svg>') center/contain no-repeat;
    transition: transform 0.9s cubic-bezier(0.25, 1, 0.5, 1);
    filter: drop-shadow(1px 2px 3px rgba(0, 0, 0, 0.45));
}

.xp-update-cover-window {
    position: absolute;
    z-index: 45;
    background: #ece9d8;
    border: 3px solid #0831d9;
    border-radius: 4px 4px 0 0;
    box-shadow: 2px 4px 14px rgba(0, 0, 0, 0.65);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    pointer-events: auto;
    min-width: 185px !important;
    animation: balloonPop 0.25s ease-out;
}

.xp-update-titlebar {
    height: 24px;
    padding: 0 8px;
    display: flex;
    align-items: center;
    border-radius: 4px 4px 0 0;
    background: linear-gradient(180deg, #0997ff 0%, #0053ee 10%, #0050ee 45%, #0066ff 88%, #003dd7 100%);
    color: #fff;
    font: 700 11px 'Trebuchet MS', Tahoma, sans-serif;
    text-shadow: 1px 1px #0f1089;
    user-select: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.xp-update-body {
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: #ece9d8;
}

.xp-update-desc {
    font-family: 'Tahoma', Arial, sans-serif;
    font-size: 10px;
    color: #000000;
    line-height: 1.25;
}

.xp-update-track {
    width: 100%;
    height: 15px;
    padding: 1px;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
    background: #fff;
    border: 1px solid #686868;
    border-radius: 3px;
}

.xp-update-blocks {
    display: flex;
    gap: 2px;
    position: absolute;
    top: 1px;
    bottom: 1px;
    animation: xpBootAnim 1.4s infinite linear;
}

.xp-update-blocks span {
    width: 8px;
    height: 100%;
    border-radius: 1px;
    background: linear-gradient(180deg, #b7ecb0 0%, #3ed033 22%, #25b61f 70%, #1d9b17 100%);
}

/* =========================================
   BSoD И БЛОКНОТ ДЛЯ РЕЖИМА WINDOWS XP
   ========================================= */

/* Забагованный крестик в шапке Сапёра */
.xp-btn-ctrl.xp-btn-close.xp-btn-bugged {
    opacity: 0.65;
    filter: grayscale(0.4);
    cursor: not-allowed !important;
}

.xp-btn-ctrl.xp-btn-close.xp-btn-bugged:hover {
    filter: grayscale(0.2) brightness(0.9);
}

/* Зависание рабочего стола перед вылетом в синий экран */
.xp-desktop.xp-system-freeze,
.xp-desktop.xp-system-freeze * {
    cursor: wait !important;
}

/* Синий экран смерти Windows XP (BSoD) */
.xp-bsod-screen {
    position: absolute;
    inset: 0;
    background: #0000aa;
    color: #ffffff;
    font-family: 'Lucida Console', 'Perfect DOS VGA 437', monospace;
    font-size: clamp(16px, 1.75vw, 21px);
    font-weight: 500;
    letter-spacing: 0.6px;
    line-height: 1.6;
    padding: 55px 75px;
    box-sizing: border-box;
    z-index: 99999;
    user-select: none;
    cursor: none;
    white-space: pre-wrap;
    animation: bsodFlashIn 0.12s steps(2);
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
}

@keyframes bsodFlashIn {
    from {
        background: #ffffff;
        color: #000000;
    }
    to {
        background: #0000aa;
        color: #ffffff;
    }
}

/* ==== Запуск приложений ==== */
.xp-desktop.xp-app-starting,
.xp-desktop.xp-app-starting * {
    cursor: progress !important;
}

.xp-btn-ctrl.shake-alert { animation: silenceShake 0.35s ease-in-out; }

.xp-btn-ctrl.xp-btn-help {
    font: 700 13px 'Trebuchet MS', Tahoma, sans-serif;
    line-height: 1;
    color: #fff;
}

/* ==== Блокнот ==== */
.xp-window-frame.xp-notepad-window {
    top: 44%;
    width: 480px !important;   /* !important нужен: у .xp-window-frame стоит fit-content !important */
    height: 300px;
    z-index: 55;
}

.xp-notepad-icon-small {
    width: 16px;
    height: 16px;
    background: url('assets/xp/notepad.png') center / contain no-repeat;
    flex-shrink: 0;
}

.xp-notepad-body {
    flex: 1;
    min-height: 0;
    margin: 0 3px;
    display: flex;
    background: #fff;
    border: 1px solid;
    border-color: #808080 #fff #fff #808080;
    box-shadow: inset 1px 1px 0 #404040, inset -1px -1px 0 #d4d0c8;   /* вдавленная рамка */
}

.xp-notepad-textarea {
    flex: 1;
    min-width: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 1px 2px;
    box-sizing: border-box;
    border: 0;
    outline: 0;
    resize: none;
    overflow: scroll;          /* в XP-блокноте полосы прокрутки видны всегда */
    background: #fff;
    color: #000;
    font: 13px/1.2 'Lucida Console', 'Courier New', monospace;   /* 10pt, как в оригинале */
    cursor: text;
    user-select: text;
}
.xp-notepad-textarea::selection { background: #316ac5; color: #fff; }

/* Полосы прокрутки Luna */
.xp-notepad-textarea::-webkit-scrollbar { width: 17px; height: 17px; }
.xp-notepad-textarea::-webkit-scrollbar-corner { background: #ece9d8; }
.xp-notepad-textarea::-webkit-scrollbar-track { background: #f3f1ec; }
.xp-notepad-textarea::-webkit-scrollbar-thumb:vertical {
    background: linear-gradient(90deg, #e3ebfd 0%, #c3d3f9 25%, #b0c5f5 75%, #9db6ee 100%);
    border: 1px solid #98aee3;
    border-radius: 2px;
}
.xp-notepad-textarea::-webkit-scrollbar-thumb:horizontal {
    background: linear-gradient(180deg, #e3ebfd 0%, #c3d3f9 25%, #b0c5f5 75%, #9db6ee 100%);
    border: 1px solid #98aee3;
    border-radius: 2px;
}
.xp-notepad-textarea::-webkit-scrollbar-button:single-button {
    display: block;
    width: 17px;
    height: 17px;
    box-sizing: border-box;
    background-color: #c7d6fa;
    background-repeat: no-repeat;
    background-position: center;
    border: 1px solid #98aee3;
    border-radius: 2px;
}
.xp-notepad-textarea::-webkit-scrollbar-button:single-button:vertical:decrement {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='17'><path d='M4.5 10.5L8.5 6.5L12.5 10.5' fill='none' stroke='%234d6185' stroke-width='2'/></svg>");
}
.xp-notepad-textarea::-webkit-scrollbar-button:single-button:vertical:increment {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='17'><path d='M4.5 6.5L8.5 10.5L12.5 6.5' fill='none' stroke='%234d6185' stroke-width='2'/></svg>");
}
.xp-notepad-textarea::-webkit-scrollbar-button:single-button:horizontal:decrement {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='17'><path d='M10.5 4.5L6.5 8.5L10.5 12.5' fill='none' stroke='%234d6185' stroke-width='2'/></svg>");
}
.xp-notepad-textarea::-webkit-scrollbar-button:single-button:horizontal:increment {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='17'><path d='M6.5 4.5L10.5 8.5L6.5 12.5' fill='none' stroke='%234d6185' stroke-width='2'/></svg>");
}

/* ==== Диалоги: подключение к сети и окно сообщения ==== */
.xp-window-frame.xp-dialog-window {
    top: 46%;
    width: 390px !important;
    z-index: 65;
}

.xp-window-frame.xp-msgbox {
    top: 50%;
    width: 340px !important;
    z-index: 70;
}

.xp-dialog-body {
    margin: 0 3px;
    padding: 16px 16px 12px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: #ece9d8;
    font-family: 'Tahoma', Arial, sans-serif !important;
    font-size: 12px !important;
    color: #000000 !important;
}

.xp-dialog-hero { display: flex; align-items: flex-start; gap: 14px; }
.xp-dialog-hero .xp-icon-art { flex-shrink: 0; }

.xp-dialog-desc {
    line-height: 1.4;
    color: #000000 !important;
    font-family: 'Tahoma', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.xp-dialog-form {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 8px 12px;
    align-items: center;
}

.xp-dialog-lbl {
    display: inline-block !important;
    color: #000000 !important;
    font-family: 'Tahoma', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    gap: 0 !important;
    cursor: default !important;
}

.xp-dialog-lbl u {
    text-decoration: underline !important;
}

.xp-check {
    grid-column: 2;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    cursor: default !important;
    color: #000000 !important;
    font-family: 'Tahoma', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.xp-check span {
    color: #000000 !important;
    font-family: 'Tahoma', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.xp-dialog-input {
    width: 100%;
    height: 23px !important;
    padding: 0 5px !important;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #7f9db9;
    font-family: 'Tahoma', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #000000 !important;
    outline: none;
}
.xp-dialog-input.user {
    padding-left: 26px !important;
    background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><circle cx='8' cy='5' r='3.2' fill='%23f2b640' stroke='%23946b12'/><path d='M2 15c0-4 3-6 6-6s6 2 6 6z' fill='%233b78d4' stroke='%231a4a9a'/></svg>") 5px center / 16px no-repeat !important;
    cursor: default;
}

.xp-check { grid-column: 2; display: flex; align-items: center; gap: 6px; cursor: default; }
.xp-checkbox {
    -webkit-appearance: none;
    appearance: none;
    position: relative;
    width: 13px;
    height: 13px;
    margin: 0;
    flex-shrink: 0;
    border: 1px solid #1c5180;
    border-radius: 2px;
    background: linear-gradient(135deg, #dcdcd7 0%, #fff 100%);
    outline: none;
}
.xp-checkbox:checked::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 11'><path d='M2 5.5l2.3 2.5L9 2.8' fill='none' stroke='%2321a121' stroke-width='2'/></svg>") center / 11px no-repeat;
}

.xp-msgbox-row { display: flex; align-items: flex-start; gap: 14px; }
.xp-msgbox-row svg { flex-shrink: 0; }
.xp-msgbox-text {
    padding-top: 2px;
    line-height: 1.4;
    color: #000000 !important;
    font-family: 'Tahoma', Arial, sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.xp-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 2px; }
.xp-dialog-actions.center { justify-content: center; }

.xp-dialog-btn {
    min-width: 75px;
    height: 23px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font: 11px Tahoma, Arial, sans-serif;
    color: #000;
    background: linear-gradient(180deg, #fff 0%, #f5f4ef 45%, #ece9d8 85%, #d6d0c5 100%);
    border: 1px solid #003c74;
    border-radius: 3px;
    cursor: default;
    outline: none;
}
.xp-dialog-btn.default,
.xp-dialog-btn:focus { box-shadow: inset 0 0 0 1px #cde0ff, inset 0 0 0 2px #98b8ea; }   /* синее кольцо */
.xp-dialog-btn:hover { box-shadow: inset 0 0 0 1px #f8b330, inset 0 0 0 2px #fdd59a; }  /* оранжевое кольцо */
.xp-dialog-btn:active {
    background: linear-gradient(180deg, #cdcac3 0%, #e3e3db 15%, #e5e5de 85%, #f2f2ee 100%);
    box-shadow: none;
}

/* =========================================
   WINDOWS MEDIA PLAYER 9 (XP AUDIO PLAYER)
   ========================================= */

.xp-wmp-icon-small {
    width: 16px;
    height: 16px;
    background-image: url('assets/xp/wmp.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.xp-window-frame.xp-wmp-window {
    width: 290px !important;
    z-index: 45;
    background: #0831d9;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.65);
    animation: xpWinPop 0.25s ease-out;
}

.xp-wmp-shell {
    margin: 0 3px;
    padding: 8px 10px 10px;
    background: linear-gradient(180deg, #182238 0%, #0d1424 60%, #080c16 100%);
    border: 1px solid #1d2d4e;
    border-top: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-sizing: border-box;
}

/* Экран LCD дисплея */
.xp-wmp-screen {
    background: #02050d;
    border: 1px solid #1f3563;
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.95);
    border-radius: 2px;
    padding: 6px 8px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.xp-wmp-meta-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 6px;
}

.xp-wmp-track-title {
    font-family: 'Tahoma', Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #4ade80;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-shadow: 0 0 6px rgba(74, 222, 128, 0.4);
    flex: 1;
}

.xp-wmp-timer-display {
    font-family: Consolas, monospace;
    font-size: 10px;
    font-weight: 700;
    color: #38bdf8;
    text-shadow: 0 0 5px rgba(56, 189, 248, 0.4);
    flex-shrink: 0;
}

/* Эквалайзер */
.xp-wmp-viz-row {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    height: 16px;
    padding: 1px 0;
}

.xp-wmp-eq-bar {
    flex: 1;
    background: linear-gradient(0deg, #22c55e 0%, #eab308 65%, #ef4444 100%);
    height: 15%;
    border-radius: 1px 1px 0 0;
    transition: height 0.12s ease;
}

.xp-wmp-window.playing .xp-wmp-eq-bar {
    animation: wmpEqJump 0.4s infinite alternate ease-in-out;
}

@keyframes wmpEqJump {
    0% { height: 10%; }
    50% { height: 85%; }
    100% { height: 35%; }
}

.xp-wmp-window.playing .xp-wmp-eq-bar:nth-child(2n) { animation-delay: 0.15s; }
.xp-wmp-window.playing .xp-wmp-eq-bar:nth-child(3n) { animation-delay: 0.28s; }
.xp-wmp-window.playing .xp-wmp-eq-bar:nth-child(4n) { animation-delay: 0.08s; }

/* Полоса перемотки */
.xp-wmp-progress-bar {
    width: 100%;
    height: 6px;
    background: #111a2e;
    border: 1px solid #1f3358;
    border-radius: 1px;
    position: relative;
    cursor: pointer;
    overflow: hidden;
}

.xp-wmp-progress-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #0284c7 0%, #38bdf8 100%);
    box-shadow: 0 0 6px rgba(56, 189, 248, 0.6);
}

/* Нижняя панель управления */
.xp-wmp-controls-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2px 2px 0;
}

.xp-wmp-btn-cluster {
    display: flex;
    align-items: center;
    gap: 4px;
}

.xp-wmp-btn {
    width: 24px;
    height: 22px;
    background: linear-gradient(180deg, #3a4c74 0%, #223254 50%, #15223e 100%);
    border: 1px solid #4d6494;
    border-radius: 2px;
    color: #e2e8f0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: all 0.12s ease;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.xp-wmp-btn:hover {
    background: linear-gradient(180deg, #4f679c 0%, #314674 50%, #1e3158 100%);
    border-color: #6d8ac5;
    color: #ffffff;
}

.xp-wmp-btn:active {
    background: #101a2e;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.6);
}

/* Круглая кнопка Play/Pause в стиле синего драгоценного камня WMP */
.xp-wmp-btn.play-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #5cb4ff 0%, #0066ee 45%, #003dbd 85%, #00257a 100%);
    border: 1px solid #7dc2ff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), inset 0 2px 3px rgba(255, 255, 255, 0.6);
    color: #ffffff;
}

.xp-wmp-btn.play-btn:hover {
    filter: brightness(1.15);
}

.xp-wmp-btn.play-btn:active {
    filter: brightness(0.9);
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.7);
}

/* Громкость */
.xp-wmp-vol-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
}

.xp-wmp-vol-slider {
    width: 50px;
    height: 4px;
    -webkit-appearance: none;
    appearance: none;
    background: #15223c;
    border: 1px solid #29406d;
    outline: none;
    border-radius: 2px;
    cursor: pointer;
}

.xp-wmp-vol-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 8px;
    height: 12px;
    background: #93b5ee;
    border: 1px solid #ffffff;
    border-radius: 1px;
    cursor: pointer;
}

/* =========================================
   ИВЕНТ: ТРОЯНСКИЙ ТЕКСТОВЫЙ ФАЙЛ (ВИРУС)
   ========================================= */

.xp-desk-icon.xp-virus-file {
    position: absolute !important;
    z-index: 50;
    animation: xpWinPop 0.2s ease-out;
}

/* Пульсирующий таймер над файлом */
.xp-virus-countdown-pill {
    position: absolute;
    top: -12px;
    background: #dc2626;
    color: #ffffff;
    font-family: Consolas, monospace;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.5px;
    padding: 1px 6px;
    border-radius: 2px;
    border: 1px solid #fca5a5;
    box-shadow: 0 0 8px rgba(220, 38, 38, 0.7);
    animation: virusTimerPulse 0.5s infinite alternate ease-in-out;
    pointer-events: none;
    white-space: nowrap;
}

@keyframes virusTimerPulse {
    0% { transform: scale(1); filter: brightness(1); }
    100% { transform: scale(1.15); filter: brightness(1.4); }
}

/* Аутентичное контекстное меню проводника Windows XP */
.xp-context-menu {
    position: absolute;
    z-index: 99999;
    min-width: 175px;
    background: #ffffff;
    border: 1px solid #8e8e8e;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.25);
    padding: 2px 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    user-select: none;
}

.xp-context-item {
    height: 24px;
    padding: 0 16px 0 18px;
    display: flex;
    align-items: center;
    font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    font-size: 13px;
    color: #000000;
    cursor: default;
    box-sizing: border-box;
    white-space: nowrap;
    -webkit-font-smoothing: antialiased;
}

.xp-context-item:hover {
    background: #316ac5;
    color: #ffffff;
}

.xp-context-item.bold {
    font-weight: 700;
}

.xp-context-item u {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.xp-menu-arrow {
    font-size: 9px;
    color: #000000;
    margin-left: auto;
    padding-left: 16px;
    line-height: 1;
}

.xp-context-item:hover .xp-menu-arrow {
    color: #ffffff;
}

.xp-context-sep {
    height: 1px;
    background: #e0e0e0;
    margin: 3px 1px;
}

/* =========================================
   ВНЕШНЯЯ ЗАКЛАДКА МОДАЛКИ И СТИЛЬ XP HELP CENTER
   ========================================= */

/* Разрешаем элементам выступать за пределы карточки модального окна */
.batch-modal-card {
    overflow: visible !important;
    position: relative !important;
}

/* Компактный выдвижной корешок закладки на внешней правой грани */
.ms-archive-outside-btn {
    position: absolute;
    left: 100%;
    top: 52px;
    width: 38px;
    height: 38px;
    padding: 0 0 0 7px;
    display: none;
    align-items: center;
    gap: 8px;
    box-sizing: border-box;
    background: linear-gradient(180deg, #0997ff 0%, #0053ee 12%, #0050ee 45%, #0066ff 88%, #003dd7 100%);
    border: 1px solid #ffffff;
    border-left: none;
    border-radius: 0 5px 5px 0;
    box-shadow: 3px 3px 12px rgba(0, 0, 0, 0.6);
    cursor: pointer;
    overflow: hidden;
    white-space: nowrap;
    z-index: 1000;
    transition: width 0.22s cubic-bezier(0.2, 0.85, 0.25, 1), box-shadow 0.2s ease, filter 0.15s ease;
    outline: none;
}

.ms-archive-outside-btn:hover {
    width: 114px;
    filter: brightness(1.15);
    box-shadow: 4px 4px 16px rgba(0, 83, 238, 0.65);
}

.ms-archive-btn-icon {
    width: 22px;
    height: 22px;
    background-image: url('assets/xp/archive_tab.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.45));
}

.ms-archive-btn-text {
    font-family: 'Segoe UI', Tahoma, Arial, sans-serif;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 1px;
    color: #ffffff;
    text-shadow: 1px 1px 2px #0f1089;
    user-select: none;
}

/* Оверлей окна Центра справки и поддержки */
.ms-archive-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn 0.15s ease-out;
}

/* Окно Центра справки Windows XP */
.xp-archive-window {
    width: 670px !important;
    max-width: calc(100vw - 40px);
    max-height: calc(100vh - 50px);
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    background: #0831d9;
    border-radius: 8px 8px 0 0;
    box-shadow:
        inset -1px -1px #00138c, inset 1px 1px #0831d9,
        inset -2px -2px #001ea0, inset 2px 2px #166aee,
        3px 8px 30px rgba(0, 0, 0, 0.75);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.xp-archive-toolbar {
    margin: 0 3px;
    height: 38px;
    background: linear-gradient(180deg, #fefefe 0%, #ece9d8 100%);
    border: 1px solid #999488;
    border-top: none;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 12px;
    box-sizing: border-box;
}

.xp-archive-tb-btn {
    height: 26px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, #ffffff 0%, #ede8d6 100%);
    border: 1px solid #7b7b7b;
    border-radius: 3px;
    cursor: pointer;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #000000;
    box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.8) inset;
}

.xp-archive-tb-btn:hover {
    background: linear-gradient(180deg, #ffffff 0%, #fdf8e2 100%);
    border-color: #215dc6;
}

.xp-archive-tb-btn:active {
    background: #ded9c4;
}

.xp-archive-tb-sep {
    width: 1px;
    height: 22px;
    background: #aca899;
    border-right: 1px solid #ffffff;
}

.xp-archive-tb-lbl {
    font-family: Tahoma, Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #4a4538;
}

.xp-archive-client-bevel {
    margin: 0 3px 3px 3px;
    padding: 6px;
    background: #ece9d8;
    border: 3px solid;
    border-color: #ffffff #7b7b7b #7b7b7b #ffffff;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

.xp-archive-content-canvas {
    background: #ffffff;
    border: 2px solid;
    border-color: #808080 #ffffff #ffffff #808080;
    padding: 16px 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: calc(100vh - 170px);
    overflow-y: auto;
}

.xp-archive-welcome-banner {
    padding-bottom: 10px;
    border-bottom: 1px solid #d8d4c4;
}

.xp-archive-main-heading {
    margin: 0 0 6px 0;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #003399;
}

.xp-archive-sub-heading {
    margin: 0;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 13px;
    line-height: 1.5;
    color: #333333;
}

.xp-archive-threats-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Объемные карточки в стиле задач Windows XP Explorer */
.xp-task-card {
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.12);
}

.xp-task-card-header {
    background: linear-gradient(90deg, #215dc6 0%, #3d80df 65%, #60a2f5 100%);
    padding: 7px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #ffffff;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 13.5px;
    font-weight: 700;
    text-shadow: 1px 1px 1px #0e2a66;
}

.xp-task-card-header svg {
    flex-shrink: 0;
    filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.45));
}

.xp-task-card-body {
    background: #f0f4fc;
    border: 1px solid #7ea7e8;
    border-top: none;
    border-radius: 0 0 4px 4px;
    padding: 10px 14px;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 13px;
    line-height: 1.5;
    color: #1e293b;
}