:root {
            font-family:
                system-ui,
                -apple-system,
                BlinkMacSystemFont,
                "Segoe UI",
                sans-serif;
            color: #171715;
            background: #f5f5f3;
        }

        * {
            box-sizing: border-box;
        }

        body {
            min-width: 320px;
            min-height: 100vh;
            margin: 0;
            padding: 24px;
            display: grid;
            place-items: center;
        }

        .login-card {
            width: min(100%, 480px);
            padding: 38px;
            background: #fff;
            border: 1px solid #deded8;
            border-radius: 24px;
            box-shadow: 0 20px 55px rgba(24, 24, 20, 0.08);
        }

        .brand {
            width: 52px;
            height: 52px;
            margin-bottom: 30px;
            display: grid;
            place-items: center;
            color: #fff;
            background: #171715;
            border-radius: 15px;
            font-size: 0.82rem;
            font-weight: 800;
            letter-spacing: 0.08em;
        }

        h1 {
            margin: 0;
            font-size: clamp(2.1rem, 7vw, 3.4rem);
            line-height: 0.95;
            letter-spacing: -0.05em;
        }

        .intro {
            margin: 15px 0 30px;
            color: #6e6e68;
        }

        .field {
            margin-bottom: 20px;
        }

        label {
            display: block;
            margin-bottom: 7px;
            font-weight: 700;
        }

        input {
            width: 100%;
            min-height: 50px;
            padding: 12px 14px;
            border: 1px solid #cecec8;
            border-radius: 12px;
            font: inherit;
        }

        input:focus {
            outline: 2px solid #171715;
            outline-offset: 2px;
        }

        button {
            width: 100%;
            min-height: 52px;
            margin-top: 8px;
            padding: 12px 20px;
            color: #fff;
            background: #171715;
            border: 0;
            border-radius: 999px;
            font: inherit;
            font-weight: 750;
            cursor: pointer;
        }

        .error {
            margin-bottom: 24px;
            padding: 15px 17px;
            color: #7a1c1c;
            background: #fce8e8;
            border-radius: 12px;
        }

        .error p {
            margin: 0;
        }

        .notice {
            margin-bottom: 24px;
            padding: 15px 17px;
            color: #264d38;
            background: #e8f4ec;
            border-radius: 12px;
        }

        .notice p {
            margin: 0;
        }

        .login-help {
            display: block;
            margin-top: 20px;
            color: #555;
            text-align: center;
            text-decoration: none;
        }

        .login-help:hover { text-decoration: underline; }

        @media (max-width: 520px) {
            body {
                padding: 12px;
            }

            .login-card {
                padding: 28px 22px;
            }
        }
        .login-brand-logo {
            display: block;
            width: auto;
            max-width: 180px;
            height: 70px;
            margin-bottom: 30px;
            object-fit: contain;
            object-position: left center;
        }
