/* ==========================================================================
   LIFF TECHNOLOGY — Página "en construcción"
   Reutiliza los mismos tokens de marca que styles.css (independiente
   a propósito, así se puede subir sin tocar el sitio en producción).
   ========================================================================== */

:root{
  --paper:#EEF1F5;
  --paper-line:#c9d3e0;
  --ink:#101d33;
  --ink-soft:#3c4a63;
  --blueprint:#1c4f95;
  --brass:#bd7a34;
  --brass-dark:#9a611f;
  --signal:#37a066;
}

*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
h1{font-family:'Space Grotesk', sans-serif; letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono', monospace;}

.grid-bg{
  background-image:
    linear-gradient(var(--paper-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--paper-line) 1px, transparent 1px);
  background-size:44px 44px;
  background-position:-1px -1px;
}

@keyframes pulse{
  0%,100%{box-shadow:0 0 0 3px rgba(55,160,102,0.18);}
  50%{box-shadow:0 0 0 6px rgba(55,160,102,0.06);}
}

.maintenance-screen{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* ---------- header ---------- */
.maintenance-header{
  padding:26px 32px;
}
.logo{
  display:flex; align-items:center; gap:10px;
  font-family:'Space Grotesk', sans-serif;
  font-weight:700; font-size:19px; letter-spacing:-0.01em;
}
.logo .accent{color:var(--blueprint);}
.logo .dot{
  width:9px; height:9px; border-radius:50%;
  background:var(--signal);
  box-shadow:0 0 0 3px rgba(55,160,102,0.18);
  animation:pulse 2.4s ease-in-out infinite;
}

/* ---------- main ---------- */
.maintenance-main{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 32px;
}
.maintenance-content{
  max-width:560px;
  text-align:left;
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--blueprint);
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--blueprint);
  display:inline-block;
}
h1{
  font-size:clamp(30px, 4.4vw, 46px);
  line-height:1.08;
  margin:18px 0 18px;
}
h1 em{
  font-style:normal;
  color:var(--blueprint);
}
.lead{
  font-size:16.5px;
  color:var(--ink-soft);
  margin-bottom:30px;
}

.contact-row{
  display:flex; gap:14px; flex-wrap:wrap;
  margin-bottom:40px;
}
.btn-primary{
  background:var(--brass);
  color:#fff;
  font-family:'IBM Plex Mono', monospace;
  font-size:13.5px; letter-spacing:0.03em;
  padding:14px 22px;
  border-radius:2px;
  border:1px solid var(--brass);
  transition:background .15s, transform .15s;
  display:inline-block;
}
.btn-primary:hover{background:var(--brass-dark); transform:translateY(-1px);}
.btn-secondary{
  font-family:'IBM Plex Mono', monospace;
  font-size:13.5px; letter-spacing:0.03em;
  padding:14px 20px;
  border-radius:2px;
  border:1px solid var(--ink);
  color:var(--ink);
  transition:background .15s, color .15s;
  display:inline-block;
}
.btn-secondary:hover{background:var(--ink); color:var(--paper);}

/* ---------- status panel ---------- */
.status-panel{
  background:#fff;
  border:1px solid var(--paper-line);
  border-radius:4px;
  padding:20px 22px;
  max-width:420px;
}
.status-head{
  display:flex; justify-content:space-between; align-items:center;
  font-family:'IBM Plex Mono', monospace;
  font-size:11px; letter-spacing:0.08em;
  color:var(--ink-soft);
  text-transform:uppercase;
  margin-bottom:16px;
  padding-bottom:12px;
  border-bottom:1px dashed var(--paper-line);
}
.status-head .status{display:flex; align-items:center; gap:7px; color:var(--signal);}
.status-head .status .d{width:6px; height:6px; border-radius:50%; background:var(--signal); animation:pulse 2.4s ease-in-out infinite;}

.status-row{
  display:grid;
  grid-template-columns:110px 1fr;
  align-items:center;
  gap:14px;
  margin-bottom:12px;
}
.status-row:last-child{margin-bottom:0;}
.status-row .label{font-size:11px; color:var(--ink-soft); letter-spacing:0.05em;}
.bar{
  height:6px;
  background:var(--paper);
  border:1px solid var(--paper-line);
  border-radius:3px;
  overflow:hidden;
}
.bar-fill{
  height:100%;
  background:var(--blueprint);
}

/* ---------- footer ---------- */
.maintenance-footer{
  padding:24px 32px;
  border-top:1px solid var(--paper-line);
}
.copy{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  color:var(--ink-soft);
}

@media (max-width:600px){
  .maintenance-content{text-align:left;}
  .contact-row{flex-direction:column;}
  .btn-primary, .btn-secondary{text-align:center;}
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important;}
}
