:root{
  /* ECS / 250th ECS Meeting brand palette (sampled from the ECS logo + hero) */
  --navy:#212C64; --navy-2:#161E47; --accent:#3344a8; --accent-2:#4f63d4;
  --ok:#047a43; --warn:#c77d11; --risk:#b41f23; --ink:#1b2433; --muted:#6b7687;
  --bg:#f3f5fb; --card:#ffffff; --line:#e6eaf2;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* ---- top bar ---- */
.navbar-portal{background:linear-gradient(120deg,var(--navy),var(--navy-2));box-shadow:0 2px 14px rgba(16,36,63,.18)}
.navbar-portal .navbar-brand{color:#fff;font-weight:700;letter-spacing:.2px;display:flex;align-items:center;gap:.55rem}
.navbar-portal .brand-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent-2),#7db0ff);display:grid;place-items:center;color:#fff;font-weight:800}
.navbar-portal .nav-link{color:#cdd8ee !important;font-weight:500;border-radius:8px;padding:.4rem .8rem !important}
.navbar-portal .nav-link:hover,.navbar-portal .nav-link.active{color:#fff !important;background:rgba(255,255,255,.10)}
.role-chip{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:.2rem .55rem;border-radius:999px;background:rgba(255,255,255,.16);color:#fff}

/* ---- cards ---- */
.card-soft{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 3px rgba(20,36,63,.05)}
.stat-card{border-radius:16px;border:1px solid var(--line);background:var(--card);padding:1.1rem 1.25rem;height:100%}
.stat-card .label{font-size:.78rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.stat-card .value{font-size:1.9rem;font-weight:800;line-height:1.1;margin-top:.25rem;color:var(--ink)}
.stat-card .sub{font-size:.82rem;color:var(--muted)}
.stat-accent{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;border:none}
.stat-accent .label,.stat-accent .sub{color:#c8d6f0}
.stat-accent .value{color:#fff}

/* ---- status pills ---- */
.pill{font-size:.72rem;font-weight:700;padding:.25rem .6rem;border-radius:999px;display:inline-flex;align-items:center;gap:.3rem;text-transform:capitalize}
.pill-ok{background:#dcfce7;color:#15803d}
.pill-watch{background:#fef3c7;color:#b45309}
.pill-risk{background:#fee2e2;color:#b91c1c}
.pill-none{background:#eef1f6;color:#64748b}

/* ---- progress ---- */
.pace{height:10px;border-radius:999px;background:#eef1f6;overflow:hidden}
.pace > span{display:block;height:100%;border-radius:999px}
.pace .fill-ok{background:linear-gradient(90deg,#22c55e,#16a34a)}
.pace .fill-watch{background:linear-gradient(90deg,#fbbf24,#f59e0b)}
.pace .fill-risk{background:linear-gradient(90deg,#f87171,#dc2626)}
.pace .fill-accent{background:linear-gradient(90deg,var(--accent-2),var(--accent))}

/* ---- table ---- */
.table-wrap{max-height:64vh;overflow:auto;border-radius:12px;border:1px solid var(--line)}
.table-portal{margin:0}
.table-portal thead th{position:sticky;top:0;z-index:2;background:var(--navy);color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.4px;font-weight:600;border:none;white-space:nowrap}
.table-portal tbody td{vertical-align:middle;border-color:var(--line)}
.row-risk{background:#fff5f5 !important}
.row-watch{background:#fffbeb !important}
.row-ok{background:#f3fdf6 !important}

/* ---- hotel logo dot ---- */
.hdot{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:800;color:#fff;flex:0 0 auto}

/* ---- buttons ---- */
.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.btn-accent:hover{background:#2560d6;border-color:#2560d6;color:#fff}
.btn-soft{background:#eef2fb;border:1px solid var(--line);color:var(--navy-2);font-weight:600}
.btn-soft:hover{background:#e3e9f7}

.section-title{font-weight:800;color:var(--navy);letter-spacing:-.01em}
.subtle{color:var(--muted)}
.login-hero{min-height:100vh;background:linear-gradient(135deg,var(--navy),#0e1830);display:grid;place-items:center}
.login-card{max-width:430px;width:100%;background:#fff;border-radius:20px;padding:2.4rem;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.night-cell{min-width:62px;text-align:center}
tr.brand-head td{background:#eaf0fb;color:var(--navy);font-weight:700;font-size:.85rem;border-top:2px solid #cdd8ee}

/* ---- hotel logo tiles ---- */
.logo-tile{background:#fff;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;flex:0 0 auto;overflow:hidden}
.logo-tile img{max-width:84%;max-height:78%;object-fit:contain}
.logo-tile-sm{width:46px;height:46px}
.logo-tile-lg{width:64px;height:64px}

/* ---- login branding ---- */
.login-hero-img{width:100%;border-radius:14px;margin-bottom:1.2rem;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.partner-strip{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:1.4rem}
.partner-strip .logo-tile{width:58px;height:42px;border-color:#e9edf6}
.ecs-logo-nav{height:26px;width:auto;background:#fff;border-radius:5px;padding:2px 6px}

/* ---- preview ("view as") bar ---- */
.preview-bar{background:linear-gradient(90deg,#b45309,#d97706);color:#fff;font-size:.9rem;padding:.55rem 0;box-shadow:0 2px 8px rgba(180,83,9,.25)}
.preview-bar a.btn-light{color:#92400e}

/* ---- footer ---- */
footer.portal{color:var(--muted);font-size:.85rem;padding:2.2rem 0;border-top:1px solid var(--line);margin-top:2rem;background:#fff}
footer.portal .cd-logo{height:30px;width:auto}
footer.portal a{color:var(--navy);font-weight:600}
.email-footer-cd{height:22px}
