.veng-list{display:flex;flex-direction:column;gap:16px;margin:24px 0}.veng-card{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;border:1px solid #e3e6eb;border-radius:10px;background:#fff;transition:box-shadow .2s ease,border-color .2s ease}.veng-card:hover{box-shadow:0 4px 18px rgb(0 0 0 / .07);border-color:#cfd6e0}.veng-card__title{margin:0 0 10px;font-size:1.15em;line-height:1.35}.veng-card__title a{text-decoration:none;color:#1a1a1a}.veng-card__title a:hover{color:#2563eb}.veng-card__meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 20px;font-size:.92em;color:#4b5563}.veng-card__meta li{margin:0}.veng-card__meta .veng-val{white-space:nowrap}.veng-label{display:inline-block;min-width:56px;color:#8a93a2;font-weight:600;margin-right:4px}.veng-card__action{flex-shrink:0}.veng-btn{display:inline-block;padding:11px 22px;border-radius:8px;font-weight:600;font-size:.95em;text-decoration:none;cursor:pointer;border:1px solid #fff0;line-height:1.2;text-align:center}.veng-btn{text-decoration:none!important}.veng-btn--apply{background:#2563eb;color:#fff!important}.veng-btn--apply:hover{background:#1d4ed8;color:#fff!important}.veng-btn--closed{background:#e5e7eb;color:#6b7280!important;cursor:not-allowed}.veng-btn--list{background:#fff;color:#374151!important;border-color:#d1d5db;margin-left:8px}.veng-btn--list:hover{background:#f9fafb}.veng-status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.85em;font-weight:600}.veng-status--open{background:#dcfce7;color:#166534}.veng-status--before{background:#fef9c3;color:#854d0e}.veng-status--closed{background:#fee2e2;color:#991b1b}.veng-status--finished{background:#e5e7eb;color:#4b5563}.veng-empty{padding:40px;text-align:center;color:#9ca3af;border:1px dashed #d1d5db;border-radius:10px}.veng-detail__course-title{font-size:1.6em;line-height:1.3;margin:0 0 18px}.veng-detail__head{padding:18px 22px;background:#f8fafc;border:1px solid #e3e6eb;border-radius:10px;margin-bottom:24px}.veng-detail__meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px}.veng-detail__meta li{margin:0;color:#374151}.veng-detail__section{margin:28px 0}.veng-detail__section h3{font-size:1.1em;border-bottom:2px solid #1f2937;padding-bottom:8px;margin-bottom:14px}.veng-detail__fee{background:#fff}.veng-detail__attach ul{list-style:none;margin:0;padding:0}.veng-detail__attach li{margin:6px 0}.veng-detail__attach a{text-decoration:none;color:#2563eb}.veng-detail__actions{margin-top:32px;padding-top:20px;border-top:1px solid #e5e7eb;text-align:center}.veng-apply{max-width:760px;margin:0 auto}.veng-apply__title{margin-bottom:18px}.veng-apply__info{padding:14px 18px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin-bottom:24px}.veng-apply__info p{margin:4px 0}.veng-notice{padding:14px 18px;border-radius:8px;background:#f3f4f6}.veng-notice--closed{background:#fee2e2;color:#991b1b}.veng-card__thumb{flex:0 0 auto;width:132px;height:92px;border-radius:10px;overflow:hidden;display:block;background:#f1f3f5}.veng-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;border-radius:10px}.veng-card__thumb-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#c2c8d0}.veng-card__body{flex:1 1 auto;min-width:0}.veng-card__action{flex-shrink:0;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.veng-card .veng-btn{padding:9px 16px;font-size:.9em}.veng-btn--detail{background:#fff;color:#374151!important;border-color:#d1d5db}.veng-btn--detail:hover{background:#f9fafb;color:#111827!important}.veng-card--finished{background:#f9fafb}.veng-view[hidden]{display:none!important}.veng-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;flex-wrap:wrap}.veng-sort{display:flex;align-items:center}.veng-sort-select{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='%236b7280' stroke-width='1.6'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:10px 6px!important;border:1px solid #d1d5db!important;border-radius:8px!important;margin:0;padding:8px 34px 8px 14px!important;font-size:.92em;font-weight:600;color:#374151!important;line-height:1.3;height:auto;min-height:0;cursor:pointer}.veng-sort-select:hover{border-color:#9ca3af!important}.veng-sort-select:focus{outline:none;border-color:#2563eb!important;box-shadow:0 0 0 3px rgb(37 99 235 / .15)}.veng-viewswitch{display:flex;gap:4px}.veng-viewswitch__btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:34px;border:1px solid #d1d5db!important;background:#fff!important;border-radius:8px;cursor:pointer;color:#6b7280!important}.veng-viewswitch__btn.is-active{background:#2563eb!important;border-color:#2563eb!important;color:#fff!important}.veng-viewswitch__btn[data-view="list"] svg{fill:currentColor!important}.veng-viewswitch__btn[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(-4px);background:#1f2937;color:#fff;font-size:12px;font-weight:500;line-height:1;white-space:nowrap;padding:6px 9px;border-radius:6px;box-shadow:0 4px 12px rgb(0 0 0 / .18);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:100}.veng-viewswitch__btn[data-tooltip]::before{content:"";position:absolute;top:calc(100% + 3px);left:50%;transform:translateX(-50%);border:5px solid #fff0;border-bottom-color:#1f2937;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease;z-index:100}.veng-viewswitch__btn[data-tooltip]:hover::after,.veng-viewswitch__btn[data-tooltip]:focus-visible::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.veng-viewswitch__btn[data-tooltip]:hover::before,.veng-viewswitch__btn[data-tooltip]:focus-visible::before{opacity:1;visibility:visible}.veng-calendar{border:1px solid #e3e6eb;border-radius:10px;overflow:hidden}.veng-cal__head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid #eef0f3}.veng-cal__nav{display:flex;align-items:center;gap:6px}.veng-cal__nav button{border:1px solid #d1d5db!important;background:#fff!important;border-radius:6px;min-width:30px;height:30px;cursor:pointer;line-height:1;padding:0 8px;color:#374151!important}.veng-cal__nav button:hover{background:#f3f4f6!important}.veng-cal__today{font-size:.85em}.veng-cal__title{font-weight:700;font-size:1.1em}.veng-cal__grid{display:grid;grid-template-columns:repeat(7,1fr)}.veng-cal__weekdays{background:#f8fafc;border-bottom:1px solid #eef0f3}.veng-cal__wd{padding:8px 6px;text-align:center;font-size:.82em;font-weight:600;color:#6b7280}.veng-cal__wd.is-sun{color:#dc2626}.veng-cal__wd.is-sat{color:#2563eb}.veng-cal__week{position:relative}.veng-cal__week-bg{display:grid;grid-template-columns:repeat(7,1fr)}.veng-cal__cell{border-right:1px solid #f1f3f5;border-bottom:1px solid #f1f3f5;padding:6px;box-sizing:border-box}.veng-cal__cell:nth-child(7n){border-right:none}.veng-cal__cell.is-other{background:#fcfcfd}.veng-cal__cell.is-other .veng-cal__date{color:#c2c8d0}.veng-cal__cell.is-today{background:#eff6ff}.veng-cal__cell.is-today .veng-cal__date{font-weight:800}.veng-cal__cell.is-sun .veng-cal__date{color:#dc2626}.veng-cal__cell.is-sat .veng-cal__date{color:#2563eb}.veng-cal__date{font-size:.82em}.veng-cal__week-events{position:absolute;left:0;right:0;display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0}.veng-cal__event{display:block;margin:0 3px;height:20px;line-height:20px;font-size:.74em;color:#fff!important;background:#2563eb;border-radius:4px;padding:0 8px;text-decoration:none!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.veng-cal__event:hover{opacity:.88;color:#fff!important}.veng-cal__event.is-finished{background-color:#9ca3af!important}@media (max-width:640px){.veng-list{gap:12px;margin:16px 0}.veng-card{flex-wrap:wrap;align-items:stretch;gap:12px;padding:14px 16px}.veng-card__thumb{width:100%;height:140px}.veng-card__title{font-size:1.05em;margin-bottom:8px}.veng-card__meta{font-size:.85em;gap:4px 14px}.veng-card__action{justify-content:stretch}.veng-card .veng-btn{flex:1 1 auto}.veng-btn--list{margin-left:0;margin-top:8px}.veng-toolbar{margin-bottom:12px}.veng-cal__head{gap:8px;padding:10px;flex-wrap:wrap}.veng-cal__nav button{min-width:28px;height:28px}.veng-cal__title{font-size:1em}.veng-cal__wd{padding:6px 2px;font-size:.72em}.veng-cal__cell{padding:3px}.veng-cal__date{font-size:.72em}.veng-cal__event{height:18px;line-height:18px;font-size:.62em;padding:0 4px;margin:0 2px;border-radius:3px}}