/* CSS Variables */ :root { --primary: #3b82f6; --primary-dark: #2563eb; --secondary: #6b7280; --success: #22c55e; --danger: #ef4444; --warning: #f59e0b; --bg-primary: #ffffff; --bg-secondary: #f9fafb; --bg-tertiary: #f3f4f6; --text-primary: #1f2937; --text-secondary: #6b7280; --text-tertiary: #9ca3af; --border-light: #e5e7eb; --border-medium: #d1d5db; --border-dark: #9ca3af; --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07); --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1); --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 12px; --transition: 0.2s ease; } /* Reset and Base Styles */ * { box-sizing: border-box; padding: 0; margin: 0; } html { scroll-behavior: smooth; } html, body { max-width: 100vw; overflow-x: hidden; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: var(--text-primary); background: var(--bg-secondary); line-height: 1.6; } a { color: inherit; text-decoration: none; } /* App Container */ .app-container { display: flex; flex-direction: column; min-height: 100vh; position: relative; } .noise-overlay { position: fixed; inset: 0; opacity: 0.03; z-index: -1; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); } .main-content { flex: 1; max-width: 1280px; width: 100%; margin: 0 auto; padding: 2rem 1.5rem; } /* Utility Classes */ .container { max-width: 1280px; width: 100%; margin: 0 auto; padding: 0 1.5rem; } .text-center { text-align: center; } .mt-1 { margin-top: 0.5rem; } .mt-2 { margin-top: 1rem; } .mt-3 { margin-top: 1.5rem; } .mt-4 { margin-top: 2rem; } .mb-1 { margin-bottom: 0.5rem; } .mb-2 { margin-bottom: 1rem; } .mb-3 { margin-bottom: 1.5rem; } .mb-4 { margin-bottom: 2rem; } /* Grid Layouts */ .grid { display: grid; gap: 1.5rem; } .grid-1 { grid-template-columns: 1fr; } .grid-2 { grid-template-columns: repeat(2, 1fr); } .grid-3 { grid-template-columns: repeat(3, 1fr); } .grid-auto { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); } @media (max-width: 1024px) { .grid-3 { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .main-content { padding: 1.5rem 1rem; } .grid-2, .grid-3 { grid-template-columns: 1fr; } } /* Typography */ h1, h2, h3, h4, h5, h6 { font-weight: 600; line-height: 1.3; color: var(--text-primary); } h1 { font-size: 2.25rem; margin-bottom: 1rem; } h2 { font-size: 1.875rem; margin-bottom: 0.875rem; } h3 { font-size: 1.5rem; margin-bottom: 0.75rem; } h4 { font-size: 1.25rem; margin-bottom: 0.625rem; } p { margin-bottom: 1rem; } /* Buttons */ button { font-family: inherit; } .btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.625rem 1.25rem; font-size: 0.9375rem; font-weight: 500; border: none; border-radius: var(--radius-md); cursor: pointer; transition: all var(--transition); text-decoration: none; } .btn-primary { background: var(--primary); color: white; } .btn-primary:hover { background: var(--primary-dark); } .btn-secondary { background: white; color: var(--text-primary); border: 1px solid var(--border-medium); } .btn-secondary:hover { background: var(--bg-tertiary); } /* Form Elements */ input, select, textarea { font-family: inherit; font-size: 1rem; } input:focus, select:focus, textarea:focus { outline: none; } /* Loading Spinner */ .spinner { display: inline-block; width: 1.5rem; height: 1.5rem; border: 3px solid rgba(59, 130, 246, 0.3); border-radius: 50%; border-top-color: var(--primary); animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Scrollbar Styles */ ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: var(--bg-tertiary); } ::-webkit-scrollbar-thumb { background: var(--border-dark); border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: var(--secondary); } /* Print Styles */ @media print { .no-print { display: none !important; } }