/* --- CSS Variables & Design Tokens --- */ :root { /* Color Palette (Clean Premium Light Mode Theme) */ --bg-base: #f8fafc; --bg-surface: #ffffff; --bg-surface-solid: #ffffff; --bg-surface-hover: #f1f5f9; --border-color: rgba(15, 23, 42, 0.08); --border-hover: rgba(2, 132, 199, 0.4); /* Accent Colors */ --primary: #0284c7; /* Electric Sky Blue */ --primary-rgb: 2, 132, 199; --secondary: #7c3aed; /* Deep Neon Purple */ --secondary-rgb: 124, 58, 237; --accent: #059669; /* Emerald Green (Correctness/Feasibility) */ --accent-rgb: 5, 150, 105; --warning: #d97706; /* Amber Orange (MOQ/Design Quality) */ --warning-rgb: 217, 119, 6; /* Text Colors */ --text-primary: #0f172a; --text-secondary: #334155; --text-muted: #64748b; /* Typography */ --font-heading: 'Space Grotesk', sans-serif; --font-body: 'Plus Jakarta Sans', sans-serif; --font-mono: 'JetBrains Mono', monospace; /* Transitions & Radii */ --radius-sm: 8px; --radius-md: 12px; --radius-lg: 20px; --transition-fast: 0.15s ease; --transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1); --transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1); /* Glassmorphism Blur */ --backdrop-blur: blur(12px); } /* --- Base & Reset Rules --- */ * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; background-color: var(--bg-base); color: var(--text-primary); font-family: var(--font-body); -webkit-font-smoothing: antialiased; } body { min-height: 100vh; position: relative; overflow-x: hidden; } /* --- Ambient Background Glows --- */ .glow-bg { position: absolute; width: 600px; height: 600px; border-radius: 50%; filter: blur(140px); pointer-events: none; z-index: -1; opacity: 0.06; transition: all var(--transition-slow); } .glow-bg-1 { top: -100px; right: -100px; background: radial-gradient(circle, var(--primary) 0%, transparent 70%); } .glow-bg-2 { top: 600px; left: -200px; background: radial-gradient(circle, var(--secondary) 0%, transparent 70%); } /* --- Typography Utilities --- */ h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 700; letter-spacing: -0.02em; color: var(--text-primary); } p { color: var(--text-secondary); line-height: 1.6; } a { color: var(--primary); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: #38bdf8; } .highlight { background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .badge { display: inline-block; padding: 6px 14px; border-radius: 50px; font-family: var(--font-heading); font-weight: 500; font-size: 0.8rem; background: rgba(2, 132, 199, 0.08); border: 1px solid rgba(2, 132, 199, 0.15); color: var(--primary); margin-bottom: 1.5rem; letter-spacing: 0.05em; text-transform: uppercase; } /* --- Header & Navigation --- */ .app-header { position: sticky; top: 0; z-index: 100; background: rgba(248, 250, 252, 0.8); backdrop-filter: var(--backdrop-blur); -webkit-backdrop-filter: var(--backdrop-blur); border-bottom: 1px solid var(--border-color); padding: 1.25rem 0; } .header-container { max-width: 1400px; margin: 0 auto; padding: 0 2rem; display: flex; justify-content: space-between; align-items: center; } .logo-area { display: flex; align-items: center; } .logo-text { font-family: var(--font-heading); font-weight: 700; font-size: 1.35rem; letter-spacing: -0.03em; } .nav-links { display: flex; align-items: center; gap: 2rem; } .nav-links a { color: var(--text-secondary); font-family: var(--font-heading); font-weight: 500; font-size: 0.95rem; } .nav-links a:hover { color: var(--text-primary); } /* Buttons */ .btn-primary { background: #e0f2fe; color: #0369a1; padding: 12px 24px; border-radius: var(--radius-sm); font-family: var(--font-heading); font-weight: 600; border: 1px solid #bae6fd; cursor: pointer; box-shadow: 0 2px 4px rgba(2, 132, 199, 0.05); transition: transform var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast); } .btn-primary:hover { background: #bae6fd; transform: translateY(-2px); box-shadow: 0 4px 8px rgba(2, 132, 199, 0.1); color: #0369a1; } .btn-primary-sm { background: #e0f2fe; color: #0369a1; padding: 8px 18px; border-radius: var(--radius-sm); font-family: var(--font-heading); font-weight: 500; font-size: 0.85rem; border: 1px solid #bae6fd; cursor: pointer; box-shadow: 0 2px 4px rgba(2, 132, 199, 0.05); transition: transform var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast); } .btn-primary-sm:hover { background: #bae6fd; transform: translateY(-1px); box-shadow: 0 4px 8px rgba(2, 132, 199, 0.1); color: #0369a1; } .btn-secondary { background: #ffffff; border: 1px solid var(--border-color); color: var(--text-primary); padding: 12px 24px; border-radius: var(--radius-sm); font-family: var(--font-heading); font-weight: 600; cursor: pointer; transition: background var(--transition-fast), border var(--transition-fast), box-shadow var(--transition-fast); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02); } .btn-secondary:hover { background: #f1f5f9; border-color: rgba(0, 0, 0, 0.15); color: var(--text-primary); } .btn-paper { background: rgba(2, 132, 199, 0.05); color: var(--primary); padding: 8px 16px; border-radius: var(--radius-sm); font-family: var(--font-heading); font-weight: 500; font-size: 0.9rem; border: 1px solid rgba(2, 132, 199, 0.15); display: inline-flex; align-items: center; gap: 6px; transition: background var(--transition-fast), border var(--transition-fast), color var(--transition-fast); } .btn-paper:hover { background: rgba(2, 132, 199, 0.12); color: #0270a5; border-color: rgba(2, 132, 199, 0.3); } .equation-block { margin: 1.25rem 0; padding: 1rem; background: rgba(15, 23, 42, 0.02); border: 1px dashed var(--border-color); border-radius: var(--radius-md); overflow-x: auto; } /* --- Layout Sections --- */ .main-content { max-width: 1400px; margin: 0 auto; padding: 3rem 2rem; display: flex; flex-direction: column; gap: 4rem; } /* Hero Section */ .hero-section { display: grid; grid-template-columns: 1.2fr 1fr; gap: 3rem; align-items: center; } .hero-content h1 { font-size: 3.5rem; line-height: 1.15; margin-bottom: 1.5rem; background: linear-gradient(to right, #0f172a, #475569); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .hero-content .lead { font-size: 1.15rem; color: var(--text-secondary); } /* Stats Cards Grid */ .stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } .stat-card { background: var(--bg-surface); backdrop-filter: var(--backdrop-blur); -webkit-backdrop-filter: var(--backdrop-blur); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 1.5rem; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; transition: border-color var(--transition-normal), transform var(--transition-normal); } .stat-card:hover { border-color: var(--border-hover); transform: translateY(-3px); } .stat-info { display: flex; flex-direction: column; } .stat-label { font-size: 0.85rem; color: var(--text-muted); font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; } .stat-value { font-size: 1.75rem; font-weight: 700; font-family: var(--font-heading); color: var(--text-primary); } /* --- Dashboard Panels (Shared Layout) --- */ .dashboard-panel { background: var(--bg-surface); backdrop-filter: var(--backdrop-blur); -webkit-backdrop-filter: var(--backdrop-blur); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 2.25rem; display: flex; flex-direction: column; gap: 2rem; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.02); } .panel-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem; } .panel-title-area h2 { font-size: 1.75rem; margin-bottom: 0.5rem; } .panel-desc { font-size: 0.95rem; color: var(--text-muted); max-width: 700px; } /* Custom Chart Legend */ .chart-legend-custom { display: flex; gap: 1.5rem; font-size: 0.85rem; color: var(--text-secondary); font-weight: 500; background: rgba(15, 23, 42, 0.03); padding: 8px 16px; border-radius: 50px; border: 1px solid var(--border-color); } .legend-item { display: flex; align-items: center; gap: 0.5rem; } .legend-dot { width: 10px; height: 10px; border-radius: 50%; } .legend-line { width: 18px; height: 3px; border-radius: 4px; } .color-primary { background-color: var(--primary); } .color-secondary { background-color: var(--secondary); } .chart-container-wrapper { position: relative; width: 100%; height: 480px; background: rgba(255, 255, 255, 0.6); border-radius: var(--radius-md); padding: 1.25rem; border: 1px solid var(--border-color); } /* --- Table Controls & Filters --- */ .table-controls-header { flex-direction: row; align-items: center; flex-wrap: wrap; } .filters-container { display: flex; gap: 1rem; align-items: center; } .search-wrapper { position: relative; width: 280px; } .search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--text-muted); pointer-events: none; } #model-search { width: 100%; background: #ffffff; border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 10px 14px; color: var(--text-primary); font-family: var(--font-body); font-size: 0.9rem; transition: all var(--transition-fast); } #model-search:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 10px rgba(14, 165, 233, 0.2); } .filter-dropdown-wrapper select { background: #ffffff; border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 10px 28px 10px 14px; color: var(--text-primary); font-family: var(--font-body); font-size: 0.9rem; cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; background-size: 14px; transition: all var(--transition-fast); } .filter-dropdown-wrapper select:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 10px rgba(14, 165, 233, 0.2); } /* --- Leaderboard Table styling --- */ .table-wrapper { overflow-x: auto; border-radius: var(--radius-md); border: 1px solid var(--border-color); } .leaderboard-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 0.95rem; background: transparent; } .leaderboard-table th, .leaderboard-table td { padding: 1rem 1.5rem; border-bottom: 1px solid var(--border-color); } .leaderboard-table th { background: #f1f5f9; color: var(--text-secondary); font-family: var(--font-heading); font-weight: 600; font-size: 0.9rem; letter-spacing: 0.02em; user-select: none; } .leaderboard-table th.sortable { cursor: pointer; transition: color var(--transition-fast), background-color var(--transition-fast); } .leaderboard-table th.sortable:hover { color: var(--text-primary); background: #e2e8f0; } .sort-indicator { display: inline-block; margin-left: 4px; font-size: 0.8rem; color: var(--text-muted); } th.sorted-asc .sort-indicator, th.sorted-desc .sort-indicator { color: var(--primary); } /* Table Row Highlights */ .leaderboard-table tbody tr.model-row { cursor: pointer; transition: background-color var(--transition-fast), transform var(--transition-fast); } .leaderboard-table tbody tr.model-row:hover { background-color: var(--bg-surface-hover); } .leaderboard-table tbody tr.model-row.row-active { background-color: rgba(2, 132, 199, 0.05); border-left: 4px solid var(--primary); } /* Columns Details */ .col-rank { width: 80px; text-align: center; } .col-name { font-weight: 600; } .col-dev { color: var(--text-secondary); } .col-type { width: 140px; } .col-feasible { width: 140px; font-family: var(--font-mono); font-weight: 500; text-align: right; } .col-moq { width: 140px; font-family: var(--font-mono); font-weight: 500; text-align: right; } .col-action { width: 100px; text-align: center; } /* Rank Badging styling */ .rank-badge { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-weight: 700; font-family: var(--font-heading); font-size: 0.85rem; } .rank-1 .rank-badge { background: #fef08a; /* Yellow-200 */ color: #854d0e; /* Yellow-800 */ box-shadow: 0 2px 8px rgba(234, 179, 8, 0.2); } .rank-2 .rank-badge { background: #e2e8f0; /* Slate-200 */ color: #475569; /* Slate-700 */ box-shadow: 0 2px 8px rgba(100, 116, 139, 0.15); } .rank-3 .rank-badge { background: #ffedd5; /* Orange-100 */ color: #9a3412; /* Orange-800 */ box-shadow: 0 2px 8px rgba(249, 115, 22, 0.15); } .rank-other .rank-badge { background: #f1f5f9; border: 1px solid var(--border-color); color: var(--text-muted); } /* License Badge styling */ .badge-type { display: inline-block; padding: 4px 10px; border-radius: 4px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em; } .badge-open { background: rgba(5, 150, 105, 0.08); color: var(--accent); border: 1px solid rgba(5, 150, 105, 0.15); } .badge-proprietary { background: rgba(124, 58, 237, 0.08); color: var(--secondary); border: 1px solid rgba(124, 58, 237, 0.15); } /* Performance Columns */ .metric-value-container { display: flex; align-items: center; justify-content: flex-end; gap: 8px; } .metric-bar-bg { width: 40px; height: 6px; background: #e2e8f0; border-radius: 3px; overflow: hidden; display: inline-block; } .metric-bar-fill { height: 100%; border-radius: 3px; } .feasible-fill { background-color: var(--accent); } .moq-fill { background-color: var(--warning); } /* Details Toggle Button */ .btn-toggle-details { background: none; border: none; color: var(--text-muted); cursor: pointer; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; transition: all var(--transition-fast); } .btn-toggle-details:hover { background: rgba(15, 23, 42, 0.04); color: var(--text-primary); } .btn-toggle-details .toggle-indicator { display: inline-block; font-size: 0.7rem; transition: transform var(--transition-normal), color var(--transition-fast); } .btn-toggle-details.expanded .toggle-indicator { transform: rotate(180deg); color: var(--primary); } /* --- Expandable Row Details --- */ .details-row { background: rgba(15, 23, 42, 0.02); } .details-row td { padding: 0; border-bottom: 1px solid var(--border-color); } .details-content { overflow: hidden; height: 0; transition: height var(--transition-normal); } .details-inner { padding: 1.5rem 2.5rem; display: grid; grid-template-columns: repeat(3, 1fr) 1.2fr; gap: 2rem; border-top: 1px dashed var(--border-color); } .detail-metric-card { background: #ffffff; border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 1rem 1.25rem; display: flex; flex-direction: column; gap: 0.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02); } .detail-metric-label { font-size: 0.75rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 500; } .detail-metric-value { font-family: var(--font-mono); font-size: 1.25rem; font-weight: 600; color: var(--text-primary); } .detail-metric-sub { font-size: 0.75rem; color: var(--text-muted); } .detail-action-card { display: flex; flex-direction: column; justify-content: center; gap: 0.75rem; } .detail-action-card p { font-size: 0.85rem; color: var(--text-muted); } .detail-link-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: #ffffff; border: 1px solid var(--border-color); color: var(--text-secondary); font-size: 0.85rem; padding: 8px 16px; border-radius: var(--radius-sm); font-weight: 500; transition: all var(--transition-fast); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02); } .detail-link-btn:hover { background: rgba(2, 132, 199, 0.08); border-color: var(--primary); color: var(--primary); } /* --- About & Info Sections --- */ .info-section-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; } .info-card { background: var(--bg-surface); backdrop-filter: var(--backdrop-blur); -webkit-backdrop-filter: var(--backdrop-blur); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 2.5rem; display: flex; flex-direction: column; gap: 1.5rem; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.03), 0 1px 3px rgba(15, 23, 42, 0.02); } .info-card h3 { font-size: 1.5rem; background: linear-gradient(to right, #0f172a, #475569); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .info-card p { font-size: 0.95rem; } .info-card ul { padding-left: 1.25rem; color: var(--text-secondary); font-size: 0.95rem; display: flex; flex-direction: column; gap: 0.5rem; } .metric-def { border-left: 2px solid var(--border-color); padding-left: 1.25rem; display: flex; flex-direction: column; gap: 0.75rem; } .metric-def:hover { border-color: var(--primary); } .metric-title { display: flex; align-items: center; gap: 10px; font-family: var(--font-heading); } .metric-badge { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; letter-spacing: 0.02em; } .badge-emerald { background: rgba(5, 150, 105, 0.08); color: var(--accent); border: 1px solid rgba(5, 150, 105, 0.15); } .badge-purple { background: rgba(124, 58, 237, 0.08); color: var(--secondary); border: 1px solid rgba(124, 58, 237, 0.15); } /* --- Submission Guidelines styling --- */ .submit-section { width: 100%; } .submit-card { background: radial-gradient(circle at top right, rgba(124, 58, 237, 0.04), transparent 50%), var(--bg-surface); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 3.5rem; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.5rem; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.03), 0 1px 3px rgba(15, 23, 42, 0.02); } .submit-card:hover { border-color: rgba(124, 58, 237, 0.25); } .submit-card h2 { font-size: 2.25rem; } .submit-card p { max-width: 600px; font-size: 1.05rem; } .steps-list { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; max-width: 650px; text-align: left; margin: 1.5rem 0; } .step-item { display: flex; gap: 1.25rem; align-items: flex-start; background: rgba(15, 23, 42, 0.02); border: 1px solid var(--border-color); padding: 1.25rem; border-radius: var(--radius-md); transition: border-color var(--transition-fast); } .step-item:hover { border-color: var(--primary); } .step-num { background: var(--primary); color: #fff; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-family: var(--font-heading); font-size: 0.85rem; flex-shrink: 0; } .step-detail { display: flex; flex-direction: column; gap: 0.5rem; } .step-detail strong { color: var(--text-primary); font-size: 0.95rem; } .step-detail code { font-family: var(--font-mono); background: #f1f5f9; border: 1px solid #cbd5e1; padding: 4px 8px; border-radius: 4px; color: var(--primary); font-size: 0.85rem; word-break: break-all; } .submit-actions { display: flex; gap: 1rem; margin-top: 1rem; } /* --- Footer --- */ .app-footer { border-top: 1px solid var(--border-color); padding: 2rem 0; background: #f1f5f9; } .footer-container { max-width: 1400px; margin: 0 auto; padding: 0 2rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; } .app-footer p { font-size: 0.85rem; color: var(--text-muted); } .footer-meta { display: flex; align-items: center; gap: 1rem; font-size: 0.85rem; color: var(--text-muted); } .separator { color: rgba(15, 23, 42, 0.08); } .footer-meta a { color: var(--text-muted); } .footer-meta a:hover { color: var(--text-primary); } /* --- Accessibility utilities --- */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } /* --- Responsive Adjustments --- */ @media (max-width: 1200px) { .hero-section { grid-template-columns: 1fr; text-align: center; gap: 2rem; } .hero-content h1 { font-size: 3rem; } .hero-content .lead { max-width: 800px; margin: 0 auto; } .badge { margin-left: auto; margin-right: auto; } .stats-grid { max-width: 800px; margin: 0 auto; width: 100%; } } @media (max-width: 900px) { .info-section-grid { grid-template-columns: 1fr; } .details-inner { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .header-container { flex-direction: column; gap: 1.25rem; } .nav-links { width: 100%; justify-content: center; flex-wrap: wrap; gap: 1.25rem; } .main-content { padding: 1.5rem 1rem; gap: 2.5rem; } .stats-grid { grid-template-columns: 1fr; } .panel-header { flex-direction: column; align-items: stretch; gap: 1.25rem; } .chart-legend-custom { align-self: flex-start; } .table-controls-header { flex-direction: column; align-items: stretch; } .filters-container { flex-direction: column; align-items: stretch; } .search-wrapper { width: 100%; } .chart-container-wrapper { height: 350px; } .submit-card { padding: 2rem 1.5rem; } .submit-actions { flex-direction: column; width: 100%; } .submit-actions a { width: 100%; text-align: center; } .footer-container { flex-direction: column; text-align: center; gap: 1rem; } } @media (max-width: 600px) { .details-inner { grid-template-columns: 1fr; padding: 1.25rem 1.5rem; } }