@import url('https://fonts.googleapis.com/css2?family=LXGW+WenKai+Mono+TC:wght@400;700&display=swap');

:root {
    --color1: #fdffe9;
    --color2: #f5c5ac;
    --color3: #34232f;
    --color4: #a0e1fa;
}

::-webkit-scrollbar {
    width: 0.6vw;
    height: 0.6vw;
}

::-webkit-scrollbar-corner {
    display: none;
}

::-webkit-scrollbar-thumb {
    background: purple;
    border-radius: 10px;
}

::-webkit-scrollbar-track {
    background: none;
}

* {
    font-family: 'LXGW WenKai Mono TC', sans-serif;
    box-sizing: border-box;
    word-wrap: break-word;
    word-break: break-word;
    overflow-wrap: break-word;
}

body {
    margin: 0;
    padding: 0;
    font-size: 16px;
    font-weight: 400;
    color: var(--color2);
    background-color: var(--color3);
}

header {
    background-color: var(--color2);
    color: var(--color3);
    height: 96px;
    padding: 0 5%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 48px;
    font-weight: 700;
}

header i {
    width: 40px;
    margin-right: 5px;
}

header a {
    color: var(--color3);
    text-decoration: none;
    transition: 0.5s ease-in-out;
}

header > a:hover {
    color: var(--color3);
}

header > div {
    display: flex;
    align-items: center;
}

header > div a {
    margin: 0 15px;
    color: purple;
    font-size: 28px;
}

header > div a:hover {
    color: var(--color1);
}

main {
    margin: 0 auto;
    padding: 2% 4%;
    max-width: 1600px;
    min-height: calc(100dvh - 160px);
}

footer {
    color: var(--color1);
    text-align: center;
    padding: 20px;
    font-weight: 400;
}

h2, h3, h4, p {
    margin: 2dvh 0;
}

h1 {
    margin: 4dvh 0;
    font-size: 40px;
    font-weight: 700;
    color: var(--color1);
    text-align: center;
}

h2, .h2 {
    font-size: 36px;
    font-weight: 700;
}

h3, .h3 {
    font-size: 28px;
    font-weight: 700;
}

h4, .h4 {
    font-size: 24px;
    font-weight: 700;
}

p, .p {
    font-size: 20px;
    font-weight: 400;
}

a {
    color: var(--color2);
    word-break: break-all;
    transition: ease-in-out 0.5s;    
}

a:hover {
    color: var(--color4);
}

/* icon */

i {
    cursor: pointer;
    text-align: center;
}

i.c-d {
    cursor: default;
}

.fa-sort {
    cursor: grab;
}

.fa-trash, .fa-xmark, .fa-trash {
    color: red;
}

/* display */

.m-0 {
    margin: 0;
}

.mt-1 {
    margin-top: 2dvh;
}

.mt-2 {
    margin-top: 4dvh;
}

.mx-1 {
    margin-left: 10px;
    margin-right: 10px;
}

.mx-2 {
    margin-left: 20px;
    margin-right: 20px;
}

.my-1 {
    margin-top: 10px;
    margin-bottom: 10px;
}

.my-2 {
    margin-top: 20px;
    margin-bottom: 20px;
}

.p-r {
    position: relative;
}

.p-a {
    position: absolute;
}

.d-n {
    display: none;
}

.d-f {
    display: flex;
}

.d-ib {
    display: inline-block;
}

.fd-c {
    flex-direction: column;
}

.jc-c {
    justify-content: center;
}

.jc-sb {
    justify-content: space-between;
}

.ai-c {
    align-items: center;
}

.ai-e {
    align-items: end;
}

.fg-1 {
    flex-grow: 1;
}

.fs-1 {
    flex-shrink: 1;
}

.ta-l {
    text-align: left;
}

.ta-c {
    text-align: center;
}

.ta-r {
    text-align: right;
}

.f-l {
    float: left;
}

.f-r {
    float: right;
}

.l-h-15 {
    line-height: 1.5;
}

/* form */

form {
    max-width: 800px;
    margin: 0 auto;
    padding: 2% 4%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4dvh;
}

form > h3 {
    margin: 1dvh 0;
    text-align: left;
}

form > div {
    text-align: left;
}

.icon_input {
    position: relative;
    width: 100%;
}

.icon_input i {
    position: absolute;
    top: 50%;
    right: 1%;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 32px;
    color: var(--color3);
}

input, textarea {
    width: 100%;
    padding: 10px;
    font-size: 24px;
    border: none;
    border-radius: 10px;
}

input:focus, textarea:focus {
    outline: 3px solid orange;
}

button, select {
    cursor: pointer;
    padding: 10px 20px;
    border: none;
    border-radius: 10px;
    font-size: 24px;
    color: var(--color3);
    background-color: var(--color2);
    transition: 1s ease-in-out;
}

button:hover {
    background-color: var(--color4);
}

button + *, a + * {
    margin-left: 10px;
}

button.remove {
    background-color: red;
    color: white;
}

button.remove:hover {
    color: var(--color3);
}

#loading {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 100;
    width: 256px;
    height: 256px;
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.4);
    border-radius: 20px;
    display: none;
}

.sortable-ghost {
    filter: invert(1);
}