body {
    font-family: "Helvetica", "Arial", sans-serif;
    height: 100%;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
    background-color: rgb(210, 240, 255); 
}

#container {
    display: flex;
    height: 100vh;
    width: 100vw;
    /* flex: 1;
    overflow: hidden; */
}

#content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

#top-bar {
    height: 30px;
    background-color: #3498db;
    color: white;
    padding: 10px;
    display: flex;
    justify-content: space-between;
}
#top-bar #countdown.final_minute {
    color: rgb(255, 234, 153);
    font-size: 125%;
    font-weight: bold;
}
#top-bar.final_seconds {
    background-color: #db3498;
}
#top-bar.final_seconds #countdown {
    animation: blinker 1.5s linear infinite;
}
@keyframes blinker {
    50% {
        opacity: 0;
    }
}

#left-panel {
    min-width: 245px;
    width: 245px;
    padding: 0;
    font-size: 10pt;
    overflow: auto;
}

#left-panel > div {
    border: 1px solid #3498db;
    border-top-width: 0;
    background-color: #f1f1f1;
    padding: 1px 3px;
}
#left-panel .label {
    font-size: 7pt;
}
#left-panel .plane, #left-panel .charter {
    font-size: 9pt;
}
#left-panel .selected {
    background-color: #3498db22;
    border: 1px solid #3498db44;
    border-radius: 2px;
    padding: 3px;
}
#left-panel h2 {
    font-size: 14pt;
    margin: 2px 0;
}
#left-panel p {
    margin: 4px 0;
}
#left-panel .timer {
    float: right;  
}
#left-panel p.plane {
    position: relative;
}
#left-panel button.upgrade {
    position:absolute;
    right: 2px;
    bottom: 1px;
}
#left-panel button .cost{
    font-size: 6pt;
    color: hsl(52, 100%, 75%);
    padding: 0 0 0 3px;
}

button {
    font-size: 8pt;
    background-color: #3498db;
    color: white;
    border-width:0;
    border-radius: 5px;
    padding: 2px 3px;
}
button:hover {
    background-color: hsl(204, 90%, 45%)
}
button:active {
    background-color: hsl(204, 90%, 30%)
}
button#new_plane {
    margin-bottom: 1px;
}

.timer {
    display: inline-block;
    border: 1px solid #3498db;
    position: relative;
    width: 100px;
    height: 5px;
    background-color: #e8e8e8;
}
.timer .inner {
    left:0;
    width: 100px;
    background-color: #3498db;
    opacity: 0.8;
    position: absolute;
    display: inline-block;
    height: 5px;
}
#left-panel .location.air {
    color: #141;
    font-style: italic;
}
#manifest-container .occupied {
    color: #3498db;
}
#manifest-container .undersize .seats,
#charters-container .oversize .pax {
    color: #db3498;
}
#charters-container .scheduled {
    color: #3498db;
}
#charters-container .charter + .charter {
    border-top: 1px solid #7eb3d7;
    padding-top:2px;
}
#charters-container .charter .festival .name {
    display:block;
    font-weight: bold;
    margin-top:3px;
}
#charters-container .charter .festival .did_you_know {
    font-style: italic;
    font-size:90%;
    color: #333;
}
#charters-container .charter .disaster {
    margin-top:3px;
}
#charters-container .charter .disaster .warning {
    font-style: italic;
    font-size:90%;
    color: #333;
}
#charters-container .charter .disaster .info {
    text-transform: capitalize;
    font-weight: bold;
}
#map-section {
    position: relative;
    flex-grow: 1;
    overflow: hidden;
}

#map {
    height: 100%;
    width: 100%;
    display: block;
}

#messages {
    position: absolute;
    bottom: 5px;
    left: 5px;
    height: 105px;
    width:260px;
    background-color: #f1f1f1;
    border: 1px solid #9981fb;
    border-radius: 10px;
    padding: 3px;
    font-size: 11pt;
    color: black; 
}
#messages > div + div {
    margin-top: 1ex;
}
#messages span.info {
    display: inline-block;
    margin-bottom: 3px;
}
#messages>div.festival span.info {
    color: #08469e;
    font-weight: bold;
}
#messages>div.disaster span.info {
    color: #db3498;
}
#messages .notes {
    display: inline-block;
    font-size: 9pt;
    color: #444;
    padding:0 0.6ex;
    min-width: 142px;
}
#messages .timer {
    position: absolute;
    bottom: 8px;
    left: 8px;
    right: 8px;
    width: auto;
}
#messages button {
    margin-left: 1ex;
}

#tooltip {
    display: none;
    background-color: #3498dbAA;
    color: white;
    border: 1px solid #3498db;
    border-radius: 1px;
    padding: 2px;
    font-size: 7pt;
    min-width: 5ex;
    height: 10px;
    text-align: center;
    position: absolute;
}

#plane-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0);
    pointer-events: none;
}

#plane-container .plane  {
    width: 1.5%;
    position: absolute;
    opacity: 100%;
}

#plane-container #plane_template {
    display:none;
}

.plane > svg > path {
    opacity: .7;
    stroke-width: 3;
}
.plane > svg > path.selected {
    opacity: 1;
    stroke-width: 7;
}
.plane > svg > path.ground.occupied {
    fill: #3498db;
    stroke: hsl(204, 40%, 20%);
}
.plane > svg > path.ground {
    fill: #aa4444bb;
    stroke: #611;
}
.plane > svg > path.air {
    fill: #cccc22bb;
    stroke: #661;
}
.plane > svg > path.air.occupied {
    fill: #228822bb;
    stroke: #141;
}

.rules,
.final_score {
    position: absolute;
    left: 225px;
    right: 1em;
    top: 50px;
    bottom: 1em;
    color: rgb(114, 30, 161);
    border: 5px solid #f964cd;
    border-radius: 3px;
    background-color: rgb(240, 220, 250);
    opacity: 0.85;
    font-size: 18pt;
    padding: 1em;
}
.rules button ,
.final_score button {
    position: absolute;
    bottom: 1ex;
    font-size: 12pt;
    background-color: rgb(250,100,205);
}
.rules button:hover ,
.final_score button:hover {
    background-color: hsl(318, 94%, 50%);
}
.rules button:active ,
.final_score button:active {
    background-color: hsl(318, 94%, 40%);
}
.rules button.previous {
    left: 1ex;
}
.rules button.next {
    right: 1ex;
}
.rules #now {
    opacity: 0;
    font-size: 150%;
}
.final_score button {
    left: auto;
    right: auto;
}
