:root{
--cf-green:#0f5132;
--cf-green-2:#157347;
--cf-bg:#f5f7f6;
--cf-text:#17231d;
--cf-muted:#68776f;
--cf-line:#e4ebe7;
--cf-shadow:0 10px 30px rgba(18,55,38,.07)
}

html,body{min-height:100%}
body{
background:radial-gradient(circle at top right,rgba(15,81,50,.05),transparent 32%),var(--cf-bg);
color:var(--cf-text);
font-family:Inter,"Segoe UI",Arial,sans-serif;
-webkit-font-smoothing:antialiased
}

.app-header{
background:linear-gradient(120deg,#0a3f28,#0f5132 48%,#17734a);
color:#fff;
position:relative;
overflow:hidden
}

.app-header::after{
content:"";
position:absolute;
width:420px;height:420px;border-radius:50%;
background:rgba(255,255,255,.045);
right:-120px;top:-250px;
pointer-events:none
}

.brand-icon{
width:52px;height:52px;border-radius:15px;
display:grid;place-items:center;
background:rgba(255,255,255,.13);
border:1px solid rgba(255,255,255,.15);
font-size:24px
}

.brand-kicker{font-size:11px;letter-spacing:.16em;font-weight:800;color:rgba(255,255,255,.72)}
.brand-title{font-size:clamp(1.35rem,2.3vw,2.15rem);font-weight:800;letter-spacing:-.02em}
.brand-subtitle{font-size:13px;color:rgba(255,255,255,.78);margin-top:2px}

.status-pill,.header-date{
min-height:38px;border-radius:999px;
display:inline-flex;align-items:center;gap:8px;
padding:0 13px;
border:1px solid rgba(255,255,255,.18);
background:rgba(255,255,255,.09);
font-size:12px;font-weight:700
}

.status-dot{
width:8px;height:8px;border-radius:50%;
background:#ffc107;
box-shadow:0 0 0 4px rgba(255,193,7,.12)
}
.status-pill.ok .status-dot{background:#6ee7a7;box-shadow:0 0 0 4px rgba(110,231,167,.12)}
.status-pill.bad .status-dot{background:#ff8b8b;box-shadow:0 0 0 4px rgba(255,139,139,.12)}

.dashboard-card{
border-radius:18px;
background:rgba(255,255,255,.97);
box-shadow:var(--cf-shadow)
}

.section-kicker{color:var(--cf-green-2);font-size:10px;letter-spacing:.14em;font-weight:900}
.section-title{font-size:18px;font-weight:800;letter-spacing:-.01em}
.section-subtitle{color:var(--cf-muted);font-size:13px}

.form-label{font-size:12px;font-weight:800;color:#53645a;margin-bottom:6px}
.form-control,.form-select{min-height:44px;border-radius:10px;border-color:#d5dfd9;font-size:13px}
.form-control:focus,.form-select:focus{border-color:#4d9f76;box-shadow:0 0 0 .2rem rgba(21,115,71,.10)}
.btn{border-radius:10px;font-weight:800}
.btn-consultar{min-height:44px;background:var(--cf-green-2);border-color:var(--cf-green-2)}

.kpi-card{
background:#fff;
border:1px solid var(--cf-line);
border-radius:16px;
padding:16px;
box-shadow:0 7px 22px rgba(26,58,42,.045);
transition:transform .15s ease,box-shadow .15s ease
}
.kpi-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(26,58,42,.08)}

.kpi-icon{
width:38px;height:38px;border-radius:11px;
display:grid;place-items:center;
font-size:17px;margin-bottom:13px
}

.soft-green{background:#e9f7ef;color:#157347}
.soft-blue{background:#e8f2ff;color:#2f6fbd}
.soft-orange{background:#fff2e4;color:#c8751b}
.soft-purple{background:#f2eafe;color:#7752a8}
.soft-cyan{background:#e6f7f8;color:#278b93}
.soft-red{background:#fdecec;color:#bf4a4a}

.kpi-label{color:#607067;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.kpi-value{
font-size:clamp(1.45rem,2.1vw,2rem);
line-height:1.1;font-weight:850;letter-spacing:-.025em;
margin:7px 0 5px;color:#122119;
font-variant-numeric:tabular-nums
}
.kpi-help{color:#8a9890;font-size:11px}

.report-table-wrap{max-height:62vh;overflow:auto}
.report-table{min-width:980px;font-size:13px}
.report-table thead th{
position:sticky;top:0;z-index:5;
background:#edf5f0;color:#315242;
font-size:11px;text-transform:uppercase;letter-spacing:.035em;font-weight:900;
border-bottom:1px solid #d8e4dd;white-space:nowrap
}
.report-table td{border-color:#edf1ef;color:#33433b}
.report-table td.text-end,.report-table th.text-end{font-variant-numeric:tabular-nums;white-space:nowrap}

.level-total td{background:#dff1e7!important;color:#0b5130!important;font-weight:900}
.level-tipolabor td{background:#f2f7f4!important;color:#1e3e2e;font-weight:900}
.level-finca td:first-child{padding-left:2rem!important;font-weight:750}
.level-zona td:first-child{padding-left:3.35rem!important;color:#66756d}

.num{text-align:right!important}
.hidden{display:none!important}
.loading{display:block}
.error-box{display:block}
.empty{text-align:center;color:var(--cf-muted)}

.app-footer{color:#78867e;font-size:12px;padding:22px 0 28px}
.form-check-input:checked{background-color:var(--cf-green-2);border-color:var(--cf-green-2)}

@media(max-width:767.98px){
.brand-icon{width:44px;height:44px;font-size:20px}
.brand-title{font-size:1.45rem}
.dashboard-card{border-radius:14px}
.kpi-card{padding:14px}
.report-table-wrap{max-height:none}
}

@supports(-webkit-appearance:none){
input[type="date"]{min-height:44px}
}
