 * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }

        body {
            min-height: 100vh;
            background: linear-gradient(135deg, #1f1c2c, #928dab);
            color: #fff;
            padding: 20px;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        h1 {
            text-align: center;
            margin-bottom: 40px;
            font-size: 2.8rem;
            position: relative;
            background: linear-gradient(90deg, #ff512f, #dd2476);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            font-weight: bold;
        }

        h1::after {
            content: '';
            display: block;
            width: 100px;
            height: 6px;
            background: linear-gradient(90deg, #ff512f, #dd2476);
            margin: 12px auto 0;
            border-radius: 5px;
            box-shadow: 0 0 15px rgba(255, 81, 47, 0.6), 0 0 15px rgba(221, 36, 118, 0.6);
        }

        .container {
            display: flex;
            flex-direction: column;
            background: rgba(255, 255, 255, 0.05);
            padding: 35px 40px;
            border-radius: 20px;
            -webkit-backdrop-filter: blur(18px);
            backdrop-filter: blur(18px);
            box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
            width: 100%;
            max-width: 480px;
            transition: 0.3s ease;
        }

        .result-container {
            display: flex;
            justify-content: space-between;
            align-items: center;
            background: rgba(255, 255, 255, 0.12);
            padding: 18px 20px;
            border-radius: 12px;
            margin-bottom: 25px;
            font-size: 1.2rem;
            word-break: break-all;
            box-shadow: inset 0 0 12px rgba(255,255,255,0.15);
        }

        .result-container #result {
            flex: 1;
        }

        .btn {
            background: linear-gradient(90deg, #ff512f, #dd2476);
            color: #fff;
            border: none;
            padding: 12px 25px;
            border-radius: 12px;
            cursor: pointer;
            font-weight: bold;
            transition: 0.4s ease;
            box-shadow: 0 6px 18px rgba(0,0,0,0.25);
        }

        .btn:hover {
            transform: translateY(-3px);
            box-shadow: 0 10px 25px rgba(0,0,0,0.35);
        }

        .btn-large {
            width: 100%;
            margin-top: 18px;
            font-size: 1.15rem;
        }

        .settings {
            margin-bottom: 18px;
        }

        .setting {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin: 12px 0;
        }

        .setting label {
            font-size: 1rem;
            color: #e0e0e0;
        }

        .setting input[type="number"] {
            width: 65px;
            padding: 6px;
            border-radius: 6px;
            border: none;
            text-align: center;
            background: rgba(255,255,255,0.12);
            color: #fff;
        }

        .setting input[type="checkbox"] {
            width: 22px;
            height: 22px;
            cursor: pointer;
        }

        .strength-meter {
            height: 8px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 4px;
            margin: 15px 0;
            overflow: hidden;
        }

        .strength-fill {
            height: 100%;
            width: 0%;
            transition: width 0.3s, background 0.3s;
        }

        .strength-text {
            text-align: center;
            font-size: 0.9rem;
            margin-bottom: 10px;
            height: 20px;
        }

        .history {
            margin-top: 20px;
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            padding-top: 15px;
        }

        .history-title {
            font-size: 1rem;
            margin-bottom: 10px;
            text-align: center;
        }

        .history-list {
            max-height: 120px;
            overflow-y: auto;
        }

        .history-item {
            display: flex;
            justify-content: space-between;
            padding: 8px 0;
            border-bottom: 1px solid rgba(255, 255, 255, 0.05);
        }

        .history-password {
            font-family: monospace;
            font-size: 0.9rem;
        }

        .history-copy {
            background: none;
            border: none;
            color: #ff512f;
            cursor: pointer;
            font-size: 0.8rem;
        }

        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0,0,0,0);
            border: 0;
        }

        @media (max-width: 500px) {
            .container {
                padding: 25px;
            }

            h1 {
                font-size: 2.2rem;
            }
        }