/* ==========================================
   RESET
========================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html,
body{
    width:100%;
    min-height:100%;
}

/* ==========================================
   BODY
========================================== */

body{

    font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;

    background:
    radial-gradient(
        circle at top,
        #0d2c7d 0%,
        #071b54 40%,
        #030f32 100%
    );

    color:#ffffff;

    display:flex;
    justify-content:center;
    align-items:center;

    padding:20px;

    overflow-x:hidden;
}

/* ==========================================
   CONTENEDOR PRINCIPAL
========================================== */

.container{

    width:100%;
    max-width:1100px;

    background:
        rgba(255,255,255,0.06);

    backdrop-filter:
        blur(14px);

    border:
        1px solid rgba(255,255,255,.10);

    border-radius:24px;

    padding:40px;

    text-align:center;

    box-shadow:
        0 20px 60px rgba(0,0,0,.35);

    transition:.3s ease;
}

/* ==========================================
   TITULO
========================================== */

h1{

    font-size:
        clamp(2rem,4vw,3.5rem);

    font-weight:700;

    margin-bottom:20px;

    letter-spacing:-1px;
}

/* ==========================================
   RELOJ
========================================== */

#clock{

    font-size:
        clamp(4rem,12vw,9rem);

    font-weight:800;

    line-height:1;

    letter-spacing:-4px;

    margin-bottom:20px;

    cursor:pointer;

    user-select:none;

    text-shadow:
        0 0 25px rgba(255,255,255,.15);

    transition:
        transform .25s ease,
        opacity .25s ease;
}

#clock:hover{

    transform:
        scale(1.03);
}

/* ==========================================
   FECHA
========================================== */

#date{

    font-size:
        clamp(1rem,2vw,1.7rem);

    opacity:.9;

    margin-bottom:35px;

    text-transform:capitalize;
}

/* ==========================================
   CONTROLES
========================================== */

.controls{

    display:flex;

    justify-content:center;

    align-items:flex-end;

    flex-wrap:wrap;

    gap:15px;

    margin-bottom:20px;
}

.control-group{

    display:flex;

    flex-direction:column;

    text-align:left;

    gap:8px;
}

label{

    font-size:.9rem;

    opacity:.8;
}

select{

    min-width:320px;

    padding:14px 18px;

    border:none;

    border-radius:12px;

    font-size:1rem;

    outline:none;
}

button{

    padding:14px 24px;

    border:none;

    border-radius:12px;

    background:#2f7dff;

    color:white;

    font-size:1rem;

    font-weight:600;

    cursor:pointer;

    transition:.25s ease;
}

button:hover{

    transform:
        translateY(-2px);

    background:#4a8fff;
}

/* ==========================================
   UBICACIÓN
========================================== */

#locationInfo{

    margin-top:15px;

    opacity:.85;

    font-size:.95rem;
}

/* ==========================================
   TARJETAS INFORMATIVAS
========================================== */

#infoCards{

    margin-top:30px;

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(170px,1fr));

    gap:15px;
}

.card{

    background:
        rgba(255,255,255,.07);

    border:
        1px solid rgba(255,255,255,.10);

    border-radius:16px;

    padding:18px;

    backdrop-filter:
        blur(10px);

    transition:.25s ease;
}

.card:hover{

    transform:
        translateY(-3px);

    background:
        rgba(255,255,255,.10);
}

.card-label{

    font-size:.8rem;

    opacity:.7;

    margin-bottom:10px;

    text-transform:uppercase;

    letter-spacing:.5px;
}

.card div:last-child{

    font-size:1.1rem;

    font-weight:700;
}

/* ==========================================
   AYUDA
========================================== */

.help{

    margin-top:25px;

    opacity:.55;

    font-size:.9rem;

    line-height:1.6;
}

/* ==========================================
   EXTRA CONTENT
========================================== */

#extraContent{

    transition:
        opacity .3s ease;
}

/* ==========================================
   MODO PANTALLA COMPLETA
========================================== */

.hide-ui h1,
.hide-ui #date,
.hide-ui #extraContent{

    display:none !important;
}

.hide-ui .container{

    background:transparent !important;

    border:none !important;

    box-shadow:none !important;

    backdrop-filter:none !important;

    width:100vw;

    max-width:none;

    padding:0;
}

.hide-ui #clock{

    position:fixed;

    top:50%;
    left:50%;

    transform:
        translate(-50%,-50%);

    width:100vw;

    margin:0;

    text-align:center;

    white-space:nowrap;

    font-size:
        min(14vw,12rem);

    z-index:99999;
}

.hide-ui #clock:hover{

    transform:
        translate(-50%,-50%);
}

.hide-ui{

    overflow:hidden;
}

/* ==========================================
   RESPONSIVE
========================================== */

@media (max-width:768px){

    .container{

        padding:25px;
    }

    .controls{

        flex-direction:column;
    }

    select{

        width:100%;

        min-width:auto;
    }

    button{

        width:100%;
    }

    #clock{

        letter-spacing:-2px;
    }

    #infoCards{

        grid-template-columns:
            repeat(2,1fr);
    }
}

@media (max-width:480px){

    #infoCards{

        grid-template-columns:
            1fr;
    }

    .container{

        padding:20px;
    }
}