@import url("auth_common.css");

:root {
            --page-bg: #f6f7fb;
            --card-bg: rgba(255, 255, 255, 0.9);
            --card-border: rgba(205, 218, 232, 0.65);
            --text: #22314a;
            --muted: #74839a;
            --line: rgba(213, 221, 232, 0.8);
            --input-bg: rgba(255, 255, 255, 0.92);
            --input-border: #dce4ed;
            --input-focus: rgba(84, 190, 219, 0.28);
            --blue: #2d73ff;
            --teal: #18d0ba;
            --red: #ff5a57;
            --yellow: #ffbe2f;
            --green: #1ed760;
            --cyan: #24aefe;
            --btn-login-height: 34px;
            --btn-login-margin-top: 3px;
            --btn-login-radius: 8px;
            --btn-login-bg: linear-gradient(90deg, #2b77ff 0%, #2c9bea 46%, #1dd1ba 100%);
            --btn-login-font-size: 0.9rem;
            --btn-login-font-weight: 500;
            --btn-login-shadow: 0 10px 18px rgba(63, 147, 220, 0.24);
            --btn-login-hover-shadow: 0 13px 22px rgba(63, 147, 220, 0.28);
            --btn-login-hover-filter: brightness(1.02);
        }

        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            min-height: 100vh;
            font-family: 'Outfit', sans-serif;
            color: var(--text);
            background:
                radial-gradient(circle at top left, rgba(247, 243, 238, 0.95), transparent 30%),
                radial-gradient(circle at bottom right, rgba(234, 240, 250, 0.95), transparent 28%),
                linear-gradient(180deg, #fafbfd 0%, #f3f5f9 100%);
            overflow-x: hidden;
            position: relative;
        }

        body::before,
        body::after {
            content: "";
            position: fixed;
            border-radius: 50%;
            pointer-events: none;
            z-index: 0;
            opacity: 0.42;
        }

        body::before {
            width: 520px;
            height: 520px;
            left: -190px;
            bottom: -240px;
            background: radial-gradient(circle, rgba(229, 236, 248, 0.95) 0%, rgba(229, 236, 248, 0.45) 52%, transparent 72%);
        }

        body::after {
            width: 420px;
            height: 420px;
            right: -120px;
            top: -110px;
            background: radial-gradient(circle, rgba(231, 236, 246, 0.9) 0%, rgba(231, 236, 246, 0.36) 55%, transparent 72%);
        }

        .page-shell {
            position: relative;
            z-index: 1;
            min-height: 100vh;
            padding: 42px 20px 22px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .corner-link {
            position: absolute;
            top: 22px;
            left: 20px;
            z-index: 2;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 9px 14px;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.92);
            border: 1px solid rgba(205, 218, 232, 0.9);
            color: #2e5fae;
            text-decoration: none;
            font-size: 0.84rem;
            font-weight: 600;
            box-shadow: 0 10px 24px rgba(88, 112, 148, 0.12);
            backdrop-filter: blur(8px);
            transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
        }

        .corner-link:hover {
            color: #1f4f9a;
            transform: translateY(-1px);
            box-shadow: 0 14px 26px rgba(88, 112, 148, 0.18);
        }

        .bg-art {
            position: absolute;
            right: 54px;
            width: 110px;
            height: 110px;
            border-radius: 24px;
            opacity: 0.9;
            background:
                radial-gradient(circle at 32% 30%, rgba(78, 135, 255, 0.4) 0 18%, transparent 19%),
                radial-gradient(circle at 64% 62%, rgba(63, 204, 216, 0.42) 0 18%, transparent 19%),
                linear-gradient(145deg, rgba(110, 160, 255, 0.3), rgba(55, 205, 191, 0.12));
            box-shadow: inset 0 0 0 1px rgba(171, 194, 225, 0.35);
            transform: rotate(-6deg);
        }

        .bg-art::before,
        .bg-art::after {
            content: "";
            position: absolute;
            border-radius: 18px;
            border: 2px solid rgba(145, 175, 220, 0.48);
            transform: rotate(18deg);
        }

        .bg-art::before {
            inset: 20px 26px 26px 18px;
        }

        .bg-art::after {
            inset: 36px 18px 14px 34px;
        }

        .bg-art.top {
            top: 74px;
        }

        .bg-art.bottom {
            bottom: 98px;
        }

        .login-wrap {
            flex: 1;
            display: grid;
            place-items: center;
            padding: 16px 0 28px;
        }

        .login-card {
            position: relative;
            width: min(100%, 300px);
            padding: 48px 24px 18px;
            border-radius: 16px;
            background: var(--card-bg);
            border: 1px solid var(--card-border);
            box-shadow: 0 16px 38px rgba(56, 76, 110, 0.18), 0 4px 12px rgba(132, 148, 175, 0.12);
            backdrop-filter: blur(10px);
        }

        .login-card::before {
            content: "";
            position: absolute;
            inset: 0;
            border-radius: 16px;
            background:
                radial-gradient(circle at 14% 8%, rgba(255, 91, 87, 0.9) 0 1.2%, transparent 1.4%),
                radial-gradient(circle at 51% 50%, rgba(255, 91, 87, 0.92) 0 1.3%, transparent 1.5%),
                linear-gradient(125deg, transparent 56%, rgba(197, 221, 238, 0.38) 56.5%, transparent 57.2%),
                linear-gradient(170deg, transparent 70%, rgba(208, 230, 240, 0.33) 70.4%, transparent 71.1%);
            pointer-events: none;
        }

        .logo-badge {
            position: absolute;
            top: -34px;
            left: 50%;
            transform: translateX(-50%);
            width: 74px;
            height: 74px;
            display: grid;
            place-items: center;
            border-radius: 50%;
            background: linear-gradient(180deg, #ffffff, #eef5ff);
            box-shadow: 0 14px 30px rgba(95, 126, 174, 0.18);
            border: 1px solid rgba(213, 224, 239, 0.95);
            font-size: 2.45rem;
            color: #2466df;
        }

        .brand {
            text-align: center;
            margin-bottom: 10px;
            font-size: 1.05rem;
            font-weight: 600;
            letter-spacing: 0.01em;
        }

        .brand .accent {
            color: #1670a7;
            font-weight: 700;
        }

        .title {
            margin: 0 0 4px;
            text-align: center;
            font-size: 1.62rem;
            font-weight: 500;
            line-height: 1.15;
            color: #20283b;
        }

        .subtitle {
            margin: 0 0 16px;
            text-align: center;
            font-size: 0.87rem;
            color: #6c7b92;
        }

        .login-alert {
            margin-bottom: 14px;
            padding: 10px 12px;
            border-radius: 10px;
            border: 1px solid rgba(255, 90, 87, 0.18);
            background: rgba(255, 90, 87, 0.08);
            color: #a13a38;
            font-size: 0.84rem;
        }

        .field {
            position: relative;
            margin-bottom: 11px;
        }

        .field .bi {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            color: #7f8ca1;
            font-size: 0.95rem;
            z-index: 2;
        }

        .field .lead-icon {
            left: 11px;
        }

        .field .trail-icon {
            right: 12px;
            cursor: pointer;
        }

        .form-control {
            position: relative;
            z-index: 1;
            height: 33px;
            border-radius: 8px;
            border: 1px solid var(--input-border);
            background: var(--input-bg);
            color: #2c3850;
            padding: 5px 34px 5px 30px;
            font-size: 0.87rem;
            box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.84);
        }

        .form-control::placeholder {
            color: #8c97aa;
        }

        .form-control:focus {
            border-color: #8ed0e4;
            box-shadow: 0 0 0 3px var(--input-focus), inset 0 1px 1px rgba(255, 255, 255, 0.9);
        }

        .form-meta {
            margin-top: 10px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
            font-size: 0.79rem;
            color: #63748c;
        }

        .remember {
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }

        .remember input {
            margin: 0;
            accent-color: #43b8de;
        }

        .form-meta a {
            color: #4bbdd7;
            text-decoration: none;
        }

        .palette {
            position: relative;
            width: fit-content;
            margin: 16px auto -40px;
            padding: 10px 14px;
            display: flex;
            gap: 14px;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.96);
            border: 1px solid rgba(209, 220, 233, 0.92);
            box-shadow: 0 14px 26px rgba(101, 120, 152, 0.18);
        }

        .palette span {
            width: 16px;
            height: 16px;
            border-radius: 50%;
            display: block;
        }

        .palette .red { background: var(--red); }
        .palette .yellow { background: var(--yellow); }
        .palette .green { background: var(--green); }
        .palette .cyan { background: var(--cyan); }
        .palette .white {
            background: #ffffff;
            border: 1.6px solid #2d2d2d;
        }

        .footer {
            max-width: 950px;
            margin: 0 auto;
            padding-top: 26px;
            border-top: 1px solid var(--line);
            text-align: center;
        }

        .footer-nav {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 18px;
            flex-wrap: wrap;
            color: #3a4a64;
            font-size: 0.95rem;
        }

        .footer-nav a {
            color: #3a4a64;
            text-decoration: none;
        }

        .footer-center-icons {
            display: inline-flex;
            align-items: center;
            gap: 12px;
        }

        .dots-grid {
            display: grid;
            grid-template-columns: repeat(2, 4px);
            gap: 3px;
        }

        .dots-grid span {
            width: 4px;
            height: 4px;
            border-radius: 50%;
            background: #8c98aa;
            display: block;
        }

        .round-mark {
            width: 40px;
            height: 40px;
            display: grid;
            place-items: center;
            border-radius: 50%;
            background: linear-gradient(180deg, #d9e7ff, #c8d9f7);
            color: #415574;
            font-size: 1.3rem;
            font-weight: 600;
        }

        .footer-copy {
            margin-top: 8px;
            font-size: 0.8rem;
            color: #56667d;
        }

        .powered {
            margin-top: 8px;
            text-align: right;
            font-size: 0.79rem;
            color: #66758d;
        }

        .powered a {
            color: #279dc3;
            text-decoration: none;
        }

        @media (max-width: 767px) {
            .bg-art {
                display: none;
            }

            .page-shell {
                padding-top: 72px;
            }

            .footer {
                padding-top: 38px;
            }

            .footer-nav {
                gap: 12px;
                font-size: 0.88rem;
            }

            .powered {
                text-align: center;
            }
        }

        @media (max-width: 430px) {
            .login-card {
                width: min(100%, 328px);
                padding-left: 18px;
                padding-right: 18px;
            }

            .title {
                font-size: 1.36rem;
            }

            .form-meta {
                flex-direction: column;
                align-items: flex-start;
            }
        }
