/**
 * Tekram Public Styles
 * Plugin URI: https://tekrammarket.com.au
 * Description: Complete market stall management system - vendor applications, bookings, check-ins, and public vendor directory.
 * Version: 6.9.1
 * Plugin URI: https://tekram.com.au
 * Description: Complete market stall management system - vendor applications, bookings, check-ins, and public vendor directory.
 * Author: Gravity Projex
 * Author URI: https://gravityprojex.com
 * Text Domain: tekram.com.au
 * Domain Path: /languages
 * Requires at least: 6.0
 * Requires PHP: 7.4
 * PROPRIETARY SOFTWARE LICENSE
// Copyright (c) 2026 Gravity Projex. All Rights Reserved. 
// Business located in Australia. This software and associated documentation files (the "Software") are proprietary and confidential to Gravity Projex.
// The source code contained or described herein and all documents related to the source code ("Material") and website framework are owned by Gravity Projex or its licensors and authorised representatives. Title to the Material remains with Gravity Projex or its licensors and authorised representatives. The Material contains trade secrets and proprietary and confidential information of Gravity Projex or its licensors and authorised representatives. 
// RESTRICTIONS:
// 1. You may NOT copy, modify, distribute, or sell copies of the Software or coding, scripts or framework
// 2. You may NOT reverse engineer, decompile, or disassemble the Software or coding, scripts or framework
// 3. You may NOT remove any proprietary notices or labels on the Software or coding, scripts or framework
// 4. Unauthorized use may result in legal action and monetary damages
// OWNERSHIP: The Software is owned by Gravity Projex and is protected by Australian copyright laws and international treaty provisions.
// The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Gravity Projex prior express written permission.
// CONTACT: For licensing inquiries: admin@gravityprojex.com
// Website: https://gravityprojex.com
// No license under any patent, copyright, trade secret or other intellectual  property right is granted to or conferred upon you by disclosure or  delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be expressed and approved by Gravity Projex in writing.
// VIOLATIONS:Unauthorized copying or use of this Software will result in:
// - Immediate cease and desist notice
// - Legal action under Australian Copyright Act 1968
// - Monetary damages and legal fees
// * Last Updated: January 2026 *
*/


:root {
    --tekram-primary: #2563eb;
    --tekram-primary-dark: #1d4ed8;
    --tekram-success: #059669;
    --tekram-warning: #d97706;
    --tekram-danger: #dc2626;
    --tekram-gray-50: #f9fafb;
    --tekram-gray-100: #f3f4f6;
    --tekram-gray-200: #e5e7eb;
    --tekram-gray-300: #d1d5db;
    --tekram-gray-500: #6b7280;
    --tekram-gray-700: #374151;
    --tekram-gray-900: #111827;
    --tekram-radius: 8px;
    --tekram-shadow: 0 1px 3px rgba(0,0,0,0.1);
    --tekram-shadow-lg: 0 4px 6px rgba(0,0,0,0.1);
    --tekram-container-max: 1200px;
    --tekram-container-narrow: 800px;
    --tekram-container-wide: 1400px;
}

/* ========================================
   UNIVERSAL CONTAINER STYLES
   These ensure proper width containment
   regardless of theme used
   ======================================== */

/* Main wrapper containers - centered with max-width */
.tekram-form,
.tekram-dashboard,
.tekram-login-form,
.tekram-booking-form,
.tekram-sellers-page,
.tekram-markets-list,
.tekram-application-form {
    max-width: var(--tekram-container-max);
    margin-left: auto;
    margin-right: auto;
    padding: 2rem 1.5rem;
    background: #ffffff;
    box-sizing: border-box;
}

/* Narrower containers for forms and login */
.tekram-login-form {
    max-width: var(--tekram-container-narrow);
    padding: 3rem 2rem;
}

/* Invoice page - narrower for print-friendly layout */
.tekram-invoice {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    padding: 2rem 1.5rem;
    background: #ffffff;
}

/* Manager Portal - full width with sidebar layout (no container constraint) */
.tekram-portal-container {
    /* Portal uses full-width sidebar layout */
    background: #ffffff;
    min-height: 100vh;
}

/* Manager Login - centered narrow form */
.tekram-manager-login {
    max-width: 480px;
    margin: 4rem auto;
    padding: 2.5rem;
    background: #ffffff;
    border-radius: var(--tekram-radius);
    box-shadow: var(--tekram-shadow-lg);
}

/* Ensure white background propagates to nested elements */
.tekram-form *,
.tekram-dashboard *,
.tekram-login-form *,
.tekram-booking-form *,
.tekram-sellers-page *,
.tekram-markets-list *,
.tekram-application-form *,
.tekram-invoice *,
.tekram-manager-login * {
    box-sizing: border-box;
}

/* Responsive container adjustments */
@media (max-width: 768px) {
    .tekram-form,
    .tekram-dashboard,
    .tekram-login-form,
    .tekram-booking-form,
    .tekram-sellers-page,
    .tekram-markets-list,
    .tekram-application-form,
    .tekram-invoice {
        padding: 1.5rem 1rem;
        margin: 0;
        max-width: 100%;
    }
    
    .tekram-manager-login {
        margin: 2rem 1rem;
        max-width: calc(100% - 2rem);
    }
}

/* Base Styles */
.tekram-form,
.tekram-dashboard,
.tekram-sellers-page,
.tekram-markets-list,
.tekram-login-form,
.tekram-booking-form {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--tekram-gray-900);
    line-height: 1.6;
}

/* Form Styles */
.tekram-form-section {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--tekram-gray-200);
}

.tekram-form-section:last-child {
    border-bottom: none;
}

.tekram-form-section h3,
.tekram-form-section h4 {
    margin: 0 0 1rem 0;
    color: var(--tekram-gray-900);
    font-size: 1.125rem;
    font-weight: 600;
}

.tekram-form-row {
    margin-bottom: 1rem;
}

.tekram-form-row label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--tekram-gray-700);
}

.tekram-form-row label .required {
    color: var(--tekram-danger);
}

.tekram-form-row input[type="text"],
.tekram-form-row input[type="email"],
.tekram-form-row input[type="tel"],
.tekram-form-row input[type="url"],
.tekram-form-row input[type="number"],
.tekram-form-row input[type="date"],
.tekram-form-row input[type="time"],
.tekram-form-row input[type="password"],
.tekram-form-row select,
.tekram-form-row textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid var(--tekram-gray-300);
    border-radius: var(--tekram-radius);
    font-size: 1rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.tekram-form-row input:focus,
.tekram-form-row select:focus,
.tekram-form-row textarea:focus {
    outline: none;
    border-color: var(--tekram-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.tekram-form-row input[type="checkbox"] {
    width: auto;
    margin-right: 0.5rem;
}

.tekram-form-row input[type="file"] {
    padding: 0.5rem;
    background: var(--tekram-gray-50);
}

.tekram-form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.tekram-form-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 768px) {
    .tekram-form-grid,
    .tekram-form-grid-3 {
        grid-template-columns: 1fr;
    }
}

.tekram-help-text {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: var(--tekram-gray-500);
}

/* Buttons */
.tekram-button {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: var(--tekram-radius);
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s;
    background: var(--tekram-gray-200);
    color: var(--tekram-gray-700);
}

.tekram-button:hover {
    background: var(--tekram-gray-300);
}

.tekram-button-primary {
    background: var(--tekram-primary);
    color: white;
}

.tekram-button-primary:hover {
    background: var(--tekram-primary-dark);
    color: white;
}

.tekram-button-success {
    background: var(--tekram-success);
    color: white;
}

.tekram-button-success:hover {
    background: #047857;
    color: white;
}

.tekram-button-large {
    padding: 1rem 2rem;
    font-size: 1.125rem;
}

.tekram-button-small {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}

.tekram-button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Status Badges */
.tekram-status {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}

.tekram-status-pending {
    background: #fef3c7;
    color: #92400e;
}

.tekram-status-approved,
.tekram-status-confirmed,
.tekram-status-verified,
.tekram-status-paid {
    background: #d1fae5;
    color: #065f46;
}

.tekram-status-rejected,
.tekram-status-cancelled,
.tekram-status-expired {
    background: #fee2e2;
    color: #991b1b;
}

.tekram-status-unpaid,
.tekram-status-missing {
    background: var(--tekram-gray-100);
    color: var(--tekram-gray-700);
}

.tekram-status-partial {
    background: #dbeafe;
    color: #1e40af;
}

/* Stats Grid */
.tekram-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.tekram-stat-card {
    background: white;
    padding: 1.5rem;
    border-radius: var(--tekram-radius);
    box-shadow: var(--tekram-shadow);
    text-align: center;
}

.tekram-stat-card h3 {
    margin: 0;
    font-size: 2rem;
    font-weight: 700;
    color: var(--tekram-primary);
}

.tekram-stat-card p {
    margin: 0.5rem 0 0 0;
    color: var(--tekram-gray-500);
    font-size: 0.875rem;
}

/* Dashboard */
.tekram-dashboard-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--tekram-gray-200);
}

.tekram-dashboard-header h2 {
    margin: 0;
}

.tekram-dashboard-header .vendor-ref {
    margin: 0.5rem 0 0 0;
    color: var(--tekram-gray-500);
}

.tekram-dashboard-header .vendor-actions {
    display: flex;
    gap: 0.5rem;
}

/* Tabs */
.tekram-dashboard-tabs .tekram-tabs-nav {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--tekram-gray-200);
    margin-bottom: 1.5rem;
}

.tekram-tabs-nav a {
    padding: 1rem 1.5rem;
    text-decoration: none;
    color: var(--tekram-gray-500);
    font-weight: 500;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: all 0.2s;
}

.tekram-tabs-nav a:hover,
.tekram-tabs-nav a.active {
    color: var(--tekram-primary);
    border-bottom-color: var(--tekram-primary);
}

.tekram-tab-content {
    display: none;
}

.tekram-tab-content.active {
    display: block;
}

/* Booking Cards */
.tekram-bookings-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.tekram-booking-card {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem;
    background: white;
    border-radius: var(--tekram-radius);
    box-shadow: var(--tekram-shadow);
}

.tekram-booking-card .booking-info {
    flex: 1;
}

.tekram-booking-card .booking-info h4 {
    margin: 0 0 0.5rem 0;
}

.tekram-booking-card .booking-info p {
    margin: 0;
    color: var(--tekram-gray-500);
    font-size: 0.875rem;
}

.tekram-booking-card .booking-status {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.tekram-booking-card .booking-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
}

.tekram-booking-card .booking-ref {
    font-family: monospace;
    color: var(--tekram-gray-500);
}

.tekram-booking-card .booking-amount {
    font-weight: 600;
    font-size: 1.125rem;
}

@media (max-width: 768px) {
    .tekram-booking-card {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ============================================
   MARKETS LIST — Redesigned V24.2
   ============================================ */

.tekram-markets-list h2 {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--tekram-gray-900)!important;
    margin: 0 0 1.75rem 0;
    letter-spacing: -0.02em;
}

.tekram-markets-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
}

.tekram-market-card {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.07);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0,0,0,0.02);
    transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.22s ease;
    position: relative;
}

.tekram-market-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.13), 0 0 0 1px rgba(0,0,0,0.04);
}

/* Card header — date + gradient */
.tekram-market-card .market-card-header {
    position: relative;
    background: linear-gradient(135deg, var(--tekram-primary) 0%, #1e40af 100%);
    padding: 1.5rem 1.75rem 1.25rem;
    overflow: hidden;
}

/* Decorative circle background element */
.tekram-market-card .market-card-header::before {
    content: '';
    position: absolute;
    top: -30px;
    right: -30px;
    width: 120px;
    height: 120px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 50%;
}

.tekram-market-card .market-card-header::after {
    content: '';
    position: absolute;
    bottom: -20px;
    right: 30px;
    width: 70px;
    height: 70px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 50%;
}

.tekram-market-card .market-date-display {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
    position: relative;
    z-index: 1;
}

.tekram-market-card .market-date-display .date-number {
    font-size: 3.25rem;
    font-weight: 800;
    color: #ffffff !important;;
    line-height: 1;
    letter-spacing: -0.03em;
}

.tekram-market-card .market-date-display .date-meta {
    display: flex;
    flex-direction: column;
    padding-bottom: 0.25rem;
}

.tekram-market-card .market-date-display .date-month {
    font-size: 0.85rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.9) !important;;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    line-height: 1.1;
}

.tekram-market-card .market-date-display .date-year {
    font-size: 0.75rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.65) !important;;
    line-height: 1.2;
}

.tekram-market-card .market-day-label {
    font-size: 0.8rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.75) !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    position: relative;
    z-index: 1;
}

.tekram-market-card .market-days-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.25rem 0.6rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.95) !important;;
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.tekram-market-card .market-days-badge.today {
    background: #16a34a;
    color: #ffffff !important;
    border-color: #15803d;
}

.tekram-market-card .market-days-badge.soon {
    background: rgba(251, 191, 36, 0.25);
    color: #fef3c7 !important;;
    border-color: rgba(251, 191, 36, 0.35);
}

/* Card body */
.tekram-market-card .market-card-body {
    flex: 1;
    padding: 1.25rem 1.75rem 1rem;
}

.tekram-market-card .market-name {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--tekram-gray-900);
    margin: 0 0 0.75rem 0;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.tekram-market-card .market-details {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.tekram-market-card .market-detail-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.82rem;
    color: var(--tekram-gray-500);
}

.tekram-market-card .market-detail-row svg {
    flex-shrink: 0;
    opacity: 0.6;
}

/* Card footer — CTA */
.tekram-market-card .market-card-footer {
    padding: 0 1.75rem 1.5rem;
}

.tekram-market-card .market-cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.65rem 1rem;
    background: var(--tekram-gray-50);
    border: 1.5px solid var(--tekram-gray-200);
    border-radius: 10px;
    color: var(--tekram-primary);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
    letter-spacing: 0.01em;
}

.tekram-market-card .market-cta-btn:hover {
    background: var(--tekram-primary);
    border-color: var(--tekram-primary);
    color: #ffffff;
    transform: none;
}

.tekram-market-card .market-cta-btn svg {
    transition: transform 0.18s ease;
}

.tekram-market-card .market-cta-btn:hover svg {
    transform: translateX(3px);
}


/* ============================================
   SELLERS GRID — Redesigned V24.2
   ============================================ */

.tekram-sellers-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}

.tekram-seller-card {
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.07);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.22s ease;
    display: flex;
    flex-direction: column;
}

.tekram-seller-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.11);
}

/* Seller image / avatar area */
.tekram-seller-card .seller-image {
    height: 190px;
    overflow: hidden;
    position: relative;
    background: var(--tekram-gray-100);
}

.tekram-seller-card .seller-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.tekram-seller-card:hover .seller-image img {
    transform: scale(1.04);
}

/* Avatar fallback — initials circle */
.tekram-seller-card .seller-avatar-fallback {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.9);
    letter-spacing: -0.02em;
    user-select: none;
}

/* Avatar colour variants — cycling palette */
.tekram-seller-card .seller-avatar-fallback[data-color="0"] { background: linear-gradient(135deg, #3b82f6, #1d4ed8); }
.tekram-seller-card .seller-avatar-fallback[data-color="1"] { background: linear-gradient(135deg, #8b5cf6, #6d28d9); }
.tekram-seller-card .seller-avatar-fallback[data-color="2"] { background: linear-gradient(135deg, #ec4899, #be185d); }
.tekram-seller-card .seller-avatar-fallback[data-color="3"] { background: linear-gradient(135deg, #f59e0b, #d97706); }
.tekram-seller-card .seller-avatar-fallback[data-color="4"] { background: linear-gradient(135deg, #10b981, #059669); }
.tekram-seller-card .seller-avatar-fallback[data-color="5"] { background: linear-gradient(135deg, #ef4444, #dc2626); }
.tekram-seller-card .seller-avatar-fallback[data-color="6"] { background: linear-gradient(135deg, #14b8a6, #0f766e); }
.tekram-seller-card .seller-avatar-fallback[data-color="7"] { background: linear-gradient(135deg, #f97316, #ea580c); }

/* Seller card content */
.tekram-seller-card .seller-content {
    padding: 1.2rem 1.4rem 1.4rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.tekram-seller-card .seller-name {
    margin: 0 0 0.6rem 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--tekram-gray-900);
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.tekram-seller-card .seller-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.tekram-seller-card .seller-category {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* Category colour palette */
.tkm-cat-food_beverage,
.tkm-cat-take_home_food    { background: #fef3c7; color: #92400e; }
.tkm-cat-fresh_produce     { background: #dcfce7; color: #166534; }
.tkm-cat-health_wellbeing  { background: #d1fae5; color: #065f46; }
.tkm-cat-arts_crafts       { background: #ede9fe; color: #5b21b6; }
.tkm-cat-jewellery         { background: #fce7f3; color: #9d174d; }
.tkm-cat-fashion_accessories { background: #e0f2fe; color: #075985; }
.tkm-cat-homewares         { background: #fff7ed; color: #9a3412; }
.tkm-cat-promotional_charity { background: #f0fdf4; color: #14532d; }
.tkm-cat-default           { background: var(--tekram-gray-100); color: var(--tekram-gray-700); }

.tekram-seller-card .seller-description {
    color: var(--tekram-gray-500);
    font-size: 0.82rem;
    line-height: 1.55;
    margin-bottom: 0.75rem;
    flex: 1;
}

.tekram-seller-card .seller-eco-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    background: #d1fae5;
    color: #065f46;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    width: fit-content;
}

/* Social links row */
.tekram-seller-card .seller-links {
    display: flex;
    gap: 0.4rem;
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid var(--tekram-gray-100);
}

.tekram-seller-card .seller-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--tekram-gray-50);
    border: 1px solid var(--tekram-gray-200);
    border-radius: 8px;
    color: var(--tekram-gray-500);
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.tekram-seller-card .seller-link:hover {
    background: var(--tekram-primary);
    border-color: var(--tekram-primary);
    color: #ffffff;
}

.tekram-seller-card .seller-link svg {
    width: 15px;
    height: 15px;
}

/* Login Form */
.tekram-login-form {
    max-width: 400px;
    margin: 2rem auto;
    padding: 2rem;
    background: white;
    border-radius: var(--tekram-radius);
    box-shadow: var(--tekram-shadow);
}

.tekram-login-form h2 {
    margin: 0 0 0.5rem 0;
    text-align: center;
}

.tekram-login-form > p {
    text-align: center;
    color: var(--tekram-gray-500);
    margin-bottom: 1.5rem;
}

.tekram-login-footer {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--tekram-gray-200);
    text-align: center;
}

.tekram-login-footer p {
    margin: 0;
    color: var(--tekram-gray-500);
}

/* Booking Summary */
.tekram-booking-summary {
    background: var(--tekram-gray-50);
    padding: 1.5rem;
    border-radius: var(--tekram-radius);
    margin-bottom: 1.5rem;
}

.tekram-booking-summary h3 {
    margin: 0 0 1rem 0;
}

.tekram-booking-summary .summary-row {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--tekram-gray-200);
}

.tekram-booking-summary .summary-row.total {
    border-bottom: none;
    font-weight: 600;
    font-size: 1.125rem;
    padding-top: 1rem;
}

/* Empty State */
.tekram-empty-state {
    text-align: center;
    padding: 3rem;
    background: var(--tekram-gray-50);
    border-radius: var(--tekram-radius);
}

.tekram-empty-state p {
    color: var(--tekram-gray-500);
    margin-bottom: 1rem;
}

/* Messages */
.tekram-form-message {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: var(--tekram-radius);
    display: none;
}

.tekram-form-message.success {
    display: block;
    background: #d1fae5;
    color: #065f46;
}

.tekram-form-message.error {
    display: block;
    background: #fee2e2;
    color: #991b1b;
}

/* Notices */
.tekram-notice {
    padding: 1rem 1.5rem;
    border-radius: var(--tekram-radius);
    margin-bottom: 1.5rem;
}

.tekram-notice-error {
    background: #fee2e2;
    color: #991b1b;
}

.tekram-notice-warning {
    background: #fef3c7;
    color: #92400e;
}

.tekram-notice-success {
    background: #d1fae5;
    color: #065f46;
}

/* Market Header — Event Banner */
.tekram-market-header {
    background: linear-gradient(135deg, var(--tekram-primary) 0%, #1e40af 100%);
    padding: 2rem 2.5rem;
    border-radius: 16px;
    margin-bottom: 2rem;
    position: relative;
    overflow: hidden;
}

.tekram-market-header::before {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 180px;
    height: 180px;
    background: rgba(255,255,255,0.07);
    border-radius: 50%;
}

.tekram-market-header::after {
    content: '';
    position: absolute;
    bottom: -25px;
    right: 80px;
    width: 100px;
    height: 100px;
    background: rgba(255,255,255,0.05);
    border-radius: 50%;
}

.tekram-market-header h3 {
    margin: 0 0 0.4rem 0;
    font-size: 1.4rem;
    font-weight: 700;
    color: #ffffff !important;
    position: relative;
    z-index: 1;
    letter-spacing: -0.02em;
}

.tekram-market-header p {
    margin: 0.2rem 0;
    color: rgba(255,255,255,0.75) !important;
    font-size: 0.9rem;
    position: relative;
    z-index: 1;
}

.tekram-market-header .market-date {
    color: rgba(255,255,255,0.95) !important;
    font-weight: 600;
    font-size: 1rem;
}

/* Filter — styled select */
.tekram-sellers-filters {
    margin-bottom: 2rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tekram-sellers-filters label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--tekram-gray-700) !important;;
    white-space: nowrap;
}

.tekram-sellers-filters select {
    appearance: none;
    -webkit-appearance: none;
    padding: 0.55rem 2.5rem 0.55rem 0.9rem;
    border: 1.5px solid var(--tekram-gray-200);
    border-radius: 10px;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--tekram-gray-900) !important;;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    min-width: 260px;
}

.tekram-sellers-filters select:focus {
    outline: none;
    border-color: var(--tekram-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

/* Empty State — upgraded */
.tekram-empty-state {
    text-align: center;
    padding: 4rem 2rem;
    background: var(--tekram-gray-50);
    border-radius: 16px;
    border: 1.5px dashed var(--tekram-gray-200);
}

.tekram-empty-state p {
    color: var(--tekram-gray-500) !important;;
    margin-bottom: 1rem;
    font-size: 0.95rem;
}

/* Documents List */
.tekram-documents-list {
    margin-bottom: 2rem;
}

.tekram-document-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid var(--tekram-gray-200);
}

.tekram-document-row:last-child {
    border-bottom: none;
}

.tekram-document-row .document-info h4 {
    margin: 0;
    font-size: 1rem;
}

.tekram-document-row .document-info p {
    margin: 0.25rem 0 0 0;
    font-size: 0.875rem;
    color: var(--tekram-gray-500);
}

.tekram-document-row .document-status {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Availability Info */
.tekram-availability-info {
    margin-top: 0.5rem;
    padding: 0.5rem 1rem;
    border-radius: var(--tekram-radius);
    font-size: 0.875rem;
}

.tekram-availability-info.available {
    background: #d1fae5;
    color: #065f46;
}

.tekram-availability-info.unavailable {
    background: #fee2e2;
    color: #991b1b;
}

/* Loading */
.tekram-loading {
    opacity: 0.5;
    pointer-events: none;
}

/* ========================================
   MOBILE RESPONSIVE STYLES
   ======================================== */

/* Manager Portal Mobile Styles */
@media (max-width: 768px) {
    /* Mobile Navigation Toggle */
    .mobile-nav-toggle {
        position: fixed;
        top: 10px;
        left: 10px;
        z-index: 1001;
        background: #1e293b;
        color: white;
        border: none;
        padding: 12px 16px;
        border-radius: 8px;
        font-size: 20px;
        cursor: pointer;
        box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    }
    
    .mobile-nav-overlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0,0,0,0.5);
        z-index: 999;
    }
    
    .mobile-nav-overlay.active {
        display: block;
    }
    
    /* Sidebar Hidden by Default on Mobile */
    .tekram-portal-sidebar {
        position: fixed;
        left: -280px;
        top: 0;
        bottom: 0;
        width: 260px;
        z-index: 1000;
        transition: left 0.3s ease;
        overflow-y: auto;
    }
    
    .tekram-portal-sidebar.active {
        left: 0;
    }
    
    /* Portal Logo - Fix floating issue */
    .tekram-portal-logo {
        padding: 20px 15px;
        text-align: center;
    }
    
    .tekram-portal-logo h2 {
        font-size: 1.25rem;
        margin: 0;
    }
    
    .tekram-portal-logo span {
        font-size: 0.75rem;
    }
    
    /* Nav Items - Better spacing for touch */
    .tekram-portal-nav a {
        padding: 14px 15px;
        display: flex;
        align-items: center;
        gap: 12px;
    }
    
    .tekram-portal-nav .nav-icon {
        font-size: 1.25rem;
        width: 28px;
        text-align: center;
    }
    
    .tekram-portal-nav .nav-text {
        font-size: 0.9rem;
    }
    
    /* Main Content - Full Width on Mobile */
    .tekram-portal-main {
        margin-left: 0 !important;
        padding: 70px 15px 100px 15px !important;
        width: 100% !important;
    }
    
    /* Portal Header */
    .tekram-portal-header {
        flex-direction: column;
        gap: 15px;
        text-align: center;
    }
    
    .tekram-portal-header h1 {
        font-size: 1.5rem;
    }
    
    .tekram-portal-header .header-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        justify-content: center;
    }
    
    .tekram-portal-header .header-actions .tekram-btn {
        font-size: 0.8rem;
        padding: 8px 12px;
    }
    
    /* Stats Cards - 2 columns on mobile, scroll if needed */
    .tekram-portal-stats {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
        overflow-x: visible !important;
    }
    
    .tekram-portal-stats .stat-card {
        padding: 12px 10px;
        min-width: 0;
    }
    
    .tekram-portal-stats .stat-card .stat-icon {
        font-size: 1.5rem;
        margin-bottom: 5px;
    }
    
    .tekram-portal-stats .stat-card h3 {
        font-size: 1.1rem;
    }
    
    .tekram-portal-stats .stat-card p {
        font-size: 0.7rem;
    }
    
    .tekram-portal-stats .stat-card small {
        font-size: 0.65rem;
    }
    
    /* Filters - Stack vertically */
    .tekram-portal-filters {
        flex-direction: column;
        gap: 10px;
    }
    
    .tekram-portal-filters .filter-form {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    
    .tekram-portal-filters .filter-group {
        width: 100%;
    }
    
    .tekram-portal-filters select {
        width: 100%;
        padding: 10px;
    }
    
    /* Tables - Horizontal scroll */
    .tekram-portal-card {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .tekram-portal-table {
        min-width: 600px;
        font-size: 0.85rem;
    }
    
    .tekram-portal-table th,
    .tekram-portal-table td {
        padding: 10px 8px;
    }
    
    /* Mobile Bottom Navigation */
    .tekram-mobile-nav {
        display: flex !important;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: white;
        border-top: 1px solid #e5e7eb;
        padding: 8px 0;
        z-index: 100;
        justify-content: space-around;
        box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
    }
    
    .tekram-mobile-nav a {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-decoration: none;
        color: #6b7280;
        font-size: 0.7rem;
        padding: 5px 10px;
    }
    
    .tekram-mobile-nav a.active {
        color: #2563eb;
    }
    
    .tekram-mobile-nav a span:first-child {
        font-size: 1.25rem;
        margin-bottom: 2px;
    }
    
    /* GST Summary Cards */
    .gst-summary-grid {
        grid-template-columns: 1fr !important;
    }
    
    /* Portal Grid */
    .tekram-portal-grid {
        grid-template-columns: 1fr !important;
    }
    
    /* Vendor Dashboard Mobile */
    .tekram-dashboard-header {
        flex-direction: column;
        text-align: center;
        gap: 1rem;
    }
    
    .tekram-tabs-nav {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
        justify-content: flex-start;
    }
    
    .tekram-tabs-nav a {
        padding: 0.75rem 1rem;
        white-space: nowrap;
        flex-shrink: 0;
    }
    
    /* Booking Form Mobile */
    .tekram-booking-form {
        padding: 15px;
    }
    
    .tekram-form-grid {
        grid-template-columns: 1fr;
    }
    
    .tekram-booking-summary {
        padding: 15px;
    }
    
    /* Application Form Mobile */
    .tekram-form {
        padding: 15px;
    }
    
    .tekram-form-section {
        padding-bottom: 1.5rem;
        margin-bottom: 1.5rem;
    }
    
    /* Market Cards — already vertical, collapse grid to single column */
    .tekram-markets-grid,
    .tekram-sellers-grid {
        grid-template-columns: 1fr;
    }

    .tekram-market-card .market-card-header {
        padding: 1.25rem 1.5rem 1rem;
    }

    .tekram-market-card .market-date-display .date-number {
        font-size: 2.5rem;
    }

    .tekram-sellers-filters {
        flex-direction: column;
        align-items: flex-start;
    }

    .tekram-sellers-filters select {
        min-width: 100%;
    }
}

/* Small Mobile (under 480px) */
@media (max-width: 480px) {
    .tekram-portal-stats {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }
    
    .tekram-portal-stats .stat-card {
        padding: 10px 8px;
    }
    
    .tekram-portal-stats .stat-card h3 {
        font-size: 1rem;
    }
    
    .tekram-portal-stats .stat-card p {
        font-size: 0.65rem;
        line-height: 1.2;
    }
    
    .tekram-portal-header h1 {
        font-size: 1.25rem;
    }
    
    .tekram-btn {
        padding: 8px 12px;
        font-size: 0.8rem;
    }
}

/* Desktop - Hide mobile elements */
@media (min-width: 769px) {
    .mobile-nav-toggle,
    .mobile-nav-overlay,
    .tekram-mobile-nav {
        display: none !important;
    }
}
