/* Top level */

* {
    box-sizing: border-box;
}

TABLE {
    border-collapse:    collapse;
}

/* Defaults here are for mobile */
/* Column width is 100% for small/mobile devices so it all stacks vertically */

[class*="col-"] {
    width:      100%;
}

BODY, BUTTON, INPUT, SELECT, TD, TEXTAREA {
    font-size:  15px;
}

.fineprint {
    font-size:  10px;
    color:      #A0A0A0;
}

.headline {
    font-size:  20px;
}

/* If we're on a larger screen, column width is 1/12 of viewport */
/* col-# will be used when over 768px wide, col-s-# between 600 and 768px wide */

@media only screen and (min-width: 600px) {
    .col-1 {width: 8.33%;}
    .col-2 {width: 16.66%;}
    .col-3 {width: 25%;}
    .col-4 {width: 33.33%;}
    .col-5 {width: 41.66%;}
    .col-6 {width: 50%;}
    .col-7 {width: 58.33%;}
    .col-8 {width: 66.66%;}
    .col-9 {width: 75%;}
    .col-10 {width: 83.33%;}
    .col-11 {width: 91.66%;}
    .col-12 {width: 100%;}

    BODY, BUTTON, INPUT, SELECT, TD, TEXTAREA {
        font-size:  15px;
    }

    .fineprint {
        font-size:  10px;
        color:      #A0A0A0;
    }

    .headline {
        font-size:  20px;
    }
}

@media only screen and (min-width: 768px) {
    .col-1 {width: 8.33%;}
    .col-2 {width: 16.66%;}
    .col-3 {width: 25%;}
    .col-4 {width: 33.33%;}
    .col-5 {width: 41.66%;}
    .col-6 {width: 50%;}
    .col-7 {width: 58.33%;}
    .col-8 {width: 66.66%;}
    .col-9 {width: 75%;}
    .col-10 {width: 83.33%;}
    .col-11 {width: 91.66%;}
    .col-12 {width: 100%;}

    BODY, BUTTON, INPUT, SELECT, TD, TEXTAREA {
        font-size:  20px;
    }

    .fineprint {
        font-size:  14px;
        color:      #A0A0A0;
    }

    .headline {
        font-size:  25px;
    }
}

/* Remainder of column grid behavior for all devices */

[class*="col-"] {
    float:      left;
    padding:    15px;
}

.row::after {
    content:    "";
    clear:      both;
    display:    table;
}

/* General page display styles */

html {
    font-family:        "Arial";
    background-color:   #000000;
    color:              #FFFFFF;
}

.page_header {
    color:  #D000F0;
    border-bottom:  1px solid #0000FF;
}

.autosize {
    width:  100%;
    height: auto;
}

.center {
    text-align: center;
}

.mcenter {
    margin: 0 auto;
}

.hidden {
    display: none;
}

.italic {
    font-style: italic;
}

.right {
    text-align: right;
}

BUTTON, SELECT {
    background-color:   #000000;
    border:             1px solid #D0D0D0;
    border-radius:      3px;
    color:              #D0D0FF;
    cursor:             pointer;
    transition:         all 0.2s ease;
}

BUTTON:hover {
    background-color:   #1a1a1a;
    border-color:       #E0E0E0;
    color:              #E0E0FF;
}

BUTTON:active {
    background-color:   #333333;
    border-color:       #FFFFFF;
    color:              #FFFFFF;
    transform:          scale(0.98);
    box-shadow:         inset 0 2px 4px rgba(255,255,255,0.3);
}

BUTTON:focus {
    outline:            2px solid #A0A0FF;
    outline-offset:     2px;
}

/* Loading state for buttons */
BUTTON.loading {
    background-color:   #404040;
    color:              #808080;
    cursor:             wait;
    opacity:            0.7;
}

BUTTON.loading::after {
    content:            " ⟳";
    animation:          spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}


A:link {
    color:      #A0A0FF;
}

A:visited {
    color:      #FF00FF;
}

A:hover {
    color:      #FF0000;
}

A:active {
    color:      #00FFFF;
}

.block1 {
    background-color:   #203040;
    border-radius:      5px;
    padding:            10px;
}

.block1head {
    border-bottom:  2px solid #FFA0FF;
    color:          #FFA0FF;
    font-size:      1.25em;
    font-weight:    bold;
}

.block1subhead {
    border-bottom:  1px solid #80FFFF;
    color:          #80FFFF;
    font-size:      1.1em;
    font-weight:    bold;
}

.card {
    background-color:   #100050;
    border-radius:      5px;
    padding:            10px;
    margin-bottom:      10px;
}

.cardhead {
    border-bottom:  1px solid #80FFFF;
    color:          #80FFFF;
    font-size:      1.1em;
    font-weight:    bold;
}

.fit_content {
    width:              fit-content;
}

.full_width {
    width:              100%;
}

.no_bottom {
    margin-bottom:     0px;
    padding-bottom:    0px;
}

.no_top {
    margin-top:     0px;
    padding-top:    0px;
}

INPUT {
    background-color:   #203020;
    color:              #00FFFF;
    margin-top:         3px;
    margin-bottom:      3px;
}

TEXTAREA {
    background-color:   #203020;
    color:              #00FFFF;
    margin-top:         3px;
    margin-bottom:      3px;
}

.headline {
    color:          #D050A0;
    margin-top:     0px;
    padding-top:    0px;
    text-align:     center;
}


/* Display of responses */

.response_container {
    position:   fixed;
    right:      1em;
    top:        1em;
    width:      fit-content;
    z-index:    100;
}

.response {
    border-radius:  5px;
    margin:         2px;
    opacity:        0;
    padding:        3px;
    transition:     opacity 0.5s ease;
    z-index:        1;
}

.error {
    background-color:   #600000;
    border:             2px solid red;
    color:              #FFFFFF;
}

.ok {
    background-color:   #000000;
    border:             2px solid green;
    color:              #00F000;
}

.spank {
    background-color:   #000000;
    border:             2px solid #FFFF00;
    color:              #FFFF00;
}

.clear_response {
    background-color:   #000000;
    border:             1px solid #D0D0D0;
    border-radius:      3px;
    color:              #D0D0D0;
    margin:             2px;
    margin-left:        5px;
    padding:            2px;
}


/* Typical alternating-row-color table */

TABLE.alternating TD {
    padding:    5px;
}

TABLE.alternating.header THEAD TD {
    background-color:       #404040;
    border-bottom:          solid 1px #F0880A;
    color:                  #FFFF00;
    font-weight:            bold;
}

TABLE.alternating TBODY TR:nth-child(2n+1) TD {
    background-color:       #003030;
}

TABLE.alternating TBODY TR:nth-child(2n+2) TD {
    background-color:       #303000;
}

/* Table with the headers along the left */

TABLE.leftheader TD {
    padding:    5px;
}

TABLE.leftheader TR:not(.splitrow) TD:first-child {
    background-color:       #404040;
    border-bottom:          solid 1px #F0880A;
    color:                  #FFFF00;
    font-weight:            bold;
}

TABLE.leftheader TD {
    border-bottom:          solid 1px #F0880A;
}

TR.splitrow TD {
    border-bottom:  1px solid #F0880A;
    border-top:     1px solid #F0880A;
    padding-top:    10px;
}

/* Used to make an in-progress update stand out */

.updating {
    border:         2px solid #A0A0FF;
    border-radius:  5px;
    margin:         1px;
    padding:        10px;
}

/* Tooltip */


/* Style for the text with a tooltip */
.tooltip {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

/* Style for the tooltip text box */
.tooltip .tooltip-text {
    visibility: hidden;
    width: 200px;
    background-color: #333;
    color: #fff;
    text-align: center;
    padding: 8px;
    border-radius: 5px;

    /* Positioning */
    position: absolute;
    z-index: 1;
    bottom: 125%; /* Position above the text */
    left: 50%;
    transform: translateX(-50%);
    opacity: 0; /* Initially invisible */
    transition: opacity 0.3s; /* Fade-in effect */
}

/* Arrow for the tooltip */
.tooltip .tooltip-text::after {
    content: '';
    position: absolute;
    top: 100%; /* At the bottom of the tooltip */
    left: 50%;
    transform: translateX(-50%);
    border-width: 5px;
    border-style: solid;
    border-color: #333 transparent transparent transparent;
}

/* Show the tooltip on hover */
.tooltip:hover .tooltip-text {
    visibility: visible;
    opacity: 1;
}


.icon-button {
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    width: 20px;
    height: 20px;
}

.icon-button svg {
    display: block;       /* remove inline whitespace */
    width: 100%;
    height: 100%;
}

.interest-deets {
    display: none;
    z-index: 9999;
    background-color: #333;
    color: #fff;
    padding: 8px;
    border-radius: 5px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.6);
    cursor: pointer;
    width: 300px;
    position: absolute;
    left: 0px;
    top: 0px;
}

.max_players {
    color: #FF80A0;
    font-weight: bold;
}

.disabled {
    color: #806060;
    text-decoration: line-through;
}
