:root{
  --primary:#00d4ff;
  --primary-2:#2563eb;
  --primary-3:#7c3aed;
  --bg-dark:#0a0f1f;
  --bg-darker:#070b16;
  --panel:rgba(12,18,36,.82);
  --panel-soft:rgba(255,255,255,.9);
  --text:#eaf3ff;
  --muted:#94a3b8;
  --line:rgba(148,163,184,.16);
  --shadow:0 20px 45px rgba(2,8,23,.35);
  --radius:20px;
}

html,body{min-height:100%;}
body.app-shell{
  background:
    radial-gradient(circle at 15% 10%, rgba(0,212,255,.12), transparent 24%),
    radial-gradient(circle at 85% 12%, rgba(124,58,237,.10), transparent 22%),
    linear-gradient(180deg, #eef5ff 0%, #e7eff9 100%);
  color:#0f172a;
}
body.app-shell::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(59,130,246,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59,130,246,.05) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.4), transparent 80%);
}

.navbar{
  background:linear-gradient(90deg, #070b16 0%, #0d152b 50%, #111827 100%) !important;
  border-bottom:1px solid rgba(0,212,255,.25);
  box-shadow:0 16px 40px rgba(2,8,23,.38);
}
.navbar-brand{
  font-weight:800;
  font-size:1.9rem;
  letter-spacing:-.03em;
}
.navbar-text{font-size:1.2rem;}
.navbar .btn-outline-light{
  border-color:rgba(255,255,255,.35);
  border-radius:14px;
  min-height:48px;
  min-width:70px;
}
.navbar .btn-outline-light:hover{
  background:linear-gradient(90deg,var(--primary-2),var(--primary));
  border-color:transparent;
}

aside{
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(245,249,255,.94)) !important;
  border-right:1px solid rgba(148,163,184,.14) !important;
}
aside h6{
  font-size:1rem;
  letter-spacing:.12em;
  font-weight:800;
  color:#64748b !important;
  margin-bottom:1rem;
}
.list-group{gap:.8rem;}
.list-group-item{
  border:1px solid rgba(148,163,184,.20) !important;
  border-radius:16px !important;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.95)) !important;
  color:#0f172a !important;
  font-weight:600;
  font-size:1.15rem;
  min-height:56px;
  display:flex;
  align-items:center;
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.list-group-item:hover{
  transform:translateY(-1px);
  border-color:rgba(37,99,235,.35) !important;
  background:linear-gradient(90deg, rgba(37,99,235,.08), rgba(0,212,255,.08)) !important;
}

main{
  padding-top:2rem !important;
}
.page-shell{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(148,163,184,.12);
  border-radius:26px;
  box-shadow:var(--shadow);
  padding:2rem;
  backdrop-filter: blur(12px);
}
.page-shell > h4:first-child{
  font-size:2.2rem;
  font-weight:800;
  margin-bottom:1.5rem;
}
h1,h2,h3,h4,h5{font-weight:800;color:#0f172a;letter-spacing:-.03em;}

.card{
  border:1px solid rgba(148,163,184,.16);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  box-shadow:0 14px 34px rgba(15,23,42,.10);
  overflow:hidden;
}
.card-body{padding:1.5rem;}
.table-responsive{
  border:1px solid rgba(148,163,184,.16);
  border-radius:20px;
  overflow:hidden;
  background:white;
  box-shadow:0 12px 28px rgba(15,23,42,.08);
}
.table thead th{
  background:linear-gradient(180deg,#f7fbff,#ebf3ff);
  color:#0f172a;
  font-weight:800;
}
.table-striped>tbody>tr:nth-of-type(odd)>*{background-color:rgba(241,245,249,.55);}

.form-label{font-weight:700;color:#0f172a;}
.form-control,.form-select{
  min-height:50px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.25);
  background:rgba(255,255,255,.96);
  font-size:1.1rem;
}
.form-control:focus,.form-select:focus{
  border-color:rgba(0,212,255,.55);
  box-shadow:0 0 0 .25rem rgba(0,212,255,.14);
}
.btn{
  border-radius:16px;
  min-height:50px;
  font-weight:700;
  font-size:1.05rem;
}
.btn-primary{
  border:none;
  background:linear-gradient(90deg,var(--primary-2),var(--primary));
  box-shadow:0 14px 24px rgba(37,99,235,.24);
}
.btn-primary:hover{filter:brightness(1.05);}
.btn-outline-primary{
  border-color:rgba(37,99,235,.35);
  color:#2563eb;
}

.alert{
  border:none;
  border-radius:18px;
  box-shadow:0 8px 22px rgba(15,23,42,.08);
  font-size:1.15rem;
}

.calendar td{height:92px;vertical-align:top;padding:10px;}
.day-available{
  background:linear-gradient(180deg,#1d4ed8,#0f3fb1) !important;
  color:white !important;
}
.day-available a{color:white !important;text-decoration:none;display:block;width:100%;height:100%;}
.day-unavailable{background:#e8eef6 !important;color:#94a3b8 !important;}
.day-blocked{background:#dbe4ef !important;color:#7b8ba1 !important;}
.day-today{outline:3px solid #10b981;box-shadow:inset 0 0 0 2px rgba(16,185,129,.2);}
.day-number{font-weight:800;font-size:1.1rem;}

.card-yellow{background:linear-gradient(180deg,#fff8a6,#fde047)!important;border-color:#facc15!important;}
.card-green{background:linear-gradient(180deg,#dcfce7,#86efac)!important;border-color:#22c55e!important;}
.card-red{background:linear-gradient(180deg,#ffe4e6,#fda4af)!important;border-color:#f43f5e!important;}

.login-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 10% 10%, rgba(0,212,255,.16), transparent 25%),
    radial-gradient(circle at 85% 15%, rgba(124,58,237,.14), transparent 28%),
    linear-gradient(180deg, #08111f 0%, #0f172a 100%);
}
.login-shell .card{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(148,163,184,.2);
  color:white;
  box-shadow:0 24px 60px rgba(2,8,23,.45);
}
.login-shell h5,.login-shell label{color:white;}
.login-shell .text-muted{color:#c7d5ea !important;}
.login-shell .form-control{
  background:rgba(255,255,255,.08);
  border-color:rgba(148,163,184,.25);
  color:white;
}
.login-shell .form-control::placeholder{color:#d2ddeb;}

@media (max-width: 991px){
  aside{min-height:auto !important;}
  .page-shell{padding:1.25rem;}
  .page-shell > h4:first-child{font-size:1.6rem;}
}


.brand-orb{
  width:14px;height:14px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #67e8f9, #22d3ee 45%, #2563eb 80%);
  box-shadow:0 0 18px rgba(34,211,238,.6), 0 0 34px rgba(59,130,246,.35);
  display:inline-block;
}
.nav-ico{color:#2563eb;font-size:1rem;}
.hero-panel{
  position:relative;overflow:hidden;
  border:1px solid rgba(148,163,184,.12);
  border-radius:24px;
  padding:1.5rem;
  background:linear-gradient(135deg, rgba(255,255,255,.94), rgba(248,250,252,.90));
  box-shadow:0 20px 40px rgba(15,23,42,.10);
}
.hero-panel::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at top right, rgba(34,211,238,.10), transparent 25%),
    radial-gradient(circle at bottom left, rgba(59,130,246,.10), transparent 22%);
}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.8fr .9fr;gap:1rem;align-items:center;}
.hero-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:#64748b;font-size:.78rem;margin-bottom:.4rem;}
.hero-title, .hero-panel h4{margin:0;font-size:2.2rem;line-height:1.1;}
.hero-subtitle{margin:.75rem 0 0;color:#64748b;font-size:1rem;}
.hero-kpis{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.kpi-card{border-radius:18px;padding:1rem 1.1rem;color:#fff;box-shadow:0 14px 32px rgba(2,8,23,.18);background:linear-gradient(135deg, rgba(15,23,42,.95), rgba(30,41,59,.90));}
.kpi-label{display:block;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;opacity:.78;}
.kpi-value{display:block;font-size:1.8rem;font-weight:800;margin-top:.25rem;}
.kpi-sm{font-size:1.15rem;}
.hero-admin .kpi-card{background:linear-gradient(135deg,#111827,#1d4ed8);}
.hero-operacional .kpi-card{background:linear-gradient(135deg,#0f172a,#0f766e);}
.hero-transportadora .kpi-card{background:linear-gradient(135deg,#111827,#7c3aed);}
.page-shell > h4:first-child{display:none;}
@media (max-width: 991px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-kpis{grid-template-columns:1fr 1fr;}
}
@media (max-width: 575px){
  .hero-kpis{grid-template-columns:1fr;}
  .hero-title, .hero-panel h4{font-size:1.7rem;}
}


.footer {
    background: linear-gradient(90deg, #0f172a, #1e3a8a);
    color: #cbd5e1;
    font-size: 0.85rem;
    border-top: 1px solid rgba(255,255,255,0.05);
}

.footer span {
    letter-spacing: 0.5px;
}