/**
 * RYO Platform - Login Page Responsive Design
 * Breakpoints: 1024px (tablet landscape), 768px (tablet portrait), 480px (mobile), 360px (small mobile)
 * Maintains original color scheme and visual identity
 */

/* ===== TABLET LANDSCAPE (max-width: 1024px) ===== */
@media (max-width: 1024px) {
    .login-main {
        padding-top: 80px;
    }

    .energy-vortex {
        left: 20%;
        width: 280px;
        height: 280px;
    }

    .vortex-core {
        width: 90px;
        height: 90px;
    }

    .ring-1 { width: 120px; height: 120px; }
    .ring-2 { width: 160px; height: 160px; }
    .ring-3 { width: 200px; height: 200px; }
    .ring-4 { width: 240px; height: 240px; }
    .ring-5 { width: 280px; height: 280px; }

    .crystal-panel {
        right: 8%;
        width: 220px;
        height: 140px;
    }

    .login-container {
        max-width: 420px;
        margin-right: 5%;
    }

    .login-form-wrapper {
        padding: 2.5rem;
        grid-template-columns: 150px 1fr;
        gap: 1.5rem;
    }

    .form-header h1 {
        font-size: 1.7rem;
    }

    .header-nav {
        gap: 1.5rem;
    }
}

/* ===== TABLET PORTRAIT (max-width: 768px) ===== */
@media (max-width: 768px) {
    .login-header .container {
        padding: 0 15px;
    }

    .header-content {
        padding: 0.75rem 0;
    }

    .logo-img {
        width: 32px;
        height: 32px;
    }

    .logo-text {
        font-size: 1.2rem;
    }

    .header-nav {
        gap: 0.75rem;
    }

    .header-nav .nav-link {
        padding: 0.4rem 0.75rem;
        font-size: 0.85rem;
    }

    .header-nav .nav-link span {
        display: inline;
    }

    .login-main {
        padding: 90px 1rem 2rem;
        min-height: 100vh;
    }

    /* Hide 3D elements that are distracting on tablet/mobile */
    .energy-vortex {
        left: 50%;
        top: 15%;
        width: 180px;
        height: 180px;
        opacity: 0.4;
    }

    .vortex-core {
        width: 70px;
        height: 70px;
    }

    .ring-1 { width: 90px; height: 90px; }
    .ring-2 { width: 120px; height: 120px; }
    .ring-3 { width: 150px; height: 150px; }
    .ring-4 { width: 180px; height: 180px; }
    .ring-5 { display: none; }

    .crystal-panel {
        display: none;
    }

    .data-flows {
        opacity: 0.3;
    }

    .particles {
        opacity: 0.4;
    }

    /* Login form: switch to single column */
    .login-container {
        max-width: 100%;
        margin: 0 auto;
        padding: 0 1rem;
    }

    .login-form-wrapper {
        padding: 2rem 1.75rem;
        margin: 0;
        grid-template-columns: 1fr;
        gap: 1.5rem;
        max-width: 450px;
        margin: 0 auto;
    }

    .form-header {
        border-right: none;
        border-bottom: 1px solid rgba(242, 101, 34, 0.2);
        padding-right: 0;
        padding-bottom: 1rem;
        text-align: center;
    }

    .form-header h1 {
        font-size: 1.5rem;
        justify-content: center;
    }

    .form-header p {
        font-size: 1rem;
    }

    .form-group input {
        padding: 0.9rem 1rem;
        font-size: 16px; /* Prevents iOS zoom on focus */
    }

    .login-btn {
        padding: 1.1rem 1.5rem;
        font-size: 1rem;
    }

    .form-options {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: 0.75rem;
    }

    .forgot-password {
        font-size: 0.85rem;
    }

    /* Forgot Password Modal */
    .forgot-modal {
        width: 95%;
        max-width: 400px;
    }

    .forgot-modal-header {
        padding: 1.25rem 1.5rem;
    }

    .forgot-modal-header h3 {
        font-size: 1.15rem;
    }

    .forgot-modal-body {
        padding: 1.25rem 1.5rem 1.5rem;
    }

    /* Loading overlay */
    .loading-content p {
        font-size: 1rem;
    }
}

/* ===== MOBILE (max-width: 480px) ===== */
@media (max-width: 480px) {
    .login-header .container {
        padding: 0 12px;
    }

    .header-content {
        padding: 0.5rem 0;
    }

    .logo-img {
        width: 28px;
        height: 28px;
    }

    .logo-text {
        font-size: 1.1rem;
    }

    .header-nav {
        gap: 0.5rem;
    }

    .header-nav .nav-link {
        padding: 0.35rem 0.5rem;
        font-size: 0.8rem;
    }

    .login-main {
        padding: 80px 0.75rem 1.5rem;
    }

    /* Reduce 3D background noise for mobile */
    .energy-vortex {
        top: 10%;
        width: 140px;
        height: 140px;
        opacity: 0.25;
    }

    .vortex-core {
        width: 50px;
        height: 50px;
    }

    .ring-1 { width: 70px; height: 70px; }
    .ring-2 { width: 100px; height: 100px; }
    .ring-3 { width: 130px; height: 130px; }
    .ring-4 { display: none; }

    .data-flows {
        opacity: 0.15;
    }

    .particles {
        opacity: 0.2;
    }

    .login-container {
        padding: 0 0.5rem;
    }

    .login-form-wrapper {
        padding: 1.5rem 1.25rem;
        border-radius: 16px;
        gap: 1.25rem;
    }

    .form-header h1 {
        font-size: 1.3rem;
        gap: 0.5rem;
    }

    .form-header h1 i {
        font-size: 1.4rem;
    }

    .form-header p {
        font-size: 0.9rem;
    }

    .form-group label {
        font-size: 0.9rem;
    }

    .form-group input {
        padding: 0.85rem 1rem;
        font-size: 16px; /* Prevents iOS zoom */
        border-radius: 10px;
    }

    .form-options {
        flex-direction: column;
        gap: 0.75rem;
        align-items: flex-start;
    }

    .remember-me {
        font-size: 0.85rem;
    }

    .forgot-password {
        font-size: 0.85rem;
        align-self: flex-end;
    }

    .login-btn {
        padding: 1rem 1.5rem;
        font-size: 1rem;
        border-radius: 10px;
    }

    .form-footer {
        margin-top: 1rem;
        padding-top: 1rem;
    }

    .form-footer p {
        font-size: 0.9rem;
    }

    /* Forgot Password Modal mobile */
    .forgot-modal {
        width: 95%;
        border-radius: 16px;
    }

    .forgot-modal-header {
        padding: 1rem 1.25rem;
    }

    .forgot-modal-header h3 {
        font-size: 1.1rem;
        gap: 0.5rem;
    }

    .forgot-modal-body {
        padding: 1rem 1.25rem 1.25rem;
    }

    .forgot-modal-body p {
        font-size: 0.9rem;
    }

    .reset-btn {
        padding: 0.85rem 1.25rem;
        font-size: 0.95rem;
    }
}

/* ===== SMALL MOBILE (max-width: 360px) ===== */
@media (max-width: 360px) {
    .login-main {
        padding: 75px 0.5rem 1rem;
    }

    .login-form-wrapper {
        padding: 1.25rem 1rem;
    }

    .form-header h1 {
        font-size: 1.15rem;
    }

    .form-header p {
        font-size: 0.85rem;
    }

    .form-group input {
        padding: 0.75rem 0.85rem;
    }

    .login-btn {
        padding: 0.9rem 1rem;
        font-size: 0.95rem;
    }

    .header-nav .nav-link span {
        display: none;
    }

    .header-nav .nav-link i {
        font-size: 1.1rem;
    }
}

/* ===== LANDSCAPE MOBILE ===== */
@media (max-height: 500px) and (orientation: landscape) {
    .login-main {
        padding-top: 70px;
        padding-bottom: 1rem;
    }

    .energy-vortex {
        display: none;
    }

    .data-flows, .particles {
        display: none;
    }

    .login-form-wrapper {
        padding: 1.25rem 1.5rem;
        grid-template-columns: 140px 1fr;
        gap: 1rem;
    }

    .form-header {
        border-right: 1px solid rgba(242, 101, 34, 0.2);
        border-bottom: none;
        padding-bottom: 0;
        padding-right: 1rem;
    }

    .form-header h1 {
        font-size: 1.2rem;
    }

    .form-group input {
        padding: 0.7rem 0.85rem;
    }

    .login-btn {
        padding: 0.75rem 1.5rem;
        margin-top: 0.5rem;
    }

    .form-footer {
        margin-top: 0.75rem;
        padding-top: 0.75rem;
    }
}

/* ===== TOUCH DEVICE OPTIMIZATIONS ===== */
@media (hover: none) and (pointer: coarse) {
    /* Larger touch targets for mobile */
    .header-nav .nav-link {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .login-btn {
        min-height: 48px;
    }

    .toggle-password {
        min-width: 44px;
        min-height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .remember-me {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .checkmark {
        width: 22px;
        height: 22px;
    }

    .forgot-password {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .close-modal {
        min-width: 44px;
        min-height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .reset-btn {
        min-height: 48px;
    }

    /* Disable hover transforms on touch */
    .login-btn:hover {
        transform: none;
    }

    .header-nav .nav-link:hover {
        transform: none;
    }
}

/* ===== COLOR PRESERVATION FOR MOBILE BROWSERS ===== */
/* Some mobile browsers render gradients differently - ensure consistency */
@supports (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px)) {
    .login-form-wrapper {
        -webkit-backdrop-filter: blur(20px);
        backdrop-filter: blur(20px);
    }
}

/* Fallback for browsers without backdrop-filter */
@supports not (backdrop-filter: blur(1px)) {
    .login-form-wrapper {
        background: rgba(20, 20, 40, 0.95);
    }

    .login-header {
        background: rgba(13, 13, 13, 0.98);
    }

    .forgot-modal {
        background: rgba(30, 30, 50, 0.98);
    }
}

/* Ensure proper rendering of CSS custom properties on all mobile browsers */
@media screen and (max-width: 768px) {
    :root {
        --shadow-glow: rgba(242, 101, 34, 0.3);
        --vortex-glow: rgba(242, 101, 34, 0.6);
    }
}
