:root { --primary-50: #f0f9f2; --primary-100: #d8f3d8; --primary-200: #bce5c1; --primary-300: #a0d8a8; --primary-400: #7fcf8e; --primary-500: #66bb6a; --primary-600: #5aa75f; --primary-700: #4a8c50; --primary-text: #103a2b; --muted-text: #49705d; --card-bg: rgba(255, 255, 255, 0.85); --border-soft: rgba(102, 187, 106, 0.18); --shadow-soft: 0 12px 40px rgba(48, 94, 60, 0.12); --shadow-hover: 0 18px 50px rgba(48, 94, 60, 0.16); color-scheme: light; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif; background: transparent; color: var(--primary-text); line-height: 1.6; min-height: 100vh; -webkit-font-smoothing: antialiased; } .page { position: relative; margin: 0 auto; width: min(100%, 960px); padding: 20px 16px 72px; } .page-header { display: flex; flex-direction: column; gap: 16px; padding: 20px 18px; border-radius: 18px; background: var(--card-bg); box-shadow: var(--shadow-soft); border: 1px solid var(--border-soft); backdrop-filter: blur(18px); } .title-block { display: flex; flex-direction: column; gap: 6px; } .label-pill { align-self: flex-start; padding: 4px 12px; font-size: 0.82rem; font-weight: 600; color: var(--primary-700); background: rgba(102, 187, 106, 0.15); border-radius: 999px; letter-spacing: 0.06em; } .page-header h1 { font-size: 1.6rem; font-weight: 700; line-height: 1.3; } .meta-block { display: flex; flex-direction: column; gap: 10px; } .update-time { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; font-size: 0.9rem; color: var(--muted-text); background: rgba(255, 255, 255, 0.7); border-radius: 10px; border: 1px solid rgba(102, 187, 106, 0.22); } .refresh-button { align-self: flex-start; padding: 10px 18px; font-size: 0.92rem; font-weight: 600; color: #fff; background: linear-gradient(135deg, var(--primary-500), var(--primary-600)); border: none; border-radius: 999px; cursor: pointer; box-shadow: 0 10px 24px rgba(102, 187, 106, 0.35); transition: transform 0.2s ease, box-shadow 0.2s ease; } .refresh-button:active { transform: scale(0.97); } .summary-section { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 20px; } .summary-card { padding: 18px 16px; background: var(--card-bg); border-radius: 16px; border: 1px solid var(--border-soft); box-shadow: var(--shadow-soft); backdrop-filter: blur(12px); display: flex; flex-direction: column; gap: 8px; } .card-label { font-size: 0.92rem; color: var(--muted-text); letter-spacing: 0.04em; } .card-value { font-size: 1.4rem; font-weight: 700; display: flex; align-items: baseline; gap: 6px; color: var(--primary-700); } .card-value .unit { font-size: 0.88rem; font-weight: 500; color: var(--muted-text); } .list-section { margin-top: 28px; padding: 22px 18px 26px; background: var(--card-bg); border-radius: 20px; border: 1px solid var(--border-soft); box-shadow: var(--shadow-soft); backdrop-filter: blur(16px); } .section-header { display: flex; flex-direction: column; gap: 6px; margin-bottom: 20px; } .section-header h2 { font-size: 1.3rem; font-weight: 700; } .section-subtitle { font-size: 0.88rem; color: var(--muted-text); } .movie-list { display: flex; flex-direction: column; gap: 16px; } .loading, .error-message { padding: 18px 16px; text-align: center; color: var(--muted-text); background: rgba(255, 255, 255, 0.7); border-radius: 14px; border: 1px dashed rgba(102, 187, 106, 0.35); } .movie-item { display: grid; grid-template-columns: auto 1fr; gap: 14px; padding: 16px; border-radius: 18px; background: rgba(255, 255, 255, 0.95); border: 1px solid rgba(102, 187, 106, 0.18); box-shadow: 0 12px 28px rgba(48, 94, 60, 0.08); transition: transform 0.2s ease, box-shadow 0.2s ease; } .movie-item:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); } .movie-rank { width: 46px; height: 46px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.1rem; color: #fff; background: var(--primary-500); } .movie-rank.top-1 { background: linear-gradient(135deg, #4caf50, #43a047); } .movie-rank.top-2 { background: linear-gradient(135deg, #66bb6a, #5aa75f); } .movie-rank.top-3 { background: linear-gradient(135deg, #81c784, #66bb6a); } .movie-body { display: flex; flex-direction: column; gap: 12px; } .movie-heading { display: flex; flex-direction: column; gap: 6px; } .movie-title { font-size: 1.1rem; font-weight: 700; color: var(--primary-text); } .release-info { font-size: 0.9rem; color: var(--muted-text); } .movie-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; } .stat { display: flex; flex-direction: column; gap: 2px; } .stat-label { font-size: 0.83rem; color: var(--muted-text); letter-spacing: 0.02em; } .stat-value { font-size: 1rem; font-weight: 600; color: var(--primary-700); } .progress-metrics { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; } .progress-group { display: flex; flex-direction: column; gap: 4px; } .progress-label { display: flex; justify-content: space-between; font-size: 0.8rem; color: var(--muted-text); } .progress-bar { width: 100%; height: 6px; border-radius: 6px; background: rgba(102, 187, 106, 0.16); overflow: hidden; } .progress-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(135deg, rgba(102, 187, 106, 0.9), rgba(76, 175, 80, 0.85)); width: 0; transition: width 0.5s ease; } /* Tablet */ @media (min-width: 600px) { .page { padding: 28px 20px 84px; } .page-header { flex-direction: row; align-items: center; justify-content: space-between; } .title-block h1 { font-size: 1.8rem; } .meta-block { align-items: flex-end; } .summary-section { grid-template-columns: repeat(4, minmax(0, 1fr)); } .movie-item { grid-template-columns: 80px 1fr; padding: 18px 20px; } .movie-rank { width: 54px; height: 54px; font-size: 1.25rem; } .movie-heading { flex-direction: row; align-items: center; justify-content: space-between; } .release-info { font-size: 0.88rem; } .movie-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } .progress-metrics { flex-direction: row; gap: 16px; } .progress-group { flex: 1; } } /* Desktop */ @media (min-width: 1024px) { .page { padding: 36px 24px 96px; } .page-header { padding: 26px 30px; } .page-header h1 { font-size: 2.1rem; } .summary-card { padding: 20px 22px; } .card-value { font-size: 1.6rem; } .list-section { padding: 28px 30px 34px; } .movie-item { grid-template-columns: 96px 1fr; padding: 22px 26px; border-radius: 20px; } .movie-title { font-size: 1.25rem; } .movie-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); } .progress-metrics { gap: 18px; } } @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }