:root{
    --bg:#edf3ea;
    --card:rgba(255,255,255,0.75);
    --text:#111;
    --muted:#5e675f;

    --ring-track:#e8eee6;
    --ring-fill:#2f6b3d;

    --status-bg:#e5efe7;
    --status-text:#2f6b3d;

    --shadow:0 20px 60px rgba(0,0,0,0.08);
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    min-height:100vh;
    font-family:"Inter",sans-serif;
    color:var(--text);

    background:
        radial-gradient(circle at top left,rgba(91,153,102,0.15),transparent 28%),
        radial-gradient(circle at bottom right,rgba(91,153,102,0.12),transparent 24%),
        linear-gradient(180deg,#eef4eb 0%,#e5ede2 100%);
}

.page{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:40px;
}

/* CARD */

.hero-card{
    width:min(1100px,100%);
    background:var(--card);
    border-radius:32px;
    padding:40px;
    box-shadow:var(--shadow);
}

/* LOGO */

.brand{
    display:flex;
    justify-content:center;
    margin-bottom:20px;
}

.logo{
    width:420px;
    max-width:90%;
}

/* TEXT */

.hero-copy{
    text-align:center;
    max-width:720px;
    margin:0 auto 40px auto;
}

.eyebrow{
    display:inline-block;
    padding:6px 14px;
    border-radius:999px;
    background:rgba(47,107,61,0.08);
    color:#2f6b3d;
    font-size:12px;
    font-weight:600;
    margin-bottom:14px;
}

.hero-copy h1{
    font-size:clamp(1.5rem,2.4vw,2.2rem);
    font-weight:800;
    margin-bottom:10px;
}

.subtitle{
    font-size:clamp(.9rem,1.2vw,1rem);
    color:var(--muted);
}

/* DASHBOARD */

.dashboard{
    display:grid;
    grid-template-columns:300px auto;
    gap:60px;

    align-items:center;
    justify-content:center;

    max-width:700px;
    margin:0 auto;
}
/* OCCUPANCY */

.occupancy-visual{
    display:flex;
    justify-content:center;
    align-items:center;
}

.progress-ring{
    width:220px;
    height:220px;
    border-radius:50%;

    background:
        conic-gradient(var(--ring-fill) 0deg var(--progress),
        var(--ring-track) var(--progress) 360deg);

    display:flex;
    align-items:center;
    justify-content:center;
}

.progress-ring-inner{
    width:170px;
    height:170px;
    border-radius:50%;
    background:white;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.progress-ring-inner span{
    font-size:2.2rem;
    font-weight:800;
}

.progress-ring-inner small{
    font-size:.9rem;
    color:var(--muted);
}

/* RIGHT PANEL */

.stats-panel{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}

/* TITLE */

.main-stat-label{
    font-size:.95rem;
    color:var(--muted);
    margin-bottom:12px;
}

/* NUMBER + STATUS */

.main-stat-row{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:45px;
    flex-wrap:wrap;
}

.main-stat-value{
    display:flex;
    align-items:baseline;
    gap:6px;
}

.main-stat-value span{
    font-size:clamp(2.4rem,4vw,3rem);
    font-weight:800;
}

.separator{
    color:#5a625a;
}

/* STATUS CARD */

.mini-card{
    background:white;
    border-radius:18px;
    padding:18px 26px;
    border:1px solid rgba(0,0,0,0.08);
    min-width:180px;

    box-shadow:
        0 6px 18px rgba(0,0,0,0.08);
}

.mini-title{
    font-size:.85rem;
    color:var(--muted);
    display:block;
    margin-bottom:6px;
}

.estado-card strong{
    font-size:1.1rem;
    font-weight:700;
}

/* UPDATE */

.update-bar{
    margin-top:22px;

    display:flex;
    align-items:center;
    gap:10px;

    background:var(--status-bg);
    color:var(--status-text);

    padding:10px 16px;
    border-radius:999px;
    font-size:.9rem;
}

.update-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:currentColor;
}

/* STATUS COLORS */

body.status-low{
    --ring-fill:#2f6b3d;
}

body.status-medium{
    --ring-fill:#d89a3a;
}

body.status-high{
    --ring-fill:#d45555;
}

/* TABLET */

@media(max-width:900px){

.dashboard{
    grid-template-columns:1fr;
    gap:35px;
}

}

/* MOBILE */

@media(max-width:600px){

.page{
    padding:20px;
}

.hero-card{
    padding:24px;
}

.logo{
    width:280px;
}

.main-stat-row{
    flex-direction:column;
    gap:14px;
}

.progress-ring{
    width:200px;
    height:200px;
}

.progress-ring-inner{
    width:140px;
    height:140px;
}

.progress-ring-inner span{
    font-size:2rem;
}

}
