﻿html, body {
            height: 100%;
            background: #0f3d2e;
            font-family: 'Lucida Sans', Geneva, Verdana, sans-serif;
        }

        /* Animated gradient background */
        body::before {
            content: '';
            position: fixed;
            inset: 0;
            background: linear-gradient(135deg, #0f3d2e 0%, #1f6b4a 45%, #2bb673 100%);
            z-index: 0;
        }

        /* Subtle pulse circles in background */
        .bg-pulse {
            position: fixed;
            border-radius: 50%;
            opacity: 0.12;
            animation: pulse-bg 6s ease-in-out infinite;
            z-index: 0;
        }
        .bg-pulse.p1 { width: 600px; height: 600px; top: -150px; left: -150px; background: #66d998; animation-delay: 0s; }
        .bg-pulse.p2 { width: 400px; height: 400px; bottom: -100px; right: -100px; background: #8ed966; animation-delay: 3s; }
        .bg-pulse.p3 { width: 320px; height: 320px; top: 40%; right: 12%; background: #c0d966; animation-delay: 1.5s; }
        @keyframes pulse-bg {
            0%, 100% { transform: scale(1); }
            50%       { transform: scale(1.12); }
        }

        /* ECG / heartbeat line */
        .ecg-line {
            position: fixed;
            bottom: 60px;
            left: 0;
            width: 100%;
            height: 40px;
            z-index: 0;
            overflow: hidden;
        }
        .ecg-line svg {
            width: 200%;
            height: 100%;
            animation: ecg-scroll 4s linear infinite;
        }
        @keyframes ecg-scroll {
            from { transform: translateX(0); }
            to   { transform: translateX(-50%); }
        }

        /* Login card */
        .login-wrapper {
            position: relative;
            z-index: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            padding: 20px;
        }

        .login-card {
            width: 100%;
            max-width: 420px;
            background: rgba(255,255,255,0.98);
            border-radius: 18px;
            box-shadow: 0 30px 70px rgba(8,40,28,0.55), 0 2px 6px rgba(0,0,0,0.1);
            overflow: hidden;
            border: 1px solid rgba(255,255,255,0.6);
            backdrop-filter: blur(6px);
        }

        /* Header band */
        .login-header {
            position: relative;
            background: linear-gradient(135deg, #0f7a52 0%, #2bb673 55%, #66d998 100%);
            padding: 12px 32px 10px;
            text-align: center;
            color: #fff;
            overflow: hidden;
        }
        .login-header::after {
            content: '';
            position: absolute;
            top: -40%;
            right: -20%;
            width: 220px;
            height: 220px;
            background: radial-gradient(circle, rgba(192,217,102,0.45) 0%, rgba(192,217,102,0) 70%);
            border-radius: 50%;
        }
        .login-header > * { position: relative; z-index: 1; }
        .login-header .logo-icon {
            width: 44px;
            height: 44px;
            background: rgba(255,255,255,0.18);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 6px;
            border: 2px solid rgba(255,255,255,0.55);
            box-shadow: 0 4px 12px rgba(0,0,0,0.18);
            font-size: 18px;
        }
        .login-header .logo-img {
            width: 44px;
            height: 44px;
            object-fit: cover;
            margin: 0 auto 4px;
            display: block;
            border-radius: 50%;
            background: rgba(255,255,255,0.15);
            padding: 0;
            border: 2px solid rgba(255,255,255,0.55);
            box-shadow: 0 4px 12px rgba(0,0,0,0.18);
        }
        .login-banner {
            width: 100%; height: 44px; object-fit: cover;
            display: block; border-radius: 18px 18px 0 0;
        }
        .login-header h2 {
            font-size: 20px;
            font-weight: 700;
            margin: 0 0 2px;
            letter-spacing: 0.4px;
            color: #fff;
            line-height: 1.2;
        }
        .login-header p {
            font-size: 10.5px;
            margin: 0;
            opacity: 0.92;
            letter-spacing: 1.5px;
            text-transform: uppercase;
            color: #eafff3;
            line-height: 1.3;
        }

        /* Risk level dots */
        .risk-dots {
            display: flex;
            justify-content: center;
            gap: 6px;
            margin-top: 4px;
        }
        .risk-dot {
            width: 8px; height: 8px;
            border-radius: 50%;
            display: inline-block;
        }
        .dot-red    { background: #ff5b65; }
        .dot-yellow { background: #ffc04d; }
        .dot-green  { background: #c0d966; }

        /* Form area */
        .login-body {
            padding: 14px 34px 12px;
        }

        .login-body .form-group {
            margin-bottom: 8px;
        }
        .login-body .form-group label {
            font-size: 11px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.8px;
            color: #2e6b46;
            margin-bottom: 4px;
        }

        .login-body .form-control {
            height: 38px;
            border: 1.5px solid #e2e8e4;
            border-radius: 8px;
            font-size: 13.5px;
            background: #f6faf7;
            transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
            padding-left: 38px;
        }
        .login-body .form-control:focus {
            border-color: #2bb673;
            background: #fff;
            box-shadow: 0 0 0 4px rgba(43,182,115,0.18);
            outline: none;
        }

        .input-icon-wrap {
            position: relative;
        }
        .input-icon-wrap .field-icon {
            position: absolute;
            left: 13px;
            top: 50%;
            transform: translateY(-50%);
            color: #9bbfaa;
            font-size: 13px;
            pointer-events: none;
            transition: color 0.2s;
        }
        .input-icon-wrap .form-control:focus + .field-icon,
        .input-icon-wrap:focus-within .field-icon {
            color: #2bb673;
        }

        .btn-login {
            width: 100%;
            height: 40px;
            background: linear-gradient(135deg, #0f7a52 0%, #2bb673 55%, #66d998 100%);
            color: #fff;
            border: none;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 700;
            letter-spacing: 0.5px;
            margin-top: 2px;
            transition: filter 0.2s, transform 0.15s, box-shadow 0.2s;
            box-shadow: 0 8px 22px rgba(43,182,115,0.4);
            cursor: pointer;
        }
        .btn-login:hover {
            filter: brightness(1.06);
            transform: translateY(-2px);
            box-shadow: 0 12px 28px rgba(43,182,115,0.5);
        }
        .btn-login:active {
            transform: translateY(0);
            box-shadow: 0 6px 16px rgba(43,182,115,0.4);
        }

        .remember-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin: 6px 0 8px;
        }
        .remember-row label {
            font-size: 13px;
            color: #666;
            margin: 0;
            cursor: pointer;
        }
        .remember-row a {
            font-size: 12px;
            color: #2bb673;
            text-decoration: none;
        }
        .remember-row a:hover { text-decoration: underline; }

        /* Error alerts */
        .alert-login {
            border-radius: 8px;
            font-size: 12px;
            padding: 7px 12px;
            margin-bottom: 8px;
        }

        /* Footer */
        .login-footer {
            background: #f3f8f4;
            border-top: 1px solid #e8efe9;
            padding: 7px 32px;
            text-align: center;
        }
        .login-footer p {
            margin: 0;
            font-size: 11px;
            color: #aaa;
            letter-spacing: 0.3px;
        }
        .login-footer .system-name {
            color: #2bb673;
            font-weight: 700;
        }
