:root {
  --sky: #38c2ff;
  --sky2: #8ce6ff;
  --blue: #0d63ff;
  --navy: #1531b8;
  --orange: #ff8a00;
  --orange2: #ff6200;
  --white: #ffffff;
  --text: #12213a;
  --muted: #62708a;
  --line: rgba(255,255,255,.34);
  --shadow: 0 18px 45px rgba(13, 40, 120, .16);
  --radius: 24px;
  --grad-main: linear-gradient(135deg, var(--sky), var(--blue) 56%, #2830bc);
  --grad-warm: linear-gradient(135deg, #ffbf47, var(--orange), var(--orange2));
  --grad-soft: linear-gradient(135deg, rgba(255,255,255,.95), rgba(235,246,255,.92));
  --grad-brand: linear-gradient(180deg, rgba(151,229,255,.92) 0%, rgba(72,169,255,.95) 28%, rgba(255,255,255,.90) 64%, rgba(255,183,92,.88) 82%, rgba(255,120,21,.92) 100%);
  --bg: linear-gradient(145deg, #edf8ff 0%, #d8efff 22%, #ffffff 58%, #fff0df 100%);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: Arial, Helvetica, sans-serif; color: var(--text); background: var(--bg); }
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
small { color: var(--muted); }
h1,h2,h3,p { margin-top:0; }
.login-page { min-height:100vh; position:relative; overflow-x:hidden; }
.bg-orb { position:absolute; border-radius:50%; filter: blur(18px); opacity:.55; animation: float 8s ease-in-out infinite; }
.orb-1 { width:320px; height:320px; background: radial-gradient(circle, rgba(56,194,255,.55), transparent 70%); top:-60px; left:-40px; }
.orb-2 { width:300px; height:300px; background: radial-gradient(circle, rgba(255,138,0,.35), transparent 70%); right:-50px; bottom:30px; animation-delay:2s; }
.login-shell { width:min(1180px, calc(100% - 32px)); margin:0 auto; min-height:100vh; display:grid; grid-template-columns: 1.12fr .88fr; gap:30px; align-items:center; }
.glass { backdrop-filter: blur(12px); background: rgba(255,255,255,.56); border: 1px solid var(--line); box-shadow: var(--shadow); }
.glass-soft { background: rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.18); box-shadow: inset 0 1px 0 rgba(255,255,255,.22); }
.login-brand, .login-card, .panel, .sidebar, .topbar { border-radius: var(--radius); }
.login-brand { padding:34px; display:flex; align-items:center; gap:24px; }
.brand-logo-main { width:240px; animation: pulse 4s ease-in-out infinite; }
.eyebrow { text-transform:uppercase; letter-spacing: .18em; font-size: 12px; color: var(--orange2); font-weight:700; margin:0 0 8px; }
.login-brand h1, .topbar h1 { margin:0 0 12px; font-size: clamp(28px, 3vw, 42px); }
.muted { color: var(--muted); }
.login-card { padding:28px; background: linear-gradient(160deg, rgba(255,255,255,.92), rgba(227,242,255,.78)); }
.login-card-header { display:flex; align-items:center; gap:16px; margin-bottom:18px; }
.login-form, .form-grid { display:grid; gap:12px; }
label { font-size: 13px; font-weight:700; color:#27415d; }
input, select, textarea { width:100%; padding:14px 16px; border-radius:16px; border:1px solid rgba(45,104,188,.16); background: rgba(255,255,255,.9); color: var(--text); outline: none; transition: .25s ease; }
textarea { min-height: 96px; resize: vertical; }
input:focus, select:focus, textarea:focus { transform: translateY(-1px); border-color: rgba(13,99,255,.5); box-shadow: 0 0 0 4px rgba(56,194,255,.16); }
.btn { border:0; padding:14px 18px; border-radius:16px; cursor:pointer; font-weight:700; transition:.25s ease; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.btn:hover { transform: translateY(-2px) scale(1.01); box-shadow: 0 12px 24px rgba(13,99,255,.18); }
.btn-gradient { color:#fff; background: linear-gradient(135deg, var(--sky), var(--blue) 45%, var(--orange2)); }
.btn-soft { background: rgba(255,255,255,.82); color: var(--text); border:1px solid rgba(13,99,255,.12); }
.btn-block { width:100%; }
.alert { padding:12px 14px; border-radius:14px; margin-bottom:14px; }
.alert-danger { background:#fff0f0; color:#b42318; }
.alert-success { background:#edfff3; color:#067647; }
.demo-box { margin-top:16px; padding:14px; border-radius:16px; background: linear-gradient(135deg, rgba(56,194,255,.10), rgba(255,138,0,.08)); font-size:14px; }
code { background: rgba(15,33,60,.08); padding:2px 8px; border-radius:8px; }
.avatar { width:42px; height:42px; object-fit:cover; border-radius:50%; }
.avatar-xl { width:72px; height:72px; }
.avatar-lg { width:58px; height:58px; }
.avatar-auto { display:grid; place-items:center; background: var(--grad-main); color:#fff; font-weight:700; }
.ring-glow { box-shadow: 0 0 0 5px rgba(56,194,255,.12), 0 0 30px rgba(255,138,0,.18); }
.app-shell { display:grid; grid-template-columns: 320px 1fr; gap:22px; min-height:100vh; padding:18px; }
.sidebar {
  padding:22px;
  display:flex;
  flex-direction:column;
  gap:20px;
  background: linear-gradient(180deg, rgba(163,238,255,.98) 0%, rgba(78,182,255,.97) 26%, rgba(255,255,255,.92) 60%, rgba(255,196,122,.94) 82%, rgba(255,125,25,.96) 100%);
  color:#08214d;
  position:sticky;
  top:18px;
  min-height:calc(100vh - 36px);
}
.sidebar::before {
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  background: radial-gradient(circle at top left, rgba(255,255,255,.55), transparent 36%), radial-gradient(circle at bottom right, rgba(255,255,255,.38), transparent 24%);
  pointer-events:none;
}
.sidebar > * { position:relative; z-index:1; }
.sidebar-logo { width:76px; }
.sidebar-brand {
  display:flex;
  gap:14px;
  align-items:center;
  padding:16px;
  position:relative;
  overflow:hidden;
  border-radius:22px;
  background: linear-gradient(135deg, rgba(255,255,255,.72), rgba(212,243,255,.56) 45%, rgba(255,232,205,.58));
}
.sidebar-brand-bg {
  position:absolute;
  inset:0;
  background: linear-gradient(135deg, rgba(56,194,255,.16), rgba(255,255,255,.08), rgba(255,138,0,.18));
  z-index:0;
}
.sidebar-brand img, .sidebar-brand div { position:relative; z-index:1; }
.sidebar-brand strong { display:block; font-size:20px; }
.nav-menu { display:grid; gap:10px; }
.nav-link {
  padding:14px 16px;
  border-radius:16px;
  background: rgba(255,255,255,.28);
  border:1px solid rgba(255,255,255,.38);
  transition:.25s ease;
  font-weight:700;
}
/* Menu activo estilo SaaS */
.nav-link.active{
    background: linear-gradient(135deg,#ffffff,#eef6ff);
    border-left:4px solid #0d63ff;
    box-shadow:0 6px 15px rgba(13,99,255,0.08);
    font-weight:700;
}
.nav-link{
    transition: all .25s ease;
}

.nav-link:hover{
    transform: translateX(6px);
    background: rgba(255,255,255,0.7);
}
.nav-link:hover, .nav-link.active {
  background: linear-gradient(135deg, rgba(255,255,255,.52), rgba(255,138,0,.18));
  transform: translateX(4px);
  box-shadow: 0 10px 18px rgba(13,99,255,.14);
}

.nav-link{
  display:flex;
  align-items:center;
  gap:12px;
}
.nav-link span:last-child{
  flex:1;
}
.nav-icon{
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#0d3767;
  opacity:.92;
  flex:0 0 20px;
}
.nav-icon svg{
  width:20px;
  height:20px;
  display:block;
}
.nav-link.active .nav-icon,
.nav-link:hover .nav-icon{
  color:#0d63ff;
}
.sidebar-foot { padding:14px; border-radius:18px; color:#0d3767; }
.main-panel { display:flex; flex-direction:column; gap:18px; }
.topbar {
  padding:16px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(213,240,255,.72) 45%, rgba(255,235,210,.72));
}
.topbar-right { display:flex; align-items:center; gap:14px; }
.header-logo { width:240px; max-height:70px; object-fit:contain; }
.user-chip { display:flex; align-items:center; gap:12px; padding:8px 10px; border-radius:18px; background: rgba(255,255,255,.72); }
.page-content { display:grid; gap:18px; }
.stats-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:16px; }
.stat-card { padding:22px; border-radius:22px; box-shadow: var(--shadow); color:#fff; position:relative; overflow:hidden; }
.stat-card::after { content:''; position:absolute; inset:auto -20% -55% auto; width:140px; height:140px; border-radius:50%; background: rgba(255,255,255,.10); }
.stat-card span { display:block; font-size:13px; opacity:.9; text-transform:uppercase; letter-spacing:.08em; }
.stat-card strong { display:block; font-size:34px; margin-top:10px; }
.stat-blue { background: var(--grad-main); }
.stat-orange { background: var(--grad-warm); }
.stat-white { background: linear-gradient(135deg, #ffffff, #eef6ff); color: var(--text); }
.stat-mix { background: linear-gradient(135deg, #eef7ff, #d6f4ff 35%, #fff0db 100%); color: var(--text); }
.grid-two { display:grid; grid-template-columns: 1fr 1fr; gap:18px; }
.grid-three { display:grid; grid-template-columns: repeat(3, 1fr); gap:18px; }
.panel { padding:22px; background: linear-gradient(155deg, rgba(255,255,255,.88), rgba(233,246,255,.72)); }
.panel-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }
.panel h3 { margin:0; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse: collapse; }
th, td { padding:12px 10px; text-align:left; border-bottom:1px solid rgba(13,99,255,.08); font-size:14px; }
tr:hover td { background: rgba(56,194,255,.05); }
.badge { display:inline-flex; align-items:center; justify-content:center; padding:8px 12px; border-radius:999px; background: rgba(56,194,255,.12); color:#1054c9; font-size:12px; font-weight:700; }
.badge-blue { background: rgba(56,194,255,.16); color:#1054c9; }
.badge-orange { background: rgba(255,138,0,.15); color:#b85a00; }
.badge-red { background: rgba(255,85,85,.12); color:#ae2121; }
.timeline { display:grid; gap:14px; }
.timeline-item { display:flex; gap:12px; align-items:flex-start; }
.dot { width:12px; height:12px; border-radius:50%; background: linear-gradient(135deg, var(--orange), var(--orange2)); margin-top:6px; box-shadow: 0 0 0 6px rgba(255,138,0,.10); }
.contract-row, .profile-card, .calendar-row, .report-chip { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px; border-radius:18px; background: rgba(255,255,255,.62); border:1px solid rgba(14,99,255,.08); }
.profile-card { justify-content:flex-start; }
.profile-card p { margin:4px 0; }
.card-list { display:grid; gap:12px; }
.quick-actions { display:flex; flex-wrap:wrap; gap:12px; }
.theme-preview { display:flex; gap:14px; }
.theme-swatch { width:70px; height:70px; border-radius:22px; box-shadow: var(--shadow); }
.blue-grad { background: var(--grad-main); }
.orange-grad { background: var(--grad-warm); }
.white-grad { background: var(--grad-soft); }
.report-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:14px; }
.report-chip { flex-direction:column; align-items:flex-start; }
.calendar-list, .legend-list { display:grid; gap:10px; }
.kpi { font-size:32px; font-weight:800; }
.form-grid-2 { display:grid; grid-template-columns: 1fr 1fr; gap:12px; }
.pulse-border { position:relative; }
.pulse-border::after { content:''; position:absolute; inset:-1px; border-radius:inherit; border:1px solid rgba(255,138,0,.35); animation:pulseBorder 2.8s infinite; pointer-events:none; }
.fade-up { animation: fadeUp .6s ease both; }
.slide-up { animation: slideUp .7s ease both; }
@keyframes fadeUp { from { opacity:0; transform:translateY(16px);} to { opacity:1; transform:none;} }
@keyframes slideUp { from { opacity:0; transform:translateY(22px) scale(.98);} to { opacity:1; transform:none;} }
@keyframes float { 0%,100%{ transform: translateY(0px);} 50% { transform: translateY(-18px);} }
@keyframes pulse { 0%,100% { transform:scale(1);} 50% { transform:scale(1.03);} }
@keyframes pulseBorder { 0% { opacity:.4; transform:scale(1);} 50% { opacity:1; transform:scale(1.01);} 100% { opacity:.4; transform:scale(1);} }
@media (max-width: 1180px) {
  .app-shell, .stats-grid, .report-grid, .grid-three { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1080px) {
  .login-shell, .app-shell, .stats-grid, .grid-two, .grid-three, .report-grid { grid-template-columns: 1fr; }
  .form-grid-2 { grid-template-columns: 1fr; }
  .header-logo { display:none; }
  .sidebar { position:static; min-height:auto; }
}


/* V4 enhancements */
body.has-preloader { overflow:hidden; }
.preloader {
  position:fixed; inset:0; z-index:9999;
  display:grid; place-items:center;
  background: linear-gradient(145deg, rgba(237,248,255,.96) 0%, rgba(216,239,255,.96) 24%, rgba(255,255,255,.98) 60%, rgba(255,240,223,.97) 100%);
  transition: opacity .6s ease, visibility .6s ease;
}
.preloader.is-hidden { opacity:0; visibility:hidden; }
.preloader-core { position:relative; width:180px; height:180px; display:grid; place-items:center; }
.preloader-logo { width:102px; z-index:3; animation: loaderSpinLogo 3.8s ease-in-out infinite; filter: drop-shadow(0 14px 24px rgba(13,99,255,.22)); }
.preloader-ring {
  position:absolute; inset:8px; border-radius:50%;
  background: conic-gradient(from 0deg, rgba(56,194,255,.16), rgba(13,99,255,.86), rgba(255,138,0,.88), rgba(255,255,255,.36), rgba(56,194,255,.16));
  animation: loaderSpin 1.6s linear infinite;
  box-shadow: 0 0 42px rgba(56,194,255,.22), 0 0 60px rgba(255,138,0,.18);
}
.preloader-ring::before {
  content:''; position:absolute; inset:12px; border-radius:50%;
  background: rgba(255,255,255,.92);
}
.preloader-glow {
  position:absolute; inset:34px; border-radius:50%; z-index:1;
  background: radial-gradient(circle, rgba(56,194,255,.26), rgba(255,138,0,.14), transparent 72%);
  animation: pulse 2.4s ease-in-out infinite;
}
.preloader-text { margin-top:18px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#1e467a; }
.orb-3 { width:240px; height:240px; background: radial-gradient(circle, rgba(13,99,255,.24), transparent 70%); left:40%; top:18%; animation-delay:1s; }
.login-page {
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.82), transparent 28%),
    radial-gradient(circle at bottom right, rgba(255,138,0,.16), transparent 28%),
    var(--bg);
}
.login-brand {
  background: linear-gradient(145deg, rgba(255,255,255,.62), rgba(213,240,255,.54) 38%, rgba(255,255,255,.48) 66%, rgba(255,225,195,.55));
  flex-direction:column; align-items:stretch;
}
.hero-brand-stack { display:flex; align-items:center; gap:24px; }
.login-workers-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:14px; }
.worker-card {
  padding:14px; border-radius:22px; display:grid; grid-template-columns:110px 1fr; gap:14px; align-items:center;
  background: linear-gradient(135deg, rgba(255,255,255,.62), rgba(219,243,255,.48), rgba(255,230,200,.44));
  border:1px solid rgba(255,255,255,.36);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34);
}
.worker-card img { width:100%; max-width:110px; border-radius:18px; background: rgba(255,255,255,.55); }
.worker-card p { margin:6px 0 0; color:#45627f; font-size:14px; }
.worker-float-a { animation: float 6s ease-in-out infinite; }
.worker-float-b { animation: float 7s ease-in-out infinite; animation-delay:1.2s; }
.sidebar {
  background: linear-gradient(180deg, rgba(171,239,255,.98) 0%, rgba(102,196,255,.96) 22%, rgba(255,255,255,.93) 56%, rgba(255,224,190,.95) 78%, rgba(255,144,33,.94) 100%);
}
.sidebar-brand {
  background: linear-gradient(135deg, rgba(255,255,255,.85), rgba(216,244,255,.78) 34%, rgba(255,255,255,.7) 54%, rgba(255,229,206,.78));
}
.sidebar-brand-bg {
  background: linear-gradient(135deg, rgba(56,194,255,.18), rgba(255,255,255,.16), rgba(255,138,0,.18));
}
@keyframes loaderSpin { from { transform:rotate(0deg);} to { transform:rotate(360deg);} }
@keyframes loaderSpinLogo { 0%,100% { transform:scale(1) rotate(0deg);} 50% { transform:scale(1.06) rotate(8deg);} }
@media (max-width: 1080px) {
  .hero-brand-stack { flex-direction:column; align-items:flex-start; }
  .login-workers-grid { grid-template-columns:1fr; }
  .worker-card { grid-template-columns:90px 1fr; }
}


/* V5 enhancements */
.table-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.compact-top{margin-top:10px}.btn-xs{padding:8px 12px;font-size:12px}.btn-danger{background:linear-gradient(135deg,#ff8e8e,#ff5d5d);color:#fff}.actions-row{display:flex;gap:10px;flex-wrap:wrap}.btn-compact{padding:10px 16px}.search-bar{display:grid;grid-template-columns:1fr auto;gap:12px}.search-result-card{padding:16px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(218,242,255,.56),rgba(255,234,212,.45));border:1px solid rgba(255,255,255,.45)}.search-result-card pre{white-space:pre-wrap;word-break:break-word;margin:12px 0 0;font-size:12px;color:#28445f}.calendar-month{display:grid;gap:12px}.calendar-weekdays,.calendar-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}.calendar-weekdays div{font-weight:800;color:#214c77;padding:8px 12px}.calendar-day-card{min-height:130px;padding:12px;border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(218,242,255,.54),rgba(255,234,212,.45));border:1px solid rgba(255,255,255,.5);box-shadow:0 12px 30px rgba(32,95,170,.08)}.calendar-day-card.today{outline:2px solid rgba(255,138,0,.45)}.calendar-day-number{font-weight:900;color:#1b497a;margin-bottom:10px}.calendar-event-pill{padding:8px 10px;border-radius:16px;margin-bottom:8px;background:linear-gradient(135deg,rgba(13,99,255,.1),rgba(255,138,0,.12));display:grid;gap:2px}.calendar-event-pill small{color:#44627d}@media (max-width:1080px){.calendar-weekdays,.calendar-week-grid{grid-template-columns:1fr}.search-bar{grid-template-columns:1fr}}

/* V6 enhancements */
.sidebar-gradient{background:linear-gradient(180deg, rgba(160,233,255,.98) 0%, rgba(90,189,255,.96) 18%, rgba(255,255,255,.92) 55%, rgba(255,233,209,.93) 78%, rgba(255,149,38,.95) 100%) !important;}
.bar-chart{display:grid;gap:14px}.bar-row{display:grid;grid-template-columns:90px 1fr 44px;gap:12px;align-items:center}.bar-track{height:14px;border-radius:999px;background:rgba(19,83,154,.08);overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#51c8ff,#0d63ff)}.bar-fill.orange{background:linear-gradient(90deg,#ffd4a2,#ff8a00)}.mini-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.strong-row{align-items:center}.empty-state{padding:20px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(218,242,255,.5),rgba(255,234,212,.4));color:#3b5877}.signature-box{padding:12px;border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(218,242,255,.58),rgba(255,234,212,.42));border:1px solid rgba(255,255,255,.45)}#signature-pad{width:100%;height:180px;background:#fff;border-radius:14px;border:1px dashed rgba(13,99,255,.25);touch-action:none}.login-card code{display:inline-block;margin-top:8px}.print-wrap h3{margin-top:0} @media (max-width:1080px){.mini-kpi-grid,.bar-row{grid-template-columns:1fr}}

/* V7 enhancements */
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.alert-success{background:linear-gradient(135deg,rgba(86,211,255,.18),rgba(255,255,255,.76),rgba(255,166,71,.18));border:1px solid rgba(80,170,255,.16);color:#20486d}.panel iframe{width:100%;min-height:420px;border:0;border-radius:18px;background:#fff}@media (max-width:1080px){.form-grid-3{grid-template-columns:1fr}}


/* V8 overrides */
.sidebar{background:linear-gradient(180deg, rgba(255,255,255,.82) 0%, rgba(91,196,255,.16) 35%, rgba(255,151,38,.18) 72%, rgba(255,255,255,.75) 100%) !important; border-right:1px solid rgba(255,255,255,.4);} 
.logo-only-card{min-height:160px; display:flex; align-items:center; justify-content:center; padding:18px; background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(74,183,255,.22), rgba(255,160,52,.22));}
.sidebar-logo-full{width:100%; max-width:220px; height:auto; object-fit:contain; filter:drop-shadow(0 8px 25px rgba(13,99,255,.18));}
.sidebar-brand img.sidebar-logo{max-width:none;}
.hero-dashboard{display:grid;grid-template-columns:1.5fr .9fr;gap:24px;padding:26px;border-radius:30px;margin-bottom:22px;background:linear-gradient(90deg, rgba(13,99,255,.9), rgba(55,184,255,.9), rgba(255,140,0,.45));color:#fff;position:relative;overflow:hidden}
.hero-dashboard:before,.right-hero-panel:before{content:'';position:absolute;inset:auto -60px -80px auto;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle, rgba(255,255,255,.22), transparent 70%);pointer-events:none}
.hero-dashboard h2{font-size:2rem;margin:0 0 12px;color:#fff}.hero-dashboard p{font-size:1.04rem;max-width:650px;color:rgba(255,255,255,.95)}
.hero-side{display:flex;flex-direction:column;gap:18px}.hero-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-stat{padding:18px;border-radius:20px;background:rgba(255,255,255,.16);backdrop-filter:blur(12px)}.mini-stat span{display:block;font-size:.92rem;color:#eef7ff}.mini-stat strong{font-size:2rem;color:#fff}
.hero-alert{padding:18px 20px;border-radius:22px;background:linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,165,0,.22));display:flex;flex-direction:column;gap:6px}.hero-alert strong,.hero-alert small{color:#fff}
.right-hero-panel{position:relative;background:linear-gradient(135deg, rgba(255,255,255,.78), rgba(55,184,255,.15), rgba(255,148,30,.17)) !important}
.date-select-group,.time-select-group{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.time-select-group{grid-template-columns:1fr auto 1fr 1fr;align-items:center}.time-sep{font-weight:700;color:#0d63ff;text-align:center}.field-label{display:block;margin:0 0 8px;font-weight:700;color:#1c4f8f}.labeled-inputs > div{display:flex;flex-direction:column}
.public-link-box{padding:14px 16px;border-radius:18px;background:linear-gradient(135deg, rgba(255,255,255,.85), rgba(55,184,255,.12), rgba(255,166,33,.14));}.small{font-size:.88rem}
.nav-link{background:transparent}.nav-link.active,.nav-link:hover{background:linear-gradient(135deg, rgba(13,99,255,.12), rgba(255,145,0,.14), rgba(255,255,255,.82));}
.topbar,.panel,.stat-card{box-shadow:0 18px 45px rgba(15,72,140,.08)}
.public-report-shell{max-width:1080px;margin:24px auto;padding:10px}.public-report-card{padding:28px;border-radius:30px}.public-logo{max-width:340px;width:100%}.public-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.sign-public-page{background:linear-gradient(180deg,#edf7ff,#f9fbff,#fff5ea)}
@media (max-width: 900px){.hero-dashboard{grid-template-columns:1fr}.public-header{flex-direction:column;align-items:flex-start}.date-select-group,.time-select-group{grid-template-columns:1fr 1fr}.time-select-group .time-sep{display:none}}


/* V9.1 fixes */
.app-footer{margin:8px 0 4px;padding:16px 20px 26px;text-align:center;color:#36516f;font-size:14px}.app-footer a{color:#0d63ff;font-weight:700}.hero-dashboard-readable{background: linear-gradient(120deg, rgba(255,255,255,.86), rgba(212,242,255,.92) 42%, rgba(255,227,192,.9) 100%) !important;color: var(--text) !important}.hero-dashboard-readable h2,.hero-dashboard-readable p,.hero-dashboard-readable .hero-alert strong,.hero-dashboard-readable .hero-alert small,.hero-dashboard-readable .mini-stat span,.hero-dashboard-readable .mini-stat strong{color: var(--text) !important}.hero-dashboard-readable .mini-stat,.hero-dashboard-readable .hero-alert{background: rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.5)}.maintenance-layout{display:grid;grid-template-columns:minmax(500px, 1.14fr) minmax(360px, .86fr);gap:16px;align-items:start}.maintenance-layout > *{min-width:0}.maintenance-subtitle{margin:6px 0 0}.maintenance-head-badges{display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end}.maintenance-form{gap:18px}.maintenance-block{padding:18px;border-radius:22px;background: linear-gradient(135deg, rgba(255,255,255,.8), rgba(215,242,255,.45), rgba(255,233,206,.4));border:1px solid rgba(255,255,255,.45)}.maintenance-block-title{font-weight:800;color:#183e6e;margin-bottom:14px;letter-spacing:.02em}.maintenance-date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.maintenance-date-card{padding:12px;border-radius:18px;background: rgba(255,255,255,.55);border:1px solid rgba(13,99,255,.08);min-width:0}.maintenance-public-grid{display:grid;grid-template-columns: .8fr 1.2fr;gap:14px;align-items:start}.qr-inline-box{margin-top:12px;display:flex;justify-content:center}.qr-inline-box img,.sign-qr-image{max-width:180px;width:100%;height:auto;background:#fff;border-radius:16px;padding:8px;border:1px solid rgba(13,99,255,.12);box-shadow:0 10px 24px rgba(13,99,255,.08)}.maintenance-cards{display:grid;gap:14px}.maintenance-item-card{padding:18px;border-radius:22px;background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(217,243,255,.58), rgba(255,232,210,.45));border:1px solid rgba(255,255,255,.52);box-shadow:0 12px 28px rgba(15,72,140,.08)}.maintenance-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.maintenance-item-top h4{margin:0 0 6px;font-size:18px;color:#173662}.maintenance-meta-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:10px}.maintenance-meta-grid div{padding:12px 14px;border-radius:16px;background: rgba(255,255,255,.6)}.maintenance-meta-grid span{display:block;color:#5e738d;font-size:12px;text-transform:uppercase;margin-bottom:4px}.maintenance-meta-grid strong{color:#16365f;font-size:15px}.maintenance-item-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.equipment-actions{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.sidebar-foot{background:rgba(255,255,255,.45)}@media (max-width: 1180px){.maintenance-layout,.maintenance-date-grid,.maintenance-public-grid,.maintenance-meta-grid{grid-template-columns:1fr}}


/* Ajustes finales V9 */
.usa-date-group{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.date-select-col{display:flex;flex-direction:column;gap:6px}
.date-select-col small{font-size:12px;font-weight:700;color:#34597d;letter-spacing:.02em}
.hero-dashboard-readable{box-shadow:0 20px 55px rgba(24,86,158,.12);border:1px solid rgba(255,255,255,.52)}
.hero-dashboard-readable h2{color:#14345c !important;text-shadow:none}
.hero-readable-copy{color:#35516c !important;font-weight:600;max-width:760px}
.hero-dashboard-readable .btn-soft{background:rgba(255,255,255,.86);color:#173660;border:1px solid rgba(13,99,255,.08)}
.hero-dashboard-readable .btn-soft:hover{background:#fff}
.hero-dashboard-readable .mini-stat strong{font-size:2.1rem}
.maintenance-layout{align-items:start}
.maintenance-form-panel,.maintenance-agenda-panel{min-height:100%}
.maintenance-form .form-grid-2,.maintenance-form .form-grid-3{align-items:start}
.maintenance-form textarea{min-height:132px;resize:vertical}.maintenance-form-panel{padding:20px}.maintenance-form-panel select,.maintenance-form-panel input,.maintenance-form-panel textarea{width:100%;max-width:100%;box-sizing:border-box}.maintenance-form .form-grid-2,.maintenance-form .form-grid-3,.maintenance-date-grid,.maintenance-public-grid{min-width:0}.maintenance-date-card .usa-date-group{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr)}.maintenance-date-card .time-select-group{grid-template-columns:minmax(0,.8fr) auto minmax(0,.8fr) minmax(0,.9fr)}
.maintenance-public-grid{grid-template-columns:minmax(220px,.78fr) minmax(320px,1.22fr)}
.public-link-box{padding:18px;border-radius:18px}
.maintenance-item-actions .btn{min-width:88px;justify-content:center}
.maintenance-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.maintenance-item-card h4{font-size:20px}
.maintenance-head-badges .badge{box-shadow:0 8px 20px rgba(20,74,145,.08)}
.sidebar{background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(217,241,255,.92) 48%, rgba(255,241,225,.88) 100%) !important}
.right-hero-panel{box-shadow:0 18px 45px rgba(16,77,144,.10)}
.app-footer{border-top:1px solid rgba(13,99,255,.08)}
.login-footer,.public-footer{margin-top:18px}
@media (max-width:1180px){.maintenance-layout,.maintenance-date-grid,.maintenance-public-grid,.maintenance-meta-grid,.maintenance-form .form-grid-2,.maintenance-form .form-grid-3{grid-template-columns:1fr}.maintenance-date-card .usa-date-group,.maintenance-date-card .time-select-group,.maintenance-public-grid,.usa-date-group{grid-template-columns:1fr}.maintenance-item-actions .btn{min-width:0}}


/* K Johnson custom alignment based on base package */
.app-footer{padding:14px 0 24px;text-align:center;color:#31527b;font-size:14px;font-weight:700}
.login-footer{position:relative;z-index:2}
.login-main-logo{width:min(360px,100%);max-height:320px;object-fit:contain;margin-inline:auto}
.login-slogan{margin-top:14px;max-width:420px;width:100%;filter:drop-shadow(0 10px 20px rgba(13,99,255,.14))}
.sidebar-logo-full{width:100%;max-width:250px;max-height:110px;object-fit:contain;margin-inline:auto}
.header-logo{width:280px;max-height:70px;object-fit:contain}
.logo-only-card{padding:22px 18px}
.preloader-logo{width:118px}
.user-chip strong{font-size:15px}.user-chip small{display:block;color:#5d7392}
.topbar{background:linear-gradient(135deg,rgba(221,243,255,.95),rgba(255,255,255,.92),rgba(255,236,215,.92))}
.panel,.login-card,.login-brand,.sidebar,.topbar{border:1px solid rgba(255,255,255,.58)}
.nav-link{font-size:15px}
.nav-link.is-active,.nav-link.active{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,246,233,.98));box-shadow:0 12px 28px rgba(24,87,170,.10), inset 0 1px 0 rgba(255,255,255,.9)}
.sidebar-foot{font-size:13px;line-height:1.45}


/* Equipment date picker cleanup */
.date-picker-field{position:relative;display:grid;grid-template-columns:1fr 54px;gap:10px;align-items:center}
.date-picker-field .date-display{padding-right:14px;font-weight:700;letter-spacing:.03em;background:rgba(255,255,255,.96)}
.date-icon-btn{height:50px;width:54px;border-radius:16px;border:1px solid rgba(45,104,188,.16);background:rgba(255,255,255,.9);cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:.25s ease;box-shadow:0 10px 24px rgba(32,95,170,.08)}
.date-icon-btn:hover{transform:translateY(-1px);border-color:rgba(13,99,255,.35);box-shadow:0 0 0 4px rgba(56,194,255,.12)}
.native-date-input{position:absolute;right:0;bottom:0;width:54px;height:50px;opacity:0;pointer-events:none}
@media (max-width: 900px){.date-picker-field{grid-template-columns:1fr 50px}.date-icon-btn,.native-date-input{width:50px;height:48px}}


/* Equipment form refinement */
.equipment-grid{grid-template-columns:minmax(560px,1.12fr) minmax(460px,.98fr);align-items:start}
.equipment-grid .panel:first-child{padding-right:26px}
.equipment-grid .panel:last-child{padding-left:24px}
.equipment-grid .panel-head h3{font-size:22px;line-height:1.05}
.date-picker-field{display:grid;grid-template-columns:minmax(150px,1fr) 52px;gap:10px;align-items:center}
.date-display{min-width:0;width:100%;text-align:left;font-weight:700;letter-spacing:.01em}
.date-icon-btn{width:52px;height:44px;display:grid;place-items:center;border-radius:16px;border:1px solid rgba(13,99,255,.12);background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(220,242,255,.72),rgba(255,236,216,.78));box-shadow:0 8px 18px rgba(23,90,170,.08);cursor:pointer;font-size:18px}
.date-icon-btn:hover{transform:translateY(-1px)}
.native-date-input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.table-wrap table{table-layout:fixed}
.table-wrap th:nth-child(1), .table-wrap td:nth-child(1){width:18%}
.table-wrap th:nth-child(2), .table-wrap td:nth-child(2){width:14%}
.table-wrap th:nth-child(3), .table-wrap td:nth-child(3){width:12%}
.table-wrap th:nth-child(4), .table-wrap td:nth-child(4){width:14%}
.table-wrap th:nth-child(5), .table-wrap td:nth-child(5){width:18%}
.table-wrap th:nth-child(6), .table-wrap td:nth-child(6){width:16%}
.table-wrap th:nth-child(7), .table-wrap td:nth-child(7){width:18%}
.table-wrap td{vertical-align:middle;word-break:break-word}
@media (max-width:1180px){.equipment-grid{grid-template-columns:1fr}.equipment-grid .panel:first-child,.equipment-grid .panel:last-child{padding-left:22px;padding-right:22px}.table-wrap table{table-layout:auto}}


/* V7 equipment registry redesign */
.equipment-grid{grid-template-columns:minmax(480px,.92fr) minmax(560px,1.08fr);align-items:start}
.equipment-grid .panel:first-child{padding-right:18px}
.equipment-grid .panel:last-child{padding-left:18px}
.equipment-registry-list{display:grid;gap:14px}
.equipment-registry-head,.equipment-row-grid{display:grid;grid-template-columns:1.35fr 1fr .9fr .95fr 1.15fr 1fr 1.25fr;gap:14px;align-items:center}
.equipment-registry-head{padding:0 10px 8px;color:#183a67;font-weight:800;border-bottom:1px solid rgba(13,99,255,.08)}
.equipment-row-card{padding:16px 14px;border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(219,243,255,.4),rgba(255,236,216,.34));border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 24px rgba(17,78,149,.06)}
.equipment-cell{min-width:0}
.equipment-cell strong{display:block;color:#1a355e;font-size:15px;line-height:1.3;word-break:normal;overflow-wrap:anywhere}
.equipment-label{display:none;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6380a1;margin-bottom:6px;font-weight:800}
.equipment-cell-status .badge{justify-content:flex-start;padding:10px 14px;min-width:112px}
.no-wrap-actions{flex-wrap:nowrap}
.no-wrap-actions .btn{white-space:nowrap}
.soft-empty{padding:18px 16px;border-radius:18px;background:rgba(255,255,255,.55);border:1px solid rgba(13,99,255,.08);color:#4a6482}
@media (max-width:1280px){.equipment-grid{grid-template-columns:minmax(430px,.94fr) minmax(520px,1.06fr)}.equipment-registry-head,.equipment-row-grid{grid-template-columns:1.2fr .95fr .85fr .9fr 1.05fr .95fr 1.15fr;gap:12px}}
@media (max-width:1180px){.equipment-grid{grid-template-columns:1fr}.equipment-grid .panel:first-child,.equipment-grid .panel:last-child{padding-left:22px;padding-right:22px}.equipment-registry-head{display:none}.equipment-row-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-label{display:block}.equipment-cell-actions{grid-column:1 / -1}.no-wrap-actions{justify-content:flex-start}}
@media (max-width:720px){.equipment-row-grid{grid-template-columns:1fr}.equipment-cell-actions{grid-column:auto}.date-picker-field{grid-template-columns:minmax(0,1fr) 50px}}

/* V4.1 equipment registry cleanup */
.equipment-grid{grid-template-columns:minmax(460px,.88fr) minmax(600px,1.12fr);gap:16px}
.equipment-grid .panel:first-child{padding-right:14px}
.equipment-grid .panel:last-child{padding-left:14px}
.registry-cards-layout .equipment-registry-body{display:grid;gap:14px}
.registry-card-v2{padding:18px 18px 16px;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.80),rgba(221,244,255,.50),rgba(255,238,220,.34));border:1px solid rgba(255,255,255,.6);box-shadow:0 10px 28px rgba(16,78,145,.07)}
.registry-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.registry-card-top h4{margin:0;font-size:28px;line-height:1.05;color:#17355f}
.registry-card-top p{margin:6px 0 0;color:#59708d;font-weight:600}
.registry-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.registry-meta-item{padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.62);border:1px solid rgba(13,99,255,.08);min-width:0}
.registry-meta-item span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#5e7898;font-weight:800;margin-bottom:6px}
.registry-meta-item strong{display:block;color:#17355f;font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.registry-actions-row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
.registry-actions-row .btn{min-width:96px;justify-content:center}
.registry-card-v2 .badge{white-space:nowrap;align-self:flex-start}
@media (max-width:1320px){.registry-card-top h4{font-size:24px}.registry-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1180px){.equipment-grid{grid-template-columns:1fr}.registry-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.registry-card-top{flex-direction:column;align-items:flex-start}.registry-meta-grid{grid-template-columns:1fr}.registry-actions-row{justify-content:flex-start}}

/* V6.1 sidebar width refinement for equipment registry */
@media (min-width: 1181px){
  .app-shell{grid-template-columns:232px 1fr;gap:16px;padding:14px;}
  .sidebar{padding:16px 12px;gap:14px;top:14px;min-height:calc(100vh - 28px);}
  .logo-only-card{min-height:128px;padding:14px 10px;}
  .sidebar-logo-full{max-width:190px;max-height:82px;}
  .nav-menu{gap:8px;}
  .nav-link{padding:12px 12px;font-size:14px;border-radius:15px;}
  .sidebar-foot{padding:10px;font-size:11px;}
  .main-panel{gap:16px;min-width:0;}
  .topbar{padding:14px 16px;}
  .page-content{min-width:0;}
  .equipment-grid{grid-template-columns:minmax(390px,.78fr) minmax(0,1.22fr);gap:12px;}
}

/* V8 sidebar/logo and equipment width tuning */
.app-shell,
.main-panel,
.page-content,
.equipment-grid,
.equipment-grid > .panel,
.equipment-grid form,
.form-grid-2,
.registry-meta-grid{min-width:0;}

@media (min-width: 1181px){
  .app-shell{grid-template-columns:214px minmax(0,1fr);gap:14px;padding:14px;}
  .sidebar{padding:14px 10px;gap:12px;top:14px;min-height:calc(100vh - 28px);}
  .logo-only-card{
    min-height:154px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }
  .sidebar-brand{border-radius:24px;}
  .sidebar-logo-full{
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    object-fit:contain;
    padding:10px 8px;
    margin:0;
  }
  .nav-menu{gap:8px;}
  .nav-link{padding:12px 14px;font-size:14px;}
  .sidebar-foot{padding:10px 8px;font-size:11px;}
  .topbar{padding:14px 16px;}
  .header-logo{width:260px;max-height:64px;}

  .equipment-grid{grid-template-columns:minmax(500px,.96fr) minmax(0,1.04fr);gap:14px;align-items:start;}
  .equipment-grid .panel{padding:20px 20px 22px;overflow:hidden;}
  .equipment-grid .panel:first-child{padding-right:16px;}
  .equipment-grid .panel:last-child{padding-left:16px;}
  .form-grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;}
  .date-picker-field{grid-template-columns:minmax(0,1fr) 50px;gap:10px;}
  .date-display{padding-left:14px;padding-right:10px;}
}


/* v10 maintenance date/time to match reference */
.maintenance-date-grid-2up{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}
.maintenance-date-card{padding:14px 16px}
.maintenance-date-card .field-label{margin-bottom:10px}
.maintenance-date-picker{grid-template-columns:minmax(0,1fr) 46px;gap:10px}
.maintenance-date-picker .date-display{height:44px;border-radius:14px;background:#fff;font-weight:800;color:#334c6c;padding:0 16px;display:flex;align-items:center}
.maintenance-date-picker .date-icon-btn{width:46px;height:44px;border-radius:14px;font-size:17px;box-shadow:none}
.maintenance-time-row-card{margin-top:2px;padding:12px 16px;border-radius:18px;background:rgba(255,255,255,.55);border:1px solid rgba(13,99,255,.08)}
.maintenance-time-picker{display:grid;grid-template-columns:46px minmax(0,.85fr) auto minmax(0,.85fr) minmax(0,.9fr);gap:10px;align-items:center}
.time-icon-btn{height:42px;width:42px;border-radius:14px;border:1px solid rgba(13,99,255,.12);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(220,242,255,.8),rgba(255,236,216,.82));display:grid;place-items:center;font-size:16px;color:#31527b;cursor:default;box-shadow:0 8px 18px rgba(23,90,170,.08)}
.maintenance-time-picker select{height:42px;border-radius:12px;padding:0 12px;font-weight:700}
.maintenance-time-picker .time-sep{font-size:20px;line-height:1;color:#296eff;font-weight:800}
@media (max-width:1180px){.maintenance-date-grid-2up{grid-template-columns:1fr}.maintenance-time-picker{grid-template-columns:42px repeat(3,minmax(0,1fr));}.maintenance-time-picker .time-sep{display:grid;place-items:center}}
@media (max-width:720px){.maintenance-time-picker{grid-template-columns:42px 1fr;}.maintenance-time-picker .time-sep{display:none}.maintenance-time-picker select:last-child{grid-column:2}.maintenance-time-picker select{width:100%}}


/* v11 contracts layout refinement */
.contracts-grid{grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);align-items:start}
.contract-form-panel{padding-right:18px}
.contracts-list-panel{padding-left:18px;overflow:hidden}
.contracts-table-wrap{overflow-x:auto}
.contracts-table{table-layout:fixed;min-width:720px}
.contracts-table th,.contracts-table td{vertical-align:middle;word-break:normal;overflow-wrap:anywhere}
.contracts-table th:nth-child(1),.contracts-table td:nth-child(1){width:23%}
.contracts-table th:nth-child(2),.contracts-table td:nth-child(2){width:16%}
.contracts-table th:nth-child(3),.contracts-table td:nth-child(3){width:16%}
.contracts-table th:nth-child(4),.contracts-table td:nth-child(4){width:18%}
.contracts-table th:nth-child(5),.contracts-table td:nth-child(5){width:16%}
.contracts-table th:nth-child(6),.contracts-table td:nth-child(6){width:17%}
.contracts-table .badge{white-space:nowrap}
.contracts-table .table-actions{display:flex;justify-content:flex-end;gap:8px;align-items:center}
.contracts-table .table-actions .btn{white-space:nowrap;min-width:72px}
@media (max-width:1280px){.contracts-grid{grid-template-columns:minmax(330px,.8fr) minmax(0,1.2fr)}}
@media (max-width:1180px){.contracts-grid{grid-template-columns:1fr}.contract-form-panel,.contracts-list-panel{padding-left:22px;padding-right:22px}.contracts-table{min-width:0;table-layout:auto}.contracts-table .table-actions{justify-content:flex-start;flex-wrap:wrap}}


/* v12 contracts width/date refinement */
.contracts-grid{grid-template-columns:minmax(300px,.68fr) minmax(0,1.32fr);align-items:start}
.contract-form-panel{padding-right:18px}
.contracts-list-panel{padding-left:14px;overflow:hidden}
.contract-date-field{grid-template-columns:minmax(170px,1fr) 52px}
.contract-date-field .date-display{font-weight:700;letter-spacing:.02em}
.contracts-table{min-width:700px}
.contracts-table th:nth-child(1),.contracts-table td:nth-child(1){width:22%}
.contracts-table th:nth-child(2),.contracts-table td:nth-child(2){width:14%}
.contracts-table th:nth-child(3),.contracts-table td:nth-child(3){width:14%}
.contracts-table th:nth-child(4),.contracts-table td:nth-child(4){width:18%}
.contracts-table th:nth-child(5),.contracts-table td:nth-child(5){width:17%}
.contracts-table th:nth-child(6),.contracts-table td:nth-child(6){width:15%}
@media (max-width:1280px){.contracts-grid{grid-template-columns:minmax(290px,.64fr) minmax(0,1.36fr)}}
@media (max-width:1180px){.contracts-grid{grid-template-columns:1fr}.contract-form-panel,.contracts-list-panel{padding-left:22px;padding-right:22px}.contracts-table{min-width:0;table-layout:auto}}


/* v14 contracts actions icon compact */
.contracts-grid{grid-template-columns:minmax(270px,.58fr) minmax(0,1.42fr);align-items:start}
.contract-form-panel{padding-right:14px}
.contracts-list-panel{padding-left:12px;overflow:hidden}
.contracts-table{min-width:640px}
.contracts-table th:nth-child(1),.contracts-table td:nth-child(1){width:22%}
.contracts-table th:nth-child(2),.contracts-table td:nth-child(2){width:15%}
.contracts-table th:nth-child(3),.contracts-table td:nth-child(3){width:14%}
.contracts-table th:nth-child(4),.contracts-table td:nth-child(4){width:17%}
.contracts-table th:nth-child(5),.contracts-table td:nth-child(5){width:18%}
.contracts-table th:nth-child(6),.contracts-table td:nth-child(6){width:14%}
.contracts-table .table-actions{display:flex;justify-content:center;gap:6px;align-items:center;flex-wrap:nowrap}
.contracts-table .table-actions .btn{min-width:0;width:34px;height:34px;padding:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1}
.contracts-table .table-actions .btn .icon-label{display:none}
.contracts-table .table-actions .btn-edit-icon{background:linear-gradient(135deg,#eaf4ff,#d8ebff);color:#195bd8;border:1px solid rgba(25,91,216,.12)}
.contracts-table .table-actions .btn-delete-icon{background:linear-gradient(135deg,#ffecec,#ffdede);color:#d64242;border:1px solid rgba(214,66,66,.12)}
.contracts-table td,.contracts-table th{white-space:nowrap}
@media (max-width:1280px){.contracts-grid{grid-template-columns:minmax(255px,.54fr) minmax(0,1.46fr)}}
@media (max-width:1180px){.contracts-grid{grid-template-columns:1fr}.contract-form-panel,.contracts-list-panel{padding-left:22px;padding-right:22px}.contracts-table{min-width:0;table-layout:auto}.contracts-table td,.contracts-table th{white-space:normal}.contracts-table .table-actions{justify-content:flex-start}}

/* v15 contracts action icons spacing */
.contracts-table th:nth-child(6),.contracts-table td:nth-child(6){width:18%;min-width:116px}
.contracts-table .table-actions.actions-cell{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:nowrap;padding-left:12px}
.contracts-table .table-actions.actions-cell .btn{width:36px;height:36px;padding:0;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:0 0 36px}
.contracts-table .table-actions.actions-cell .svg-icon{width:16px;height:16px;display:block}
.contracts-table .table-actions.actions-cell svg{width:16px;height:16px;display:block}
.contracts-table td:nth-child(5){padding-right:10px}
@media (max-width:1180px){.contracts-table .table-actions.actions-cell{justify-content:flex-start;padding-left:0}}


/* icon action buttons */
.btn-icon-only{min-width:0 !important;width:38px;height:38px;padding:0 !important;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;line-height:1;flex:0 0 38px;}
.btn-icon-only .svg-icon{width:18px;height:18px;display:block;}
.btn-icon-only .svg-icon svg{width:18px;height:18px;display:block;}
.table-actions .btn-icon-only,.registry-actions-row .btn-icon-only,.maintenance-item-actions .btn-icon-only,.actions-row .btn-icon-only{width:36px;height:36px;flex:0 0 36px;}
.registry-actions-row,.maintenance-item-actions,.table-actions{align-items:center;}
.registry-actions-row .btn,.maintenance-item-actions .btn,.table-actions .btn{justify-content:center;}
.maintenance-item-actions{gap:10px;flex-wrap:wrap;}
.maintenance-item-actions .btn{min-width:0;}
.profile-card .table-actions,.card-list .table-actions{gap:10px;}
.actions-row .btn-icon-only{margin-left:2px;}


/* v17 settings alignment */
.settings-format-box,.settings-notify-row > div{display:flex;flex-direction:column;gap:8px;min-width:0}
.settings-format-box input[readonly]{font-weight:800;letter-spacing:.02em;color:#334c6c;background:rgba(255,255,255,.96)}
.settings-notify-row .maintenance-time-picker{grid-template-columns:46px minmax(0,.85fr) auto minmax(0,.85fr) minmax(0,.9fr)}
.settings-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;align-items:center;margin-top:4px}
.settings-check-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.55);border:1px solid rgba(13,99,255,.08);font-weight:700;color:#173662;min-width:0}
.settings-check-item input[type="checkbox"]{width:16px;height:16px;accent-color:#2568f6;flex:0 0 auto}
.settings-check-item span{display:block}
@media (max-width:1180px){.settings-check-grid{grid-template-columns:1fr}.settings-notify-row .maintenance-time-picker{grid-template-columns:42px repeat(3,minmax(0,1fr));}}
@media (max-width:720px){.settings-notify-row .maintenance-time-picker{grid-template-columns:42px 1fr}.settings-notify-row .maintenance-time-picker .time-sep{display:none}.settings-notify-row .maintenance-time-picker select:last-child{grid-column:2}}


/* v18 compact notification time field */
.settings-time-compact{display:flex;align-items:center;max-width:170px}
.settings-time-select{width:100%;height:44px;border-radius:14px;padding:0 14px;font-weight:700;background:#fff;border:1px solid rgba(13,99,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.settings-notify-row > div:first-child{max-width:190px}
@media (max-width:1180px){.settings-notify-row > div:first-child{max-width:none}.settings-time-compact{max-width:100%}}


.registry-qr-row{display:flex;justify-content:flex-end;margin-top:10px}.registry-qr-box{display:flex;flex-direction:column;align-items:center;gap:6px;background:#f8fbff;border:1px solid #dbe6f3;border-radius:14px;padding:10px 12px}.registry-qr-box img{width:72px;height:72px;object-fit:contain;border-radius:10px;background:#fff;padding:4px}.registry-qr-box small{color:#5b708f;font-size:11px}.placeholder-sign{color:#6b809c;font-weight:600;}


/* custom checkpoint style */
.check-radio-look{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:1.8px solid rgba(37,104,246,.42);border-radius:999px;background:#fff;display:inline-grid;place-items:center;cursor:pointer;position:relative;flex:0 0 auto}
.check-radio-look::after{content:"";width:7px;height:7px;border-radius:999px;background:linear-gradient(135deg,#39c1ff,#0d63ff,#ff8a00);transform:scale(0);transition:.18s ease}
.check-radio-look:checked::after{transform:scale(1)}
.settings-radio-look,.settings-inline-radio{display:flex;align-items:center;gap:10px}
.settings-inline-radio{font-weight:700;color:#173662;margin-bottom:2px}
.settings-check-item.settings-radio-look{padding:12px 14px}

/* report_sign organized */
.sign-organized-card{max-width:980px;margin:0 auto}
.public-header-centered{justify-content:flex-start;gap:18px;align-items:center}
.sign-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.sign-form-block{background:rgba(255,255,255,.48);border:1px solid rgba(13,99,255,.08);border-radius:22px;padding:18px}
.sign-input-row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.sign-actions-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-start}
.sign-actions-row .btn-gradient{padding-inline:20px}
.signature-box{background:#f8fbff}
@media (max-width:900px){.sign-summary-grid{grid-template-columns:1fr}.public-header-centered{flex-direction:column;text-align:center}}

/* dashboard notifications + pagination */
.notification-bell-wrap{position:relative;display:flex;align-items:center;gap:14px;overflow:visible}
.notification-bell-btn{width:54px;height:54px;border:none;border-radius:18px;background:linear-gradient(135deg,#eef7ff,#ffffff);box-shadow:0 10px 24px rgba(13,99,255,.12);display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer}
.bell-emoji{font-size:24px;line-height:1}
.pulse-rainbow-dot{position:absolute;right:8px;top:8px;width:12px;height:12px;border-radius:999px;background:#ff4d4d;box-shadow:0 0 0 rgba(255,77,77,.7);animation:rainbowPulse 1.8s infinite}
@keyframes rainbowPulse{0%{background:#ff4d4d;box-shadow:0 0 0 0 rgba(255,77,77,.55)}33%{background:#ffb300;box-shadow:0 0 0 8px rgba(255,179,0,0)}66%{background:#36d16b;box-shadow:0 0 0 10px rgba(54,209,107,0)}100%{background:#5c7cff;box-shadow:0 0 0 0 rgba(92,124,255,0)}}
.notification-popover{position:absolute;right:0;top:calc(100% + 12px);width:min(360px,calc(100vw - 48px));padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(13,99,255,.1);box-shadow:0 18px 44px rgba(13,99,255,.16);display:none;z-index:30}
.notification-popover.is-open{display:block}
.notification-item{padding:12px 12px;border-radius:14px;background:#f8fbff;border:1px solid #e3edf9}.notification-item + .notification-item{margin-top:10px}.notification-item strong{display:block;margin-bottom:4px}.notification-item p{margin:0;color:#4f6786;font-size:13px;line-height:1.45}.notification-warning{border-color:#ffe0ba;background:#fff8ee}.notification-success{border-color:#d7f0df;background:#f6fff8}.hero-alert-copy{display:flex;flex-direction:column;gap:3px}
.live-badge{display:inline-flex;align-items:center;gap:8px}.pulse-red-dot{width:10px;height:10px;border-radius:999px;background:#ff4b4b;box-shadow:0 0 0 rgba(255,75,75,.55);animation:redPulse 1.35s infinite}@keyframes redPulse{0%{box-shadow:0 0 0 0 rgba(255,75,75,.48)}70%{box-shadow:0 0 0 11px rgba(255,75,75,0)}100%{box-shadow:0 0 0 0 rgba(255,75,75,0)}}
.pagination-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;flex-wrap:wrap}.pagination-chip{padding:8px 12px;border-radius:999px;background:#f4f8fc;border:1px solid #dbe6f3;color:#173662;font-weight:700;font-size:13px}
.hero-alert{position:relative;overflow:visible}

/* report print compact */
@media print{.print-actions .btn,.print-actions a{display:none !important}}


/* v21 dashboard drawer + compact activity */
.notification-inline-btn{width:48px;height:48px;min-width:48px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.notification-drawer-overlay{position:fixed;inset:0;background:rgba(8,18,38,.20);backdrop-filter:blur(4px);opacity:0;transition:opacity .22s ease;z-index:80}
.notification-drawer-overlay.is-open{opacity:1}
.notification-drawer{position:fixed;top:14px;right:14px;height:calc(100vh - 28px);width:min(390px,calc(100vw - 28px));background:rgba(248,253,255,.82);backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%);box-shadow:-18px 0 44px rgba(12,37,84,.18);transform:translateX(106%);transition:transform .24s ease;border:1px solid rgba(255,255,255,.48);border-radius:20px;z-index:90;padding:18px 16px 16px;display:flex;flex-direction:column;gap:14px}
.notification-drawer.is-open{transform:translateX(0)}
.notification-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:6px 4px 2px}.notification-drawer-head strong{display:block;font-size:18px;color:#173662}.notification-drawer-head small{display:block;color:#6c819d;margin-top:4px;line-height:1.35}
.drawer-close-btn{width:38px;height:38px;border:none;border-radius:12px;background:rgba(255,255,255,.72);backdrop-filter:blur(12px);box-shadow:0 8px 18px rgba(13,99,255,.12);font-size:24px;line-height:1;cursor:pointer;color:#173662}
.notification-drawer-body{overflow:auto;padding-right:2px}
.notification-drawer-body .notification-item + .notification-item{margin-top:12px}
.quick-actions .notification-inline-btn{align-self:center}
.timeline.compact-three .timeline-item:nth-child(n+4){display:none}
.settings-maintenance-actions{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:980px){.notification-drawer{top:10px;right:10px;height:calc(100vh - 20px);width:min(100vw - 20px,420px);border-radius:20px} .quick-actions{gap:10px}}


.update-upload-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.update-upload-inline input[type=file]{max-width:260px;padding:10px 12px;border:1px dashed rgba(13,99,255,.25);border-radius:14px;background:rgba(255,255,255,.75)}.compact-table td,.compact-table th{vertical-align:middle}.compact-table .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.compact-table form{margin:0}.alert strong{font-weight:800}


/* Modern login redesign */
.login-modern-page{background:linear-gradient(135deg,#e9f6ff 0%,#d8efff 34%,#f6fbff 56%,#fff1df 100%);}
.login-modern-bg{position:fixed; inset:0; background:radial-gradient(circle at top left, rgba(56,194,255,.22), transparent 35%), radial-gradient(circle at bottom right, rgba(255,138,0,.20), transparent 30%), linear-gradient(135deg, rgba(13,99,255,.08), rgba(255,255,255,.0) 50%, rgba(255,138,0,.10)); pointer-events:none;}
.login-modern-wrapper{width:min(1220px,calc(100% - 42px)); margin:0 auto; min-height:100vh; display:grid; grid-template-columns: 1.06fr .94fr; align-items:center; gap:0; padding:38px 0 76px; position:relative; z-index:2;}
.login-modern-panel{min-height:745px; position:relative; overflow:hidden; box-shadow:0 30px 60px rgba(18,55,109,.14);}
.login-hero-panel{border-radius:34px 0 0 34px; background:linear-gradient(180deg,#3bb5ff 0%,#2d92f7 52%,#1f66f5 100%);}
.login-form-panel{border-radius:0 34px 34px 0; background:rgba(255,255,255,.96); padding:84px 90px 70px; display:flex; flex-direction:column; justify-content:center;}
.login-hero-grid{position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px); background-size:58px 58px; opacity:.62;}
.login-hero-overlay{position:absolute; inset:0; background:radial-gradient(circle at 10% 30%, rgba(255,255,255,.18), transparent 14%), radial-gradient(circle at 80% 12%, rgba(140,230,255,.34), transparent 7%), radial-gradient(circle at 76% 82%, rgba(8,76,255,.36), transparent 15%), linear-gradient(140deg, rgba(255,255,255,.08), rgba(255,255,255,0) 24%, rgba(255,255,255,.08) 26%, rgba(255,255,255,0) 52%, rgba(255,255,255,.10) 54%, rgba(255,255,255,0) 80%);}
.login-hero-panel::before,.login-hero-panel::after{content:''; position:absolute; left:-8%; right:-8%; height:160px; background:radial-gradient(ellipse at center, rgba(120,242,255,.28) 0%, rgba(120,242,255,.18) 35%, rgba(255,255,255,0) 72%); opacity:.8;}
.login-hero-panel::before{top:78px; transform:skewY(-9deg);}
.login-hero-panel::after{bottom:38px; transform:skewY(9deg);}
.login-hero-content{position:relative; z-index:2; color:#fff; padding:58px 70px; display:flex; flex-direction:column; height:100%; justify-content:center;}
.login-mini-brand{display:flex; align-items:center; gap:12px; font-size:15px; letter-spacing:.1em; text-transform:uppercase; opacity:.95; margin-bottom:28px;}
.login-mini-brand img{width:32px; height:32px; object-fit:contain;}
.login-hero-logo{width:min(86%, 560px); margin-bottom:28px; filter:drop-shadow(0 10px 18px rgba(4,31,94,.18));}
.login-hero-kicker{font-size:18px; letter-spacing:.08em; text-transform:uppercase; margin:0 0 8px; opacity:.95;}
.login-hero-content h1{font-size:clamp(54px,5.8vw,78px); line-height:.95; letter-spacing:.02em; margin:0 0 16px; color:#f5fbff; font-weight:300;}
.login-hero-line{width:78px; height:8px; border-radius:999px; background:rgba(255,255,255,.86); margin:8px 0 22px;}
.login-hero-copy{max-width:520px; font-size:16px; line-height:1.8; color:rgba(255,255,255,.92);}
.login-form-head h2{font-size:54px; margin:0 0 14px; color:#197cf0; font-weight:800;}
.login-form-head p{max-width:500px; color:#8390a3; line-height:1.7; margin-bottom:36px;}
.login-modern-form{display:grid; gap:22px;}
.login-modern-field label{display:block; font-size:15px; color:#3b5c83; font-weight:700; margin-bottom:8px;}
.login-modern-field input{border-radius:0; border:0; border-left:5px solid #1f88ff; background:#f7f9fc; padding:18px 18px; font-size:20px; color:#1a2947; box-shadow:none;}
.login-modern-field input::placeholder{color:#c3c8d1;}
.login-modern-field input:focus{transform:none; box-shadow:none; background:#fff; border-left-color:#ff8a00;}
.login-modern-row{display:flex; align-items:center; justify-content:space-between; gap:14px; color:#6d7d96; font-size:15px; margin-top:2px;}
.login-checkline{display:flex; align-items:center; gap:10px; font-weight:500; color:#5d6f8d;}
.login-checkline input{width:18px; height:18px; accent-color:#1f88ff;}
.btn-modern-submit{min-height:60px; border-radius:999px; font-size:26px; letter-spacing:.14em; text-transform:uppercase; margin-top:14px; box-shadow:0 18px 36px rgba(31,136,255,.22);}
.login-demo-box{margin-top:28px; background:linear-gradient(135deg, rgba(56,194,255,.08), rgba(255,138,0,.07)); border:1px solid rgba(13,99,255,.08);}
.settings-credentials-card{margin-top:18px;}
.settings-credentials-grid{display:grid; gap:14px;}
@media (max-width: 1100px){.login-modern-wrapper{grid-template-columns:1fr; width:min(780px,calc(100% - 24px)); padding:24px 0 64px}.login-hero-panel,.login-form-panel{border-radius:28px}.login-modern-panel{min-height:auto}.login-hero-content{padding:44px 34px}.login-form-panel{padding:44px 34px 40px}.login-hero-content h1{font-size:52px}.login-form-head h2{font-size:42px}}


/* notification drawer close fix */
html,body{overflow-x:hidden}
.notification-drawer{opacity:0;visibility:hidden;pointer-events:none;max-width:calc(100vw - 28px)}
.notification-drawer.is-open{transform:translateX(0);opacity:1;visibility:visible;pointer-events:auto}
.notification-drawer-overlay[hidden]{display:none !important}


/* V10 login glass + sidebar brand refinement */

.login-glass-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 15% 12%, rgba(62,210,255,.34), transparent 24%),
    radial-gradient(circle at 85% 18%, rgba(157,244,193,.28), transparent 22%),
    radial-gradient(circle at 78% 84%, rgba(63,180,255,.18), transparent 22%),
    linear-gradient(135deg,#8ae3f1 0%,#93e5e3 28%,#bdecc1 62%,#d4f4c9 100%);
}
.login-scene{position:relative;min-height:100vh;display:grid;place-items:center;padding:34px 16px 72px;overflow:hidden}
.login-particles,.login-particles::before,.login-particles::after{content:'';position:absolute;inset:0;pointer-events:none}
.login-particles{background-image:radial-gradient(rgba(255,255,255,.7) 1px, transparent 1.5px);background-size:46px 46px;opacity:.45;filter:drop-shadow(0 0 8px rgba(255,255,255,.35))}
.login-particles::before{background-image:radial-gradient(rgba(255,255,255,.95) 1px, transparent 1.5px);background-size:88px 88px;opacity:.58;animation:twinkleDots 6s linear infinite}
.login-particles::after{background:linear-gradient(115deg, rgba(255,255,255,.16), transparent 22%, rgba(255,255,255,.14) 35%, transparent 48%, rgba(255,255,255,.1) 58%, transparent 72%);opacity:.44}
.login-aurora{position:absolute;border-radius:50%;filter:blur(20px);opacity:.58;pointer-events:none}
.login-aurora-a{width:320px;height:320px;background:radial-gradient(circle, rgba(0,165,255,.28), transparent 68%);left:-90px;top:70px}
.login-aurora-b{width:360px;height:360px;background:radial-gradient(circle, rgba(129,255,184,.3), transparent 68%);right:-90px;bottom:30px}
.login-glass-shell{width:min(540px,calc(100vw - 28px));position:relative;z-index:1}
.login-glass-card{border-radius:26px;overflow:hidden;background:rgba(255,255,255,.22);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.56);box-shadow:0 28px 60px rgba(18,74,110,.18), inset 0 1px 0 rgba(255,255,255,.52)}
.login-glass-top{position:relative;padding:26px 28px 22px;text-align:center;background:linear-gradient(180deg, rgba(0,180,230,.78) 0%, rgba(43,197,223,.62) 50%, rgba(37,176,213,.52) 100%)}
.login-glass-top::before{content:'';position:absolute;inset:auto -12% -36px;height:120px;background:radial-gradient(ellipse at center, rgba(2,139,176,.58) 0%, rgba(0,124,170,.18) 54%, rgba(0,0,0,0) 72%)}
.login-glass-top::after{content:'';position:absolute;left:-4%;right:-4%;bottom:-8px;height:88px;background:linear-gradient(180deg, transparent 0%, rgba(0,126,169,.08) 22%, rgba(0,116,163,.36) 100%);clip-path:path('M0,62 C70,28 138,78 206,48 C280,16 330,96 400,62 C466,30 520,54 600,18 L600,120 L0,120 Z')}
.login-glass-stars{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.9) 1px, transparent 1.5px);background-size:50px 50px;opacity:.42}
.login-glass-brandline{position:relative;z-index:1;color:#eefdff;font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:12px;margin-bottom:18px;text-shadow:0 1px 10px rgba(4,79,108,.18)}
.login-glass-logo-wrap{position:relative;z-index:1;padding:18px 18px 0;display:grid;place-items:center}
.login-glass-logo{width:min(96%, 470px);height:auto;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(9,62,95,.18))}
.login-glass-subtitle{position:relative;z-index:1;margin:8px 0 0;color:#f2fdff;font-size:15px;letter-spacing:.04em}
.login-glass-body{position:relative;padding:28px 30px 30px;background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.93) 100%)}
.login-glass-badge{margin:0 auto 18px;width:max-content;padding:10px 22px;border-radius:999px;background:linear-gradient(135deg,#0db6d7,#1494cf);color:#fff;font-weight:800;letter-spacing:.08em;box-shadow:0 12px 24px rgba(20,148,207,.18)}
.login-glass-form{display:grid;gap:16px}
.login-glass-field{position:relative}
.login-glass-field label{display:block;margin:0 0 8px;color:#3f6079;font-size:14px;font-weight:700}
.login-glass-field input{width:100%;border-radius:999px;border:1px solid rgba(73,192,218,.28);background:linear-gradient(180deg, rgba(174,241,244,.62), rgba(255,255,255,.96));padding:14px 18px 14px 48px;font-size:16px;color:#1d3554;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.login-glass-field::before{content:'';position:absolute;left:17px;bottom:15px;width:18px;height:18px;opacity:.62;background-repeat:no-repeat;background-position:center;background-size:18px 18px}
.login-field-user::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234ba5c0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3C/svg%3E")}
.login-field-pass::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234ba5c0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='10' rx='2'/%3E%3Cpath d='M7 11V8a5 5 0 0 1 10 0v3'/%3E%3C/svg%3E")}
.login-glass-field input::placeholder{color:#8bb2c0}
.login-glass-field input:focus{background:#fff;border-color:rgba(20,148,207,.46);box-shadow:0 0 0 4px rgba(20,148,207,.1)}
.login-glass-row{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#6990a3;font-size:13px}
.login-glass-submit{min-height:50px;border:0;border-radius:999px;background:linear-gradient(135deg,#16b2d3,#158ac8);color:#fff;font-size:16px;font-weight:800;letter-spacing:.14em;box-shadow:0 16px 28px rgba(21,138,200,.18)}
.login-glass-submit:hover{transform:translateY(-1px);box-shadow:0 18px 30px rgba(21,138,200,.24)}
.login-footer{position:relative;z-index:1;background:transparent}
@keyframes twinkleDots{0%{transform:translateY(0)}50%{transform:translateY(-8px)}100%{transform:translateY(0)}}

.sidebar-brand.logo-only-card{position:relative;padding:0;overflow:hidden;min-height:172px;border-radius:28px;background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(66,185,255,.26) 48%, rgba(255,164,64,.24) 100%)}
.sidebar-brand.logo-only-card::before{content:'';position:absolute;inset:10px;border-radius:22px;background:linear-gradient(135deg, rgba(255,255,255,.36), rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.34);pointer-events:none}
.sidebar-brand.logo-only-card .sidebar-brand-bg{position:absolute;inset:0;background:radial-gradient(circle at 20% 18%, rgba(89,204,255,.30), transparent 22%), radial-gradient(circle at 80% 80%, rgba(255,169,72,.24), transparent 24%)}
.sidebar-logo-full{width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;object-fit:contain;object-position:center;padding:10px 8px;transform:scale(1.12);filter:drop-shadow(0 14px 24px rgba(19,88,179,.16))}

@media (max-width: 700px){
  .login-scene{padding:24px 12px 54px}
  .login-glass-top{padding:22px 18px 18px}
  .login-glass-body{padding:22px 18px 22px}
  .login-glass-brandline{font-size:11px;letter-spacing:.1em}
  .login-glass-logo{width:100%}
}


/* Sidebar logo replacement: fill the whole box with the new Air World logo */
.sidebar-brand.logo-only-card{
  min-height: 210px !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.sidebar-brand.logo-only-card .sidebar-brand-bg{
  opacity: .35;
}

@media (max-width: 1100px){
  .sidebar-brand.logo-only-card{
    min-height: 180px !important;
  }
}
/* Logo grande en sidebar */
.sidebar-brand.logo-only-card{
    padding:0 !important;
    height:210px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.sidebar-brand.logo-only-card img{
    width:85%;
    height:auto;
    object-fit:contain;
    object-position:center;
}


/* KJ fix logo size */
.logo-only-card img,
.sidebar-logo-full{
    max-width:160px !important;
    max-height:70px !important;
    width:auto !important;
    height:auto !important;
    object-fit:contain;
    margin:auto;
}
/* FIX FINAL logo sidebar más pequeño */
.sidebar .sidebar-brand.logo-only-card{
    min-height: 160px !important;
    padding: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

.sidebar .sidebar-brand.logo-only-card img.sidebar-logo-full{
    width: auto !important;
    height: auto !important;
    max-width: 145px !important;
    max-height: 145px !important;
    object-fit: contain !important;
    object-position: center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    transform: none !important;
}


/* ===== SaaS Sidebar UX Improvements ===== */

/* Active menu style */
.nav-link.active{
    background: linear-gradient(135deg,#ffffff,#eef6ff) !important;
    border-left:4px solid #0d63ff !important;
    box-shadow:0 6px 15px rgba(13,99,255,0.08);
    font-weight:700;
}

/* Smooth hover animation */
.nav-link{
    transition: all .25s ease;
}

.nav-link:hover{
    transform: translateX(6px);
    background: rgba(255,255,255,0.7);
}

/* Premium logo card look */
.sidebar .sidebar-brand.logo-only-card{
    background: rgba(255,255,255,0.55);
    border-radius: 22px;
    box-shadow: 0 10px 25px rgba(13,99,255,0.08);
}

/* HVAC Reminder V2 Dashboard */
.dashboard-v2-stats .stat-card strong,
.smart-counter-grid .counter-tile strong{font-variant-numeric:tabular-nums}
.dashboard-v2-grid{align-items:start}
.smart-counter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.counter-tile{padding:18px;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(218,243,255,.52),rgba(255,232,210,.44));border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 26px rgba(15,72,140,.08)}
.counter-tile small{display:block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#3e628a;margin-bottom:8px}
.counter-tile strong{display:block;font-size:2.1rem;color:#143a66;line-height:1;margin-bottom:8px}
.counter-tile span{display:block;color:#5f738d;font-size:.92rem}
.warm-fill{background:linear-gradient(135deg,#ffbf47,#ff8a00,#ff6200)!important}
.history-log-list,.prediction-list{display:grid;gap:12px}
.history-log-item,.prediction-card{padding:16px 18px;border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(220,244,255,.52),rgba(255,235,214,.42));border:1px solid rgba(255,255,255,.54)}
.history-log-item.is-sent{box-shadow:inset 4px 0 0 #18a957}
.history-log-item.is-failed{box-shadow:inset 4px 0 0 #ff6200}
.history-log-item.is-other{box-shadow:inset 4px 0 0 #0d63ff}
.history-log-top,.prediction-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.history-log-meta,.history-log-detail,.prediction-meta{color:#5f738d;font-size:.93rem}
.history-log-detail{margin-top:6px}
.history-channel{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.04em}
.channel-email{background:rgba(13,99,255,.10);color:#0d63ff}
.channel-sms{background:rgba(255,138,0,.14);color:#c25d00}
.channel-whatsapp{background:rgba(32,181,91,.15);color:#0d9d49}
.prediction-card .muted{margin-bottom:8px}
.prediction-meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}
.prediction-days{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:.8rem;font-weight:800}
.prediction-days.ok{background:rgba(13,99,255,.12);color:#0d63ff}
.prediction-days.soon{background:rgba(255,138,0,.15);color:#bf6000}
.prediction-days.late{background:rgba(234,60,60,.14);color:#bd2525}
.mini-calendar-wrap{padding:4px 0}
.mini-calendar-title{font-weight:800;color:#15355f;margin-bottom:10px}
.mini-calendar-weekdays,.mini-calendar-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.mini-calendar-weekdays{margin-bottom:8px}
.mini-calendar-weekdays div{font-size:.8rem;font-weight:800;color:#58708d;text-align:center;text-transform:uppercase}
.mini-calendar-row{margin-bottom:8px}
.mini-calendar-cell{min-height:58px;border-radius:18px;background:rgba(255,255,255,.62);border:1px solid rgba(13,99,255,.07);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.mini-calendar-cell .day{font-weight:800;color:#153a67}
.mini-calendar-cell small{font-size:.75rem;font-weight:700;color:#ff7a00}
.mini-calendar-cell.today{background:linear-gradient(135deg,rgba(13,99,255,.18),rgba(56,194,255,.22),rgba(255,255,255,.82));border-color:rgba(13,99,255,.22)}
.mini-calendar-cell.has-events{box-shadow:inset 0 0 0 2px rgba(255,138,0,.18)}
.mini-calendar-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;color:#5f738d;font-size:.9rem}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.dot-today{background:#0d63ff}
.dot-event{background:#ff8a00}
@media (max-width: 1100px){.smart-counter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 760px){.smart-counter-grid,.mini-calendar-weekdays,.mini-calendar-row{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-calendar-weekdays div:nth-child(n+3){display:none}.mini-calendar-row{display:flex;flex-wrap:wrap}.mini-calendar-cell{width:calc(50% - 4px)}}


/* Login remember + password toggle */
.login-glass-field-password{position:relative}
.login-glass-field-password input{padding-right:110px}
.password-toggle-btn{position:absolute;right:10px;bottom:8px;border:0;background:rgba(255,255,255,.88);color:#1b4d77;border-radius:999px;padding:10px 14px;font-size:12px;font-weight:800;letter-spacing:.02em;cursor:pointer;box-shadow:0 8px 20px rgba(13,99,255,.12);transition:.22s ease}
.password-toggle-btn:hover{transform:translateY(-1px);background:#fff}
.password-toggle-btn .password-toggle-hide{display:none}
.password-toggle-btn.is-showing .password-toggle-show{display:none}
.password-toggle-btn.is-showing .password-toggle-hide{display:inline}
.login-checkline input{accent-color:#0d63ff}

/* Dashboard premium refresh */
.hero-dashboard-readable{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(214,242,255,.9) 42%,rgba(255,229,197,.88) 100%) !important;border:1px solid rgba(255,255,255,.62);box-shadow:0 24px 60px rgba(24,86,158,.12)}
.hero-dashboard-readable::before{content:'';position:absolute;inset:-2px;background:radial-gradient(circle at top left,rgba(255,255,255,.48),transparent 24%),radial-gradient(circle at bottom right,rgba(255,160,61,.18),transparent 26%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420'%3E%3Cg fill='none' stroke='rgba(13,99,255,0.10)' stroke-width='1.2'%3E%3Ccircle cx='335' cy='88' r='58'/%3E%3Ccircle cx='300' cy='124' r='112'/%3E%3Cpath d='M60 330c30-88 101-129 184-104 31 9 60 25 103 12'/%3E%3Cpath d='M42 355c58-42 113-50 168-32'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right -30px top -10px;pointer-events:none;opacity:1}
.hero-copy,.hero-side{position:relative;z-index:1}
.hero-dashboard h2{font-size:clamp(2.2rem,4vw,3rem);letter-spacing:-.03em;margin-bottom:10px}
.hero-readable-copy{max-width:700px;line-height:1.45;font-size:1.05rem;color:#48627f !important}
.notification-inline-btn{backdrop-filter:blur(12px);background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.8)}
.hero-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mini-stat{position:relative;padding:16px 16px 14px;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(255,255,255,.46));backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.7);box-shadow:0 18px 36px rgba(13,99,255,.08);overflow:hidden}
.mini-stat::after{content:'';position:absolute;inset:auto -24px -24px auto;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle,rgba(13,99,255,.18),transparent 70%)}
.mini-stat span{font-size:.92rem;color:#58718c !important}
.mini-stat strong{font-size:2.15rem;color:#112c52 !important}
.hero-dashboard-art{position:absolute;right:24px;top:20px;width:240px;height:180px;pointer-events:none;opacity:.95}
.hero-orbit{position:absolute;border-radius:50%;border:1px solid rgba(13,99,255,.14)}
.hero-orbit-a{width:170px;height:170px;right:8px;top:0;border-style:dashed}
.hero-orbit-b{width:110px;height:110px;right:74px;top:36px}
.hero-device-card{position:absolute;left:12px;bottom:0;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(220,244,255,.55),rgba(255,234,210,.42));border:1px solid rgba(255,255,255,.62);box-shadow:0 16px 34px rgba(13,99,255,.12)}
.hero-device-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#1eb6ff,#0d63ff 52%,#ff8a00);color:#fff;font-size:24px;box-shadow:0 10px 18px rgba(13,99,255,.18)}
.hero-device-card strong{display:block;color:#163761}
.hero-device-card small{display:block;color:#6d8199}
.dashboard-v2-stats .stat-card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.6);box-shadow:0 18px 34px rgba(15,72,140,.08)}
.dashboard-v2-stats .stat-card::before{content:'';position:absolute;inset:auto -30px -30px auto;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 65%)}
.dashboard-v2-stats .stat-card small{font-size:.92rem}
.panel.glass{background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(220,244,255,.48),rgba(255,236,215,.36));backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.68);box-shadow:0 22px 44px rgba(13,99,255,.08)}
.panel-head h3{letter-spacing:-.02em}
.smart-counter-grid .counter-tile,.history-log-item,.prediction-card,.mini-calendar-cell,.calendar-row.strong-row{backdrop-filter:blur(14px)}
.calendar-row.strong-row{padding:16px 18px;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(224,245,255,.48),rgba(255,236,216,.34));border:1px solid rgba(255,255,255,.65);box-shadow:0 14px 28px rgba(13,99,255,.06)}
.calendar-row.strong-row .btn{box-shadow:none}
.timeline.compact-three .timeline-item{padding:14px 12px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(225,245,255,.46));border:1px solid rgba(255,255,255,.7);margin-bottom:10px}
.report-chip.glass{background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(221,244,255,.5),rgba(255,237,219,.38));border:1px solid rgba(255,255,255,.7)}
.pulse-border{position:relative}
.pulse-border::after{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(56,194,255,.75),rgba(13,99,255,.24),rgba(255,138,0,.45));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.72}
@media (max-width: 1100px){.hero-dashboard-art{display:none}.hero-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 720px){.hero-mini-grid{grid-template-columns:1fr}.password-toggle-btn{padding:9px 12px;font-size:11px}}


/* Dashboard V3 redesign */
.dashboard-v3-shell{display:grid;gap:22px}
.glass-panel{position:relative;border-radius:30px;padding:28px;background:
linear-gradient(135deg,rgba(255,255,255,.78),rgba(218,241,255,.56),rgba(255,236,220,.52));
border:1px solid rgba(255,255,255,.55);
box-shadow:0 18px 40px rgba(18,62,120,.10);
backdrop-filter:blur(14px) saturate(135%);
-webkit-backdrop-filter:blur(14px) saturate(135%);
overflow:hidden}
.glass-panel:before{content:'';position:absolute;inset:auto auto -70px -70px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(59,145,255,.18),transparent 68%);pointer-events:none}
.glass-panel:after{content:'';position:absolute;inset:18px 18px auto auto;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(255,156,77,.18),transparent 72%);pointer-events:none}

.dashboard-v3-hero{display:grid;grid-template-columns:1.6fr .9fr;gap:24px;min-height:320px}
.dashboard-v3-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px}
.dashboard-v3-copy .eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.58);color:#2e5f97;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;width:max-content}
.dashboard-v3-copy h2{font-size:3.15rem;line-height:1.04;margin:0;color:#18365e;max-width:780px}
.dashboard-v3-copy p{margin:0;max-width:680px;color:#516c8e;font-size:1rem;line-height:1.6}
.dashboard-v3-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dashboard-v3-bell{margin-left:0}
.dashboard-v3-microstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:auto}
.micro-card{padding:16px 18px;border-radius:22px;background:rgba(255,255,255,.56);border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 24px rgba(16,60,120,.08)}
.micro-card span{display:block;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b7496;margin-bottom:8px}
.micro-card strong{display:block;font-size:1.28rem;color:#173965}
.micro-card small{display:block;color:#7188a5;margin-top:6px}

.dashboard-v3-side{position:relative;z-index:1;display:grid;gap:16px;align-content:start}
.utility-widget{padding:20px;border-radius:24px;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.56);box-shadow:0 14px 28px rgba(16,60,120,.09)}
.utility-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.utility-head span{display:block;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6881a1}
.utility-head strong{display:block;font-size:1.15rem;color:#14355f}
.utility-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,rgba(58,141,255,.14),rgba(255,149,40,.16));color:#11407a}
.utility-main{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.utility-value{font-size:2.2rem;font-weight:900;color:#173861;line-height:1}
.utility-meta{display:flex;flex-direction:column;gap:4px;text-align:right}
.utility-meta strong{font-size:.98rem;color:#22486e}
.utility-meta small{color:#7590ad}
.utility-widget-weather{background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(205,235,255,.58),rgba(235,248,255,.42))}
.utility-widget-rate{background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,242,224,.62),rgba(233,243,255,.45))}

.dashboard-v3-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpi-card{position:relative;padding:22px 24px;border-radius:26px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.55);box-shadow:0 14px 28px rgba(17,58,120,.08);overflow:hidden}
.kpi-card-primary{background:linear-gradient(135deg,#1b86ff,#2059ff)}
.kpi-card-secondary{background:linear-gradient(135deg,#ffab1f,#ff7a00)}
.kpi-card-primary .kpi-copy span,.kpi-card-primary .kpi-copy strong,.kpi-card-primary .kpi-copy small,
.kpi-card-secondary .kpi-copy span,.kpi-card-secondary .kpi-copy strong,.kpi-card-secondary .kpi-copy small{color:#fff}
.kpi-copy span{display:block;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5d7898;margin-bottom:10px}
.kpi-copy strong{display:block;font-size:2.45rem;line-height:1;color:#17375f}
.kpi-copy small{display:block;margin-top:8px;color:#7188a5}
.kpi-shape{position:absolute;right:-10px;bottom:-28px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.16)}

.dashboard-v3-grid{display:grid;grid-template-columns:1.35fr .95fr;gap:18px;align-items:start}
.dashboard-main-column,.dashboard-side-column{display:grid;gap:18px}
.dashboard-section{padding:24px}
.v3-head h3{margin:0 0 4px;font-size:1.45rem;color:#173965}
.v3-head p{margin:0;color:#738cab}
.live-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,82,82,.10);color:#d94e4e;font-weight:800}
.pulse-dot-red{display:inline-block;width:10px;height:10px;border-radius:50%;background:#ff5b5b;box-shadow:0 0 0 rgba(255,91,91,.45);animation:pulse-red 1.6s infinite}

.agenda-v3-list,.history-v3-list,.prediction-v3-list,.channel-v3-list{display:grid;gap:12px}
.agenda-v3-item,.history-v3-item,.prediction-v3-item{display:grid;align-items:center;gap:14px;padding:16px 18px;border-radius:22px;background:rgba(255,255,255,.60);border:1px solid rgba(255,255,255,.54)}
.agenda-v3-item{grid-template-columns:120px 1fr auto}
.agenda-v3-date strong,.agenda-v3-body strong,.prediction-v3-item strong{display:block;color:#173a63;font-size:1rem}
.agenda-v3-date small,.agenda-v3-body span,.history-v3-time,.prediction-v3-item p,.prediction-v3-date small{color:#7188a5}
.agenda-v3-body span{display:block;margin-top:6px}
.history-v3-item{grid-template-columns:140px 1fr}
.history-v3-time{font-weight:800}
.history-v3-content strong{display:block;color:#173a63;margin-bottom:4px}
.history-v3-content p{margin:0;color:#6c839f}
.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ops-card{padding:16px;border-radius:22px;background:rgba(255,255,255,.60);border:1px solid rgba(255,255,255,.54)}
.ops-card span{display:block;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6983a3;margin-bottom:10px}
.ops-card strong{display:block;font-size:2rem;color:#173861;line-height:1}
.ops-card small{display:block;color:#7188a5;margin-top:8px}
.prediction-v3-item{grid-template-columns:1fr auto}
.prediction-v3-item p{margin:4px 0 0}
.prediction-v3-date{text-align:right}
.prediction-v3-date span{display:block;font-weight:800;color:#173a63}
.channel-v3-row{display:grid;grid-template-columns:92px 1fr 36px;gap:10px;align-items:center}
.channel-v3-row span{color:#567193;font-weight:700}
.channel-v3-row strong{color:#173861}
.pager-tight{margin-top:16px}

@keyframes pulse-red{0%{box-shadow:0 0 0 0 rgba(255,91,91,.48)}70%{box-shadow:0 0 0 10px rgba(255,91,91,0)}100%{box-shadow:0 0 0 0 rgba(255,91,91,0)}}

@media (max-width: 1200px){
  .dashboard-v3-hero,.dashboard-v3-grid{grid-template-columns:1fr}
}
@media (max-width: 900px){
  .dashboard-v3-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-v3-microstats,.ops-grid{grid-template-columns:1fr}
  .agenda-v3-item,.history-v3-item,.prediction-v3-item{grid-template-columns:1fr}
  .utility-main{align-items:flex-start;flex-direction:column}
}
@media (max-width: 640px){
  .dashboard-v3-copy h2{font-size:2.1rem}
  .dashboard-v3-kpis{grid-template-columns:1fr}
}

.utility-icon svg{width:22px;height:22px;display:block}

.hero-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:6px}
.hero-feature-card{padding:18px 18px 16px;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(226,244,255,.55),rgba(255,240,226,.45));border:1px solid rgba(255,255,255,.6);box-shadow:0 14px 30px rgba(17,58,120,.08);position:relative;overflow:hidden}
.hero-feature-card::after{content:'';position:absolute;right:-18px;top:-18px;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle,rgba(57,142,255,.18),transparent 70%)}
.hero-feature-card span{display:block;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6a84a4;margin-bottom:10px}
.hero-feature-card strong{display:block;font-size:1.5rem;color:#173a63;line-height:1.1}
.hero-feature-card small{display:block;margin-top:8px;color:#7188a5}
.hero-feature-card-accent{background:linear-gradient(135deg,rgba(27,134,255,.88),rgba(32,89,255,.78),rgba(255,126,0,.58));}
.hero-feature-card-accent span,.hero-feature-card-accent strong,.hero-feature-card-accent small{color:#fff}
.widget-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.45);color:#6f87a6;font-size:.86rem;font-weight:700}
.widget-live-dot{width:10px;height:10px;border-radius:50%;background:#2bc48a;box-shadow:0 0 0 rgba(43,196,138,.42);animation:pulse-green 1.6s infinite}
@keyframes pulse-green{0%{box-shadow:0 0 0 0 rgba(43,196,138,.44)}70%{box-shadow:0 0 0 10px rgba(43,196,138,0)}100%{box-shadow:0 0 0 0 rgba(43,196,138,0)}}
.history-v3-item-pro{grid-template-columns:58px 1fr 170px;padding:18px 20px;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(222,242,255,.56),rgba(255,241,228,.44));box-shadow:0 14px 28px rgba(15,59,120,.06)}
.history-v3-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,rgba(27,134,255,.16),rgba(255,141,54,.14));color:#1a4f8a}
.history-v3-icon svg{width:20px;height:20px}
.history-v3-time{text-align:right;font-weight:800;color:#4f6a8f;background:rgba(255,255,255,.66);padding:10px 12px;border-radius:16px;border:1px solid rgba(255,255,255,.54)}
.history-v3-content strong{font-size:1.02rem}
.history-v3-content p{font-size:.94rem;line-height:1.45}
.panel-head.v3-head{margin-bottom:14px}
@media (max-width: 900px){.hero-feature-grid{grid-template-columns:1fr}.history-v3-item-pro{grid-template-columns:1fr}.history-v3-time{text-align:left}}

.dashboard-v3-copy-compact{gap:12px;justify-content:flex-start;padding-top:4px}
.dashboard-v3-actions-top{margin-bottom:2px}
.hvac-calc-card{display:flex;flex-direction:column;gap:12px}
.hvac-calc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.hvac-calc-head span,.hvac-calc-head small{color:#fff}
.hvac-calc-head small{display:block;margin:0;font-size:.8rem;opacity:.9}
.hvac-calc-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hvac-calc-controls label{display:flex;flex-direction:column;gap:6px}
.hvac-calc-controls em{font-style:normal;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.88)}
.hvac-calc-controls input,.hvac-calc-controls select{width:100%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.18);color:#fff;border-radius:14px;padding:10px 12px;font-weight:700;outline:none}
.hvac-calc-controls input::placeholder{color:rgba(255,255,255,.75)}
.hvac-calc-controls option{color:#173a63}
.hvac-calc-results{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hvac-calc-results div{padding:10px 12px;border-radius:18px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2)}
.hvac-calc-results strong{font-size:1.15rem;color:#fff}
.hvac-calc-results small{margin-top:4px;color:rgba(255,255,255,.88)}
@media (max-width: 900px){.hvac-calc-controls,.hvac-calc-results{grid-template-columns:1fr}}
