/* public/assets/css/style.css */
/* Modern SaaS premium styling framework supplemental classes */

:root {
    --edu-primary-glow: rgba(91, 77, 255, 0.15);
    --edu-teal-glow: rgba(20, 184, 166, 0.15);
}

body {
    background-color: #F1F5F9 !important;
    color: #0f172a;
    font-family: 'Outfit', 'Nunito', sans-serif;
    animation: premiumFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes premiumFadeIn {
    from { 
        opacity: 0; 
        transform: translateY(8px); 
    }
    to { 
        opacity: 1; 
        transform: none; 
    }
}

/* Premium Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(15, 23, 42, 0.08);
    border-radius: 99px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(91, 77, 255, 0.3);
}

/* Cards & Containers Redesign Override */
.bg-white.shadow-sm, 
.bg-white.shadow-md,
.bg-white.shadow-lg,
.premium-card {
    background-color: #ffffff !important;
    border: 2px solid rgba(91, 77, 255, 0.16) !important;
    box-shadow: 0 4px 30px rgba(91, 77, 255, 0.015), 
                0 1px 3px rgba(15, 23, 42, 0.02) !important;
    border-radius: 24px !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.bg-white.shadow-sm:hover, 
.bg-white.shadow-md:hover,
.premium-card:hover {
    transform: translateY(-2px);
    border-color: rgba(91, 77, 255, 0.35) !important;
    box-shadow: 0 10px 40px rgba(91, 77, 255, 0.06), 
                0 2px 8px rgba(91, 77, 255, 0.03) !important;
}

/* Glassmorphism overlays */
.glass-overlay {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 2px solid rgba(91, 77, 255, 0.25) !important;
}

.glass-overlay-dark {
    background: rgba(15, 23, 42, 0.8);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Micro-interactions & active states */
.glow-on-hover:hover {
    box-shadow: 0 0 20px var(--edu-primary-glow);
}

.active-nav-pill {
    background: rgba(91, 77, 255, 0.08) !important;
    color: #5B4DFF !important;
    font-weight: 600 !important;
    border: 2px solid rgba(91, 77, 255, 0.25) !important;
}

.active-nav-pill svg {
    color: #5B4DFF !important;
}

/* Input Fields styling overrides */
input[type="text"], 
input[type="email"], 
input[type="password"], 
input[type="tel"], 
input[type="number"], 
input[type="date"], 
input[type="time"], 
select, 
textarea {
    border: 2px solid rgba(91, 77, 255, 0.22) !important;
    background-color: #ffffff !important;
    border-radius: 12px !important;
    padding: 10px 14px !important;
    font-size: 0.875rem !important;
    color: #0F172A !important;
    font-family: 'Outfit', sans-serif !important;
    transition: all 0.2s ease-in-out !important;
    box-shadow: 0 1px 2px rgba(91, 77, 255, 0.01) !important;
}

input:focus, 
select:focus, 
textarea:focus {
    border-color: #5B4DFF !important;
    box-shadow: 0 0 0 3px rgba(91, 77, 255, 0.12) !important;
    outline: none !important;
}

/* Table overrides */
table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

table thead th {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    background-color: #f8fafc !important;
    border-bottom: 2px solid rgba(91, 77, 255, 0.18) !important;
    padding: 14px 20px !important;
}

table tbody td {
    padding: 14.5px 20px !important;
    font-size: 0.875rem !important;
    color: #334155 !important;
    border-bottom: 2px solid rgba(91, 77, 255, 0.1) !important;
}

table tbody tr:last-child td {
    border-bottom: none !important;
}

table tbody tr {
    transition: background-color 0.2s ease !important;
}

table tbody tr:hover {
    background-color: rgba(91, 77, 255, 0.012) !important;
}

/* Button & Action Overrides */
a.bg-blue-600, 
button.bg-blue-600, 
a.bg-edu-primary, 
button.bg-edu-primary,
input[type="submit"] {
    background: #5B4DFF !important;
    border: 1px solid #5B4DFF !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    font-family: 'Outfit', sans-serif !important;
    border-radius: 12px !important;
    padding: 10px 18px !important;
    font-size: 0.875rem !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: 0 2px 6px rgba(91, 77, 255, 0.1) !important;
}

a.bg-blue-600:hover, 
button.bg-blue-600:hover, 
a.bg-edu-primary:hover, 
button.bg-edu-primary:hover,
input[type="submit"]:hover {
    background: #473bff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 16px rgba(91, 77, 255, 0.25) !important;
}

/* Teal accents */
a.bg-teal-600, 
button.bg-teal-600, 
a.bg-edu-accent, 
button.bg-edu-accent {
    background: #14B8A6 !important;
    border: 1px solid #14B8A6 !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    font-family: 'Outfit', sans-serif !important;
    border-radius: 12px !important;
    padding: 10px 18px !important;
    font-size: 0.875rem !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: 0 2px 6px rgba(20, 184, 166, 0.1) !important;
}

a.bg-teal-600:hover, 
button.bg-teal-600:hover, 
a.bg-edu-accent:hover, 
button.bg-edu-accent:hover {
    background: #0d9488 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 16px rgba(20, 184, 166, 0.25) !important;
}

/* Secondary Buttons */
a.bg-slate-100, 
button.bg-slate-100, 
a.bg-slate-200, 
button.bg-slate-200 {
    background-color: #f1f5f9 !important;
    color: #334155 !important;
    border-radius: 12px !important;
    border: 2px solid rgba(91, 77, 255, 0.18) !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
}

a.bg-slate-100:hover, 
button.bg-slate-100:hover, 
a.bg-slate-200:hover, 
button.bg-slate-200:hover {
    background-color: #e2e8f0 !important;
    color: #0f172a !important;
    border-color: rgba(91, 77, 255, 0.35) !important;
}

/* Modals redesign overrides */
.modal-content, 
.bg-white.rounded-xl.p-6.max-w-md,
.bg-white.rounded-2xl {
    background-color: #ffffff !important;
    border-radius: 24px !important;
    box-shadow: 0 20px 50px rgba(91, 77, 255, 0.08) !important;
    border: 2px solid rgba(91, 77, 255, 0.25) !important;
}

/* Sidebar and Header layout outlines */
aside {
    border-right: 2px solid rgba(91, 77, 255, 0.08) !important;
}
header {
    border-bottom: 2px solid rgba(91, 77, 255, 0.08) !important;
}

/* Badges styling */
.badge-premium {
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 99px;
    letter-spacing: 0.02em;
}

/* Action button presses */
button:active, 
.btn-action:active {
    transform: scale(0.96) !important;
}

/* Background glowing accents decoration */
.bg-glow-purple {
    position: absolute;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(91, 77, 255, 0.06) 0%, rgba(255,255,255,0) 70%);
    pointer-events: none;
    z-index: 0;
}

.bg-glow-teal {
    position: absolute;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(20, 184, 166, 0.05) 0%, rgba(255,255,255,0) 70%);
    pointer-events: none;
    z-index: 0;
}

/* Card specific themed outlines & fills */
.card-indigo {
    background-color: #EFF6FF !important;
    border: 2px solid rgba(59, 130, 246, 0.28) !important;
}
.card-indigo:hover {
    border-color: rgba(59, 130, 246, 0.5) !important;
    background-color: #DBEAFE !important;
}

.card-teal {
    background-color: #EBFBFA !important;
    border: 2px solid rgba(20, 184, 166, 0.28) !important;
}
.card-teal:hover {
    border-color: rgba(20, 184, 166, 0.5) !important;
    background-color: #E0F8F6 !important;
}

.card-amber {
    background-color: #FFFDF5 !important;
    border: 2px solid rgba(245, 158, 11, 0.28) !important;
}
.card-amber:hover {
    border-color: rgba(245, 158, 11, 0.5) !important;
    background-color: #FFFBEA !important;
}

.card-emerald {
    background-color: #F0FDF4 !important;
    border: 2px solid rgba(16, 185, 129, 0.28) !important;
}
.card-emerald:hover {
    border-color: rgba(16, 185, 129, 0.5) !important;
    background-color: #E7FBF0 !important;
}

.card-calendar {
    border: 2px solid rgba(91, 77, 255, 0.2) !important;
}
.card-calendar:hover {
    border-color: rgba(91, 77, 255, 0.4) !important;
}

/* Sidebar dark theme redesign overrides to add contrast */
aside.bg-white, aside {
    background-color: #0F172A !important;
    border-right: 2px solid rgba(91, 77, 255, 0.16) !important;
}

aside .bg-white {
    background-color: #0F172A !important;
}

aside div.border-b {
    border-bottom: 2px solid rgba(255, 255, 255, 0.08) !important;
}

aside span.text-slate-800 {
    color: #FFFFFF !important;
}

aside a.text-slate-500, aside span.text-slate-500 {
    color: #94A3B8 !important;
}

aside a.text-slate-500:hover {
    color: #FFFFFF !important;
    background-color: rgba(255, 255, 255, 0.04) !important;
}

aside a.active-nav-pill {
    background: rgba(91, 77, 255, 0.16) !important;
    color: #FFFFFF !important;
    border: 2px solid rgba(91, 77, 255, 0.35) !important;
}

aside a.active-nav-pill svg {
    color: #8B5CF6 !important;
}

aside p.text-slate-400 {
    color: #64748B !important;
}

aside a.text-red-500:hover {
    background-color: rgba(239, 68, 68, 0.1) !important;
}

/* Calendar weekday column box colors */
.bg-slate-50\/50, .bg-slate-50\/20 {
    background-color: #F8FAFC !important;
    border: 2px solid rgba(91, 77, 255, 0.08) !important;
}

/* Calendar class schedule slots */
.p-3.bg-slate-50\/40 {
    background-color: #F5F3FF !important;
    border: 2px solid rgba(91, 77, 255, 0.12) !important;
}

/* =============================================================
   PRINT STYLES — show ONLY the student ID card
   ============================================================= */
@media print {

    /* Remove page margins and headers/footers added by the browser */
    @page {
        margin: 0;
        size: A4 portrait;
    }

    /* Kill everything by default */
    body * {
        visibility: hidden !important;
    }

    /* Kill body background, animation, scrollbar */
    body {
        background: #ffffff !important;
        animation: none !important;
        margin: 0 !important;
        padding: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    /* Show ONLY the ID card and all its children */
    #studentIdCard,
    #studentIdCard * {
        visibility: visible !important;
    }

    /* Position the card top-centre of the printed page */
    #studentIdCard {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;
        box-shadow: none !important;
        border: none !important;
    }

    /* Hide everything that should never print */
    aside,
    header,
    footer,
    nav,
    #trial-banner,
    .no-print,
    [id="confirmModal"],
    .bg-glow-purple,
    .bg-glow-teal {
        display: none !important;
    }
}
