.course-filters { display:grid; grid-template-columns:2fr 1fr 1fr auto; align-items:end; gap:16px; margin:0 0 32px; }
.course-filters label { display:grid; gap:8px; color:#53617c; font-size:14px; }
.course-filters input,.course-filters select { width:100%; min-width:0; padding:12px; border:1px solid #dbe3f0; border-radius:10px; background:#fff; font:inherit; }
.course-filters button,.course-pagination button { padding:12px 18px; border:1px solid #dbe3f0; border-radius:10px; background:#17369e; color:#fff; font:inherit; cursor:pointer; }
.course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.course-card { min-width:0; overflow:hidden; border:1px solid #e9eef5; border-radius:18px; background:#fff; }
.course-card>img,.course-card-cover { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.course-card-cover { display:flex; align-items:center; justify-content:center; color:#17369e; background:linear-gradient(135deg,#eef3ff,#e0eaff); font-size:20px; font-weight:700; }
.course-card-body { padding:24px; }
.course-card h2 { font-size:22px; line-height:1.45; }
.course-card p,.course-copy p { line-height:1.8; white-space:pre-line; overflow-wrap:anywhere; }
.course-meta { color:#63708b; font-size:13px; }
.course-empty { grid-column:1/-1; padding:40px 24px; text-align:center; background:#f7f9fc; border-radius:14px; }
.course-pagination { display:flex; gap:16px; justify-content:center; margin:32px 0; }
.course-pagination button:disabled { opacity:.45; cursor:default; }
.course-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:40px; margin-top:28px; }
.course-detail-cover { width:100%; height:auto; border-radius:18px; }
.course-copy { padding:20px 0; }
.course-copy h2 { font-size:24px; margin-bottom:16px; }
.course-chapter { border:1px solid #e9eef5; border-radius:12px; padding:20px; margin:14px 0; }
.course-chapter summary { cursor:pointer; font-weight:700; }
.course-chapter ol { padding-left:20px; }
.course-chapter li { display:flex; justify-content:space-between; align-items:start; gap:20px; padding:16px 0; border-bottom:1px solid #e9eef5; }
.course-chapter li span { flex:0 0 auto; color:#63708b; font-size:13px; }
.course-access-panel { position:sticky; top:110px; align-self:start; padding:24px; background:#f7f9fc; border:1px solid #e9eef5; border-radius:18px; overflow-wrap:anywhere; }
.course-access-panel h2 { font-size:20px; }
@media(max-width:1000px) { .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .course-detail-layout { grid-template-columns:1fr; } .course-access-panel { position:static; } .course-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .course-grid,.course-filters { grid-template-columns:1fr; } .course-card-body { padding:20px; } .course-chapter { padding:16px; } }
.learning-nav,.learning-actions { display:flex; flex-wrap:wrap; gap:12px 22px; align-items:center; margin:0 0 28px; }
.learning-nav a { color:#17369e; text-decoration:none; padding:8px 0; }
.learning-nav a:hover { text-decoration:underline; }
.learning-button { display:inline-flex; justify-content:center; align-items:center; gap:8px; border:1px solid #17369e; border-radius:12px; padding:12px 18px; margin:8px 8px 8px 0; background:#17369e; color:#fff; text-decoration:none; font:inherit; cursor:pointer; text-align:center; white-space:normal; }
.learning-button:disabled { opacity:.5; cursor:wait; }
.learning-form { display:grid; gap:18px; max-width:600px; }
.learning-form label { display:grid; gap:8px; }
.learning-form input { width:100%; border:1px solid #dce4f1; border-radius:10px; padding:12px; font:inherit; }
.learning-checkout { max-width:780px; margin:auto; padding:30px; border:1px solid #e3e9f3; border-radius:18px; }
.learning-checkout p,.learning-record p,.learning-outline a { overflow-wrap:anywhere; line-height:1.8; }
.learning-policy { padding:20px; background:#f6f8fc; white-space:pre-line; max-height:360px; overflow:auto; }
.learning-price { font-size:24px; font-weight:700; color:#17369e; }
.learning-check { display:flex; gap:10px; align-items:flex-start; margin:20px 0; line-height:1.7; }
.learning-check input { flex:0 0 auto; margin-top:7px; }
.learning-record { padding:24px; border:1px solid #e3e9f3; border-radius:14px; margin:16px 0; }
.learning-record h2 { font-size:22px; }
.learning-qr { display:block; max-width:100%; height:auto; margin:20px auto; }
.learning-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:32px; align-items:start; }
.learning-video { display:block; width:100%; aspect-ratio:16/9; background:#101722; border-radius:14px; margin:20px 0; }
.learning-outline { padding:20px; background:#f7f9fc; border-radius:14px; }
.learning-outline li { margin:12px 0; }
.learning-outline [aria-current=page] { color:#17369e; font-weight:700; }
.learning-actions button,[data-player-attachments] button { font:inherit; padding:10px 16px; border:1px solid #dce4f1; border-radius:10px; background:#fff; cursor:pointer; }
.course-access-panel .learning-nav { gap:4px 12px; margin:16px 0; font-size:13px; }
.course-access-panel .learning-button { display:flex; width:100%; box-sizing:border-box; }
.course-card progress { width:100%; }
[data-learning-message],[data-access-message] { line-height:1.8; overflow-wrap:anywhere; }
@media(max-width:1000px){.learning-layout{grid-template-columns:1fr;}.learning-outline{order:2;}}
@media(max-width:600px){.learning-checkout{padding:20px;}.learning-nav{gap:6px 18px;}.learning-button{max-width:100%;box-sizing:border-box;}}
.member-contact-auth { border-top:1px solid #e4eaf3; margin-top:28px; padding-top:24px; }
.member-contact-auth form { display:grid; gap:16px; }
.member-contact-auth select,.member-contact-auth input { padding:12px; border:1px solid #dce4f1; border-radius:10px; width:100%; font:inherit; box-sizing:border-box; }
.member-contact-auth label { display:grid; gap:8px; }
.member-contact-auth label.member-agreement { display:flex; align-items:flex-start; flex-wrap:wrap; font-size:13px; line-height:1.7; }
.member-contact-auth .member-agreement input { width:auto; flex:0 0 auto; margin:5px 0; }
.member-contact-auth button { padding:12px 18px; font:inherit; border:1px solid #dce4f1; border-radius:10px; cursor:pointer; }
.member-contact-auth button:disabled { opacity:.5; cursor:default; }
