/* Material Design 3 Styles */ /* Import Poppins font */ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap'); /* Import Material Symbols */ @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200'); /* Material Design 3 Type Scale Variables */ :root { --md-sys-typescale-display-large-size: 3.5625rem; --md-sys-typescale-display-large-line-height: 4rem; --md-sys-typescale-display-large-weight: 400; --md-sys-typescale-display-large-font: 'Poppins', sans-serif; --md-sys-typescale-headline-large-size: 2rem; --md-sys-typescale-headline-large-line-height: 2.5rem; --md-sys-typescale-headline-large-weight: 400; --md-sys-typescale-headline-large-font: 'Poppins', sans-serif; --md-sys-typescale-title-large-size: 1.375rem; --md-sys-typescale-title-large-line-height: 1.75rem; --md-sys-typescale-title-large-weight: 400; --md-sys-typescale-title-large-font: 'Poppins', sans-serif; --md-sys-typescale-label-large-size: 0.875rem; --md-sys-typescale-label-large-line-height: 1.25rem; --md-sys-typescale-label-large-weight: 500; --md-sys-typescale-label-large-font: 'Poppins', sans-serif; --md-sys-typescale-body-large-size: 1rem; --md-sys-typescale-body-large-line-height: 1.5rem; --md-sys-typescale-body-large-weight: 400; --md-sys-typescale-body-large-font: 'Poppins', sans-serif; /* Elevation shadows */ --md-sys-elevation-level0: none; --md-sys-elevation-level1: 0px 1px 2px 0px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15); --md-sys-elevation-level2: 0px 1px 2px 0px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15); --md-sys-elevation-level3: 0px 1px 3px 0px rgba(0, 0, 0, 0.3), 0px 4px 8px 3px rgba(0, 0, 0, 0.15); --md-sys-elevation-level4: 0px 2px 3px 0px rgba(0, 0, 0, 0.3), 0px 6px 10px 4px rgba(0, 0, 0, 0.15); --md-sys-elevation-level5: 0px 4px 4px 0px rgba(0, 0, 0, 0.3), 0px 8px 12px 6px rgba(0, 0, 0, 0.15); /* Shape scale */ --md-sys-shape-corner-small: 8px; --md-sys-shape-corner-medium: 16px; --md-sys-shape-corner-large: 20px; --md-sys-shape-corner-xl: 28px; } /* Light Theme */ [data-theme="light"] { --md-sys-color-primary: #006A6B; --md-sys-color-on-primary: #FFFFFF; --md-sys-color-primary-container: #6FF6F7; --md-sys-color-on-primary-container: #001F20; --md-sys-color-secondary: #4A6363; --md-sys-color-on-secondary: #FFFFFF; --md-sys-color-secondary-container: #CCE8E8; --md-sys-color-on-secondary-container: #051F20; --md-sys-color-tertiary: #3E6378; --md-sys-color-on-tertiary: #FFFFFF; --md-sys-color-tertiary-container: #CCE5FF; --md-sys-color-on-tertiary-container: #001F2E; --md-sys-color-error: #BA1A1A; --md-sys-color-on-error: #FFFFFF; --md-sys-color-error-container: #FFDAD6; --md-sys-color-on-error-container: #410002; --md-sys-color-surface: #F5F7F7; --md-sys-color-on-surface: #191C1C; --md-sys-color-on-surface-variant: #3F4949; --md-sys-color-outline: #6F7979; --md-sys-color-outline-variant: #BFC9C9; --md-sys-color-shadow: #000000; --md-sys-color-surface-tint: #006A6B; --md-sys-color-inverse-surface: #2E3131; --md-sys-color-inverse-on-surface: #EFF1F1; --md-sys-color-inverse-primary: #4CDADB; --md-sys-color-surface-container-lowest: #FFFFFF; --md-sys-color-surface-container-low: #EFF1F1; --md-sys-color-surface-container: #E9EBEB; --md-sys-color-surface-container-high: #E3E5E5; --md-sys-color-surface-container-highest: #DDDFDF; } /* Dark Theme */ [data-theme="dark"] { --md-sys-color-primary: #4CDADB; --md-sys-color-on-primary: #003738; --md-sys-color-primary-container: #004F50; --md-sys-color-on-primary-container: #6FF6F7; --md-sys-color-secondary: #B0CCCC; --md-sys-color-on-secondary: #1B3535; --md-sys-color-secondary-container: #324B4B; --md-sys-color-on-secondary-container: #CCE8E8; --md-sys-color-tertiary: #A5C9E2; --md-sys-color-on-tertiary: #0F344C; --md-sys-color-tertiary-container: #2A4A63; --md-sys-color-on-tertiary-container: #CCE5FF; --md-sys-color-error: #FFB4AB; --md-sys-color-on-error: #690005; --md-sys-color-error-container: #93000A; --md-sys-color-on-error-container: #FFDAD6; --md-sys-color-surface: #111414; --md-sys-color-on-surface: #E0E3E3; --md-sys-color-on-surface-variant: #BFC9C9; --md-sys-color-outline: #899393; --md-sys-color-outline-variant: #3F4949; --md-sys-color-shadow: #000000; --md-sys-color-surface-tint: #4CDADB; --md-sys-color-inverse-surface: #E0E3E3; --md-sys-color-inverse-on-surface: #111414; --md-sys-color-inverse-primary: #006A6B; --md-sys-color-surface-container-lowest: #0B0E0E; --md-sys-color-surface-container-low: #191C1C; --md-sys-color-surface-container: #1D2020; --md-sys-color-surface-container-high: #272A2A; --md-sys-color-surface-container-highest: #323535; } body { font-family: var(--md-sys-typescale-body-large-font); font-size: var(--md-sys-typescale-body-large-size); font-weight: var(--md-sys-typescale-body-large-weight); line-height: var(--md-sys-typescale-body-large-line-height); color: var(--md-sys-color-on-surface); background-color: var(--md-sys-color-surface); transition: background-color 0.3s ease, color 0.3s ease; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin: 0; padding: 0; min-height: 100vh; display: flex; flex-direction: column; } /* Flashy heading styles */ h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', sans-serif; } /* Add subtle animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeInUp 0.6s ease-out; } /* Navigation */ nav { background-color: var(--md-sys-color-surface-container); color: var(--md-sys-color-on-surface); box-shadow: var(--md-sys-elevation-level2); padding: 0 1rem; height: 64px; display: flex; align-items: center; position: sticky; top: 0; z-index: 1000; transition: background-color 0.3s ease; } .nav-container { max-width: 100%; width: 100%; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; } .nav-brand { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; color: var(--md-sys-color-primary); font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 1.25rem; letter-spacing: -0.01em; transition: all 0.3s ease; } .nav-brand:hover { transform: scale(1.05); filter: brightness(1.2); } .nav-links { display: flex; align-items: center; gap: 0.5rem; list-style: none; margin-left: auto; } .nav-links a { color: var(--md-sys-color-on-surface); text-decoration: none; padding: 0.75rem 1rem; border-radius: 20px; font-family: 'Poppins', sans-serif; font-weight: 500; font-size: 0.875rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; gap: 0.5rem; position: relative; } .nav-links a:hover { background-color: var(--md-sys-color-surface-container-high); transform: translateY(-2px); } .nav-links a.active { background-color: var(--md-sys-color-secondary-container); color: var(--md-sys-color-on-secondary-container); font-weight: 600; } .nav-links a.active:hover { transform: translateY(-2px); box-shadow: var(--md-sys-elevation-level1); } /* Theme Toggle */ .theme-toggle { background: none; border: none; color: var(--md-sys-color-on-surface); cursor: pointer; padding: 0.75rem 1rem; border-radius: 20px; display: flex; align-items: center; justify-content: center; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .theme-toggle:hover { background-color: var(--md-sys-color-surface-container-high); transform: rotate(15deg) scale(1.1); } .theme-toggle:active { transform: rotate(0deg) scale(0.95); } .material-symbols-rounded { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; } /* Buttons */ .md-button { background-color: var(--md-sys-color-primary); color: var(--md-sys-color-on-primary); border: none; border-radius: var(--md-sys-shape-corner-large); padding: 0.625rem 1.5rem; font-family: 'Poppins', sans-serif; font-size: var(--md-sys-typescale-label-large-size); font-weight: 600; line-height: var(--md-sys-typescale-label-large-line-height); cursor: pointer; display: inline-flex; align-items: center; gap: 0.5rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: var(--md-sys-elevation-level1); text-decoration: none; position: relative; overflow: hidden; } .md-button::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.25); transform: translate(-50%, -50%); transition: width 0.6s, height 0.6s; pointer-events: none; } .md-button::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s; } .md-button:hover { box-shadow: var(--md-sys-elevation-level3); transform: translateY(-3px) scale(1.02); background-color: var(--md-sys-color-primary); filter: brightness(1.15) saturate(1.1); } .md-button:hover::before { width: 300px; height: 300px; } .md-button:hover::after { left: 100%; } .md-button:active { transform: translateY(-1px) scale(0.98); box-shadow: var(--md-sys-elevation-level1); } .md-button-filled { background-color: var(--md-sys-color-primary); color: var(--md-sys-color-on-primary); } .md-button-outlined { background-color: transparent; color: var(--md-sys-color-primary); border: 2px solid var(--md-sys-color-primary); box-shadow: none; } .md-button-outlined::before { display: none; } .md-button-outlined::after { display: none; } .md-button-outlined:hover { background-color: var(--md-sys-color-primary); color: var(--md-sys-color-on-primary); transform: translateY(-3px) scale(1.02); box-shadow: var(--md-sys-elevation-level2); border-color: var(--md-sys-color-primary); } .md-button-text { background-color: transparent; color: var(--md-sys-color-primary); box-shadow: none; } .md-button-text::before { display: none; } .md-button-text::after { display: none; } .md-button-text:hover { background-color: var(--md-sys-color-primary-container); color: var(--md-sys-color-on-primary-container); transform: translateY(-2px); box-shadow: var(--md-sys-elevation-level1); } .md-button-large { padding: 0.875rem 1.75rem; font-size: 0.9375rem; font-weight: 700; } .md-button-large:hover { transform: translateY(-4px) scale(1.03); } /* Cards */ .md-card { background-color: var(--md-sys-color-surface-container); border-radius: var(--md-sys-shape-corner-medium); padding: 1rem; box-shadow: var(--md-sys-elevation-level1); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .md-card:hover { box-shadow: var(--md-sys-elevation-level3); transform: translateY(-4px); } .md-card-elevated:hover { box-shadow: var(--md-sys-elevation-level4); transform: translateY(-4px); } .md-card-elevated { box-shadow: var(--md-sys-elevation-level2); } .md-card-outlined { border: 1px solid var(--md-sys-color-outline-variant); box-shadow: none; border-radius: var(--md-sys-shape-corner-medium); } /* Input Fields */ .md-text-field { position: relative; margin: 1rem 0; } .md-text-field input, .md-text-field textarea, .md-text-field select { width: 100%; padding: 1.5rem 1rem 0.5rem 1rem; border: none; border-bottom: 1px solid var(--md-sys-color-outline); background-color: transparent; color: var(--md-sys-color-on-surface); font-family: var(--md-sys-typescale-body-large-font); font-size: var(--md-sys-typescale-body-large-size); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-sizing: border-box; border-radius: var(--md-sys-shape-corner-small); } .md-text-field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%234CDADB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.5rem center; background-size: 1.5rem; padding-right: 2.5rem; cursor: pointer; padding-top: 1.75rem; padding-bottom: 0.75rem; } [data-theme="light"] .md-text-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23006566' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); } .md-text-field select:focus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%234CDADB' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); } [data-theme="light"] .md-text-field select:focus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23006566' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); } .md-text-field select:disabled { opacity: 0.38; cursor: not-allowed; } .md-text-field input:hover, .md-text-field textarea:hover, .md-text-field select:hover { border-bottom-color: var(--md-sys-color-primary); border-bottom-width: 2px; } .md-text-field input:focus, .md-text-field textarea:focus, .md-text-field select:focus { outline: none; border-bottom: 2px solid var(--md-sys-color-primary); background-color: var(--md-sys-color-surface-container-low); border-radius: 12px 12px 8px 8px; } .md-text-field input:focus, .md-text-field input:not(:placeholder-shown), .md-text-field textarea:focus, .md-text-field textarea:not(:placeholder-shown), .md-text-field select { padding-top: 1.75rem; padding-bottom: 0.75rem; } .md-text-field label { position: absolute; left: 1rem; top: 1.5rem; color: var(--md-sys-color-on-surface-variant); font-family: 'Poppins', sans-serif; font-size: var(--md-sys-typescale-body-large-size); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); pointer-events: none; transform-origin: left top; } .md-text-field input:focus + label, .md-text-field input:not(:placeholder-shown) + label, .md-text-field input[value]:not([value=""]) + label, .md-text-field input.has-value + label, .md-text-field textarea:focus + label, .md-text-field textarea:not(:placeholder-shown) + label, .md-text-field textarea.has-value + label { top: 0.5rem; font-size: 0.75rem; color: var(--md-sys-color-primary); font-weight: 600; font-family: 'Poppins', sans-serif; transform: translateY(0); } /* Select labels - selects always have values, so labels should always be floated */ .md-text-field label:has(+ select) { top: 0.5rem !important; font-size: 0.75rem !important; color: var(--md-sys-color-primary) !important; font-weight: 600 !important; font-family: 'Poppins', sans-serif !important; transform: translateY(0) !important; } .md-text-field select + label { top: 0.5rem !important; font-size: 0.75rem !important; color: var(--md-sys-color-primary) !important; font-weight: 600 !important; font-family: 'Poppins', sans-serif !important; transform: translateY(0) !important; } .md-text-field:has(select) label { top: 0.5rem !important; font-size: 0.75rem !important; color: var(--md-sys-color-primary) !important; font-weight: 600 !important; font-family: 'Poppins', sans-serif !important; transform: translateY(0) !important; } /* Container */ .container { max-width: 1200px; margin: 0 1rem; padding: 0 1rem; } .container-wide { max-width: 1600px; margin: 0 auto; padding: 0 1rem; } /* Typography */ .md-display-large { font-family: 'Poppins', sans-serif; font-size: var(--md-sys-typescale-display-large-size); font-weight: 800; line-height: var(--md-sys-typescale-display-large-line-height); letter-spacing: -0.02em; color: var(--md-sys-color-on-surface); } .md-display-medium { font-family: 'Poppins', sans-serif; font-size: 2.5rem; font-weight: 800; line-height: 3rem; letter-spacing: -0.02em; color: var(--md-sys-color-on-surface); } .md-headline-large { font-family: 'Poppins', sans-serif; font-size: var(--md-sys-typescale-headline-large-size); font-weight: 700; line-height: var(--md-sys-typescale-headline-large-line-height); letter-spacing: -0.01em; color: var(--md-sys-color-on-surface); } .md-title-large { font-family: 'Poppins', sans-serif; font-size: var(--md-sys-typescale-title-large-size); font-weight: 600; line-height: var(--md-sys-typescale-title-large-line-height); letter-spacing: -0.01em; color: var(--md-sys-color-on-surface); } /* Chips */ .md-chip { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.375rem 0.75rem; border-radius: 9999px; background-color: var(--md-sys-color-surface-container-high); color: var(--md-sys-color-on-surface); font-family: 'Poppins', sans-serif; font-size: 0.875rem; font-weight: 500; transition: all 0.3s ease; } .md-chip:hover { transform: scale(1.05); box-shadow: var(--md-sys-elevation-level1); } /* Link hover effects */ a:not(.md-button):not(.nav-brand):not(.nav-links a) { transition: all 0.3s ease; } a:not(.md-button):not(.nav-brand):not(.nav-links a):hover { color: var(--md-sys-color-primary); text-decoration: underline; } /* Material Symbols hover */ .material-symbols-rounded { transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .md-button:hover .material-symbols-rounded { transform: translateX(6px) scale(1.1); } .md-button-outlined:hover .material-symbols-rounded { transform: translateX(6px) scale(1.1); } .md-button-text:hover .material-symbols-rounded { transform: translateX(4px); } /* Card links hover */ .md-card a:not(.md-button):hover { color: var(--md-sys-color-primary); } /* Subscription/Ticket item hover enhancements */ .subscription-item:hover, [onclick]:hover { background-color: var(--md-sys-color-surface-container-high) !important; } /* Mobile Menu Button */ .mobile-menu-button { display: none; background: none; border: none; color: var(--md-sys-color-on-surface); cursor: pointer; padding: 0.5rem; border-radius: 20px; align-items: center; justify-content: center; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .mobile-menu-button:hover { background-color: var(--md-sys-color-surface-container-high); transform: scale(1.1); } .mobile-menu-button .material-symbols-rounded { font-size: 28px; } /* Mobile Sidenav */ .mobile-sidenav { position: fixed; top: 0; right: -100%; width: 320px; max-width: 85vw; height: 100vh; background-color: var(--md-sys-color-surface-container); box-shadow: var(--md-sys-elevation-level5); border-radius: 16px 0 0 16px; z-index: 2000; transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1); overflow-y: auto; } .mobile-sidenav.open { right: 0; } .mobile-sidenav-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid var(--md-sys-color-outline-variant); } .mobile-sidenav-header .nav-brand { font-size: 1rem; } .mobile-sidenav-close { background: none; border: none; color: var(--md-sys-color-on-surface); cursor: pointer; padding: 0.5rem; border-radius: 20px; display: flex; align-items: center; justify-content: center; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .mobile-sidenav-close:hover { background-color: var(--md-sys-color-surface-container-high); transform: scale(1.1); } .mobile-sidenav-links { list-style: none; padding: 0.5rem; display: flex; flex-direction: column; gap: 0.25rem; } .mobile-sidenav-links li { width: 100%; } .mobile-sidenav-links a, .mobile-sidenav-links button { width: 100%; color: var(--md-sys-color-on-surface); text-decoration: none; padding: 1rem; border-radius: var(--md-sys-shape-corner-medium); font-family: 'Poppins', sans-serif; font-weight: 500; font-size: 0.875rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; gap: 0.75rem; background: none; border: none; cursor: pointer; text-align: left; } .mobile-sidenav-links a:hover, .mobile-sidenav-links button:hover { background-color: var(--md-sys-color-surface-container-high); } .mobile-sidenav-links a.active { background-color: var(--md-sys-color-secondary-container); color: var(--md-sys-color-on-secondary-container); font-weight: 600; } .mobile-sidenav-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1999; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; } .mobile-sidenav-overlay.open { opacity: 1; visibility: visible; } /* Responsive */ @media (max-width: 960px) { .nav-links { display: none; } .mobile-menu-button { display: flex !important; } #mobile-nav-search-button { display: flex !important; } } @media (min-width: 961px) { .mobile-menu-button { display: none !important; } #mobile-nav-search-button { display: none !important; } .nav-links .logout-text { display: none; } } /* Flash Messages */ .md-snackbar { background-color: var(--md-sys-color-inverse-surface); color: var(--md-sys-color-inverse-on-surface); padding: 1rem 1.5rem; border-radius: var(--md-sys-shape-corner-medium); box-shadow: var(--md-sys-elevation-level3); margin: 1rem 0; display: flex; align-items: center; gap: 1rem; transition: all 0.3s ease; animation: fadeInUp 0.4s ease-out; } .md-snackbar:hover { transform: translateY(-2px); box-shadow: var(--md-sys-elevation-level4); } .md-snackbar.success { background-color: var(--md-sys-color-primary-container); color: var(--md-sys-color-on-primary-container); } .md-snackbar.error { background-color: var(--md-sys-color-error-container); color: var(--md-sys-color-on-error-container); } /* Search Modal */ .search-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 2000; display: flex; align-items: flex-start; justify-content: center; padding-top: 5rem; animation: fadeIn 0.2s ease-out; } .search-modal { background-color: var(--md-sys-color-surface); border-radius: var(--md-sys-shape-corner-xl); box-shadow: var(--md-sys-elevation-level5); width: 90%; max-width: 700px; max-height: 80vh; display: flex; flex-direction: column; animation: slideDown 0.3s ease-out; } .search-modal-header { padding: 1.5rem; border-bottom: 1px solid var(--md-sys-color-outline-variant); display: flex; align-items: center; gap: 0.5rem; } .search-modal-results { padding: 1rem; overflow-y: auto; flex: 1; max-height: calc(80vh - 100px); } .search-result-item { padding: 1rem; border-radius: var(--md-sys-shape-corner-small); margin-bottom: 0.5rem; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; gap: 1rem; text-decoration: none; color: var(--md-sys-color-on-surface); } .search-result-item:hover { background-color: var(--md-sys-color-surface-container-high); } .search-result-item .result-icon { font-size: 2rem; color: var(--md-sys-color-primary); flex-shrink: 0; } .search-result-item .result-content { flex: 1; } .search-result-item .result-title { font-weight: 600; font-size: 1rem; margin-bottom: 0.25rem; color: var(--md-sys-color-on-surface); } .search-result-item .result-meta { font-size: 0.875rem; color: var(--md-sys-color-on-surface-variant); } .nav-search-button { background: none; border: none; color: var(--md-sys-color-on-surface); cursor: pointer; padding: 0.75rem 1rem; border-radius: var(--md-sys-shape-corner-large); display: flex; align-items: center; justify-content: center; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .nav-search-button:hover { background-color: var(--md-sys-color-surface-container-high); transform: translateY(-2px); } .nav-search-button:active { transform: translateY(0); } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } /* Custom slider styling for media player */ .slider { -webkit-appearance: none; appearance: none; background: transparent; cursor: pointer; } .slider::-webkit-slider-track { background: var(--md-sys-color-surface-container-high); height: 8px; border-radius: 4px; } .slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; background: var(--md-sys-color-primary); height: 16px; width: 16px; border-radius: 50%; cursor: pointer; transition: all 0.2s; } .slider::-webkit-slider-thumb:hover { background: var(--md-sys-color-primary); filter: brightness(1.2); transform: scale(1.1); } .slider::-moz-range-track { background: var(--md-sys-color-surface-container-high); height: 8px; border-radius: 4px; border: none; } .slider::-moz-range-thumb { background: var(--md-sys-color-primary); height: 16px; width: 16px; border-radius: 50%; cursor: pointer; border: none; transition: all 0.2s; } .slider::-moz-range-thumb:hover { background: var(--md-sys-color-primary); filter: brightness(1.2); transform: scale(1.1); } /* Grid layouts */ .grid { display: grid; } .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } .grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); } .gap-4 { gap: 1rem; } .gap-6 { gap: 1.5rem; } .gap-8 { gap: 2rem; } @media (min-width: 768px) { .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } } @media (min-width: 1024px) { .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .lg\:grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); } } @media (min-width: 1280px) { .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } } /* Dashboard Grid */ .dashboard-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; } @media (min-width: 768px) { .dashboard-grid { grid-template-columns: repeat(3, 1fr); } } /* Columns layout for masonry */ .columns-1 { columns: 1; } @media (min-width: 768px) { .md\:columns-2 { columns: 2; } } @media (min-width: 1024px) { .lg\:columns-3 { columns: 3; } } @media (min-width: 1280px) { .xl\:columns-4 { columns: 4; } } .break-inside-avoid { break-inside: avoid; } /* Utility classes */ .flex { display: flex; } .flex-col { flex-direction: column; } .items-center { align-items: center; } .justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .gap-2 { gap: 0.5rem; } .gap-3 { gap: 0.75rem; } .text-center { text-align: center; } .text-white { color: var(--md-sys-color-on-surface); } .text-sm { font-size: 0.875rem; } .text-base { font-size: 1rem; } .text-lg { font-size: 1.125rem; } .text-xl { font-size: 1.25rem; } .text-2xl { font-size: 1.5rem; } .text-3xl { font-size: 1.875rem; } .font-semibold { font-weight: 600; } .font-bold { font-weight: 700; } .mb-2 { margin-bottom: 0.5rem; } .mb-4 { margin-bottom: 1rem; } .mb-6 { margin-bottom: 1.5rem; } .mb-8 { margin-bottom: 2rem; } .mt-1 { margin-top: 0.25rem; } .mt-2 { margin-top: 0.5rem; } .mt-8 { margin-top: 2rem; } .mt-12 { margin-top: 3rem; } .mt-16 { margin-top: 4rem; } .p-3 { padding: 0.75rem; } .p-4 { padding: 1rem; } .p-6 { padding: 1.5rem; } .p-8 { padding: 2rem; } .py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; } .py-4 { padding-top: 1rem; padding-bottom: 1rem; } .py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; } .py-8 { padding-top: 2rem; padding-bottom: 2rem; } .px-4 { padding-left: 1rem; padding-right: 1rem; } .px-8 { padding-left: 2rem; padding-right: 2rem; } .w-full { width: 100%; } .max-w-md { max-width: 28rem; } .max-w-6xl { max-width: 72rem; } .max-w-7xl { max-width: 80rem; } .mx-auto { margin-left: auto; margin-right: auto; } .space-y-1 > * + * { margin-top: 0.25rem; } .space-y-2 > * + * { margin-top: 0.5rem; } .space-y-3 > * + * { margin-top: 0.75rem; } .space-y-6 > * + * { margin-top: 1.5rem; } .rounded { border-radius: 0.25rem; } .rounded-lg { border-radius: 0.5rem; } .rounded-xl { border-radius: 0.75rem; } .rounded-2xl { border-radius: 1rem; } .rounded-full { border-radius: 9999px; } .overflow-y-auto { overflow-y: auto; } .max-h-106 { max-height: 26.5rem; } .relative { position: relative; } .absolute { position: absolute; } .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .whitespace-nowrap { white-space: nowrap; } /* Loading spinner */ .animate-spin { animation: spin 1s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Status indicators */ .status-dot { width: 0.75rem; height: 0.75rem; border-radius: 50%; display: inline-block; } .status-dot.green { background-color: #10b981; } .status-dot.red { background-color: #ef4444; } .status-dot.gray { background-color: var(--md-sys-color-on-surface-variant); } /* Checkbox styling */ input[type="checkbox"] { appearance: none; width: 1.25rem; height: 1.25rem; border: 2px solid var(--md-sys-color-outline); border-radius: 6px; background-color: transparent; cursor: pointer; position: relative; transition: all 0.2s; } input[type="checkbox"]:checked { background-color: var(--md-sys-color-primary); border-color: var(--md-sys-color-primary); } input[type="checkbox"]:checked::after { content: '✓'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: var(--md-sys-color-on-primary); font-size: 0.875rem; font-weight: bold; } input[type="checkbox"]:hover { border-color: var(--md-sys-color-primary); } /* Custom Scrollbar Styling */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--md-sys-color-surface-container-low); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: var(--md-sys-color-outline-variant); border-radius: 4px; transition: background 0.2s; } ::-webkit-scrollbar-thumb:hover { background: var(--md-sys-color-outline); } /* Firefox scrollbar */ * { scrollbar-width: thin; scrollbar-color: var(--md-sys-color-outline-variant) var(--md-sys-color-surface-container-low); } .site-footer a { color: var(--md-sys-color-primary); text-decoration: none; font-weight: 500; } .site-footer a:hover { color: var(--md-sys-color-on-surface); text-decoration: underline; } /* Media player specific styles */ .media-player-container { background-color: var(--md-sys-color-surface-container); border: 1px solid var(--md-sys-color-outline-variant); border-radius: var(--md-sys-shape-corner-medium); padding: 0.75rem; box-shadow: var(--md-sys-elevation-level2); } .media-player-button { background-color: var(--md-sys-color-primary); color: var(--md-sys-color-on-primary); border: none; border-radius: 50%; width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; } .media-player-button:hover { filter: brightness(1.15); transform: scale(1.1); } .media-player-button:active { transform: scale(0.95); }