.login-page-body {
    background-color: var(--background-color);
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M11 11L89 89 M89 11L11 89" stroke-width="1" stroke="rgba(255,255,255,0.05)"/></svg>');
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    font-family: 'Helvetica Neue', 'Arial', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Meiryo', sans-serif;
}

.login-container {
    width: 100%;
    padding: 1rem;
}

.login-panel {
    max-width: 400px;
    margin: 0 auto;
    background: var(--card-background);
    color: var(--base-text-color);
    padding: 2.5rem 2rem;
    border-radius: 8px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.2), 0 5px 15px rgba(0,0,0,0.1);
    border-top: 4px solid var(--accent-color);
    animation: fadeInPanel 0.6s ease-out forwards;
    opacity: 0;
    transform: translateY(20px);
}

@keyframes fadeInPanel {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.login-header {
    text-align: center;
    margin-bottom: 1.5rem;
}

.login-header a {
    display: inline-block;
    line-height: 0;
}

.login-header .logo-svg text {
    fill: var(--base-text-color);
    transition: fill 0.3s ease;
}

.login-header a:hover .logo-svg text {
    fill: var(--accent-color);
}

.login-title {
    text-align: center;
    font-size: 1.5rem;
    margin: 0 0 1.5rem;
    color: var(--base-text-color);
}

.login-panel .form-group {
    position: relative;
    margin-bottom: 1.5rem;
}

.login-panel .form-label {
    position: absolute;
    top: 0.85rem;
    left: 1rem;
    background: transparent;
    color: #888;
    transition: all 0.2s ease-out;
    pointer-events: none;
    padding: 0 0.25rem;
    z-index: 10; /* 入力欄より手前に来るように指定 */
}

.login-panel .form-control:focus + .form-label,
.login-panel .form-control:not(:placeholder-shown) + .form-label {
    top: -0.8rem; /* 少し上に移動して重なりを解消 */
    left: 0.75rem;
    font-size: 0.85rem;
    color: var(--accent-color);
    background: var(--card-background);
}

.login-panel .form-control {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
}

.login-panel .form-control:focus {
    border-color: var(--accent-color);
    box-shadow: none;
}

.login-panel .btn-submit {
    width: 100%;
    padding: 0.8rem;
    font-size: 1.1rem;
    background-color: var(--base-text-color);
    border: 1px solid transparent;
    color: #fff;
    cursor: pointer;
    transition: background-color 0.2s;
}

.login-panel .btn-submit:hover {
    background-color: var(--accent-color);
}