/* Mobile Responsive Styles - AI Tool Review Platform */

/* Base responsive settings */
* {
    box-sizing: border-box;
}

html {
    font-size: 16px;
}

/* Tablet and below */
@media (max-width: 1024px) {
    .container {
        padding: 0 1rem;
    }
    
    .tool-grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
        gap: 1rem;
    }
    
    .category-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }
}

/* Mobile phones */
@media (max-width: 768px) {
    /* Header */
    .header-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
        padding: 0.5rem 0;
    }
    
    .logo {
        font-size: 1.25rem;
    }
    
    .nav {
        flex-wrap: wrap;
        gap: 0.5rem;
        width: 100%;
    }
    
    .nav a {
        font-size: 0.8rem;
        padding: 0.25rem 0.5rem;
    }
    
    .btn-outline {
        padding: 0.25rem 0.75rem;
        font-size: 0.8rem;
    }
    
    /* Hero */
    .hero {
        padding: 2rem 0 1.5rem;
    }
    
    .hero h1 {
        font-size: 1.75rem;
    }
    
    .hero p {
        font-size: 1rem;
        padding: 0 0.5rem;
    }
    
    .search-box {
        flex-direction: column;
        max-width: 100%;
        padding: 0 0.5rem;
    }
    
    .search-box input {
        font-size: 0.9rem;
        padding: 0.6rem;
    }
    
    .search-box button {
        padding: 0.6rem;
        font-size: 0.9rem;
        width: 100%;
    }
    
    /* Sections */
    .section {
        padding: 1.5rem 0;
    }
    
    .section-title {
        font-size: 1.4rem;
        margin-bottom: 1rem;
    }
    
    /* Tool Grid */
    .tool-grid {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
    
    .tool-card {
        padding: 1rem;
    }
    
    .tool-card h3 {
        font-size: 1rem;
    }
    
    .tool-card .description {
        font-size: 0.8rem;
        -webkit-line-clamp: 2;
    }
    
    .tool-card .meta {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    
    .tool-card .btn-group {
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .tool-card .btn-group .btn {
        text-align: center;
        padding: 0.5rem;
        font-size: 0.8rem;
    }
    
    /* Categories */
    .category-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }
    
    .category-card {
        padding: 1rem;
    }
    
    .category-card .icon {
        font-size: 1.5rem;
    }
    
    .category-card .name {
        font-size: 0.85rem;
    }
    
    /* Tool Detail Page */
    .tool-detail {
        padding: 1rem 0;
    }
    
    .tool-header h1 {
        font-size: 1.5rem !important;
    }
    
    .tool-content {
        grid-template-columns: 1fr !important;
        gap: 1rem;
    }
    
    .tool-sidebar {
        position: relative !important;
        top: 0 !important;
    }
    
    .sidebar-card {
        padding: 1rem;
    }
    
    .tool-description {
        font-size: 0.9rem;
    }
    
    .tool-description h2 {
        font-size: 1.2rem;
        margin-top: 1rem;
    }
    
    /* Reviews Section */
    .review-summary {
        flex-direction: column !important;
        gap: 1rem;
    }
    
    .review-summary .avg-rating {
        font-size: 2.5rem;
    }
    
    .review-form .form-row {
        grid-template-columns: 1fr !important;
        gap: 0.5rem;
    }
    
    .review-item {
        padding: 0.75rem;
    }
    
    .review-item .review-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
    
    .review-item .review-rating {
        font-size: 0.9rem;
    }
    
    .review-item .review-content {
        font-size: 0.85rem;
    }
    
    .review-form {
        padding: 1rem;
    }
    
    .review-form .rating-select label {
        font-size: 1.5rem !important;
    }
    
    .review-form button {
        width: 100%;
        padding: 0.6rem;
        font-size: 0.9rem;
    }
    
    /* Related Tools */
    .related-grid {
        grid-template-columns: 1fr !important;
        gap: 0.75rem;
    }
    
    .related-card {
        padding: 0.75rem;
    }
    
    /* Blog */
    .blog-layout {
        grid-template-columns: 1fr !important;
        gap: 1rem;
    }
    
    .blog-grid {
        grid-template-columns: 1fr !important;
        gap: 0.75rem;
    }
    
    .blog-card {
        /* Keep padding on .blog-card-body; media is full-bleed */
        padding: 0;
    }
    
    .blog-card h3 {
        font-size: 1rem;
    }
    
    .blog-card .excerpt {
        font-size: 0.85rem;
    }
    
    /* Sidebar */
    .sidebar-card {
        padding: 1rem;
    }
    
    .sidebar-card ul li a {
        font-size: 0.85rem;
    }
    
    /* Pagination */
    .pagination {
        gap: 0.25rem;
        padding: 1rem 0;
        flex-wrap: wrap;
    }
    
    .pagination a, .pagination span {
        padding: 0.3rem 0.6rem;
        font-size: 0.8rem;
    }
    
    /* Admin */
    .admin-container {
        flex-direction: column !important;
    }
    
    .sidebar {
        width: 100% !important;
        min-height: auto !important;
        padding: 0.5rem !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(0, 242, 255, 0.2) !important;
    }
    
    .sidebar .brand {
        font-size: 1.25rem;
        padding: 0.5rem 0;
    }
    
    .sidebar .nav-item {
        padding: 0.4rem 0.75rem;
        font-size: 0.8rem;
    }
    
    .content {
        padding: 1rem !important;
    }
    
    .stats {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.5rem;
    }
    
    .stat-card {
        padding: 0.75rem;
    }
    
    .stat-card h3 {
        font-size: 1.2rem;
    }
    
    .stat-card p {
        font-size: 0.7rem;
    }
    
    .stat-card small {
        font-size: 0.6rem;
    }
    
    .stat-grid-4 {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.5rem;
    }
    
    /* Admin Tables */
    .table-responsive {
        overflow-x: auto;
        margin: 0 -0.5rem;
        padding: 0 0.5rem;
    }
    
    table {
        font-size: 0.75rem;
        min-width: 600px;
    }
    
    th, td {
        padding: 0.4rem 0.5rem !important;
    }
    
    .header {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 0.5rem;
    }
    
    .header h1 {
        font-size: 1.2rem;
    }
    
    .header a {
        font-size: 0.8rem;
        padding: 0.3rem 0.75rem;
    }
    
    /* Admin Forms */
    .form-card {
        padding: 1rem !important;
    }
    
    .form-row {
        grid-template-columns: 1fr !important;
        gap: 0.5rem;
    }
    
    .form-group {
        margin-bottom: 0.75rem;
    }
    
    .form-group label {
        font-size: 0.8rem;
    }
    
    .form-control, input, select, textarea {
        padding: 0.5rem !important;
        font-size: 0.85rem !important;
    }
    
    .form-actions {
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .form-actions button, .form-actions a {
        width: 100%;
        text-align: center;
        padding: 0.6rem !important;
        font-size: 0.85rem;
    }
    
    /* Filters */
    .filters {
        flex-wrap: wrap;
        gap: 0.25rem;
    }
    
    .filters a {
        padding: 0.25rem 0.6rem;
        font-size: 0.75rem;
    }
    
    /* Quick Actions */
    .quick-actions {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.5rem;
    }
    
    .quick-action {
        padding: 0.75rem;
        font-size: 0.8rem;
    }
    
    .quick-action .icon {
        font-size: 1.2rem;
    }
    
    /* Footer */
    .footer {
        padding: 1rem 0;
        font-size: 0.75rem;
    }
    
    /* Blog Admin */
    .blog-grid {
        grid-template-columns: 1fr !important;
    }
    
    /* Buttons */
    .btn {
        padding: 0.3rem 0.6rem !important;
        font-size: 0.7rem !important;
    }
    
    .btn-sm {
        padding: 0.2rem 0.5rem !important;
        font-size: 0.65rem !important;
    }
    
    .btn-visit {
        padding: 0.6rem !important;
        font-size: 0.85rem !important;
    }
}

/* Small phones */
@media (max-width: 480px) {
    .category-grid {
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem;
    }
    
    .category-card {
        padding: 0.75rem;
    }
    
    .category-card .icon {
        font-size: 1.25rem;
    }
    
    .category-card .name {
        font-size: 0.75rem;
    }
    
    .category-card .count {
        font-size: 0.6rem;
    }
    
    .stats {
        grid-template-columns: 1fr 1fr !important;
        gap: 0.5rem;
    }
    
    .stat-card h3 {
        font-size: 1rem;
    }
    
    .quick-actions {
        grid-template-columns: 1fr 1fr !important;
        gap: 0.5rem;
    }
    
    .quick-action {
        padding: 0.5rem;
        font-size: 0.7rem;
    }
    
    .quick-action .icon {
        font-size: 1rem;
    }
    
    .nav a {
        font-size: 0.7rem;
        padding: 0.2rem 0.4rem;
    }
    
    .btn-outline {
        padding: 0.2rem 0.5rem;
        font-size: 0.7rem;
    }
    
    .hero h1 {
        font-size: 1.4rem;
    }
    
    .section-title {
        font-size: 1.2rem;
    }
    
    .tool-card h3 {
        font-size: 0.9rem;
    }
    
    .blog-card h3 {
        font-size: 0.9rem;
    }
}

/* Admin mobile nav — off-canvas drawer (aligned with admin-shell.css) */
@media (max-width: 768px) {
    .admin-container {
        flex-direction: column !important;
    }

    .sidebar,
    .admin-sidebar {
        position: fixed !important;
        left: -300px !important;
        top: 0 !important;
        width: 280px !important;
        max-width: 85vw !important;
        height: 100vh !important;
        min-height: 100vh !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        gap: 0 !important;
        padding: 1rem !important;
        border-right: 1px solid rgba(0, 242, 255, 0.2) !important;
        border-bottom: none !important;
        background: rgba(7, 10, 15, 0.98) !important;
        transition: left 0.3s ease !important;
        z-index: 200 !important;
        -webkit-overflow-scrolling: touch;
    }

    .sidebar.open,
    .admin-sidebar.open {
        left: 0 !important;
    }

    .sidebar .brand,
    .admin-sidebar .brand,
    .admin-sidebar .sidebar-brand {
        flex: 0 0 auto !important;
        margin-bottom: 1rem !important;
        padding: 0.5rem 0 1rem !important;
        border-bottom: 1px solid rgba(0, 242, 255, 0.1) !important;
        white-space: normal !important;
    }

    .sidebar .nav-item,
    .sidebar .logout,
    .admin-sidebar .nav-item {
        display: flex !important;
        width: 100% !important;
        flex: 0 0 auto !important;
        white-space: normal !important;
        margin: 0 0 0.25rem !important;
        padding: 0.7rem 0.85rem !important;
        box-sizing: border-box !important;
    }

    .sidebar .logout {
        margin-top: auto !important;
        padding-top: 1rem !important;
        border-top: 1px solid rgba(0, 242, 255, 0.1) !important;
    }

    .admin-sidebar-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.55);
        z-index: 150;
    }

    .admin-sidebar-overlay.active {
        display: block;
    }

    .menu-toggle,
    #navToggle {
        display: inline-flex !important;
    }

    .admin-header {
        padding: 0.5rem 1rem !important;
        gap: 0.75rem;
    }

    .admin-header h1 {
        font-size: 1rem !important;
    }
}
/* ---- Global mobile polish (public + admin) ---- */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
    /* Public navbar / header toggle */
    .nav-toggle {
        display: inline-flex !important;
        margin-left: auto;
    }

    .header .header-content.has-nav-toggle,
    .header .header-content {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 0.5rem !important;
    }

    .header .nav {
        display: none !important;
        width: 100% !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.35rem !important;
    }

    .header .nav.is-open,
    .header.nav-open .nav {
        display: flex !important;
    }

    .header .nav a {
        display: block !important;
        padding: 0.6rem 0.75rem !important;
        border-radius: 8px !important;
        background: rgba(15, 23, 42, 0.55) !important;
        white-space: normal !important;
    }

    .navbar .nav-links {
        display: none;
        width: 100%;
        flex-direction: column;
        gap: 0.35rem;
    }

    .navbar .nav-links.is-open,
    .navbar.nav-open .nav-links {
        display: flex;
    }

    .navbar .nav-container {
        flex-wrap: wrap;
        align-items: center;
        gap: 0.75rem;
    }

    /* Grids / cards */
    .tool-grid,
    .category-grid,
    .blog-grid,
    .related-grid,
    .featured-tools .tool-grid {
        grid-template-columns: 1fr !important;
    }

    .blog-layout,
    .post-layout,
    .tool-content,
    .search-layout {
        grid-template-columns: 1fr !important;
        display: grid !important;
    }

    /* Search */
    .search-box,
    .search-form,
    form.search {
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .search-box input,
    .search-box button,
    .search-form input,
    .search-form button {
        width: 100% !important;
    }

    /* Forms / buttons */
    .form-card,
    .auth-card,
    .glass-card {
        width: 100% !important;
        max-width: 100% !important;
    }

    .form-row,
    .form-actions,
    .btn-group,
    .tool-card .btn-group {
        flex-direction: column !important;
        grid-template-columns: 1fr !important;
    }

    .form-actions button,
    .form-actions a,
    .form-actions .btn,
    .btn-group .btn,
    .tool-card .btn-group .btn,
    .btn-login {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="url"],
    input[type="number"],
    input[type="search"],
    select,
    textarea,
    .form-control {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Tables */
    .table-responsive {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .table-responsive table {
        min-width: 560px;
    }
}
