@font-face {
    font-family:'Minecraftia';
    src: url('./../fonts/F77MinecraftRegular-0VYv.ttf');
    /* Keep pixel-style font for Latin UI only; CJK should always fall back to secondary fonts. */
    unicode-range:
        U+0000-00FF,
        U+0100-024F,
        U+1E00-1EFF,
        U+2000-206F,
        U+20A0-20CF;
}

@font-face {
    font-family:'ProjectUI';
    src:
        local('Noto Sans CJK SC'),
        local('Noto Sans SC'),
        local('Microsoft YaHei UI'),
        local('Microsoft YaHei'),
        local('PingFang SC'),
        local('Hiragino Sans GB'),
        local('Source Han Sans SC'),
        local('SimSun'),
        local('NSimSun'),
        local('Arial Unicode MS'),
        local('Segoe UI Symbol'),
        url('./../fonts/ui-font.woff2') format('woff2'),
        url('./../fonts/ui-font.ttf') format('truetype');
    font-display: swap;
}

@font-face {
    font-family: 'SDK_SC_Web';
    src: local('SDK_SC_Web'),
         url('./../fonts/SDK_SC_Web.ttf') format('truetype'),
         url('https://cdn.jsdelivr.net/gh/KZdavid/gtnh-calc@zh-CN-v0.1.1/assets/fonts/SDK_SC_Web.ttf') format('truetype');
    font-display: swap;
}

:root {
    --font-ui-primary: "SDK_SC_Web";
    --font-ui-secondary-zh: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", "SimSun", "sans-serif";
    --font-ui-secondary-latin: "Segoe UI", "Arial", "Helvetica", sans-serif;
    --font-ui-secondary: var(--font-ui-secondary-zh), var(--font-ui-secondary-latin);
    --font-ui: var(--font-ui-primary), var(--font-ui-secondary);
    --font-ui-size: 16px;
    --font-ui-line-height: 22px;
    --font-ui-control-size: 16px;
    --font-ui-control-line-height: 22px;
    --font-ui-input-line-height: 16px;
    --font-ui-small-size: 8px;
    --font-ui-small-line-height: 8px;
    --font-ui-small-word-spacing: 1px;
}

body {
    font-family: var(--font-ui);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-kerning: normal;
    image-rendering: auto;
    text-rendering: optimizeLegibility;
    font-size: var(--font-ui-size);
    margin: 0px;
    line-height: var(--font-ui-line-height);
    color: white;
    background-color: #212121;
    word-break: break-word;
    height: 100vh;
    min-width: 800px;
    overflow-y: hidden;
    overflow-x: auto;
}

.text-small
{
    font-size: var(--font-ui-small-size);
    line-height: var(--font-ui-small-line-height);
    word-spacing: var(--font-ui-small-word-spacing);
}

button {
    font-family: var(--font-ui);
    font-size: var(--font-ui-control-size);
    line-height: var(--font-ui-control-line-height);
    border: 2px solid;
    border-bottom-width: 4px;
    border-color: #A8A8A8 #565656 #565656 #A8A8A8;
    background-color: #727272;
    color: white;
    text-shadow: 2px 2px #342C34;
    cursor: pointer;
    pointer-events: all;
    box-shadow: 0 0 0 2px black;
}

button:hover {
    box-shadow: 0 0 0 2px white;
}

.icon-button {
    border: none;
    border-image: none;
    background-color: transparent;
    box-shadow: none;
}

.icon-button:hover {
    border:none;
    border-image: none;
    background-color: transparent;
    box-shadow: none;
}

input {
    font-family: var(--font-ui);
    background-color: #8B8B8B;
    font-size: var(--font-ui-control-size);
    line-height: var(--font-ui-input-line-height);
    color: white;
    text-shadow: 2px 2px #342C34;
    pointer-events: all;
    border-style: solid;
    border-width: 2px;
    border-color: #373737 #ffffff #ffffff #373737;
    margin: 2px;
    height: var(--font-ui-input-line-height);
}

input:focus {
    outline: none;
}

.hgroup
{
    display: flex;
    width: 100%;
    align-items: center; 
}

.vgroup
{
    display: flex;
    height: 100%;
    align-items: center; 
    flex-direction: column;
}

input::placeholder {
    color:#B3B3B3;
}

.panel {
    background-color: #C6C6C6;
    position:absolute;
    color: #3F3F3F;
    border: 4px solid;
    border-color: #ffffff #555555 #555555 #ffffff;
    border-radius: 4px;
    box-shadow: 0 0 0 2px black;
}

#confirm-dialog {
    flex-direction: column;
    padding: 20px;
    gap: 20px;
}

#confirm-dialog button {
    min-width: 100px;
}

.icon-grid
{
    position: relative;
    width: var(--grid-pixel-width);
    height: var(--grid-pixel-height);
    gap: 0px;
    background-size: 36px;
    background-image: url("./../images/Slot.png");
}

.item-icon-grid {
    position: absolute;
    left: var(--grid-x);
    top: var(--grid-y);
}

.icon {
    width: 32px;
    height: 32px;
    background-repeat: no-repeat;

    background-image: var(--resource-atlas-url);
    background-position: var(--pos-x) var(--pos-y);
}

item-icon {
    width: 32px;
    height: 32px;
    position: relative;
    background-repeat: no-repeat;
    pointer-events: auto;
    background-image: var(--resource-atlas-url);
    background-position: var(--pos-x) var(--pos-y);
}

item-icon::after {
    content: attr(data-amount);
    position: absolute;
    bottom: -6px;
    right: 1px;
    font-size: 8px;
    text-shadow: 1px 1px #342C34;
    color: white;
    pointer-events: none;
    white-space: nowrap;
}

.probability
{
    position: absolute;
    top: -5px;
    right: 1px;
    font-size: 8px;
    color: #FFD700;
    text-shadow: 1px 1px #342C34;
    pointer-events: none;
}

p {
    margin: 0.5em 0;
}

#panels
{
    position: fixed;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100vw;
    height: 100vh;
    margin: 0;
    padding: 0;
    z-index: 1000;
    background-color: #000000B0;
    visibility: hidden;
    top: 0;
    left: 0;
    pointer-events: none;
}

h2 {
    font-weight:normal;
    font-size: 24px;
}

#panels:has(> :not(.hidden)) {
    visibility: visible;
    pointer-events: auto;
}

#loading {
    flex-direction: column;
    gap: 10px;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 50px 100px;
    max-width: 600px;
}

.scrollbar-measure {
	width: 100px;
	height: 100px;
	overflow: scroll;
	position: absolute;
	top: -9999px;
}

h1
{
    font-weight:normal;
    font-size:64px;
}

.scroll-area
{
    width: 100%;
    height: 100%;
    overflow-y: scroll;
}

.hidden
{
    display: none !important;
}

a {
    color: #1E90FF;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.text-small a {
    text-decoration: none;
}

a:hover {
    color: #FFD700;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
