* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background-color: var(--background-color);
    color: var(--font-color);
    font-size: var(--font-size);
    font-family: var(--font-family);
    font-weight: var(--font-weight);

    width: 100vw;
    height: 100vh;
}

#dynamic-shape {
    position: absolute;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--font-color);
}

#header {
    position: absolute;
    left: 50%;
    top: 20%;
    transform: translate(-50%, -100%);
    overflow: hidden;
}

#header-text {
    transform: translateX(-50%);
    font-size: var(--header-size);
    font-weight: var(--header-font-weight);
    white-space: nowrap;
}

#task-input {
    position: absolute;
    left: 50%;
    top: 20%;
    transform: translate(-50%, 20px);
    width: 70vw;

    font-size: var(--font-size);
    font-family: var(--font-family);
    text-align: center;
    font-weight: var(--font-weight);

    color: var(--font-color);

    border: none;
    border-radius: calc(var(--font-size) * 3 / 2);
    outline: none;
}

#hints-list {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX(-50%);
    width: 40vw;
}

#todo-table,
#focus-table {
    position: absolute;
    left: 50%;
    top: 30%;
    transform: translateX(-50%);
    border-collapse: collapse;
}

#todo-table tbody,
#focus-table tbody,
.special-focus-header {
    border-top: 1px solid var(--font-color);
}

#todo-table th,
#todo-table td,
#focus-table th,
#focus-table td {
    padding: 3px;
    min-width: 5vw;
    text-align: center;
}

#todo-table td,
#todo-table th.hasLeftBorder,
#focus-table td,
#focus-table th.hasLeftBorder {
    border-left: 1px solid var(--font-color);
}

#todo-table th,
#focus-table th {
    font-weight: var(--header-font-weight);
}

#todo-list input,
#focus-table div.detail,
#focus-table td.time {
    font-size: var(--font-size);
    font-family: var(--font-family);
    text-align: center;
    font-weight: var(--font-weight);

    background-color: var(--background-color);
    color: var(--font-color);

    border: none;
    outline: none;

    width: 50vw;
}

#todo-list input[type='number'],
#focus-table td.time {
    width: 5vw;
    -moz-appearance: textfield;
    appearance: textfield;
}
#todo-list input[type='number']::-webkit-outer-spin-button,
#todo-list input[type='number']::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

#todo-list button {
    width: 7vw;

    cursor: pointer;
    text-align: center;

    font-weight: var(--font-weight);
    font-size: var(--font-size);
    font-family: var(--font-family);
    text-align: center;

    background-color: var(--background-color);
    color: var(--font-color);
    transition: color 350ms;

    border: none;
    outline: none;
}
#todo-list button:hover {
    color: var(--input-background-color);
}

#focus-timer {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: var(--timer-size);
    font-weight: var(--header-font-weight);
    white-space: nowrap;
}

#timer-first-unit,
#timer-second-unit {
    font-size: var(--font-size);
    font-weight: var(--font-weight);
}
