/* =========================================================
   KitSchool — ajustes sobre o tema Larkon (azul + Inter)
   ========================================================= */

/* ---------- Escala de tamanhos ampliada ---------- */
:root {
    --bs-body-font-size: 0.9575rem;      /* 14px -> ~15.3px */
    --bs-main-nav-item-font-size: 16px;  /* itens do menu */
    --bs-main-nav-item-icon-size: 24px;  /* ícones do menu */
    --bs-main-nav-item-padding-y: 12px;  /* respiro entre itens */
}

/* Títulos e seções */
h4, .h4 { font-size: 1.35rem; }
h5, .h5 { font-size: 1.15rem; }
.card-title { font-size: 1.1rem !important; }
.main-nav .menu-title { font-size: 12.5px !important; letter-spacing: 0.6px; }

/* Utilitários de fonte do tema, ampliados */
.fs-12 { font-size: 13px !important; }
.fs-13 { font-size: 14px !important; }
.fs-14 { font-size: 15px !important; }
.fs-15 { font-size: 16px !important; }

/* Tabelas e formulários maiores */
.table { font-size: 0.9575rem; }
.table > thead th { font-size: 0.9rem; }
.form-label { font-size: 0.925rem; }
.form-control, .form-select { font-size: 0.9575rem; }
.btn { font-size: 0.9375rem; }
.btn-sm { font-size: 0.85rem; }
.badge { font-size: 0.78em; }
.dropdown-menu { font-size: 0.9375rem; }

/* Cards de estatística — números maiores */
.ks-stat-card h4 { font-size: 1.5rem; }
.ks-stat-card .fs-13 { font-size: 14.5px !important; }

/* Logo da marca (imagem) — preenche a área do topo do menu */
:root {
    --bs-logo-lg-height: 66px;
    --bs-logo-sm-height: 42px;
}
.ks-brand { height: 66px; max-width: 235px; width: auto; object-fit: contain; }
.ks-brand-sm { height: 40px; width: auto; }
.ks-brand-invert { filter: brightness(0) invert(1); }
.logo-box { display: flex; align-items: center; justify-content: center; }

/* Menu lateral cinza claro (tema claro) */
html[data-menu-color="light"] {
    --bs-main-nav-bg: #f2f4f7;
    --bs-main-nav-border-color: #e4e8ee;
    --bs-main-nav-item-color: #5f6b7a;
}
html[data-menu-color="light"] .main-nav .nav-item .nav-link.active {
    color: #0aa2a0;
    background: rgba(10, 162, 160, 0.08);
}
html[data-menu-color="light"] .main-nav .menu-title { color: #98a2b0; }

/* Tela de login split-screen — overlay navy da marca */
.ks-auth-bg {
    background: linear-gradient(rgba(7, 20, 42, 0.55), rgba(12, 35, 71, 0.55)),
                url('../../foto_bg.png') center/cover no-repeat;
}
.ks-auth-divider { width: 56px; height: 4px; background: #0aa2a0; border-radius: 4px; margin: 12px auto; }

/* Cards de estatística */
.ks-stat-card .avatar-md { width: 44px; height: 44px; }

/* Wizard de nova aula — cards selecionáveis */
.ks-pick {
    cursor: pointer;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    transition: all .15s ease;
}
.ks-pick:hover { border-color: #0aa2a0; }
.ks-pick.selected {
    border-color: #0aa2a0;
    background: rgba(10, 162, 160, 0.08);
    box-shadow: 0 0 0 1px #0aa2a0 inset;
}

/* Slots de horário */
.ks-slot { cursor: pointer; }
.ks-slot.disabled { opacity: .45; cursor: not-allowed; }

/* Barra de vida útil do equipamento */
.ks-life-bar { height: 8px; border-radius: 8px; }

/* FullCalendar — cores por status */
.fc-event.ev-agendada   { background: #f9b931; border-color: #f9b931; }
.fc-event.ev-confirmada { background: #22c55e; border-color: #22c55e; }
.fc-event.ev-concluida  { background: #0aa2a0; border-color: #0aa2a0; }
.fc-event.ev-cancelada  { background: #ef5f5f; border-color: #ef5f5f; text-decoration: line-through; }
.fc-event.ev-falta      { background: #6c757d; border-color: #6c757d; }
.fc-event { cursor: pointer; }

/* ---------- Mobile ---------- */
@media (max-width: 767.98px) {
    .page-content { padding-bottom: 24px; }
    .container-fluid { padding-left: 12px; padding-right: 12px; }
    .card .card-body { padding: 1rem; }
    h4.fw-bold { font-size: 1.05rem; }
    /* tabelas roláveis por padrão */
    .table-responsive { -webkit-overflow-scrolling: touch; }
    /* botões de ação de página ocupam largura no mobile */
    .ks-actions-mobile .btn { flex: 1; }
    /* FullCalendar compacto */
    .fc .fc-toolbar { flex-direction: column; gap: 8px; }
    .fc .fc-toolbar-title { font-size: 1.1rem; }
}

/* Área de toque melhor no menu mobile */
@media (max-width: 1140px) {
    .main-nav .nav-item .nav-link { padding-top: 12px; padding-bottom: 12px; }
}

/* Badges suaves para status */
.badge.bg-dark-subtle { background: rgba(50, 58, 70, .15) !important; }
.text-dark-subtle { color: #323a46 !important; }

/* Choices.js dentro de modais */
.choices__list--dropdown { z-index: 1060; }

/* Tabela rolável com dropdown aberto: não corta o menu */
.table-responsive.ks-overflow-visible { overflow: visible !important; }

/* ---------- Barra de impersonação (Super Admin acessando outra conta) ---------- */
.ks-imp-bar {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 42px;
    z-index: 1070;
    background: #0c2347;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 14px;
    padding: 0 12px;
    box-shadow: 0 2px 8px rgba(12, 35, 71, .25);
}
.ks-imp-bar strong { color: #5fd0cd; }
.ks-imp-exit {
    color: #fff;
    background: #0aa2a0;
    padding: 5px 14px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
    white-space: nowrap;
}
.ks-imp-exit:hover { background: #088f8d; color: #fff; }
body.ks-imp { padding-top: 42px; }
body.ks-imp .topbar { top: 42px; }
body.ks-imp .main-nav { top: 42px; }
@media (max-width: 767.98px) {
    .ks-imp-bar { font-size: 12px; gap: 6px; }
    .ks-imp-bar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* =========================================================
   Cards de Planos (Super Admin) — estilo pricing profissional
   ========================================================= */
.ks-plans { margin-top: .5rem; }
.ks-plan-card {
    position: relative;
    background: #fff;
    border: 1.5px solid #e6eaf0;
    border-radius: 20px;
    padding: 2rem 1.75rem 1.75rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    box-shadow: 0 2px 10px rgba(12, 35, 71, .04);
}
.ks-plan-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(12, 35, 71, .12); }
.ks-plan-featured {
    border-color: #0aa2a0;
    box-shadow: 0 14px 40px rgba(10, 162, 160, .18);
    background: linear-gradient(180deg, #f4fbfb 0%, #ffffff 42%);
}
.ks-plan-archived { opacity: .6; filter: grayscale(.4); }

.ks-plan-badge {
    position: absolute;
    top: -13px; left: 50%; transform: translateX(-50%);
    background: #0aa2a0; color: #fff;
    font-size: 11.5px; font-weight: 700; letter-spacing: .8px;
    padding: 6px 16px; border-radius: 999px;
    box-shadow: 0 6px 16px rgba(10, 162, 160, .35);
    white-space: nowrap;
}
.ks-plan-badge-arch { background: #8a94a6; box-shadow: none; }

.ks-plan-head { display: flex; align-items: center; gap: .85rem; margin-bottom: 1.25rem; }
.ks-plan-ic {
    width: 46px; height: 46px; flex: 0 0 46px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 13px; font-size: 24px;
    background: rgba(10, 162, 160, .12); color: #0aa2a0;
}
.ks-plan-featured .ks-plan-ic { background: #0aa2a0; color: #fff; }
.ks-plan-name { font-size: 1.35rem; font-weight: 700; color: #0c2347; margin: 0 0 2px; }
.ks-plan-tag { font-size: .875rem; color: #7a8699; margin: 0; }

.ks-plan-price { display: flex; align-items: flex-start; gap: 2px; color: #0c2347; line-height: 1; margin-bottom: .35rem; }
.ks-plan-price .cur { font-size: 1.15rem; font-weight: 700; margin-top: .55rem; }
.ks-plan-price .int { font-size: 3.1rem; font-weight: 800; letter-spacing: -1.5px; }
.ks-plan-price .cents { font-size: 1.15rem; font-weight: 700; margin-top: .5rem; }
.ks-plan-price .per { font-size: .95rem; font-weight: 500; color: #7a8699; align-self: flex-end; margin-bottom: .5rem; margin-left: 3px; }

.ks-plan-limit { font-size: .9rem; color: #5f6b7a; margin-bottom: .25rem; }
.ks-plan-limit iconify-icon { color: #0aa2a0; margin-right: 4px; }
.ks-plan-div { border-color: #e6eaf0; opacity: 1; margin: 1.15rem 0; }

.ks-plan-features { list-style: none; padding: 0; margin: 0 0 1.25rem; flex: 1 1 auto; }
.ks-plan-features li { display: flex; align-items: flex-start; gap: .6rem; font-size: .95rem; color: #3d4859; padding: .32rem 0; }
.ks-plan-features li iconify-icon { color: #0aa2a0; font-size: 1.2rem; flex: 0 0 auto; margin-top: 1px; }
.ks-plan-featured .ks-plan-features li iconify-icon { color: #0aa2a0; }

.ks-plan-meta { font-size: .82rem; color: #98a2b0; text-align: center; margin-bottom: 1rem; }
.ks-plan-meta strong { color: #0c2347; }
.ks-plan-actions .btn { border-radius: 12px; padding: .7rem 1rem; font-weight: 600; }
.ks-plan-actions .btn-dark { background: #0c2347; border-color: #0c2347; }
.ks-plan-actions .btn-link { text-decoration: none; font-weight: 500; }
