/* ═══════════════════════════════════════════════════════════════
   Grinding Technology s.r.l. — Portale Servizi
   Palette ufficiale estratta da UniGe-Thesis.pptx
   ═══════════════════════════════════════════════════════════════ */

/* ── Variabili brand ────────────────────────────────────────────
   Tema PPTX (accent1-6):
   #004687  navy principale   (accent1)
   #D20024  rosso GT          (accent2)
   #B1B3B4  grigio chiaro     (accent3)
   #4670AA  blu medio         (accent4)
   #8BA8CF  blu chiaro        (accent5)
   #898989  grigio medio      (accent6)
   #00A39E  teal FFG          (da logo FFG/Paritel)
   ──────────────────────────────────────────────────────────── */
:root {
  --gt-navy:     #004687;
  --gt-navy-dk:  #003366;
  --gt-navy-md:  #4670AA;
  --gt-navy-lt:  #8BA8CF;
  --gt-red:      #D20024;
  --gt-red-dk:   #a8001d;
  --gt-teal:     #00A39E;
  --gt-gray:     #B1B3B4;
  --gt-gray-dk:  #6C6C6C;
  --gt-gray-lt:  #E6E6E6;

  --radius-md:  .65rem;
  --shadow-sm:  0 2px 8px  rgba(0,0,0,.07);
  --shadow-md:  0 6px 24px rgba(0,0,0,.13);
  --transition: all .18s ease;
}

/* ── Logo GT (immagine reale) ────────────────────────────────── */
.gt-logo-img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  flex-shrink: 0;
  border-radius: .35rem;
}

/* ── Hero Section ───────────────────────────────────────────── */
.hero-section {
  background: linear-gradient(
    135deg,
    var(--gt-navy-dk) 0%,
    var(--gt-navy)    55%,
    var(--gt-teal)    100%
  );
  color: #fff;
}

.hero-title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: -.01em;
}

.hero-subtitle {
  font-size: 1rem;
  opacity: .82;
  max-width: 560px;
}

.hero-stat {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  border-top: 3px solid var(--gt-red);
  border-radius: var(--radius-md);
  padding: .75rem 1.5rem;
  backdrop-filter: blur(6px);
}

.hero-stat-num {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
}

.hero-stat-label {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  opacity: .75;
  margin-top: .2rem;
}

/* ── Service Card (attiva) ──────────────────────────────────── */
.service-card-link {
  text-decoration: none;
  color: inherit;
  display: block;
  height: 100%;
}

.service-card {
  background: #fff;
  border: 2px solid #e9ecef;
  border-radius: var(--radius-md);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
  cursor: pointer;
}

.service-card:hover {
  border-color: var(--card-border, var(--gt-navy));
  background: var(--card-bg, #f0f5ff);
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

.service-card:hover .service-card-cta i {
  transform: translateX(3px);
}

.service-card-icon-wrap {
  width: 52px;
  height: 52px;
  border-radius: .5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.service-card-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #212529;
  line-height: 1.3;
}

.service-card-desc {
  font-size: .875rem;
  line-height: 1.55;
  flex-grow: 1;
}

.service-card-cta {
  font-size: .85rem;
  transition: var(--transition);
}

.service-card-cta i {
  transition: transform .18s ease;
}

/* ── Colori custom GT (non presenti in Bootstrap) ───────────── */
.text-gt-teal  { color: var(--gt-teal) !important; }
.bg-gt-teal    { background-color: var(--gt-teal) !important; }
.bg-gt-teal.bg-opacity-10 { background-color: rgba(0,163,158,.1) !important; }
.badge.bg-gt-teal.bg-opacity-15 { background-color: rgba(0,163,158,.15) !important; }
.badge.text-gt-teal             { color: #005e5b !important; }

/* ── Badge colori custom ────────────────────────────────────── */
.badge.bg-warning.bg-opacity-15  { background-color: rgba(255,193,7,.15)   !important; }
.badge.bg-success.bg-opacity-15  { background-color: rgba(25,135,84,.15)   !important; }
.badge.bg-primary.bg-opacity-15  { background-color: rgba(0,70,135,.15)    !important; }
.badge.text-warning               { color: #856404  !important; }
.badge.text-success               { color: #0a3622  !important; }
.badge.text-primary               { color: #003366  !important; }

.service-badge {
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .04em;
  padding: .3rem .55rem;
  border-radius: .35rem;
  white-space: nowrap;
}

/* ── Card "In costruzione" ───────────────────────────────────── */
.service-card-wip {
  cursor: default;
  opacity: .7;
  position: relative;
  overflow: hidden;
}

.service-card-wip:hover {
  transform: none !important;
  box-shadow: var(--shadow-sm) !important;
  border-color: #dee2e6 !important;
  background: #f8f8f8 !important;
}

.wip-ribbon {
  position: absolute;
  top: 14px;
  right: -28px;
  background: var(--gt-gray-dk);
  color: #fff;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .2rem 2.2rem;
  transform: rotate(35deg);
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
}

/* ── Footer ─────────────────────────────────────────────────── */
.footer-bar {
  background: #fff;
  border-top: 3px solid var(--gt-navy);
  padding: .9rem 0;
  position: sticky;
  bottom: 0;
}

/* ── Misc ────────────────────────────────────────────────────── */
.card { border-radius: var(--radius-md) !important; }

/* ── Login page ──────────────────────────────────────────────── */
.login-body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(
    135deg,
    var(--gt-navy-dk) 0%,
    var(--gt-navy)    60%,
    var(--gt-teal)    100%
  );
  padding: 1.5rem;
}

.login-wrapper {
  width: 100%;
  max-width: 400px;
}

.login-card {
  background: #fff;
  border-radius: var(--radius-md);
  padding: 2rem;
  box-shadow: 0 12px 40px rgba(0,0,0,.28);
  border-top: 4px solid var(--gt-red);
}

.btn-login {
  background: linear-gradient(135deg, var(--gt-red), var(--gt-red-dk));
  color: #fff;
  border: none;
  padding: .65rem 1rem;
  font-weight: 600;
  border-radius: .5rem;
  transition: opacity .15s ease;
}

.btn-login:hover {
  color: #fff;
  opacity: .88;
}

/* ── Print: credenziali ─────────────────────────────────────── */
@media print {
  nav, .alert, button { display: none !important; }
  .card { box-shadow: none !important; border: 1px solid #dee2e6 !important; }
}
