@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;500;600;700&display=swap'); :root { color-scheme: light; font-family: 'Manrope', 'Segoe UI', sans-serif; line-height: 1.5; font-weight: 500; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; --slate-50: #f8fafc; --slate-100: #f1f5f9; --slate-200: #e2e8f0; --slate-300: #cbd5e1; --slate-600: #475569; --slate-700: #334155; --slate-900: #0f172a; --indigo-600: #4f46e5; --indigo-700: #4338ca; --emerald-600: #059669; --amber-500: #f59e0b; --red-100: #fee2e2; --red-500: #ef4444; --shadow-sm: 0 4px 16px rgba(15, 23, 42, 0.06); } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 10% 20%, #eef2ff 0%, #f8fafc 45%, #f1f5f9 100%); color: var(--slate-900); overflow-x: hidden; } #app { min-height: 100vh; } .app { display: flex; flex-direction: column; min-height: 100vh; } .header { background: #ffffff; border-bottom: 1px solid var(--slate-200); box-shadow: var(--shadow-sm); } .header-inner { max-width: 1200px; margin: 0 auto; padding: 16px 20px 10px; display: flex; align-items: center; justify-content: space-between; gap: 16px; } .header-sub { max-width: 1200px; margin: 0 auto; padding: 0 20px 12px; display: flex; justify-content: space-between; align-items: center; gap: 12px; } .brand { display: flex; align-items: baseline; gap: 8px; font-size: 20px; letter-spacing: -0.02em; } .brand-strong { font-weight: 700; color: var(--indigo-600); } .brand-light { font-weight: 300; color: var(--slate-300); } .header-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; } .meta-row { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--slate-600); } .meta-label { text-transform: uppercase; letter-spacing: 0.12em; font-weight: 700; font-size: 10px; } .meta-error { color: var(--red-500); font-size: 12px; } .content { flex: 1; max-width: 1200px; width: 100%; margin: 0 auto; padding: 24px 20px 40px; display: flex; flex-direction: column; gap: 24px; } @media (orientation: landscape) and (max-width: 1023px) { .header-inner, .header-sub, .content { max-width: 500px; } } @media (min-width: 1024px) { .header-inner, .header-sub, .content { max-width: 1200px; } } .search-area { display: flex; flex-direction: column; gap: 16px; width: 100%; } .search-field { position: relative; } .search-icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: #94a3b8; } .search-icon svg { width: 100%; height: 100%; } .search-input { width: 100%; min-width: 0; padding: 18px 44px 18px 50px; border-radius: 18px; border: 1px solid var(--slate-200); background: #ffffff; font-size: 16px; color: var(--slate-700); box-shadow: var(--shadow-sm); } .search-input[type='search']::-webkit-search-cancel-button, .search-input[type='search']::-webkit-search-decoration { -webkit-appearance: none; appearance: none; } .search-input:focus { outline: 2px solid rgba(79, 70, 229, 0.2); border-color: var(--indigo-600); } .search-clear { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); border: none; background: transparent; font-size: 24px; color: #94a3b8; cursor: pointer; } .filters-row { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; width: 100%; } .filter-group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; } .filter-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--slate-600); font-weight: 700; } .chip { border-radius: 999px; border: 1px solid var(--slate-200); background: #ffffff; color: var(--slate-600); font-size: 11px; font-weight: 700; padding: 6px 14px; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; } .chip.active { background: #e0e7ff; border-color: #c7d2fe; color: var(--indigo-700); } .chip.dark { text-transform: none; font-size: 12px; letter-spacing: 0.02em; font-weight: 600; } .chip.dark.active { background: var(--slate-900); color: #ffffff; border-color: var(--slate-900); } .chip.mini { padding: 4px 10px; font-size: 10px; } .alphabet-row { display: flex; flex-wrap: wrap; gap: 6px; } .select { padding: 8px 12px; border-radius: 10px; border: 1px solid var(--slate-200); background: #ffffff; font-weight: 600; color: var(--slate-700); } .btn { border-radius: 12px; border: 1px solid transparent; padding: 8px 16px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; cursor: pointer; } .btn-primary { background: var(--indigo-600); color: #ffffff; } .btn-primary:disabled { opacity: 0.6; cursor: not-allowed; } .btn-ghost { background: transparent; border-color: var(--slate-200); color: var(--slate-600); } .stats-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; } .language-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .language-control { display: flex; align-items: center; gap: 6px; justify-content: flex-start; } .language-control.secondary { margin-left: auto; justify-content: flex-end; } .swap-link { border: 1px solid var(--slate-200); background: transparent; color: var(--slate-600); border-radius: 10px; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; text-decoration: none; } .swap-link svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } .section-title { margin: 0; font-size: 18px; font-weight: 700; color: var(--slate-900); } .section-heading { display: flex; align-items: baseline; gap: 8px; } .section-subtitle { margin: 0; font-size: 12px; color: var(--slate-600); } .stats { display: flex; gap: 10px; flex-wrap: wrap; } .badge { border-radius: 999px; border: 1px solid var(--slate-200); background: #ffffff; padding: 6px 12px; font-size: 12px; font-weight: 700; color: var(--slate-600); } .badge.success { border-color: #bbf7d0; color: var(--emerald-600); } .table-shell { background: #ffffff; border-radius: 16px; border: 1px solid var(--slate-200); box-shadow: var(--shadow-sm); overflow: hidden; width: 100%; } .table-scroll { max-height: 68vh; overflow: auto; max-width: 100%; } .glossary { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; color: var(--slate-700); } .glossary thead th { position: sticky; top: 0; background: var(--slate-50); border-bottom: 1px solid var(--slate-200); z-index: 2; text-align: left; padding: 12px 16px; min-width: 160px; } .glossary tbody td { padding: 14px 16px; border-bottom: 1px solid var(--slate-100); background: #ffffff; min-width: 160px; } .glossary .sticky-col { position: sticky; left: 0; z-index: 3; background: #ffffff; min-width: 240px; border-right: 1px solid var(--slate-100); } .glossary thead .sticky-col { background: var(--slate-50); z-index: 4; } .row-missing td { background: rgba(254, 226, 226, 0.45); } .th-title { display: flex; align-items: baseline; gap: 6px; font-size: 12px; font-weight: 700; color: var(--slate-700); } .th-code { font-size: 10px; letter-spacing: 0.2em; color: #94a3b8; } .th-sub { margin-top: 4px; font-size: 10px; color: #94a3b8; } .th-sub.completion { color: var(--emerald-600); font-weight: 700; } .entry-title { font-weight: 700; color: var(--slate-900); } .empty-cell { padding: 24px; color: var(--slate-600); } .missing { color: #94a3b8; } @media (max-width: 900px) { .header-inner, .header-sub, .content { padding-left: 16px; padding-right: 16px; } .header-sub { flex-direction: column; align-items: flex-start; } .filters-row { flex-direction: column; align-items: flex-start; } .language-controls { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 8px; } .language-control { width: 100%; } .language-control.secondary { margin-left: 0; } .language-control .select { width: 100%; } .table-scroll { max-height: none; } } @media (max-width: 640px) { .header-inner { flex-direction: column; align-items: flex-start; } .header-actions { width: 100%; justify-content: space-between; } .search-input { font-size: 14px; } .glossary thead th, .glossary tbody td { min-width: 140px; } .glossary .sticky-col { min-width: 200px; } }