/* --- グローバルリセット・基本スタイル --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    height: 100%;
    font-family: var(--font-family);
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    overscroll-behavior-y: contain;
    transition:
        background-color 0.3s ease,
        color 0.3s ease;
    overflow: hidden;
    touch-action: manipulation;
}

button {
    cursor: pointer;
    padding: 8px 15px;
    border-radius: 5px;
    border: none;
    font-size: 14px;
    background-color: var(--bg-button);
    color: var(--text-light);
    transition:
        background-color 0.2s ease,
        color 0.2s ease;
    line-height: 1.4;
}

@media (hover: hover) {
    button:hover:not(:disabled) {
        background-color: var(--bg-button-hover);
    }
}

button:disabled {
    background-color: var(--bg-button-disabled);
    cursor: not-allowed;
    color: var(--text-disabled);
}

input[type='text'],
input[type='password'],
input[type='number'],
select,
textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--border-primary);
    border-radius: 5px;
    font-size: 14px;
    margin-bottom: 10px;
    background-color: var(--bg-input);
    color: var(--text-primary);
    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        border-color 0.3s ease;
}

textarea {
    min-height: 80px;
    resize: vertical;
}

label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
    font-size: 14px;
    color: var(--text-primary);
}

::placeholder {
    color: var(--text-placeholder);
    opacity: 1;
}

:-ms-input-placeholder {
    color: var(--text-placeholder);
}

::-ms-input-placeholder {
    color: var(--text-placeholder);
}
