/* (C) THINKING SYSTEMS LLC */

@charset "UTF-8";

@font-face {
    font-family: 'Basic VGA 8x16';
    src: url('./fonts/nec.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Extended JP 8x16';
    src: url('./fonts/milkjf16.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

/* GLOBAL VARIABLES */
:root {
    --sys-cursor-pointer: url('./res/pointer.png');
    --sys-cursor-loading: url('./res/loading.gif');
    --sys-win-cursor: var(--sys-cursor-pointer);

    /* DEFAULT COLOR PALETTE */
    --sys-color-black: color(from rgb(0, 0, 0) srgb r g b / 1);
    --sys-color-lgray: color(from rgb(198, 192, 192) srgb r g b / 1);
    --sys-color-dgray: color(from rgb(132, 128, 128) srgb r g b / 1);
    --sys-color-white: color(from rgb(255, 255, 255) srgb r g b / 1);
    --sys-color-cream: color(from rgb(255, 251, 240) srgb r g b / 1);
    --sys-color-lred: color(from rgb(200, 100, 100) srgb r g b / 1);
    --sys-color-dred: color(from rgb(120, 34, 34) srgb r g b / 1);
    --sys-color-lgreen: color(from rgb(164, 240, 164) srgb r g b / 1);
    --sys-color-dgreen: color(from rgb(34, 150, 50) srgb r g b / 1);
    --sys-color-lblue: color(from rgb(164, 200, 240) srgb r g b / 1);
    --sys-color-dblue: color(from rgb(34, 50, 150) srgb r g b / 1);
    --sys-color-pink: color(from rgb(240, 150, 180) srgb r g b / 1);
    --sys-color-teal: color(from rgb(80, 200, 190) srgb r g b / 1);
    --sys-color-yellow: color(from rgb(240, 229, 50) srgb r g b / 1);
    --sys-color-orange: color(from rgb(240, 122, 50) srgb r g b / 1);

    /* SYSTEM COMPONENTS */
    --sys-win-text: var(--sys-color-black);
    --sys-win-text-inverted: var(--sys-color-white);
    --sys-win-bg: var(--sys-color-cream);
    --sys-win-titlebar: var(--sys-color-lblue);
    --sys-win-lshadow: var(--sys-color-lgray);
    --sys-win-dshadow: var(--sys-color-dgray);
    --sys-win-selection: var(--sys-color-dblue);
}

/* INITIALIZATION */
* {
    box-sizing: border-box;
    cursor: var(--sys-win-cursor), default;
    image-rendering: pixelated;
}

html, body {
    background-color: var(--sys-color-lgray);
    color: var(--sys-win-text);
    font-family: 'Basic VGA 8x16', monospace;
    font-size: 16px;
    height: 100%;
    line-height: 16px;
    margin: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0;
    width: 100%;
}

::selection {
    background-color: var(--sys-win-selection);
    color: var(--sys-win-text-inverted);
}

a, a:active, a:visited, a:hover {   
    color: var(--sys-win-selection);
    cursor: var(--sys-win-cursor);
    text-decoration: underline;
}

a:hover {
    background-color: var(--sys-win-selection);
    color: var(--sys-win-text-inverted);
    cursor: var(--sys-term-cursor);
    text-decoration: none;
}

button {
    cursor: var(--sys-win-cursor);
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

nav, main, section {
    font-size: 1.5em;
    line-height: 1em;
    margin: 0 auto;
    padding: 1em;
    width: 100%;
}

img {
    font-size: 1em;
    image-rendering: pixelated;
    line-height: 1em;
}

.cursor-blink {
    animation: blinker 1.5s step-start infinite;
}
  
@keyframes blinker {
    50% {
        opacity: 0;
    }
}

.sys-disabled {
    opacity: 0.5;
    pointer-events: none;
    text-decoration: none;
}

/* COMMAND BAR */
.win-cmdbar {
    background-color: var(--sys-win-bg);
    border: 2px solid var(--sys-win-text);
    box-shadow: 8px 8px 0 var(--sys-win-dshadow);
    max-width: 100ch;
    padding: 0 !important;
}

.win-cmdbar ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    list-style: none;
    margin: 0;
    padding: 0 1em;
}

.win-cmdbar ul li {
    list-style: none;
    margin: 0;
    padding: 0;
}

.win-cmdbar ul li a, .win-cmdbar ul li a:link, .win-cmdbar ul li a:visited, .win-cmdbar ul li button {
    background-color: var(--sys-win-bg);
    border: 0;
    color: var(--sys-win-text);
    display: block;
    max-width: 14ch;
    min-width: 14ch;
    padding: 0.5em 0.75em;
    text-align: center;
    text-decoration: none;
    text-shadow: 2px 2px 0 var(--sys-win-lshadow);
    text-transform: uppercase;
}

.win-cmdbar ul li a:hover, .win-cmdbar ul li button:hover {
    background-color: var(--sys-win-selection);
    border: 0;
    color: var(--sys-win-text-inverted);
    text-shadow: 2px 2px 0 var(--sys-win-text);
}

.win-cmdbar ul li a[class=selected], .win-cmdbar ul li button[class=selected] {
    background-color: var(--sys-win-selection) !important;
    color: var(--sys-win-text-inverted) !important;
    text-shadow: 2px 2px 0 var(--sys-win-text) !important; 
}

#btn-cmdbar-explorer::before {
    content: '\2261';
    margin-right: 0.5em;
}

#btn-cmdbar-multivac::before {
    content: '\263B';
    margin-right: 0.5em;
}

#btn-cmdbar-comm::before {
    content: '\21A8';
    margin-right: 0.5em;
}

#btn-cmdbar-corpnet::before {
    content: '\03A9';
    margin-right: 0.5em;
}

/* DOCUMENT EXPLORER */
#win-explorer {
    background-color: var(--sys-win-bg);
    border: 1px solid var(--sys-win-text);
    box-shadow: 8px 8px 0 var(--sys-win-dshadow);
    display: none;
    margin: 3em auto;
    max-width: 100ch;
    padding: 0;
}

.win-directory {
    align-items: baseline;
    display: flex;
    flex-flow: row wrap;
    gap: 0em;
    justify-content: flex-start;
}

.win-directory button {
    background-color: var(--sys-win-bg);
    border: 8px solid var(--sys-win-bg);
    color: var(--sys-win-text);
    display: block;
    max-height: 12ch;
    min-height: 12ch;
    max-width: 16ch;
    min-width: 16ch;
    text-align: center;
    text-decoration: none;
}

.win-directory button:hover {
    background-color: var(--sys-win-selection);
    border: 8px solid var(--sys-win-bg);
    color: var(--sys-win-text-inverted);
}

.win-directory button img {  
    image-rendering: pixelated;
    width: 48px;
}

/* GENERAL WINDOW */
.win-container {
    background: color(from var(--sys-win-text) srgb r g b / 0.50) url('./res/transparent.png') repeat;
    display: none;
    font-size: 1.5em;
    height: 100%;
    left: 0;
    line-height: 1em;
    overflow-x: hidden;
    overflow-y: auto;
    padding-top: 1.5em;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1; 
}

.win-frame {
    background-color: var(--sys-win-bg);
    border: 1px solid var(--sys-win-text);
    box-shadow: 8px 8px 0 var(--sys-win-dshadow);
    margin: 1.5em auto;
    max-width: 86ch;
    padding: 0;
}

.win-titlebar {
    background-color: var(--sys-win-titlebar);
    border-bottom: 1px solid var(--sys-win-text);
    margin: 0;
    padding: 0.5em 2em;
    text-align: center;
    text-shadow: 1px 1px 0 var(--sys-win-text-inverted), -1px -1px 0 var(--sys-win-lshadow);
}

.win-titlebar p {
    margin: 0;
    padding: 0;
}

.win-navbar {
    align-items: baseline;
    background-color: var(--sys-win-text-inverted);
    border-bottom: 1px solid var(--sys-win-text);
    display: flex;
    flex-flow: row nowrap;
    list-style: none;
    margin: 0;
    overflow: hidden;
    padding: 0;
}

.win-navbar p {
    margin: 0;
    padding: 0.25em 0.5em;
}

.win-navbar-left {
    align-items: baseline;
    display: flex;
    flex-grow: 4;
    justify-content: flex-start;
}

.win-navbar-right {
    align-items: baseline;
    display: flex;
    justify-content: flex-end;
}

.win-navbar-element p {
    background-color: var(--sys-win-text-inverted);
    border: 0;
    color: var(--sys-win-text);
    display: block;
    margin: 0;
    padding: 0.25em 0.5em;
    text-align: left;
}

.win-navbar-element a, .win-navbar-element a:link, .win-navbar-element a:visited, .win-navbar-element button {
    background-color: var(--sys-win-text-inverted);
    border: 0;
    color: var(--sys-win-text);
    display: inline;
    padding: 0.25em 0.5em;
    text-align: center;
    text-decoration: none;
}

.win-navbar-element a:hover, .win-navbar-element button:hover {
    background-color: var(--sys-win-selection);
    border: 0;
    color: var(--sys-win-text-inverted);
}

.win-navbar li a::before {
    content: '\25BC';
    margin-right: 0.5em;
}

.win-navbar-notes button::before {
    content: '\25BC';
    margin-right: 0.5em;
}

#btn-win-close {
    background-color: transparent;
    color: var(--sys-color-dred);
}

#btn-win-close:hover {
    background-color: var(--sys-color-dred);
    color: var(--sys-color-white);
}

.win-content {
    background-color: var(--sys-win-text-inverted);
    margin: 0;
    padding: 1em 1.5em;
}

.win-content ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.win-content ul li::before {
    content: '\002A';
    margin-right: 0.5em;
}

.win-content ul li[class=selected] {
    background-color: var(--sys-win-selection);
    color: var(--sys-win-text-inverted);
}

.win-content a, .win-content a:link, .win-content a:visited, .win-content a:active, .win-content button {
    align-content: center;
    background-color: var(--sys-win-selection);
    border: 8px double var(--sys-win-text-inverted);
    color: var(--sys-win-text-inverted);
    display: block;
    max-height: 6ch;
    min-height: 6ch;
    max-width: 20ch;
    min-width: 20ch;
    margin: 1em auto;
    text-align: center;
    text-decoration: none;
}

.win-content a:hover, .win-content button:hover {
    background-color: var(--sys-win-text-inverted);
    border: 8px double var(--sys-win-selection);
    color: var(--sys-win-text);
}

/* MISC */
.moka {
    display: inline;
    font-family: 'Extended JP 8x16', monospace;
    font-size: 16px;
    left: 4px;
    position: relative;
    top: -2px;
}

.media-control {
    min-width: 180px;
}

/* PICTURE VIEWER */
.win-content-picviewer {
    align-items: baseline;
    display: flex;
    flex-flow: row nowrap;
    gap: 0em;
    justify-content: center;
}

.win-content-picviewer button {
    max-height: 16ch !important;
    min-height: 16ch !important;
    max-width: 8ch !important;
    min-width: 8ch !important;
    margin: auto 1em !important;
}

.win-content-picviewer img {
    display: block;
    font-size: 1em;
    image-rendering: pixelated;
    line-height: 1em;
    margin: 0 auto;
    min-width: 512px;
    min-height: 512px;
    object-fit: contain;
}

/* MOBILE FIX */
@media only screen and (max-width: 800px) {
    nav, main, section {
        font-size: 1em !important;
    }

    #win-doc-explorer {
        margin: 1em auto;
        max-width: 100ch;
    }
    
    .win-directory {
        justify-content: center;
    }

    .win-directory button img {  
        width: 48px;
    }

    .win-navbar-left {
        flex-grow: 2;
    }

    .win-content {
        padding: 0.25em 0.5em;
    }

    .win-content-picviewer button {
        font-size: 0.8em !important;
        max-height: 16ch !important;
        min-height: 16ch !important;
        max-width: 8ch !important;
        min-width: 8ch !important;
        margin: auto 0.25em !important;
    }

    .win-content-picviewer img {
        font-size: 0.5em !important;
        margin: 0.5em auto !important;
        line-height: 0.5em !important;
        margin: 0.5em auto !important;
        min-width: 64px !important;
        min-height: 64px !important;
        width: 100%;
        object-fit: contain !important;
    }
}
