mainhud/keyboardwarriorshud.razor.scss
<style>
/* THE ROOT ELEMENT: Treat it strictly as a screen-filling canvas layer */
.keyboard-warriors
{
    width: 100%;
    height: 100%;
    background: #0b0e14;
    color: #e0e0e0;
    font-family: monospace;
    display: flex;
    justify-content: center;
    align-items: center;

    background-color: #060b11;
}

.selection-menu-wrapper
{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;

    background: linear-gradient(90deg, #060b11 0%, #0d1b2a 50%, #060b11 100%);
    animation: ambient-glow 8s ease infinite alternate;
}

.selection-header
{
    font-family: 'Poppins', sans-serif, monospace;
    font-size: 28px;
    font-weight: bold;
    color: #ffffff;
    // 🚀 Swapped to 8-digit hex shadow (#00000099 is 60% opacity black)
    text-shadow: 2px 2px 4px #00000099;
    margin-bottom: 24px;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.selection-grid
{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;       // Allows row items to break cleanly down into columns
    justify-content: center;
    align-items: center;
    gap: 16px;
    width: 100%;
    max-width: 500px;      // Limits box expansion so it stays centered
}

// 🏆 Expanded Leaderboard Banner
.leaderboard-panel {
    width: 500px;        
    height: auto;        
    margin-top: 40px;    
    background: #0a121e; // 🚀 Swapped to solid hex to prevent alpha errors
    border: 1px solid #2a3f57;
    border-radius: 4px;
    padding: 16px 20px;  
    box-shadow: 0 4px 20px #000000; // 🚀 Clean hex shadow
    font-family: monospace;

    .leaderboard-header {
        display: flex;
        align-items: center;
        gap: 10px;
        border-bottom: 1px dashed #2a3f57;
        padding-bottom: 10px;
        margin-bottom: 16px;
        
        .leaderboard-title {
            font-size: 14px;
            font-weight: bold;
            color: #8fa3b3;
            letter-spacing: 1px;
            margin: 0;
            text-transform: uppercase;
        }
    }
}

.leaderboard-rows {
    display: flex;
    flex-direction: row; 
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
}

.leaderboard-row {
    display: flex;
    flex-direction: column; 
    align-items: flex-start;
    background: #111924; // 🚀 Swapped from transparent rgba to a nice dark tint hex
    padding: 10px 12px; 
    border-radius: 4px;
    border-left: 3px solid #2a3f57;
    min-width: 100px; 
    flex: 1;

    .stat-name {
        color: #627785;
        font-size: 9px;
        font-weight: bold;
        margin-bottom: 6px;
        text-transform: uppercase;
    }
    
    .stat-value {
        font-size: 13px; 
        font-weight: bold;
        white-space: nowrap; 
    }
}

// 👑 GLOW ACCENTS: Swapped out rgba entirely for ultra-safe hex glows!
.gold-glow { 
    color: #ffd700; 
    text-shadow: 0 0 8px #ffd700; 
}
.cyan-glow { 
    color: #00d2ff; 
    text-shadow: 0 0 8px #00d2ff; 
}
.green-glow { 
    color: #32cd32; 
    text-shadow: 0 0 8px #32cd32; 
}
.red-glow { 
    color: #ff4444; 
    text-shadow: 0 0 8px #ff4444; 
}

.selection-button
{
    background-color: #222;
    border: 2px solid #555;
    color: white;
    padding: 16px;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    border-radius: 6px;
    cursor: pointer;

    // 🚀 FORCE UNIFORM COLUMNS: 45% means exactly 2 buttons fit on each row perfectly!
    width: 45%; 
    
    transition: background-color 0.1s ease, border-color 0.1s ease, transform 0.05s ease;

    &:hover {
        background-color: #2a2a2a;
        border-color: #ff9d00;
        transform: scale(1.03);
    }
}

/* THE COMPLETE RE-ANCHOR LAYER: Enforces explicit top-to-bottom stack tracking */
.combat-layout-wrapper
{
    display: flex;
    flex-direction: column !important;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: auto;
    gap: 25px; /* The master vertical spacing rule between all rows */

    background: linear-gradient(90deg, #060b11 0%, #0d1b2a 50%, #060b11 100%);

    padding: 30px; 
    border-radius: 8px;
}

/* ROW 1: STATS CONTAINER */
.stats-container
{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: auto;
}

/* ROW 2: THREE COLUMN MIDDLE SPLIT */
.middle-layout-row
{
    display: flex;
    flex-direction: row;
    width: 100%;
    height: 420px; /* Gives the middle log box row fixed vertical presence */
    gap: 15px;
}

/* ROW 3: ACTIONS GRID */
.actions-container
{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    height: auto;
}

/* HEADER TRACK (Tucked into column cleanly) */
.game-header
{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between; // Creates a clean structural split between left and right zones
    width: 100%;
    max-height: 120px;
    gap: 20px;
    margin-top: 10px;
    margin-bottom: 5px; 
    padding: 0px;
}

.prestige-panel
{
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    flex-shrink: 0; 
    min-width: 200px; // Guarantees consistent spatial presence on the left lane
}

// 🚀 Updated and Fixed Stylesheet Blocks
.progression-tracker {
    display: flex;
    flex-direction: column;
    font-family: monospace;
    font-size: 11px;
    color: #b0c4de !important; // Forces the primary label text to be silver-blue instead of black
}

.wallet-pts {
    color: #00d2ff !important;
    font-weight: bold;
    text-shadow: 0 0 6px #00d2ff; // 🚀 Swapped to safe hex glow
}

// Status Notifications
.ascend-alert {
    color: #32cd32 !important;
    font-weight: bold;
    text-shadow: 0 0 6px #32cd32; // 🚀 Swapped to safe hex glow
    animation: pulse 1.5s infinite;
}

.requirement-alert {
    color: #ff4444 !important;
    font-weight: bold;
    text-shadow: 0 0 6px #ff4444; // 🚀 Swapped to safe hex glow
    
    .req-weight {
        font-weight: bold;
        color: #ff6666;
    }
}

.prestige-btn
{
    background: #101c29; // 🚀 Swapped from transparent rgba to solid dark hex tint
    border: 1px solid #00d2ff;
    color: #00d2ff;
    padding: 8px 16px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: bold;
    font-size: 12px;
    cursor: pointer;
    border-radius: 4px;
    transition: all 0.3s ease;
    text-shadow: 0 0 8px #00d2ff; // 🚀 Swapped to safe hex glow
    box-shadow: 0 0 8px #00d2ff; // 🚀 Swapped to safe hex glow

    &:hover
    {  
        background: #00d2ff;
        color: #000000;
        box-shadow: 0 0 15px #00d2ff;
        text-shadow: none;
    }

    &.ready-to-ascend
    {
        border-color: #ffd700;
        color: #ffd700;
        text-shadow: 0 0 10px #ffd700; // 🚀 Swapped to safe hex glow
        box-shadow: 0 0 12px #ffd700; // 🚀 Consolidated to a clean hex box-shadow
        animation: critical-glow 2s infinite alternate;

        &:hover
        {
            background: #ffd700;
            color: #000000;
            box-shadow: 0 0 25px #ffd700;
        }
    }
}

@keyframes critical-glow 
{
    from { box-shadow: 0 0 8px #ffd700; } // 🚀 Swapped to hex
    to { box-shadow: 0 0 20px #ffd700; }   // 🚀 Swapped to hex
}

@keyframes pulse
{
    0% { opacity: 0.6; }
    50% { opacity: 1; }
    100% { opacity: 0.6; }
}

/* THE ASCII STYLING */
/* THE ASCII STYLING */
.header-ascii
{
    font-family: monospace;
    font-size: 13px;              
    letter-spacing: 2px;          
    line-height: 1.05;            
    font-weight: 900;             
    color: #00ffcc; 
    
    text-shadow: 
        0 0 4px #00ffcc,   
        0 0 12px #9b59b6,  
        0 0 20px #9b59b6;
    
    white-space: pre;        
    margin: 0;
    padding: 0;

    &.player-weapon-art, &.ai-weapon-art 
    {
        font-size: 7px;
        letter-spacing: 0.5px;
        line-height: 0.95;
        opacity: 0.85;
    }

    &.player-weapon-art
    {
        // 🚀 Keeps the spring pushing from the left side of the header box
        margin-left: auto; 
        margin-right: -5px; 
    }

    &.ai-weapon-art
    {
        margin-left: -5px;
        
        // 🎯 THE CENTER BALANCE: Pushes the title text to the absolute center of your screen
        margin-right: 645px; 
    }
}

/* PANEL DETAILS FROM IMAGE SPECIFICATIONS */
.fighter-card
{
    width: 45%;
    background: #101621; // 🚀 Swapped from rgba
    border-radius: 6px;
    padding: 15px;
    display: flex;
    flex-direction: row;
    gap: 15px;
    height: auto;
}
.fighter-card.player { border: 1px solid #1a3a5f; }
.fighter-card.ai { border: 1px solid #5f1a1a; }

.vs-badge
{   
    display: flex;
    justify-content: center;
    align-items: center;
    align-self: center;
    margin: 0 25px;
    font-size: 26px;
    font-weight: 900;
    font-style: italic;
    &, label, text, .label 
    {
        color: #ff3333 !important;
        text-shadow: 
            0 0 6px #ff3333, 
            0 0 15px #ff4d4d,
            0 0 25px #ff0000 !important;
    } 
}

.avatar-placeholder { 
    width: 60px; 
    height: 60px; 
    font-size: 40px; 
    background: #0f1626; // 🚀 Swapped from rgba
    display: flex; 
    justify-content: center; 
    align-items: center; 
    border-radius: 4px; 
    flex-shrink: 0; 
    object-fit: cover; 
}

.player-side {
    border: 1px solid #00ffcc;
    color: #00ffcc !important;
    text-shadow: 0 0 8px #00ffcc;
    box-shadow: 0 0 14px #00ffcc; // 🚀 Swapped from rgba glow
}
.player-name {
    font-family: monospace;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 1px;
    color: #00ffcc !important;
    text-shadow: 0 0 4px #00ffcc, 0 0 10px #00ffcc; // 🚀 Swapped from rgba glow
}
.ai-side {
    border: 1px solid #ff3333;
    color: #ff3333 !important;
    text-shadow: 0 0 8px #ff3333;
    box-shadow: 0 0 14px #ff3333; // 🚀 Swapped from rgba glow
}
.ai-name {
    font-family: monospace;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 1px;
    color: #ff3333 !important;
    text-shadow: 0 0 4px #ff3333, 0 0 10px #ff3333; // 🚀 Swapped from rgba glow
}
.fighter-info { display: flex; flex-direction: column; flex-grow: 1; gap: 4px; }
.fighter-card .name { font-size: 20px; font-weight: bold; }
.fighter-card.player .name { color: #3498db; }
.fighter-card.ai .name { color: #e74c3c; }

.stat-bar-row { display: flex; flex-direction: row; align-items: center; width: 100%; font-size: 11px; margin-top: 2px; }
.stat-lbl { width: 50px; color: #888; }
.stat-val { width: 70px; text-align: right; color: #bbb; margin-left: 5px; }
.bar { flex-grow: 1; height: 8px; background: #222; border-radius: 2px; }
.hp-bar { background: #c0392b; height: 8px; border-radius: 1px; }
.armor-bar { background: #2980b9; height: 8px; border-radius: 1px; }
.mp-bar { background: #8e44ad; height: 8px; border-radius: 1px; }
.loadout-row { font-size: 11px; margin-top: 5px; color: #aaa; }

.vs-badge { font-size: 36px; font-weight: bold; color: #555; }

.side-spell-panel
{
    width: 22%;
    background: #0b0e14; // 🚀 Swapped from rgba
    border-radius: 6px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.side-spell-panel.player-spells { border: 1px solid #13243a; }
.side-spell-panel.ai-spells { border: 1px solid #3a1313; }

.panel-title { font-size: 14px; font-weight: bold; border-bottom: 1px solid #333; padding-bottom: 5px; margin-bottom: 5px; text-align: center; }
.spell-item { font-size: 13px; display: flex; flex-direction: row; justify-content: space-between; color: #e0e0e0; margin-bottom: 4px; align-items: center; }
.spell-type { color: #8fa3b3; font-size: 11px; font-style: italic; }
.spell-emoji {
    margin-right: 6px;
    font-size: 16px;
    flex-shrink: 0;
}
.offensive-glow { text-shadow: 0 0 5px #ff5500, 0 0 10px #ff5500; }
.defensive-glow { text-shadow: 0 0 5px #00d2ff, 0 0 10px #00d2ff; }
.healing-glow { text-shadow: 0 0 5px #2ecc71, 0 0 10px #2ecc71; }
.ultimate-glow { text-shadow: 0 0 5px #f1c40f, 0 0 10px #f1c40f; }

.log-container
{
    width: 56%;
    height: 420px;
    min-height: 350px;
    background-color: #0a0a0a; // 🚀 Swapped from rgba
    border: 2px solid #555;
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    padding: 10px;
}

.log-scroll-area
{
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    width: 100%;
    overflow-y: scroll;
}

.log-header { text-align: center; font-size: 12px; color: #666; margin-bottom: 8px; }
.log-entry { font-family: monospace; font-size: 14px; flex-shrink: 0; color: #ffffff; white-space: pre-wrap;}
.log-entry.system { color: #f1c40f; }
.log-entry.blue { color: #3498db; }
.log-entry.red { color: #e74c3c; }

.button-row
{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
    gap: 10px;
}

.combat-btn
{
    flex-grow: 1;
    width: 23%;
    height: 54px;
    background: #141a26; // 🚀 Swapped from rgba
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 15px;
    pointer-events: all;
}
.combat-btn:hover { background: #1e2638; transform: scale(1.02); transition: all 0.1s ease; } // 🚀 Swapped hover background from rgba
.btn-title { font-size: 12px; font-weight: bold; margin-bottom: 2px; }
.btn-desc { font-size: 10px; color: #777; }

// 🚀 CLEANED UP GLOW BORDERS (Removed rgba layers entirely)
.border-red { border: 1px solid #ff3333; box-shadow: 0 0 8px #ff3333; background: transparent !important; }
.border-blue { border: 1px solid #00ffcc; box-shadow: 0 0 8px #00ffcc; background: transparent !important; }
.border-green { border: 1px solid #2ecc71; box-shadow: 0 0 8px #2ecc71; background: transparent !important; }
.border-yellow { border: 1px solid #f1c40f; box-shadow: 0 0 8px #f1c40f; background: transparent !important; }
.border-purple { border: 1px solid #9b59b6; box-shadow: 0 0 8px #9b59b6; background: transparent !important; }
.border-orange { border: 1px solid #e67e22; box-shadow: 0 0 8px #e67e22; background: transparent !important; }

.text-red { color: #ff3333 !important; text-shadow: 0 0 6px #ff3333; }
.text-blue { color: #00ffcc !important; text-shadow: 0 0 6px #00ffcc;  }
.text-green { color: #2ecc71 !important; text-shadow: 0 0 6px #2ecc71; }
.text-yellow { color: #f1c40f !important; text-shadow: 0 0 6px #f1c40f; }
.text-purple { color: #9b59b6 !important; text-shadow: 0 0 6px #9b59b6; }
.text-orange { color: #e67e22 !important; text-shadow: 0 0 6px #e67e22; }

.border-red:hover { background: transparent !important; border-color: #ff4d4d !important; box-shadow: 0 0 16px #ff3333; }
.border-blue:hover { background: transparent !important; border-color: #00ffcc !important; box-shadow: 0 0 16px #00ffcc; }
.border-green:hover { background: transparent !important; border-color: #2ecc71 !important; box-shadow: 0 0 16px #2ecc71; }
.border-yellow:hover { background: transparent !important; border-color: #f1c40f !important; box-shadow: 0 0 16px #f1c40f; }
.border-purple:hover { background: transparent !important; border-color: #9b59b6 !important; box-shadow: 0 0 16px #9b59b6; }
.border-orange:hover { background: transparent !important; border-color: #e67e22 !important; box-shadow: 0 0 16px #e67e22; }

.border-red:hover .text-red { color: #ff9999 !important; text-shadow: 0 0 8px #ff3333; }
.border-blue:hover .text-blue { color: #f0fffc !important; text-shadow: 0 0 8px #00ffcc; }
.border-green:hover .text-green { color: #a3ebc4 !important; text-shadow: 0 0 8px #2ecc71; }
.border-yellow:hover .text-yellow { color: #fffdf0 !important; text-shadow: 0 0 8px #f1c40f; }
.border-purple:hover .text-purple { color: #faf5fc !important; text-shadow: 0 0 8px #9b59b6; }
.border-orange:hover .text-orange { color: #ffffff !important; text-shadow: 0 0 8px #e67e22; }

.highlight-blue { color: #5dade2; font-weight: bold; }
.highlight-red { color: #f1948a; font-weight: bold; }

.footer-hint { font-size: 11px; color: #444; margin-top: 5px; }

/* SETUP SETUP SCREENS SCREEN PANELS */
.setup-screen
{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    border: 2px solid #2471a3;
    border-radius: 8px;
    padding: 40px;
    gap: 30px;

    // 🌌 Simple center-fading background (uses raw hex stops smoothly)
    background: radial-gradient(#0d1b2a 0%, #060b11 100%);
    
    // ⚡ Strict percentage stops mapped directly to the alpha channels
    background-image: 
        linear-gradient(rgba(0, 210, 255, 0.02) 0%, transparent 100%),
        linear-gradient(90deg, rgba(0, 210, 255, 0.02) 0%, transparent 100%);
        
    background-size: 40px 40px;
    background-position: center;
}

.setup-title { font-size: 36px; font-weight: bold; color: #ffffff; letter-spacing: 1px; }
.setup-subtitle { font-size: 18px; color: #888; }
.setup-grid { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 20px; width: 100%; }
.setup-btn { width: 240px; height: 70px; background: #1e2638; border: 1px solid #34495e; color: white; font-size: 22px; font-weight: bold; border-radius: 6px; display: flex; justify-content: center; align-items: center; pointer-events: all; }
.setup-btn:hover { background: #3498db; border-color: #5dade2; }
.setup-btn.enchant:hover { background: #e74c3c; border-color: #f1948a; }

.rematch { width: 250px; height: 70px; background: #2ecc71; font-size: 26px; font-weight: bold; color: white; border-radius: 6px; display: flex; justify-content: center; align-items: center; pointer-events: all; }
</style>