@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--cs-ink:#183c35;--cs-green:#176b54;--cs-green-dark:#105641;--cs-mint:#eaf5ef;--cs-muted:#687b75;--bs-primary:var(--cs-green);--bs-primary-rgb:23,107,84;--bs-link-color:var(--cs-green);--bs-link-hover-color:var(--cs-green-dark)}
body{font-family:'DM Sans',sans-serif;color:#233c36;background:#fff}h1,h2,h3,.cs-brand{font-family:'Manrope','DM Sans',sans-serif;letter-spacing:-.035em}a{color:var(--cs-green)}.btn-primary{--bs-btn-bg:var(--cs-green);--bs-btn-border-color:var(--cs-green);--bs-btn-hover-bg:var(--cs-green-dark);--bs-btn-hover-border-color:var(--cs-green-dark);--bs-btn-active-bg:#0d4938;--bs-btn-active-border-color:#0d4938}.btn-outline-primary{--bs-btn-color:var(--cs-green);--bs-btn-border-color:#87b7a5;--bs-btn-hover-bg:var(--cs-green);--bs-btn-hover-border-color:var(--cs-green)}.form-control,.form-select{min-height:44px;border-color:#dbe5df}.form-control:focus,.form-select:focus{border-color:#6da78e;box-shadow:0 0 0 .2rem rgba(23,107,84,.14)}
.cs-header{position:relative;z-index:2;background:#fff;border-bottom:1px solid #edf1ed}.cs-brand{font-size:1.25rem;font-weight:800;color:var(--cs-ink);text-decoration:none;letter-spacing:-.06em}.cs-brand span:last-child{color:var(--cs-green);margin-left:.28rem}.cs-brand-mark{display:inline-grid;place-items:center;width:31px;height:31px;margin-right:8px;border-radius:10px;background:var(--cs-green);color:white;font-size:0;vertical-align:middle}.cs-brand-mark:after{content:'↗';font-size:20px;font-weight:700}.cs-hero{overflow:hidden;background:radial-gradient(ellipse at 78% 45%,#dff2e6 0,#eff8f2 32%,transparent 62%),linear-gradient(115deg,#f8fbf8,#f1f8f3)}.cs-hero .container{padding-top:clamp(3rem,7vw,6.5rem)!important;padding-bottom:clamp(3rem,7vw,6.5rem)!important}.cs-eyebrow,.cs-section-label{display:inline-flex;align-items:center;gap:8px;color:var(--cs-green);font-size:.75rem;font-weight:700;letter-spacing:.12em}.cs-eyebrow span{width:8px;height:8px;border-radius:50%;background:#43a97a}.cs-hero h1{max-width:680px;margin:1rem 0;font-size:clamp(2.7rem,5vw,4.5rem);line-height:1.08;font-weight:800;color:var(--cs-ink)}.cs-hero h1 em{color:var(--cs-green);font-style:normal}.cs-lead{max-width:590px;color:#63766e;font-size:1.14rem;line-height:1.7}.cs-search{max-width:720px;margin-top:1.8rem;padding:9px;border:1px solid #e5ece7;border-radius:16px;background:white;box-shadow:0 12px 32px #194b3112}.cs-search-field{display:flex;align-items:center;gap:9px;height:100%;padding:0 9px;color:#7a9285}.cs-search-field .form-control{border:0;box-shadow:none}.cs-search .btn{min-height:48px;border-radius:11px}.cs-hero-note{margin-top:15px;color:#72867c;font-size:.9rem}.cs-hero-note i{margin-right:6px;color:#299567}.cs-hero-art{position:relative;display:grid;place-items:center;min-height:390px}.cs-orbit{position:absolute;border:1px solid #a8d0b5;border-radius:50%;transform:rotate(-18deg)}.cs-orbit-one{width:360px;height:290px}.cs-orbit-two{width:300px;height:380px;transform:rotate(34deg);border-color:#c3dfc9}.cs-hero-card{position:relative;z-index:1;display:flex;align-items:center;gap:14px;width:min(390px,100%);padding:23px;border-radius:18px;background:#fff;box-shadow:0 20px 65px #244c3520}.cs-person-icon{display:grid;place-items:center;flex:0 0 54px;height:54px;border-radius:16px;background:#e8f5eb;color:var(--cs-green);font-size:25px}.cs-hero-card strong,.cs-hero-card small{display:block}.cs-hero-card strong{color:var(--cs-ink)}.cs-hero-card small{margin-top:4px;color:#799087}.cs-card-check{display:grid;place-items:center;width:28px;height:28px;margin-left:auto;border-radius:50%;background:#e4f5e9;color:#208252}.cs-float{position:absolute;z-index:1;display:flex;align-items:center;gap:8px;padding:11px 15px;border:1px solid #eef2ef;border-radius:12px;background:#fff;box-shadow:0 8px 28px #244c3518;color:var(--cs-ink);font-size:.85rem;font-weight:600}.cs-float i{color:#219465}.cs-float-top{top:34px;right:0}.cs-float-bottom{bottom:35px;left:0}.cs-hero-spark{position:absolute;color:#43a97a;font-size:32px}.cs-spark-one{top:50px;left:40px}.cs-spark-two{right:35px;bottom:64px;color:#e4a44a}.cs-how{background:#fff}.cs-how h2{margin:.5rem 0 2.5rem;color:var(--cs-ink);font-size:clamp(1.7rem,3vw,2.4rem);font-weight:800}.cs-step{position:relative;height:100%;padding:27px 24px;border:1px solid #edf1ed;border-radius:16px;background:#fff}.cs-step-number{position:absolute;top:18px;right:20px;color:#d4e7d9;font-size:1.5rem;font-weight:800}.cs-step-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:20px;border-radius:14px;background:#e9f5ed;color:var(--cs-green);font-size:21px}.cs-step h3{font-size:1.15rem;font-weight:700;color:var(--cs-ink)}.cs-step p{margin:0;color:#73847c;line-height:1.6}.cs-pro-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:32px;overflow:hidden;padding:clamp(25px,5vw,52px);border-radius:20px;background:#164d3d;color:#fff}.cs-pro-banner>*{position:relative;z-index:1}.cs-pro-banner .cs-section-label{color:#a8ddbd}.cs-pro-banner h2{max-width:600px;margin:.6rem 0;font-size:clamp(1.7rem,3vw,2.6rem);font-weight:800}.cs-pro-banner p{margin:0;color:#d3e5da}.cs-pro-banner .btn{white-space:nowrap;color:var(--cs-green);font-weight:700}.cs-banner-shape{position:absolute;z-index:0!important;right:8%;width:300px;height:300px;border:1px solid #ffffff2a;border-radius:50%;box-shadow:0 0 0 36px #ffffff0d,0 0 0 72px #ffffff08}.cs-footer{margin-top:24px;border-top:1px solid #edf1ed;background:#fff}.cs-footer .container{align-items:center}.cs-footer small{color:#7b8c84}
.cs-listing{max-width:1180px;margin:auto;padding:24px 0}.cs-listing h1{color:var(--cs-ink)}.cs-service-card{border:1px solid #edf1ed;border-radius:16px;box-shadow:0 6px 22px #244c3508;transition:transform .18s,box-shadow .18s}.cs-service-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #244c3515}.cs-category{background:#eaf5ed;color:#176b54;font-weight:700}.cs-service-meta{display:grid;gap:8px;color:#72847b;font-size:.88rem}.cs-service-meta i{width:18px;color:#41846a}.cs-price{color:#175d46}.cs-empty{padding:60px 20px;border:1px dashed #c9dbd0;border-radius:16px;text-align:center;color:#71847b}.cs-empty>i{display:block;margin-bottom:16px;color:#78a68d;font-size:2.5rem}.cs-empty h2{color:var(--cs-ink)}.cs-detail{max-width:1180px;margin-inline:auto}.cs-service-description{white-space:pre-line;line-height:1.8;color:#586d64}.cs-request-card{position:sticky;top:20px}.cs-dashboard{max-width:1400px}.cs-stat-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#eaf5ed;color:var(--cs-green);font-size:20px}.cs-activity{display:grid;gap:3px;padding:12px 0;border-bottom:1px solid #edf1ed}.cs-activity:last-child{border-bottom:0}.cs-activity strong{color:var(--cs-ink)}.cs-activity span{color:#7b8c84;font-size:.85rem}.cs-auth-page{min-height:100vh;background:linear-gradient(130deg,#f4faf5,#fff 55%)}.cs-auth-page .card{border-radius:18px}.cs-auth-page .form-control{min-height:48px}
.app-sidebar{--lte-sidebar-bg:#143d34!important;background-color:#143d34!important}.app-sidebar .sidebar-brand{background:#143d34!important}.app-sidebar .nav-link.active{background:#176b54!important;color:#fff!important}.app-sidebar .nav-link:hover{background:#176b54!important;color:#fff!important}.app-header{border-bottom:1px solid #edf1ed}.user-header.text-bg-primary{background:#176b54!important}
@media(max-width:767.98px){.cs-hero-art{min-height:300px}.cs-orbit-one{width:280px;height:230px}.cs-orbit-two{width:250px;height:300px}.cs-float-top{top:5px;right:0}.cs-float-bottom{bottom:5px;left:0}.cs-pro-banner{align-items:flex-start;flex-direction:column}.cs-pro-banner .btn{white-space:normal}.cs-footer .container{align-items:flex-start}}

/* Conserva el estado de error de Bootstrap incluso al enfocar el campo. */
.form-control.is-invalid,
.form-select.is-invalid,
.form-check-input.is-invalid {
    border-color: var(--bs-form-invalid-border-color, #dc3545);
}
.form-control.is-invalid:focus,
.form-select.is-invalid:focus,
.form-check-input.is-invalid:focus {
    border-color: var(--bs-form-invalid-border-color, #dc3545);
    box-shadow: 0 0 0 .25rem rgba(220, 53, 69, .25);
}

/* Tabla de usuarios: acciones compactas y leyenda visible. */
.cs-users-page .cs-user-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 10px;
    font-size: 1.05rem;
}
.cs-users-toolbar { max-width: 100%; }
.cs-users-toolbar input { min-width: 0; }
.cs-users-legend { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; }
.cs-users-legend span { display: inline-flex; align-items: center; gap: .45rem; }
.cs-users-legend i { font-size: 1rem; }
.cs-users-table th { background: var(--bs-tertiary-bg); font-size: .85rem; white-space: nowrap; }
.cs-users-table th, .cs-users-table td { padding: 1rem; }
.cs-users-table td:first-child { min-width: 240px; }
.cs-users-table td:last-child { width: 1%; white-space: nowrap; }
.cs-users-table td:nth-child(2) { min-width: 200px; }
.cs-users-table small { margin-top: .2rem; }
@media (max-width: 767.98px) {
    .cs-users-toolbar { width: 100%; }
    .cs-users-legend { gap: .6rem 1rem; }
    .cs-users-table th, .cs-users-table td { padding: .85rem; }
}
