/* ═══════════════════════════════════════════════════════════════
   Login Page Styles
   登录页面专属样式
   依赖：variables.css, base.css
   ═══════════════════════════════════════════════════════════════ */

body {
            background-color: #ffffff;
            margin: 0;
            overflow: hidden;
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
        }

        #particles-js {
            position: fixed;
            width: 100%;
            height: 100%;
            background-color: #ffffff;
            background-image: 
                linear-gradient(45deg, rgba(0,0,0,0.015) 25%, transparent 25%, transparent 75%, rgba(0,0,0,0.015) 75%, rgba(0,0,0,0.015)), 
                linear-gradient(45deg, rgba(0,0,0,0.015) 25%, transparent 25%, transparent 75%, rgba(0,0,0,0.015) 75%, rgba(0,0,0,0.015));
            background-size: 60px 60px;
            background-position: 0 0, 30px 30px;
            z-index: 1;
        }

        .admin-border {
            border: 1.5px solid #111827;
            box-shadow: 20px 20px 0px rgba(0, 0, 0, 0.03), 0px 10px 30px rgba(0,0,0,0.02);
            backdrop-filter: blur(5px);
            background-color: rgba(255, 255, 255, 0.95);
        }

        .input-box {
            border: 1px solid #e5e7eb;
            background-color: #fcfcfc;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .input-box:focus {
            border-color: #111827;
            background-color: #ffffff;
            outline: none;
            box-shadow: 0 0 0 3px rgba(0,0,0,0.03);
        }

        .btn-action {
            background-color: #111827;
            color: white;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }

        .btn-action:hover {
            background-color: #374151;
            letter-spacing: 0.4em;
        }

        .status-bar {
            background: #f9fafb;
            border-top: 1px solid #f3f4f6;
        }

        .bg-deco {
            position: fixed;
            bottom: 8%;
            right: 5%;
            font-size: 160px;
            font-weight: 900;
            color: rgba(0,0,0,0.03);
            user-select: none;
            z-index: 0;
            line-height: 0.8;
            pointer-events: none;
        }

        .shake { animation: shake 0.4s cubic-bezier(.36,.07,.19,.97) both; }
        @keyframes shake {
            10%, 90% { transform: translate3d(-1px, 0, 0); }
            20%, 80% { transform: translate3d(2px, 0, 0); }
            30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }
            40%, 60% { transform: translate3d(4px, 0, 0); }
        }

        /* 错误弹窗 */
        .error-modal-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.5);
            backdrop-filter: blur(4px);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 1000;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;
        }

        .error-modal-overlay.show {
            opacity: 1;
            visibility: visible;
        }

        .error-modal {
            background: white;
            border-radius: 16px;
            padding: 24px;
            max-width: 360px;
            width: 90%;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
            transform: scale(0.9) translateY(20px);
            transition: all 0.3s ease;
        }

        .error-modal-overlay.show .error-modal {
            transform: scale(1) translateY(0);
        }

        .error-modal-icon {
            width: 56px;
            height: 56px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 16px;
            font-size: 24px;
        }

        .error-modal-icon.error {
            background: #FEF2F2;
            color: #DC2626;
        }

        .error-modal-icon.warning {
            background: #FFFBEB;
            color: #D97706;
        }

        .error-modal-icon.info {
            background: #EFF6FF;
            color: #2563EB;
        }

        .error-modal-title {
            font-size: 16px;
            font-weight: 700;
            color: #1F2937;
            text-align: center;
            margin-bottom: 8px;
        }

        .error-modal-message {
            font-size: 13px;
            color: #6B7280;
            text-align: center;
            line-height: 1.6;
            margin-bottom: 20px;
        }

        .error-modal-btn {
            width: 100%;
            padding: 10px 20px;
            background: #1F2937;
            color: white;
            border: none;
            border-radius: 10px;
            font-size: 13px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s;
        }

        .error-modal-btn:hover {
            background: #374151;
        }
