:root {
    --vk-primary: #E84C7F;
    --vk-success: #41AD4A;
    --vk-warning: #FFD700;
    --vk-danger: #E74C3C;
    --vk-info: #0099D8;
    --vk-text: #1F2437;
    --vk-text-light: #6B7280;
    --vk-border: #E9EDF5;
    --vk-bg-soft: #F5F7FC;
    --vk-shadow: 0 8px 24px rgba(16, 24, 40, 0.08);
    --vk-shadow-lg: 0 16px 40px rgba(16, 24, 40, 0.12);
}

.vk-dashboard-wrapper {
    min-height: 100vh;
    padding: 16px !important;
    background: linear-gradient(180deg, #F7F8FC 0%, #F1F3F9 100%) !important;
}

body.vk-dashboard-canvas {
    margin: 0;
}

body.vk-dashboard-canvas #vk-dashboard-canvas-main {
    min-height: 100vh;
}

body.vk-dashboard-canvas .vk-dashboard-wrapper {
    min-height: 100vh;
    padding: 16px;
    margin: 0;
}

.vk-dashboard {
    width: 100%;
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
}

.vk-sidebar {
    position: sticky;
    top: 16px;
    min-height: calc(100vh - 32px);
    background: #fff;
    border: 1px solid var(--vk-border);
    border-radius: 18px;
    box-shadow: var(--vk-shadow-lg);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.vk-sidebar-brand {
    padding: 6px 6px 12px;
    border-bottom: 1px solid var(--vk-border);
}

.vk-sidebar-logo {
    width: 120px !important;
    max-width: 120px !important;
    height: auto !important;
    display: block !important;
    margin-bottom: 14px !important;
    margin: 0 auto !important;
    padding-bottom: 20px !important;
}

.vk-sidebar-user h3 {
    margin: 0 0 4px;
    color: var(--vk-primary);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
}

.vk-sidebar-user p {
    margin: 0;
    color: var(--vk-text-light);
    font-size: 14px;
}

.vk-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
}

.vk-nav-item {
    display: block;
    border-radius: 10px !important;
    text-decoration: none !important;
    padding: 12px 13px !important;
    font-size: 14px;
    font-weight: 600;
    color: var(--vk-text);
    transition: all 0.2s ease;
}

.vk-nav-item:hover {
    background: var(--vk-bg-soft);
    color: var(--vk-text) !important;
    text-decoration: none !important;
}

.vk-nav-item.active {
    background: linear-gradient(135deg, var(--vk-primary), #FF6A99);
    color: #fff;
    box-shadow: 0 10px 20px rgba(232, 76, 127, 0.25);
}

.vk-nav-item.active:hover {
    background: linear-gradient(95deg, var(--vk-primary), #FF6A99);
    color: #fff !important;
    box-shadow: 0 10px 20px rgba(232, 76, 127, 0.25);
}

.vk-nav-item-accent {
    background: linear-gradient(135deg, #41AD4A, #2F8A37);
    color: #fff;
}

.vk-nav-item-accent:hover {
    background: linear-gradient(135deg, #379D40, #297930);
    color: #fff;
}

.vk-sidebar-footer {
    padding-top: 14px;
    border-top: 1px solid var(--vk-border);
}

.vk-logout-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 10px !important;
    padding: 11px 14px !important;
    background: #1F2437 !important;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 700;
    transition: all 0.2s ease;
}

.vk-logout-btn:hover {
    background: #131824 !important;
    color: #fff !important;
    transform: translateY(-1px);
    text-decoration: none !important;
}

.vk-sidebar-footer p {
    margin: 12px 3px 0;
    font-size: 11px;
    line-height: 1.45;
    color: #8A93A8;
}

.vk-content {
    background: #fff;
    border: 1px solid var(--vk-border);
    border-radius: 18px;
    box-shadow: var(--vk-shadow);
    padding: 28px;
    min-height: calc(100vh - 32px);
}

.vk-section {
    display: none;
}

.vk-section.active {
    display: block;
    animation: vkFadeIn 0.25s ease;
}

@keyframes vkFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.vk-content h2 {
    margin: 0 0 26px;
    color: var(--vk-text);
    font-size: 29px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.2px;
}

.vk-card {
    background: #fff !important;
    border: 1px solid #dce3f0 !important;
    border-left: 1px solid #dce3f0 !important;
    border-radius: 14px !important;
    padding: 22px !important;
    margin-bottom: 16px !important;
    box-shadow: 0 6px 18px rgba(16, 24, 40, 0.05) !important;
    transition: all 0.2s ease !important;
}

.vk-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 14px 28px rgba(16, 24, 40, 0.09) !important;
}

.vk-admin-grid .vk-card,
.vk-groups-grid .vk-card,
.vk-lessons-list .vk-card {
    border-top: 4px solid #f2f5fb !important;
}

.vk-admin-grid .vk-card:nth-child(3n+1),
.vk-groups-grid .vk-card:nth-child(3n+1),
.vk-lessons-list .vk-card:nth-child(3n+1) {
    border-top-color: #e84c7f !important;
}

.vk-admin-grid .vk-card:nth-child(3n+2),
.vk-groups-grid .vk-card:nth-child(3n+2),
.vk-lessons-list .vk-card:nth-child(3n+2) {
    border-top-color: #0099d8 !important;
}

.vk-admin-grid .vk-card:nth-child(3n),
.vk-groups-grid .vk-card:nth-child(3n),
.vk-lessons-list .vk-card:nth-child(3n) {
    border-top-color: #41ad4a !important;
}

.vk-card h3 {
    margin: 0 0 10px;
    color: var(--vk-text);
    font-size: 18px;
    font-weight: 700;
}

.vk-dashboard-wrapper h3 {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.vk-card p {
    margin: 7px 0;
    color: var(--vk-text-light);
    font-size: 15px;
}

.vk-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.vk-card-header h3 {
    margin: 0;
}

.vk-card-body {
    margin-bottom: 14px;
}

.vk-card-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.vk-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 700;
}

.vk-badge-warning {
    background: var(--vk-warning);
    color: #222;
}

.vk-badge-success {
    background: var(--vk-success);
    color: #fff;
}

.vk-badge-danger {
    background: var(--vk-danger);
    color: #fff;
}

.vk-group-status-badge {
    min-width: 0;
    justify-content: center;
    text-transform: none;
    padding: 4px 10px;
    font-size: 11px;
    line-height: 1.15;
}

.vk-group-status-badge.vk-badge-warning {
    background: #ff9f43;
    color: #ffffff;
}

.vk-btn {
    border: 0 !important;
    border-radius: 8px !important;
    padding: 8px 12px !important;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25 !important;
    cursor: pointer !important;
    transition: all 0.2s ease;
    text-decoration: none !important;
}

.vk-btn i {
    margin-right: 4px;
}

.vk-btn-primary {
    background: #4b6bff !important;
    color: #fff !important;
}

.vk-btn-primary:hover {
    background: #3f5cf0 !important;
    color: #fff !important;
    transform: translateY(-1px);
}

.vk-btn-approve {
    background: var(--vk-success) !important;
    color: #fff !important;
}

.vk-btn-approve:hover {
    background: #338C3B;
}

.vk-btn-danger {
    background: var(--vk-danger) !important;
    color: #fff !important;
}

.vk-btn-danger:hover {
    background: #CB3B2A !important;
}

#vk-teacher-lesson-cancel-edit {
    background: #F3F4F6 !important;
    color: #374151 !important;
    border: 1px solid #D1D5DB !important;
    border-radius: 8px !important;
    padding: 8px 14px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    outline: none !important;
}

#vk-teacher-lesson-cancel-edit:hover {
    background: #E5E7EB !important;
    color: #111827 !important;
    border-color: #9CA3AF !important;
}

.vk-dashboard-wrapper a,
.vk-content a,
.vk-sidebar a {
    text-decoration: none !important;
}

.vk-dashboard-wrapper a:hover,
.vk-content a:hover,
.vk-sidebar a:hover {
    text-decoration: none !important;
}

.vk-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(15, 23, 42, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.vk-modal-card {
    width: min(900px, 100%);
    max-height: 90vh;
    overflow: auto;
    background: #fff;
    border-radius: 16px;
    border: 1px solid var(--vk-border);
    box-shadow: 0 28px 60px rgba(16, 24, 40, 0.25);
    padding: 24px;
    position: relative;
}

.vk-confirm-card {
    width: min(520px, 100%) !important;
}

.vk-confirm-cancel {
    background: #eef2f7 !important;
    color: #243047 !important;
    border: 1px solid #d4dbe8 !important;
}

.vk-confirm-cancel:hover {
    background: #e2e9f4 !important;
    color: #1d273a !important;
}

.vk-modal-close {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    border: none !important;
    width: 34px !important;
    height: 34px !important;
    border-radius: 999px !important;
    background: #eef2f9 !important;
    color: #20283a !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    line-height: 1 !important;
}

.vk-modal-close:hover {
    background: #dfe7f5 !important;
}

.vk-modal-close i.fas {
    margin: 0 !important;
    line-height: 1 !important;
}

.vk-details-grid {
    margin-top: 14px;
    display: grid;
    gap: 8px;
}

.vk-details-row {
    background: #f8faff;
    border: 1px solid #e6edf8;
    border-radius: 10px;
    padding: 10px 12px;
}

.vk-details-label {
    font-size: 12px;
    font-weight: 700;
    color: #677389;
    margin-bottom: 4px;
}

.vk-details-value {
    font-size: 14px;
    color: #1f2437;
}

.vk-groups-grid,
.vk-lessons-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
}

.vk-admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
}

.vk-action-panel {
    border-top: 4px solid var(--vk-info) !important;
    background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%) !important;
}

.vk-action-form {
    display: grid !important;
    grid-template-columns: 1fr 1fr auto !important;
    gap: 10px !important;
    align-items: center !important;
    margin-top: 12px !important;
}

.vk-action-form label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--vk-text) !important;
    margin-bottom: 6px !important;
}

.vk-auto-label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--vk-text) !important;
    margin-bottom: 6px !important;
}

.vk-action-form .vk-field-col {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.vk-action-form .vk-field-col > .vk-auto-label {
    margin-bottom: 0 !important;
}

.vk-action-form .vk-field-col-full {
    grid-column: 1 / -1 !important;
}

.vk-action-form select {
    width: 100% !important;
    max-width: 100% !important;
    border: 1px solid var(--vk-border) !important;
    border-radius: 10px !important;
    padding: 11px 12px !important;
    background: #fff !important;
    color: var(--vk-text) !important;
    min-height: 46px !important;
    box-sizing: border-box !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
}

.vk-action-form select:focus {
    outline: none !important;
    border-color: var(--vk-primary) !important;
    box-shadow: 0 0 0 3px rgba(232, 76, 127, 0.12) !important;
}

.vk-action-form input,
.vk-action-form textarea {
    width: 100% !important;
    max-width: 100% !important;
    border: 1px solid var(--vk-border) !important;
    border-radius: 10px !important;
    padding: 11px 12px !important;
    background: #fff !important;
    color: var(--vk-text) !important;
    font-family: inherit !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    box-sizing: border-box !important;
}

.vk-action-form textarea {
    min-height: 140px !important;
    resize: vertical !important;
}

.vk-action-form input:focus,
.vk-action-form textarea:focus {
    outline: none !important;
    border-color: var(--vk-primary) !important;
    box-shadow: 0 0 0 3px rgba(232, 76, 127, 0.12) !important;
}

.vk-status-color-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.vk-status-color-picker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
}

#wp-vk_teacher_lesson_content-wrap {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

#wp-vk_teacher_lesson_content-wrap button {
    background-color: white !important;
}

.vk-status-color-option {
    position: relative;
    display: inline-flex;
    cursor: pointer;
}

.vk-status-color-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.vk-status-color-swatch {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    border: 2px solid transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(17, 24, 39, 0.12);
}

.vk-status-color-swatch::after {
    content: '';
    font-size: 16px;
    line-height: 1;
    font-weight: 800;
    color: #fff;
    opacity: 0;
    transform: scale(0.8);
    transition: all 0.16s ease;
}

.vk-status-color-option input:checked + .vk-status-color-swatch {
    border-color: #111827;
}

.vk-status-color-option input:checked + .vk-status-color-swatch::after {
    content: '✓';
    opacity: 1;
    transform: scale(1);
}

.vk-status-color-option input:focus-visible + .vk-status-color-swatch {
    box-shadow: 0 0 0 3px rgba(232, 76, 127, 0.2);
}

.vk-status-color-success {
    background: #41AD4A;
}

.vk-status-color-danger {
    background: #E74C3C;
}

.vk-status-color-warning {
    background: #FF9F43;
}

.vk-action-form-lesson {
    grid-template-columns: 1fr 1fr 220px !important;
}

.vk-action-form-teacher-create {
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto !important;
    align-items: end !important;
}

.vk-action-form-teacher-create .vk-btn {
    min-height: 46px !important;
    align-self: end !important;
}

.vk-action-form-group-create {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    align-items: end !important;
}

.vk-action-form-group-create textarea,
.vk-action-form-group-create button {
    grid-column: 1 / -1 !important;
}

.vk-action-form-lesson textarea {
    grid-column: 1 / -1 !important;
}

.vk-action-form-lesson button {
    width: fit-content !important;
}

.vk-action-form .vk-btn {
    min-height: 38px !important;
    align-self: center !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
}

#vk-group-update-form {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    align-items: end !important;
}

#vk-group-create-schedule-form {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: end !important;
}

#vk-teacher-lesson-form {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: end !important;
}

.vk-group-card,
.vk-lesson-card {
    border: 1px solid var(--vk-border);
    border-radius: 12px;
    padding: 16px;
    background: #fff;
}

.vk-lesson-date {
    margin-top: 10px !important;
    font-size: 13px;
    color: var(--vk-text-light);
}

.vk-lesson-read-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.vk-lesson-read-badge.is-read {
    background: #DCFCE7;
    color: #166534;
}

.vk-lesson-read-badge.is-unread {
    background: #FEF3C7;
    color: #92400E;
}

.vk-lesson-reader-bar {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--vk-border);
}

.vk-lesson-reader-back {
    background: #F3F4F6 !important;
    color: #374151 !important;
    border: 1px solid #D1D5DB !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.vk-lesson-reader-back:hover {
    background: #E5E7EB !important;
    color: #111827 !important;
    border-color: #9CA3AF !important;
}

.vk-lesson-reader-body {
    max-width: 740px;
    line-height: 1.8;
    font-size: 15px;
    color: var(--vk-text);
}

.vk-lesson-reader-body h2 {
    margin-top: 0;
    margin-bottom: 8px;
    font-size: 22px;
    font-weight: 700;
    color: #111827;
}

.vk-lesson-reader-body h3 {
    font-size: 17px;
    font-weight: 700;
    margin-top: 28px;
    margin-bottom: 8px;
    color: #1F2937;
}

.vk-lesson-reader-body p {
    margin: 0 0 14px;
}

.vk-lesson-reader-body img {
    max-width: 100%;
    border-radius: 8px;
    margin: 12px 0;
}

.vk-lesson-reader-body ul,
.vk-lesson-reader-body ol {
    padding-left: 22px;
    margin-bottom: 14px;
}

.vk-lesson-reader-body li {
    margin-bottom: 6px;
}

.vk-lesson-reader-body .vk-lesson-meta {
    font-size: 13px;
    color: #9CA3AF;
    margin-bottom: 22px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--vk-border);
}

.vk-group-card-large {
    border-top-color: var(--vk-info) !important;
}

.vk-student-groups-grid {
    gap: 14px;
}

.vk-student-group-card {
    border-top-color: var(--vk-info) !important;
}

.vk-student-group-description {
    margin-bottom: 12px !important;
}

.vk-student-group-meta {
    display: grid;
    gap: 8px;
}

.vk-student-group-meta span {
    display: block;
    color: var(--vk-text);
    background: #f8faff;
    border: 1px solid #e7edf8;
    border-radius: 10px;
    padding: 9px 11px;
    font-size: 14px;
}

.vk-schedule-day-card {
    border-top-color: var(--vk-info) !important;
}

.vk-schedule-day-title {
    margin-bottom: 12px !important;
}

.vk-schedule-item {
    border: 1px solid #e7edf8;
    background: #f8faff;
    border-radius: 10px;
    padding: 12px;
    margin-bottom: 10px;
}

.vk-schedule-item:last-child {
    margin-bottom: 0;
}

.vk-schedule-item-group {
    margin: 0 !important;
    color: var(--vk-text) !important;
    font-weight: 700;
}

.vk-schedule-item-time {
    margin: 6px 0 0 !important;
    color: var(--vk-text-light) !important;
    font-size: 14px !important;
}

.vk-schedule-link {
    margin-top: 10px;
    font-size: 12px;
    padding: 8px 12px !important;
}

.vk-table-card {
    padding: 0 !important;
    overflow: hidden !important;
}

.vk-table-wrap {
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin;
}

.vk-data-table {
    width: 100% !important;
    min-width: 760px !important;
    border-collapse: collapse !important;
    font-size: 14px !important;
}

.vk-data-table thead th {
    background: #f6f9ff !important;
    color: #374151 !important;
    font-weight: 700 !important;
    text-align: left !important;
    border-bottom: 1px solid #dbe4f2 !important;
    padding: 13px 14px !important;
    white-space: nowrap !important;
}

.vk-data-table tbody td {
    border-bottom: 1px solid #edf2fb !important;
    color: var(--vk-text) !important;
    padding: 12px 14px !important;
    vertical-align: middle !important;
}

.vk-data-table tbody tr:hover {
    background: #fbfdff !important;
}

/* Hard overrides against theme/Elementor table defaults */
.vk-dashboard-wrapper .vk-content .vk-table-card,
.vk-dashboard-wrapper .vk-content .vk-table-wrap {
    background: #ffffff !important;
    border: 0 !important;
    box-shadow: none !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table {
    width: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: #ffffff !important;
    table-layout: auto !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table thead,
.vk-dashboard-wrapper .vk-content table.vk-data-table tbody,
.vk-dashboard-wrapper .vk-content table.vk-data-table tr {
    background: transparent !important;
    border: 0 !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table thead th {
    background: #f6f9ff !important;
    color: #374151 !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-align: left !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid #dbe4f2 !important;
    padding: 13px 14px !important;
    vertical-align: middle !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table tbody td {
    background: #ffffff !important;
    color: var(--vk-text) !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid #edf2fb !important;
    padding: 12px 14px !important;
    vertical-align: middle !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table tbody tr:last-child td {
    border-bottom: 0 !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table tbody tr:hover td {
    background: #fbfdff !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table p,
.vk-dashboard-wrapper .vk-content table.vk-data-table span,
.vk-dashboard-wrapper .vk-content table.vk-data-table strong,
.vk-dashboard-wrapper .vk-content table.vk-data-table a {
    font-size: inherit !important;
    line-height: inherit !important;
    margin: 0 !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions .vk-btn,
.vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions button,
.vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions a {
    min-height: 30px !important;
    padding: 5px 9px !important;
    width: 170px !important;
    min-width: 170px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    justify-content: center !important;
    box-shadow: none !important;
}

.vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions .vk-btn i,
.vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions button i,
.vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions a i {
    margin-right: 3px !important;
}

.vk-dashboard-wrapper .vk-content .vk-card-actions .vk-btn {
    min-height: 34px !important;
    padding: 7px 11px !important;
}

.vk-dashboard-wrapper .vk-content .vk-table-toolbar {
    margin: 0 0 12px !important;
}

.vk-dashboard-wrapper .vk-content .vk-table-search {
    position: relative !important;
    max-width: 420px !important;
}

.vk-dashboard-wrapper .vk-content .vk-table-search i {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #8a93a5 !important;
    pointer-events: none !important;
}

.vk-dashboard-wrapper .vk-content .vk-table-search input[type="search"] {
    width: 100% !important;
    min-height: 46px !important;
    border: 1px solid var(--vk-border) !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    color: var(--vk-text) !important;
    padding: 11px 14px 11px 38px !important;
    margin: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

.vk-dashboard-wrapper .vk-content .vk-table-search input[type="search"]:focus {
    border-color: var(--vk-primary) !important;
    box-shadow: 0 0 0 3px rgba(232, 73, 132, 0.14) !important;
}

.vk-dashboard-wrapper .vk-content #vk-students-no-results td {
    text-align: center !important;
    color: var(--vk-text-light) !important;
    font-style: italic !important;
    background: #fcfdff !important;
}

.vk-dashboard-wrapper .vk-content #vk-teachers-no-results td {
    text-align: center !important;
    color: var(--vk-text-light) !important;
    font-style: italic !important;
    background: #fcfdff !important;
}

.vk-table-actions {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

.vk-student-profile-modal-card {
    width: min(980px, 100%) !important;
}

.vk-teacher-profile-modal-card {
    width: min(860px, 100%) !important;
}

.vk-group-manage-modal-card {
    width: min(980px, 100%) !important;
}

.vk-group-card-admin .vk-card-actions {
    justify-content: flex-start !important;
}

.vk-group-manage-stats {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.vk-group-manage-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.vk-group-manage-header h3 {
    margin: 0;
}

.vk-btn-compact {
    min-height: 30px !important;
    padding: 5px 10px !important;
    font-size: 12px !important;
}

.vk-group-manage-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.vk-group-manage-box {
    border: 1px solid #e5ebf6;
    border-radius: 12px;
    background: #f9fbff;
    padding: 14px;
}

.vk-group-manage-box h3 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: 16px;
}

#vk-group-assign-teacher-form,
#vk-group-assign-student-form {
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: end !important;
}

#vk-group-assign-teacher-form .vk-btn,
#vk-group-assign-student-form .vk-btn {
    min-height: 46px !important;
    width: 220px !important;
    min-width: 220px !important;
    align-self: end !important;
    justify-content: center !important;
}

#vk-group-assign-teacher-form select,
#vk-group-assign-student-form select {
    min-height: 46px !important;
}

#vk-group-update-form .vk-btn,
#vk-group-create-schedule-form .vk-btn,
#vk-teacher-lesson-form .vk-btn,
.vk-action-form-group-create .vk-btn {
    align-self: end !important;
}

#vk-group-update-form .vk-btn,
#vk-group-create-schedule-form .vk-btn {
    width: 220px !important;
    min-width: 220px !important;
    justify-content: center !important;
}

.vk-group-manage-box-wide {
    grid-column: 1 / -1;
}

.vk-group-manage-list {
    display: grid;
    gap: 8px;
    margin-bottom: 12px;
}

.vk-group-manage-list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #e5e9f2;
    border-radius: 10px;
    background: #fff;
}

.vk-group-manage-list-item span {
    color: var(--vk-text);
    font-size: 14px;
}

.vk-group-remove-teacher-btn,
.vk-group-remove-student-btn {
    width: 220px !important;
    min-width: 220px !important;
    justify-content: center !important;
}

.vk-group-remove-schedule-btn {
    width: 220px !important;
    min-width: 220px !important;
    justify-content: center !important;
}

@media (max-width: 680px) {
    .vk-group-manage-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .vk-group-manage-layout {
        grid-template-columns: 1fr;
    }

    .vk-group-manage-list-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .vk-group-manage-list-item .vk-btn {
        width: 100%;
    }

    #vk-group-assign-teacher-form,
    #vk-group-assign-student-form {
        grid-template-columns: 1fr !important;
    }

    #vk-group-assign-teacher-form .vk-btn,
    #vk-group-assign-student-form .vk-btn {
        width: 100% !important;
        min-width: 0 !important;
    }

    #vk-group-update-form .vk-btn,
    #vk-group-create-schedule-form .vk-btn,
    .vk-group-remove-teacher-btn,
    .vk-group-remove-student-btn,
    .vk-group-remove-schedule-btn {
        width: 100% !important;
        min-width: 0 !important;
    }
}

#vk-student-profile-form h3,
#vk-teacher-profile-form h3 {
    grid-column: 1 / -1 !important;
    margin: 4px 0 4px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #111827 !important;
    padding-top: 8px !important;
    border-top: 1px solid #eef2f8 !important;
}

#vk-student-profile-form h3:first-of-type,
#vk-teacher-profile-form h3:first-of-type {
    border-top: none !important;
    padding-top: 0 !important;
}

#vk-student-profile-form .vk-card-actions .vk-btn,
#vk-teacher-profile-form .vk-card-actions .vk-btn {
    width: 220px !important;
    min-width: 220px !important;
    justify-content: center !important;
}

@media (max-width: 680px) {
    #vk-student-profile-form .vk-card-actions .vk-btn,
    #vk-teacher-profile-form .vk-card-actions .vk-btn {
        width: 100% !important;
        min-width: 0 !important;
    }
}

.vk-empty-state {
    border: 1px dashed #D7DEEA;
    background: #FAFBFE;
    border-radius: 12px;
    padding: 40px 16px;
    text-align: center;
}

.vk-empty-state p {
    margin: 0;
    color: var(--vk-text-light);
    font-size: 16px;
}

.vk-login-box {
    max-width: 460px;
    margin: 40px auto;
    background: #fff !important;
    border-radius: 18px !important;
    border: 1px solid var(--vk-border) !important;
    box-shadow: var(--vk-shadow-lg) !important;
    padding: 34px !important;
}

.vk-login-box h2 {
    margin: 0 0 14px;
    color: var(--vk-text) !important;
    text-align: center;
    font-size: 22px !important;
    font-weight: 700 !important;
}

.vk-login-box p {
    color: var(--vk-text-light) !important;
}

.vk-login-brand {
    text-align: center;
    margin-bottom: 16px;
}

.vk-login-logo {
    width: 120px !important;
    max-width: 120px !important;
    height: auto !important;
    margin: 0 auto !important;
    display: block !important;
}

.vk-login-register-wrap {
    margin-top: 16px;
    text-align: center;
}

.vk-register-cta {
    display: inline-block;
    padding: 10px 14px;
    border: 1px solid var(--vk-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--vk-text) !important;
    font-weight: 600;
    text-decoration: none !important;
}

.vk-register-cta:hover {
    background: #f7f9fd !important;
    text-decoration: none !important;
}

.vk-dashboard-login-form {
    display: grid;
    gap: 14px;
    margin-top: 10px;
}

.vk-login-field label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--vk-text) !important;
    margin-bottom: 6px;
}

.vk-login-field input {
    width: 100% !important;
    border: 1px solid var(--vk-border) !important;
    border-radius: 10px !important;
    padding: 12px 13px !important;
    font-size: 15px !important;
    background: #fff !important;
    color: var(--vk-text) !important;
}

.vk-login-password-wrap {
    position: relative;
}

.vk-login-password-wrap input {
    padding-right: 44px !important;
}

.vk-toggle-password {
    position: absolute !important;
    right: 7px !important;
    top: 50%;
    transform: translateY(-50%);
    width: 32px !important;
    height: 32px !important;
    border: none !important;
    border-radius: 8px !important;
    background: #f2f5fb !important;
    color: #5f6b82 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center;
    transition: all 0.2s ease !important;
    justify-content: center;
    padding: 0 !important;
}

.vk-toggle-password:hover {
    background: #e8edf8 !important;
    color: #2c3548 !important;
}

.vk-toggle-password i.fas {
    margin-right: 0px !important;
}

.vk-login-links {
    text-align: center;
    margin-top: -4px;
}

.vk-login-links a {
    color: var(--vk-primary) !important;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none !important;
}

.vk-login-links a:hover {
    opacity: 0.85;
    text-decoration: none !important;
}

.vk-login-field input:focus {
    outline: none !important;
    border-color: var(--vk-primary) !important;
    box-shadow: 0 0 0 3px rgba(232, 76, 127, 0.12) !important;
}

.vk-input-error {
    border-color: #E74C3C !important;
    box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.12) !important;
}

.vk-login-error {
    border: 1px solid #F1B2B2;
    background: #FFF2F2;
    color: #9F1F1F;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 14px;
    font-weight: 600;
}

.vk-login-static-error {
    margin-bottom: 12px;
}

.vk-login-success {
    border: 1px solid #b6e3c2;
    background: #f2fff5;
    color: #166534;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 14px;
    font-weight: 600;
}

.vk-login-info {
    border: 1px solid #d7e4fb;
    background: #f4f8ff;
    color: #224a89;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.45;
}

.vk-login-remember {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--vk-text-light) !important;
    font-size: 14px;
}

.vk-login-submit {
    width: 100%;
    padding: 12px !important;
}

.vk-reset-submit {
    width: 100%;
}

.vk-login-submit:disabled {
    opacity: 0.7;
    cursor: not-allowed !important;
}

.vk-reset-submit:disabled {
    opacity: 0.7;
    cursor: not-allowed !important;
}

.vk-password-hint {
    font-size: 13px;
    line-height: 1.5;
    color: #6b7280;
    margin-top: -2px;
}

.vk-notice {
    max-width: 820px;
    margin: 20px auto;
    padding: 16px 18px;
    border-radius: 10px;
    border: 1px solid;
}

.vk-notice.vk-error {
    background: #FFF4F4;
    border-color: #F7C7C7;
    color: #8F1D1D;
}

.vk-form-error {
    border: 1px solid #F1B2B2 !important;
    background: #FFF2F2 !important;
    color: #9F1F1F !important;
    border-radius: 10px !important;
    padding: 10px 12px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
    grid-column: 1 / -1 !important;
}

#vk-toast-container {
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 10000 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: min(380px, calc(100vw - 24px)) !important;
    pointer-events: none !important;
}

.vk-toast {
    pointer-events: auto !important;
    border-radius: 12px !important;
    border: 1px solid #dce3f0 !important;
    background: #fff !important;
    box-shadow: 0 16px 36px rgba(16, 24, 40, 0.16) !important;
    padding: 12px 14px !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 10px !important;
    transform: translateY(-8px) scale(0.98) !important;
    opacity: 0 !important;
    transition: all 0.22s ease !important;
}

.vk-toast.is-visible {
    transform: translateY(0) scale(1) !important;
    opacity: 1 !important;
}

.vk-toast-message {
    color: var(--vk-text) !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    font-weight: 600 !important;
}

.vk-toast-close {
    border: none !important;
    background: transparent !important;
    color: #6b7280 !important;
    font-size: 18px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    padding: 0 !important;
}

.vk-toast-close:hover {
    color: #111827 !important;
}

.vk-toast-info {
    border-left: 4px solid #0099D8 !important;
}

.vk-toast-success {
    border-left: 4px solid #41AD4A !important;
}

.vk-toast-warning {
    border-left: 4px solid #FF9F43 !important;
}

.vk-toast-error {
    border-left: 4px solid #E74C3C !important;
}

i.fas {
    margin-right: 8px;
    vertical-align: -1px;
    color: inherit;
}

@media (max-width: 1240px) {
    .vk-dashboard {
        grid-template-columns: 260px minmax(0, 1fr);
    }

    .vk-content h2 {
        font-size: 26px;
    }
}

@media (max-width: 920px) {
    .vk-dashboard {
        grid-template-columns: 1fr;
    }

    .vk-sidebar,
    .vk-content {
        min-height: auto;
        position: static;
    }

    .vk-content {
        padding: 20px;
    }

    .vk-content h2 {
        font-size: 22px;
    }

    .vk-modal-overlay {
        padding: 14px;
    }

    .vk-modal-card {
        padding: 16px;
        border-radius: 12px;
        max-height: calc(100vh - 28px);
    }

    .vk-login-box {
        margin: 20px auto;
        padding: 24px !important;
    }

    .vk-action-form {
        grid-template-columns: 1fr !important;
    }

    .vk-action-form-lesson {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 680px) {
    .vk-dashboard-wrapper {
        padding: 10px !important;
    }

    .vk-content {
        padding: 14px;
    }

    .vk-card {
        padding: 14px !important;
    }

    .vk-content h2 {
        font-size: 20px;
        line-height: 1.2;
    }

    .vk-dashboard-wrapper .vk-content .vk-table-search {
        max-width: 100% !important;
    }

    .vk-table-wrap {
        border-radius: 10px;
        overflow-x: visible !important;
    }

    .vk-data-table {
        min-width: 0 !important;
        font-size: 13px !important;
    }

    .vk-data-table thead {
        display: none !important;
    }

    .vk-data-table tbody {
        display: grid;
        gap: 10px;
    }

    .vk-data-table tbody tr {
        display: block;
        background: #ffffff;
        border: 1px solid #e5ebf6;
        border-radius: 10px;
        overflow: hidden;
    }

    .vk-data-table thead th,
    .vk-data-table tbody td,
    .vk-dashboard-wrapper .vk-content table.vk-data-table thead th,
    .vk-dashboard-wrapper .vk-content table.vk-data-table tbody td {
        padding: 10px 11px !important;
    }

    .vk-data-table tbody td,
    .vk-dashboard-wrapper .vk-content table.vk-data-table tbody td {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 10px !important;
        border-bottom: 1px dashed #e8edf7 !important;
    }

    .vk-data-table tbody td::before {
        content: attr(data-label);
        display: inline-block;
        flex: 0 0 40%;
        max-width: 40%;
        color: #5b6579;
        font-size: 12px;
        font-weight: 700;
    }

    .vk-data-table tbody td:last-child,
    .vk-dashboard-wrapper .vk-content table.vk-data-table tbody td:last-child {
        border-bottom: 0 !important;
    }

    .vk-data-table tbody td[data-label="Veiksmai"] {
        display: block !important;
    }

    .vk-data-table tbody td[data-label="Veiksmai"]::before {
        display: block;
        max-width: 100%;
        margin-bottom: 8px;
    }

    .vk-data-table tbody td[data-label="Veiksmai"] .vk-table-actions {
        width: 100%;
    }

    .vk-data-table tbody tr#vk-students-no-results,
    .vk-data-table tbody tr#vk-teachers-no-results {
        border: 0;
        background: transparent;
    }

    .vk-data-table tbody tr#vk-students-no-results td,
    .vk-data-table tbody tr#vk-teachers-no-results td {
        display: block !important;
        border: 0 !important;
        text-align: center !important;
    }

    .vk-data-table tbody tr#vk-students-no-results td::before,
    .vk-data-table tbody tr#vk-teachers-no-results td::before {
        content: none;
    }

    .vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions .vk-btn,
    .vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions button,
    .vk-dashboard-wrapper .vk-content table.vk-data-table .vk-table-actions a {
        width: auto !important;
        min-width: 132px !important;
        font-size: 11px !important;
    }

    #vk-toast-container {
        right: 10px !important;
        left: 10px !important;
        width: auto !important;
    }
}
