#v99-mode-overlay {
        position: fixed;
        inset: 0;
        z-index: 10040;
        display: none;
        place-items: center;
        padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
        background: radial-gradient(circle at 50% 28%, rgba(57,46,23,.58), rgba(0,0,0,.92) 68%);
        backdrop-filter: blur(10px);
    }
    #v99-mode-overlay.show { display: grid; }
    .v99-mode-panel {
        width: min(760px, 96vw);
        border: 1px solid rgba(232,199,110,.72);
        border-radius: 18px;
        padding: clamp(20px, 4vw, 38px);
        color: #fff8df;
        background: linear-gradient(145deg, rgba(28,25,22,.98), rgba(8,9,13,.99));
        box-shadow: 0 28px 80px rgba(0,0,0,.82), inset 0 0 36px rgba(212,175,55,.08);
    }
    .v99-mode-kicker { color: #d7bd71; font: 700 11px/1.2 ui-sans-serif, sans-serif; letter-spacing: .24em; }
    .v99-mode-panel h2 { margin: 8px 0 7px; font-size: clamp(25px, 4.2vw, 40px); letter-spacing: .08em; }
    .v99-mode-panel > p { margin: 0 0 22px; color: #c9c4b5; line-height: 1.75; }
    .v99-mode-options { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
    .v99-mode-card {
        min-height: 164px;
        padding: 22px;
        border: 1px solid rgba(255,255,255,.17);
        border-radius: 14px;
        color: #f8f3e5;
        text-align: left;
        background: linear-gradient(150deg, rgba(255,255,255,.07), rgba(255,255,255,.015));
        cursor: pointer;
        transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
    }
    .v99-mode-card:hover, .v99-mode-card:focus-visible { transform: translateY(-3px); border-color: #e0bd59; box-shadow: 0 14px 35px rgba(0,0,0,.45), 0 0 22px rgba(212,175,55,.15); outline: none; }
    .v99-mode-card strong { display: block; margin: 7px 0 9px; font-size: clamp(19px, 3vw, 26px); color: #ffe6a1; }
    .v99-mode-card small { display: block; color: #bbb6aa; line-height: 1.65; }
    .v99-mode-number { color: #d7bd71; font-weight: 800; letter-spacing: .18em; }
    #v99-mode-cancel { display: block; margin: 20px auto 0; border: 0; color: #c8c3b5; background: transparent; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }

    #v99-selection-progress {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        margin: 8px auto 13px;
        color: #aaa394;
        font: 800 11px/1.2 ui-sans-serif, sans-serif;
        letter-spacing: .08em;
    }
    #v99-selection-progress[hidden] { display: none !important; }
    .v99-selection-step { padding: 7px 12px; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; background: rgba(0,0,0,.28); }
    .v99-selection-step.active { color: #16120a; border-color: #f0cf6c; background: linear-gradient(135deg,#f7df91,#cda13d); box-shadow: 0 0 15px rgba(225,184,72,.28); }
    .v99-selection-step.done { color: #f5da88; border-color: rgba(232,198,102,.55); }
    #character-grid .character-card.v99-main-locked { box-shadow: inset 0 0 0 2px rgba(240,201,89,.75); }
    #character-grid .character-card.v99-main-locked::after { content: "MAIN"; position: absolute; right: 8px; top: 8px; z-index: 8; padding: 4px 7px; border-radius: 999px; color: #171108; background: #e7c45b; font: 900 10px/1 ui-sans-serif,sans-serif; letter-spacing: .1em; }

    .v99-sub-character {
        position: fixed !important;
        z-index: 96 !important;
        min-width: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 2px solid var(--char-gem, #d4af37) !important;
        border-radius: 12px !important;
        overflow: hidden !important;
        opacity: 1 !important;
        pointer-events: none !important;
        cursor: default !important;
        background-color: #0a0b0e !important;
        background-repeat: no-repeat !important;
        background-position: center !important;
        background-size: cover !important;
        box-shadow: 0 12px 28px rgba(0,0,0,.68), 0 0 17px var(--char-glow, rgba(212,175,55,.38)) !important;
        transform: none !important;
        filter: none !important;
        contain: paint;
    }
    .v99-sub-character[hidden] { display: none !important; }
    body:not(.v45-battle-active) .v99-sub-character { opacity: 0 !important; pointer-events: none !important; }
    .v99-sub-character::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 54%, rgba(0,0,0,.88)); pointer-events: none; }
    .v99-sub-character .battle-character-mark { display: none !important; }
    .v99-sub-character .battle-character-name { position: absolute !important; z-index: 2 !important; left: 7px !important; right: 7px !important; bottom: 7px !important; display: block !important; overflow: hidden; color: #fff8df !important; font: 800 10px/1.25 ui-sans-serif,sans-serif !important; white-space: nowrap; text-overflow: ellipsis; text-shadow: 0 2px 4px #000; }
    .v99-sub-label { position: absolute; z-index: 3; left: 6px; top: 6px; padding: 4px 6px; border-radius: 999px; color: #191308; background: var(--char-gem,#d4af37); font: 900 9px/1 ui-sans-serif,sans-serif; letter-spacing: .12em; box-shadow: 0 2px 7px rgba(0,0,0,.55); }
    .v99-sub-character.is-awakened-portrait { border-color: #f8e59a !important; box-shadow: 0 12px 30px rgba(0,0,0,.7), 0 0 24px var(--char-glow,rgba(255,224,110,.65)) !important; }
    .v99-sub-character.battle-character-used::after { content: "USED"; position: absolute !important; z-index: 4; inset: auto 5px auto auto !important; left: auto !important; right: 5px !important; top: 5px !important; bottom: auto !important; display: block !important; width: auto !important; height: auto !important; padding: 4px 5px; border-radius: 5px; color: #d0cbc0; background: rgba(0,0,0,.78); font: 800 8px/1 ui-sans-serif,sans-serif; line-height: 1 !important; align-items: initial !important; justify-content: initial !important; }
    #opponent-battle-character.battle-character-used[data-v66-ai-ability="active"]::after { content: "発動済" !important; inset: 0 !important; right: 0 !important; bottom: 0 !important; min-width: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #aaa !important; background: rgba(0,0,0,.72) !important; box-shadow: none !important; font-size: 9px !important; }

    #v99-ability-slot-badge { display: inline-flex; align-items: center; justify-content: center; margin: 0 0 8px; padding: 5px 9px; border: 1px solid var(--ability-gem,#d4af37); border-radius: 999px; color: var(--ability-gem,#f0d47e); background: rgba(0,0,0,.34); font: 900 10px/1 ui-sans-serif,sans-serif; letter-spacing: .13em; }

    @media (max-width: 620px) {
        .v99-mode-options { grid-template-columns: 1fr; }
        .v99-mode-card { min-height: 125px; padding: 17px; }
        .v99-mode-panel { max-height: 92vh; overflow: auto; }
        #v99-selection-progress { gap: 5px; }
        .v99-selection-step { padding: 6px 8px; font-size: 9px; }
    }
    @media (prefers-reduced-motion: reduce) {
        .v99-mode-card { transition: none; }
    }
