* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; background: #f4f5f7; color: #1c2733; }
.site-header { background: #1c2733; color: #fff; padding: 1rem 1.5rem; }
.site-header h1 { margin: 0; font-size: 1.4rem; }
.site-header a { color: #fff; text-decoration: none; }
.container { max-width: 900px; margin: 1.5rem auto; padding: 0 1.5rem; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.card { display: block; background: #fff; border: 1px solid #dde2e8; border-radius: 8px; padding: 1.25rem; text-decoration: none; color: inherit; box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.card:hover { border-color: #4a6fa5; }
.card h3 { margin: 0 0 .5rem; }
.card p { margin: 0; color: #66727e; }
.back a { color: #4a6fa5; }
.video-list { list-style: none; padding: 0; }
.video-list li { margin: 0 0 .5rem; }
.video-list a { display: flex; align-items: center; gap: .75rem; background: #fff; border: 1px solid #dde2e8; border-radius: 8px; padding: .75rem 1rem; text-decoration: none; color: inherit; }
.video-list a:hover { border-color: #4a6fa5; }
.play-badge { width: 2rem; height: 2rem; border-radius: 50%; background: #4a6fa5; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; flex: 0 0 auto; }
.player-wrap { background: #000; border-radius: 8px; overflow: hidden; }
video#player { width: 100%; max-height: 70vh; display: block; }
.expired { text-align: center; margin-top: 3rem; }
.error { background: #fdecea; border: 1px solid #e4a4a0; color: #8b1e1a; border-radius: 8px; padding: .75rem 1rem; }
