:root{--green-light: #b8e6b8;--green: #7ec87e;--green-dark: #5aad5a;--pink-light: #ffd6e8;--pink: #f5a3c7;--pink-dark: #e87aab;--bg: #fef9fb;--card-bg: #ffffff;--text: #4a4a4a;--text-light: #888;--border: #f0e0e8;--shadow: 0 4px 20px rgba(245, 163, 199, .15);--radius: 12px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}a{color:var(--green-dark);text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}.container{width:100%;max-width:1920px;margin:0 auto;padding:0 32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border:none;border-radius:var(--radius);font-size:14px;font-weight:500;transition:all .2s}.btn-primary{background:linear-gradient(135deg,var(--green),var(--green-dark));color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #7ec87e66}.btn-pink{background:linear-gradient(135deg,var(--pink),var(--pink-dark));color:#fff}.btn-pink:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f5a3c766}.btn-outline{background:transparent;border:2px solid var(--pink);color:var(--pink-dark)}.btn-outline:hover{background:var(--pink-light)}.btn-danger{background:#ff6b6b;color:#fff}.btn-danger:hover{background:#ee5252}.btn-sm{padding:6px 12px;font-size:13px}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;border:1px solid var(--border)}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--text)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:2px solid var(--border);border-radius:var(--radius);outline:none;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--green)}.form-group textarea{resize:vertical;min-height:80px}.error-msg{color:#e74c3c;font-size:14px;margin-top:8px}.success-msg{color:var(--green-dark);font-size:14px;margin-top:8px}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-light)}.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:500}.badge-green{background:var(--green-light);color:var(--green-dark)}.badge-pink{background:var(--pink-light);color:var(--pink-dark)}table{width:100%;border-collapse:collapse}table th,table td{padding:12px;text-align:left;border-bottom:1px solid var(--border)}table th{background:var(--pink-light);color:var(--pink-dark);font-weight:600}table tr:hover{background:#fef5f8}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:var(--radius);padding:28px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow)}.modal h3{margin-bottom:20px;color:var(--pink-dark)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.progress-bar{height:6px;background:var(--pink-light);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--pink));border-radius:3px;transition:width .3s}.video-player-card{padding:0;overflow:hidden}.course-video-sidebar{position:sticky;top:16px;max-height:calc(100vh - 100px);overflow-y:auto;align-self:start}.course-detail-page{width:100%}.course-detail-header{max-width:1680px;margin:16px auto 20px}.course-detail-body{display:flex;justify-content:center;align-items:center;width:100%;min-height:calc(100vh - 220px);padding-bottom:24px}.course-player-layout{width:100%;max-width:1680px;display:grid;grid-template-columns:minmax(0,1fr) 480px;gap:24px;align-items:stretch;margin:0 auto}.course-detail-page.wide-screen{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}.course-detail-page.wide-screen .course-detail-header{max-width:100%;padding:0 20px}.course-detail-body.wide-screen{min-height:auto;padding-bottom:16px}.course-player-layout.wide-screen{max-width:100%;grid-template-columns:1fr;padding:0 20px}.video-player-card.wide-screen{width:100%}.video-player-hover-zone{position:relative}.course-video-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.course-video-sidebar-header h3{margin:0;color:var(--green-dark);font-size:16px}.course-video-list{display:flex;flex-direction:column;gap:8px}.course-video-item{padding:12px;border-radius:8px;cursor:pointer;border:2px solid transparent;transition:background .2s,border-color .2s}.course-video-item:hover{background:#fef5f8}.course-video-item.is-active{background:var(--green-light);border-color:var(--green)}.course-video-index{width:22px;height:22px;border-radius:50%;background:var(--pink-light);color:var(--pink-dark);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;margin-top:2px}.course-video-index.is-done{background:var(--green);color:#fff}.course-video-item-title{font-size:14px;line-height:1.5;flex:1;word-break:break-word;white-space:normal}.course-video-item-title.is-active{font-weight:600}.course-video-floating{position:absolute;top:0;right:0;bottom:84px;width:400px;z-index:3;background:#fffffff7;border-left:1px solid var(--border);border-radius:8px 0 0;box-shadow:-8px 0 24px #0000002e;padding:16px;overflow-y:auto;opacity:0;pointer-events:none;transform:translate(16px);transition:opacity .25s ease,transform .25s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.course-video-floating.is-visible{opacity:1;pointer-events:auto;transform:translate(0)}.course-player-layout.wide-screen .video-player-container{max-height:calc(100vh - 260px)}.video-controls-btn-text.is-active{background:#7ec87e59;color:#fff}.video-player-container{position:relative;width:100%;aspect-ratio:16 / 9;max-height:calc(100vh - 300px);margin:0 auto;background:#000;display:flex;align-items:center;justify-content:center;border-bottom:3px solid var(--green);box-shadow:inset 0 -12px 24px #00000059}.video-player-info{padding:18px 20px 20px;background:linear-gradient(135deg,#fef9fb,#f4fff4);border-top:1px solid var(--border);position:relative}.video-player-info:before{content:"";position:absolute;top:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,var(--pink-light),var(--green-light),transparent)}.video-player-title{margin:0 0 8px;font-size:17px;font-weight:600;color:var(--text);line-height:1.5;word-break:break-word}.video-player-meta{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--green-dark);background:#7ec87e26;padding:4px 10px;border-radius:20px}.video-player-container:fullscreen,.video-player-container:-webkit-full-screen{width:100vw;height:100vh;aspect-ratio:auto}.video-player-container:fullscreen video,.video-player-container:-webkit-full-screen video{width:100%;height:100%;object-fit:contain}.video-controls{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;background:linear-gradient(transparent,#000000bf);z-index:10;opacity:1;transition:opacity .3s ease}.video-controls-hidden{opacity:0;pointer-events:none}.video-poster-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:#000;pointer-events:none}.video-poster-overlay img{object-fit:contain}.video-preparing-overlay{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:6;background:#000000bf;color:#fff;padding:10px 18px;border-radius:20px;font-size:13px;pointer-events:none;white-space:nowrap}.video-controls-progress{height:5px;background:#ffffff40;border-radius:3px;cursor:pointer;margin-bottom:8px;position:relative;overflow:hidden}.video-controls-progress-played{height:100%;background:linear-gradient(90deg,var(--green),var(--pink));border-radius:3px;transition:width .1s linear}.video-controls-row{display:flex;align-items:center;gap:10px}.video-controls-btn{width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.video-controls-btn:hover{background:#ffffff26}.video-controls-btn:disabled{opacity:.35;cursor:not-allowed}.video-controls-btn:disabled:hover{background:transparent}.video-controls-btn-text{width:auto;min-width:40px;padding:0 8px;font-size:12px;font-weight:600}.video-controls-time{font-size:12px;color:#ffffffe6;font-variant-numeric:tabular-nums;min-width:96px;white-space:nowrap}.autoplay-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.autoplay-toggle-label{font-size:13px;color:var(--text-light)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#d8d8d8;border-radius:24px;transition:background .2s}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background:var(--green)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}
