/* =========================================================
   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; }

/* Placeholders mais suaves (não parecem texto já digitado) */
.form-control::placeholder,
.form-select::placeholder,
textarea::placeholder {
    color: #c2c9d2 !important;
    opacity: 1;
    font-weight: 400;
}
.form-control::-webkit-input-placeholder { color: #c2c9d2; }
.form-control:-ms-input-placeholder { color: #c2c9d2; }

/* ===== Perfil vitrine (aluno / instrutor / escola) ===== */
.ks-hero { position: relative; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid #e9edf3; margin-bottom: 1.25rem; }
.ks-hero-cover { height: 230px; background: linear-gradient(120deg, #0aa2a0 0%, #0c2347 100%); }
@media (max-width: 575px) { .ks-hero-cover { height: 165px; } }
.ks-hero-body { padding: 0 1.5rem 1.25rem; position: relative; }
.ks-hero-avatar { width: 108px; height: 108px; border-radius: 50%; border: 5px solid #fff; object-fit: cover; margin-top: -58px; background: #eef1f6; box-shadow: 0 6px 20px rgba(12,35,71,.12); }
.ks-hero-avatar-fallback { width: 108px; height: 108px; border-radius: 50%; border: 5px solid #fff; margin-top: -58px; display: flex; align-items: center; justify-content: center; font-size: 2.4rem; font-weight: 700; color: #0aa2a0; background: #d8f3f2; box-shadow: 0 6px 20px rgba(12,35,71,.12); }
.ks-hero-name { font-size: 1.35rem; font-weight: 700; color: #0c2347; margin: .6rem 0 .1rem; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.ks-hero-role { font-size: .85rem; color: #7a8699; font-weight: 500; }
.ks-hero-actions { position: absolute; right: 1.5rem; top: .9rem; display: flex; gap: .5rem; flex-wrap: wrap; }
.ks-stat-strip { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.1rem; }
.ks-stat-strip .st { flex: 1 1 130px; display: flex; align-items: center; gap: .7rem; padding: .7rem .85rem; border: 1px solid #eef1f6; border-radius: 12px; background: #fbfcfe; }
.ks-stat-strip .st .ic { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: #eaf0ff; color: #4d6bff; font-size: 1.15rem; }
.ks-stat-strip .st .v { font-weight: 700; color: #0c2347; line-height: 1.1; }
.ks-stat-strip .st .l { font-size: .74rem; color: #8b95a5; }

/* Ficha em modo leitura (definição) */
.ks-view-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .25rem 2rem; }
@media (max-width: 767px) { .ks-view-grid { grid-template-columns: 1fr; } }
.ks-view-row { padding: .6rem 0; border-bottom: 1px dashed #eef1f6; }
.ks-view-row .k { font-size: .74rem; text-transform: uppercase; letter-spacing: .3px; color: #98a2b0; }
.ks-view-row .val { font-size: .95rem; color: #2a3547; font-weight: 500; }
.ks-view-row .val.empty { color: #c2c9d2; font-weight: 400; }

/* Avaliações recebidas */
.ks-rev { border: 1px solid #eef1f6; border-radius: 12px; padding: .9rem 1rem; margin-bottom: .75rem; background: #fff; }
.ks-rev .top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.ks-rev .who { font-weight: 600; color: #0c2347; font-size: .95rem; }
.ks-rev .stars { color: #f9b931; font-size: 1.05rem; white-space: nowrap; }
.ks-rev .cmt { color: #48546a; font-size: .92rem; margin-top: .4rem; }
.ks-rev .meta { color: #98a2b0; font-size: .78rem; margin-top: .3rem; }

/* Upload de capa e foto de perfil no hero */
.ks-hero-cover { position: relative; }
.ks-cover-btn { position: absolute; right: 14px; top: 14px; display: flex; gap: 6px; z-index: 2; }
.ks-cam-btn { display: inline-flex; align-items: center; gap: 5px; border: none; cursor: pointer; font-size: .8rem; font-weight: 600; padding: .34rem .7rem; border-radius: 9px; background: rgba(255,255,255,.92); color: #0c2347; box-shadow: 0 2px 8px rgba(12,35,71,.18); }
.ks-cam-btn:hover { background: #fff; }
.ks-cam-btn.danger { color: #d64550; }
.ks-avatar-wrap { position: relative; display: inline-block; }
.ks-avatar-cam { position: absolute; right: 2px; bottom: 6px; width: 32px; height: 32px; border-radius: 50%; border: 2px solid #fff; background: #0aa2a0; color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 2px 8px rgba(12,35,71,.2); }
.ks-avatar-cam:hover { background: #0c8c8a; }
.ks-avatar-cam iconify-icon { font-size: 1rem; }

/* Modal de posicionamento da capa */
.ks-crop-overlay { position: fixed; inset: 0; background: rgba(12,35,71,.55); z-index: 1080; display: none; align-items: center; justify-content: center; padding: 16px; }
.ks-crop-overlay.show { display: flex; }
.ks-crop-box { background: #fff; border-radius: 16px; width: 100%; max-width: 640px; overflow: hidden; box-shadow: 0 20px 60px rgba(12,35,71,.3); }
.ks-crop-head { padding: 1rem 1.25rem .25rem; }
.ks-crop-head h5 { margin: 0; font-weight: 700; color: #0c2347; }
.ks-crop-head p { margin: .2rem 0 0; font-size: .85rem; color: #7a8699; }
.ks-crop-frame { height: 230px; margin: 1rem 1.25rem; border-radius: 12px; background-size: cover; background-position: center 50%; background-repeat: no-repeat; cursor: grab; position: relative; overflow: hidden; user-select: none; touch-action: none; background-color: #eef1f6; }
.ks-crop-frame.drag { cursor: grabbing; }
.ks-crop-hint { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); background: rgba(12,35,71,.65); color: #fff; font-size: .74rem; padding: .25rem .7rem; border-radius: 20px; pointer-events: none; display: flex; align-items: center; gap: 5px; }
.ks-crop-actions { display: flex; justify-content: flex-end; gap: .5rem; padding: 0 1.25rem 1.25rem; }

/* ===== Agendar / Solicitar aula — passos numerados + cards de modalidade ===== */
.ks-step { display: flex; align-items: center; gap: .75rem; margin: 0 0 1rem; }
.ks-step-n { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; background: #0aa2a0; color: #fff; font-weight: 700; font-size: .9rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 3px 10px rgba(10,162,160,.28); }
.ks-step-t { font-weight: 700; color: #0c2347; font-size: 1rem; line-height: 1.15; }
.ks-step-d { font-size: .8rem; color: #8791a3; }
.ks-step + .ks-step-body { margin-bottom: 1.75rem; }

.ks-mod-card { cursor: pointer; border: 1.5px solid #e6eaf0; border-radius: 14px; padding: 1.15rem .8rem; text-align: center; transition: all .16s ease; background: #fff; display: flex; flex-direction: column; align-items: center; gap: .6rem; height: 100%; }
.ks-mod-card:hover { border-color: #0aa2a0; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(12,35,71,.09); }
.ks-mod-card.selected { border-color: #0aa2a0; background: linear-gradient(180deg, #f1fbfb, #fff); box-shadow: 0 0 0 1.5px #0aa2a0 inset; }
.ks-mod-ic { width: 54px; height: 54px; border-radius: 15px; display: flex; align-items: center; justify-content: center; background: #eaf6f6; color: #0aa2a0; transition: all .16s ease; }
.ks-mod-card:hover .ks-mod-ic { background: #d9f1f0; }
.ks-mod-card.selected .ks-mod-ic { background: #0aa2a0; color: #fff; box-shadow: 0 6px 16px rgba(10,162,160,.35); }
.ks-mod-ic svg { width: 30px; height: 30px; }
.ks-mod-name { font-weight: 600; color: #0c2347; font-size: .98rem; }

/* Slots de horário — pílulas */
.ks-slot { border: 1.5px solid #e6eaf0 !important; border-radius: 10px; font-weight: 600; color: #47546b; padding: .55rem .25rem; }
.ks-slot:hover:not(.disabled) { border-color: #0aa2a0 !important; color: #0aa2a0; }
.ks-slot.selected { background: #0aa2a0 !important; border-color: #0aa2a0 !important; color: #fff !important; box-shadow: 0 4px 12px rgba(10,162,160,.3); }
.ks-slot.disabled { background: #f6f8fa; }

/* Cabeçalho azul da página de agendar */
.ks-form-head { border-radius: 16px 16px 0 0; padding: 1.4rem 1.6rem; background: linear-gradient(120deg, #0aa2a0, #0c2347); color: #fff; }
.ks-form-head h4 { color: #fff; font-weight: 700; margin: 0; }
.ks-form-head p { color: rgba(255,255,255,.82); margin: .2rem 0 0; font-size: .88rem; }

/* Ícone de modalidade nos cards de pacote (Comprar Horas) */
.ks-mod-ic-sm { width: 30px; height: 30px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; background: #eaf6f6; color: #0aa2a0; flex: 0 0 30px; }
.ks-mod-ic-sm svg { width: 19px; height: 19px; }
.buy-pkg.selected .ks-mod-ic { background: #0aa2a0; color: #fff; box-shadow: 0 6px 16px rgba(10,162,160,.32); }

/* ===== Agenda: alternador Calendário/Lista + visão em lista (estilo app) ===== */
.ks-view-toggle { display: inline-flex; background: #eef1f6; border-radius: 11px; padding: 3px; gap: 2px; }
.ks-view-toggle button { border: none; background: transparent; padding: .42rem .95rem; border-radius: 8px; font-weight: 600; font-size: .9rem; color: #5f6b7a; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.ks-view-toggle button.on { background: #fff; color: #0aa2a0; box-shadow: 0 1px 4px rgba(12,35,71,.12); }

#listView { max-width: 880px; margin: 0 auto; }
.ks-lday { display: flex; align-items: center; gap: 12px; margin: 1.5rem 0 .7rem; }
.ks-lday:first-child { margin-top: .35rem; }
.ks-lday .d { background: #eef6f6; color: #0a7f7d; border-radius: 8px; padding: 4px 12px; font-size: .76rem; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; }
.ks-lday::after { content: ''; flex: 1; height: 1px; background: #eceff3; }
.ks-lrow { display: flex; align-items: center; gap: 14px; padding: .8rem 1.05rem .8rem .85rem; border: 1px solid #eef1f6; border-radius: 14px; margin-bottom: .6rem; background: #fff; cursor: pointer; transition: box-shadow .16s, transform .16s, border-color .16s; position: relative; }
.ks-lrow::before { content: ''; position: absolute; left: 0; top: 12px; bottom: 12px; width: 4px; border-radius: 0 4px 4px 0; background: #dfe4ea; }
.ks-lrow:hover { box-shadow: 0 12px 26px -10px rgba(12,35,71,.16); transform: translateY(-1px); border-color: #e4e9f0; }
.ks-lic { width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font-size: 21px; flex: 0 0 auto; background: #f0f2f6; color: #7a8699; }
.ks-ltime { text-align: center; font-weight: 800; color: #0c2347; font-size: .95rem; min-width: 50px; line-height: 1.2; display: flex; flex-direction: column; }
.ks-ltime span { color: #9aa4b2; font-weight: 500; font-size: .8rem; }
.ks-lbody { flex: 1; min-width: 0; }
.ks-lname { font-weight: 700; color: #0c2347; font-size: .98rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ks-lmod { font-size: .84rem; color: #7a8699; margin-top: 1px; }
.ks-lbadge { font-size: .74rem; font-weight: 700; padding: 5px 12px; border-radius: 999px; white-space: nowrap; flex: 0 0 auto; background: #eef1f4; color: #5f6b7a; }
.ks-lrow.st-agendada::before { background: #f9b931; } .ks-lrow.st-agendada .ks-lic, .ks-lrow.st-agendada .ks-lbadge { background: #fdf3e0; color: #b5820a; }
.ks-lrow.st-confirmada::before { background: #22c55e; } .ks-lrow.st-confirmada .ks-lic, .ks-lrow.st-confirmada .ks-lbadge { background: #e6f6ec; color: #1a9e4b; }
.ks-lrow.st-concluida::before { background: #0aa2a0; } .ks-lrow.st-concluida .ks-lic, .ks-lrow.st-concluida .ks-lbadge { background: #e8f6f6; color: #0aa2a0; }
.ks-lrow.st-cancelada::before { background: #ef5f5f; } .ks-lrow.st-cancelada .ks-lic, .ks-lrow.st-cancelada .ks-lbadge { background: #fbeaea; color: #d64550; }
.ks-lrow.st-falta::before { background: #6c757d; } .ks-lrow.st-falta .ks-lic, .ks-lrow.st-falta .ks-lbadge { background: #eef1f4; color: #6c757d; }
.ks-lrow.st-aguardando_avaliacao::before { background: #3f9bd6; } .ks-lrow.st-aguardando_avaliacao .ks-lic, .ks-lrow.st-aguardando_avaliacao .ks-lbadge { background: #e9f2fa; color: #2f7fb8; }
.ks-lempty { text-align: center; color: #98a2b0; padding: 3rem 1rem; max-width: 880px; margin: 0 auto; }
