/* =========================================================
   YHE — SPRINT 15.8
   Limpieza visual final / visual polish layer
   ---------------------------------------------------------
   Objetivo: eliminar fricción perceptual, normalizar detalles
   Bootstrap heredados y unificar superficies públicas, alumno
   y administración sin modificar lógica funcional.
   ========================================================= */

/* ---------- Global polish ---------- */

:where(a, button, .btn, .card, .yhe-card, .yhe-plan-card, .yhe-student-card, .yhe-admin-card, .table tbody tr, .form-control, .form-select){
    transition:
        background-color .22s ease,
        border-color .22s ease,
        color .22s ease,
        box-shadow .22s ease,
        transform .22s ease,
        opacity .22s ease;
}

:where(a, button, .btn, .form-control, .form-select):focus-visible{
    outline:0;
    box-shadow:0 0 0 .24rem rgba(95,160,129,.18) !important;
}

.text-muted,
.text-secondary{
    color:var(--yhe-text-soft) !important;
}

.bg-light,
.table-light{
    background-color:var(--yhe-surface-soft) !important;
}

.border,
.border-top,
.border-bottom,
.border-start,
.border-end{
    border-color:rgba(27,41,43,.08) !important;
}

/* ---------- Buttons normalization ---------- */

.btn{
    font-weight:700;
    letter-spacing:.005em;
}

.btn:active{
    transform:translateY(0) scale(.99);
}

.btn-dark,
.btn-primary{
    background:var(--yhe-dark) !important;
    border-color:var(--yhe-dark) !important;
    color:#fff !important;
    box-shadow:0 10px 22px rgba(27,41,43,.12);
}

.btn-dark:hover,
.btn-primary:hover{
    background:var(--yhe-blue) !important;
    border-color:var(--yhe-blue) !important;
    color:#fff !important;
    transform:translateY(-1px);
}

.btn-outline-dark,
.btn-outline-primary{
    color:var(--yhe-dark) !important;
    border-color:rgba(27,41,43,.18) !important;
    background:rgba(255,255,255,.66) !important;
}

.btn-outline-dark:hover,
.btn-outline-primary:hover{
    background:var(--yhe-dark) !important;
    border-color:var(--yhe-dark) !important;
    color:#fff !important;
    transform:translateY(-1px);
}

.btn-success{
    background:var(--yhe-green) !important;
    border-color:var(--yhe-green) !important;
    color:#fff !important;
}

/* ---------- Cards / surfaces ---------- */

.card,
.yhe-card,
.yhe-student-card,
.yhe-admin-card,
.yhe-trial-form,
.yhe-trial-panel{
    border-color:rgba(27,41,43,.08) !important;
    box-shadow:0 14px 34px rgba(27,41,43,.055);
}

.card:hover,
.yhe-card:hover,
.yhe-student-card:hover,
.yhe-admin-card:hover{
    box-shadow:0 24px 56px rgba(27,41,43,.09);
}

.card-header,
.card-footer{
    background:rgba(245,239,230,.55);
    border-color:rgba(27,41,43,.08);
}

/* ---------- Badges / pills ---------- */

.badge{
    border-radius:999px;
    padding:.45rem .72rem;
    font-weight:800;
    letter-spacing:.01em;
}

.badge.bg-dark,
.badge.text-bg-dark{
    background:var(--yhe-dark) !important;
}

.badge.bg-success,
.badge.text-bg-success{
    background:var(--yhe-green) !important;
}

.badge.bg-warning,
.badge.text-bg-warning{
    background:rgba(231,254,65,.72) !important;
    color:var(--yhe-dark) !important;
}

.badge.bg-secondary,
.badge.text-bg-secondary{
    background:rgba(61,96,99,.12) !important;
    color:var(--yhe-blue) !important;
}

/* ---------- Forms ---------- */

label,
.form-label{
    color:var(--yhe-dark);
    font-weight:700;
    margin-bottom:.45rem;
}

.form-control,
.form-select{
    border-color:rgba(27,41,43,.11);
    background-color:rgba(255,255,255,.86);
    color:var(--yhe-text);
}

.form-control::placeholder{
    color:rgba(31,42,44,.42);
}

.form-control:focus,
.form-select:focus{
    border-color:var(--yhe-green);
    box-shadow:0 0 0 .24rem rgba(95,160,129,.16);
}

.form-text,
.invalid-feedback,
.valid-feedback{
    font-size:.86rem;
}

/* ---------- Alerts ---------- */

.alert{
    border:1px solid rgba(27,41,43,.08);
    border-radius:1.15rem;
    box-shadow:0 12px 28px rgba(27,41,43,.045);
}

.alert-success{
    background:rgba(95,160,129,.13);
    color:#285943;
    border-color:rgba(95,160,129,.24);
}

.alert-warning{
    background:rgba(231,254,65,.18);
    color:var(--yhe-dark);
    border-color:rgba(231,254,65,.38);
}

.alert-danger{
    background:rgba(217,123,123,.12);
    color:#7f3939;
    border-color:rgba(217,123,123,.22);
}

.alert-info{
    background:rgba(61,96,99,.10);
    color:var(--yhe-blue);
    border-color:rgba(61,96,99,.18);
}

/* ---------- Tables ---------- */

.table{
    --bs-table-color:var(--yhe-text);
    --bs-table-hover-bg:rgba(95,160,129,.055);
}

.table > :not(caption) > * > *{
    border-bottom-color:rgba(27,41,43,.07);
    vertical-align:middle;
}

.table thead th,
.table th{
    color:var(--yhe-text-soft);
    font-size:.76rem;
    font-weight:800;
    letter-spacing:.055em;
    text-transform:uppercase;
}

.table tbody tr:hover{
    background:rgba(95,160,129,.045);
}

.table-responsive{
    border-radius:1.1rem;
}

/* ---------- Public polish ---------- */

.yhe-kicker{
    color:var(--yhe-dark);
    background:rgba(231,254,65,.52);
    border:1px solid rgba(27,41,43,.08);
    border-radius:999px;
    padding:.42rem .85rem;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.yhe-hero-title,
.yhe-plans-intro h1,
.yhe-trial-header h1{
    letter-spacing:-.035em;
}

.yhe-trust-pill,
.yhe-plans-meta span,
.yhe-trial-benefit{
    will-change:transform;
}

.yhe-trust-pill:hover,
.yhe-plans-meta span:hover,
.yhe-trial-benefit:hover{
    transform:translateY(-2px);
}

.yhe-hero-mini-grid div,
.yhe-trial-benefit,
.yhe-plans-meta span{
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

/* ---------- Student polish ---------- */

.yhe-student-shell{
    background:
        radial-gradient(circle at top right, rgba(231,254,65,.12), transparent 26rem),
        var(--yhe-bg);
}

.yhe-student-kicker{
    color:var(--yhe-dark);
    background:rgba(231,254,65,.55);
    border:1px solid rgba(27,41,43,.08);
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    padding:.35rem .75rem;
    border-radius:999px;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.yhe-student-nav-link.active,
.yhe-student-nav-link[aria-current="page"]{
    background:rgba(95,160,129,.12);
    color:var(--yhe-green) !important;
}

/* ---------- Admin polish ---------- */

.yhe-admin-contextbar{
    border-bottom:1px solid rgba(27,41,43,.08);
}

.yhe-admin-breadcrumb{
    color:var(--yhe-dark);
    font-weight:900;
    letter-spacing:.01em;
}

.yhe-related-nav a{
    border-radius:999px;
    font-weight:800;
}

.yhe-related-nav a:hover{
    transform:translateY(-1px);
}

.yhe-admin-navbar .nav-link.active,
.yhe-admin-navbar .nav-link[aria-current="page"]{
    background:rgba(231,254,65,.14);
    color:#fff !important;
}

/* ---------- Small screens final cleanup ---------- */

@media(max-width:991.98px){
    .display-4{
        font-size:clamp(2.25rem,11vw,3.2rem);
    }

    .display-5{
        font-size:clamp(2rem,9vw,2.75rem);
    }

    .yhe-hero,
    .yhe-home-hero,
    .yhe-trial-panel,
    .yhe-trial-form,
    .yhe-plan-card{
        border-radius:1.5rem;
    }

    .yhe-plans-meta,
    .yhe-hero-trust{
        justify-content:flex-start !important;
    }
}

@media(max-width:575.98px){
    .btn,
    .btn-yhe,
    .btn-yhe-outline,
    .btn-yhe-accent{
        min-height:2.9rem;
    }

    .yhe-kicker{
        font-size:.72rem;
        padding:.38rem .7rem;
    }

    .table-responsive{
        margin-left:-.25rem;
        margin-right:-.25rem;
    }
}
