:root { --primary-600: #6C5CE7; --primary-500: #7C69FF; --primary-100: #EAE7FF; --accent-pink: #FF8FB1; --accent-sky: #65C3FF; --success: #34C759; --warning: #F6A609; --error: #FF5A5F; --neutral-900: #1F2430; --neutral-700: #4B5563; --neutral-500: #9AA3B2; --neutral-200: #E5E7EB; --neutral-100: #F5F7FB; --hero-gradient: linear-gradient(135deg, #EAE7FF 0%, #FDF6FF 40%, #EAF6FF 100%); } * { box-sizing: border-box; } :root { --container-width: 1200px; --gutter: 24px; --radius-card: 12px; --radius-input: 10px; --radius-button: 8px; --radius-pill: 24px; --shadow-s: 0 4px 16px rgba(31,36,48,0.08); --shadow-m: 0 10px 30px rgba(31,36,48,0.12); } body { margin: 0; font-family: "PingFang SC", "Noto Sans SC", Inter, system-ui, -apple-system, sans-serif; color: var(--neutral-900); background: var(--neutral-100); } a { color: var(--primary-600); text-decoration: none; } .page { min-height: 100vh; } .container { width: min(var(--container-width), 100% - 48px); margin: 0 auto; } .nav { background: #fff; border-bottom: 1px solid var(--neutral-200); position: sticky; top: 0; z-index: 10; } .nav__inner { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; gap: 16px; } .nav__left, .nav__center, .nav__right { display: flex; align-items: center; gap: 16px; } .nav__logo { display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--neutral-900); } .nav__logo-badge { width: 28px; height: 28px; border-radius: 8px; background: linear-gradient(135deg, var(--primary-500), var(--accent-sky)); } .nav__item { color: var(--neutral-700); font-weight: 500; } .nav__item.active { color: var(--primary-600); } .hero { background: var(--hero-gradient); border-radius: 16px; padding: 32px; box-shadow: var(--shadow-s); } .section { margin: 28px 0; } .section-title { font-size: 20px; font-weight: 600; margin-bottom: 12px; } .grid { display: grid; gap: 16px; } .grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); } .grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); } .card { background: #fff; border-radius: var(--radius-card); padding: 16px; box-shadow: var(--shadow-s); } .card--flat { box-shadow: none; border: 1px solid var(--neutral-200); } .card-cover { width: 100%; aspect-ratio: 21 / 9; border-radius: 10px; background: linear-gradient(135deg, var(--primary-100), #fff 60%, var(--accent-sky)); margin-bottom: 12px; } .card-title { font-weight: 600; margin: 6px 0; } .card-meta { color: var(--neutral-500); font-size: 12px; } .badge { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: var(--radius-pill); background: var(--primary-100); color: var(--primary-600); font-size: 12px; } .chips { display: flex; flex-wrap: wrap; gap: 8px; } .chip { padding: 6px 12px; border-radius: var(--radius-pill); border: 1px solid var(--neutral-200); background: #fff; font-size: 12px; } .chip.selected { background: var(--primary-100); border-color: var(--primary-500); color: var(--primary-600); } .btn { height: 40px; padding: 0 16px; border-radius: var(--radius-button); border: 1px solid transparent; cursor: pointer; font-weight: 600; } .btn--primary { background: var(--primary-600); color: #fff; } .btn--secondary { background: #fff; border-color: var(--primary-600); color: var(--primary-600); } .btn--ghost { background: transparent; color: var(--neutral-700); } .btn--danger { background: #fff; border-color: var(--error); color: var(--error); } .input, select, textarea { width: 100%; padding: 10px 12px; border-radius: var(--radius-input); border: 1px solid var(--neutral-200); background: #fff; font-size: 14px; } .row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; } .stepper { display: flex; gap: 10px; align-items: center; } .step { padding: 6px 12px; border-radius: var(--radius-pill); background: var(--neutral-100); color: var(--neutral-700); font-size: 12px; } .step.active { background: var(--primary-100); color: var(--primary-600); } .toolbar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; } .table { width: 100%; border-collapse: collapse; } .table th, .table td { border-bottom: 1px solid var(--neutral-200); padding: 12px 8px; text-align: left; font-size: 14px; } .avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--primary-100); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; color: var(--primary-600); } .cover-hero { aspect-ratio: 16 / 9; border-radius: 14px; background: linear-gradient(135deg, var(--primary-100), #fff 55%, var(--accent-pink)); } .audio-player { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 12px; border: 1px solid var(--neutral-200); background: #fff; } .audio-bar { height: 6px; background: var(--neutral-200); border-radius: 999px; flex: 1; } .audio-progress { width: 35%; height: 100%; background: var(--primary-600); border-radius: 999px; } .tabs { display: flex; gap: 8px; border-bottom: 1px solid var(--neutral-200); } .tab { padding: 10px 12px; color: var(--neutral-700); } .tab.active { color: var(--primary-600); border-bottom: 2px solid var(--primary-600); } .callout { background: #fff; border: 1px dashed var(--neutral-200); border-radius: 12px; padding: 12px; color: var(--neutral-700); font-size: 12px; } .footer-note { color: var(--neutral-500); font-size: 12px; margin-top: 12px; } .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; } .split { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; } @media (max-width: 1024px) { .grid-3 { grid-template-columns: repeat(2, minmax(0,1fr)); } .split { grid-template-columns: 1fr; } } @media (max-width: 768px) { .grid-2 { grid-template-columns: 1fr; } .grid-3 { grid-template-columns: 1fr; } .row { grid-template-columns: 1fr; } }