
:root{--p:#4f46e5;--pd:#312e81;--bg:#f7f8fc;--ink:#172033;--muted:#64748b;--border:#e6e9f2;--side:245px}
body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.btn{border-radius:.75rem;font-weight:700}.btn-primary{--bs-btn-bg:var(--p);--bs-btn-border-color:var(--p)}
.hero{background:linear-gradient(135deg,#eef2ff,#fff 60%,#eff6ff);padding:6rem 0}.hero h1{font-size:clamp(2.8rem,6vw,5.2rem);letter-spacing:-.06em;line-height:1}.hero h1 span{color:var(--p)}
.pill{display:inline-block;background:#eef2ff;color:#4338ca;padding:.45rem .8rem;border-radius:999px;font-weight:700}
.feature{background:white;border:1px solid var(--border);border-radius:18px;padding:1.5rem;height:100%;box-shadow:0 12px 40px rgba(15,23,42,.04)}
.feature i{font-size:1.6rem;color:var(--p)}.section-pad{padding:5rem 0}.bg-soft{background:#f1f5ff}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--side);background:#fff;border-right:1px solid var(--border);z-index:1030}
.sidebar-brand{height:72px;display:flex;align-items:center;gap:.6rem;padding:0 1.2rem;font-weight:800;font-size:1.2rem;color:#172554;border-bottom:1px solid var(--border)}
.sidebar-brand i{color:var(--p)}.sidebar-nav{padding:.7rem}.sidebar-nav a{display:flex;gap:.75rem;align-items:center;padding:.75rem .9rem;border-radius:12px;color:#475569;font-weight:650;margin:.15rem 0}
.sidebar-nav a:hover,.sidebar-nav a.active{background:#f0efff;color:var(--p)}
.main-wrap{margin-left:var(--side)}.topbar{height:72px;background:rgba(255,255,255,.95);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1020;display:flex;align-items:center;padding:0 1.2rem;backdrop-filter:blur(12px)}
.content{padding:1.2rem}.footer{padding:1rem;text-align:center;color:#94a3b8;font-size:.8rem}
.cardx{background:#fff;border:1px solid var(--border);border-radius:18px;padding:1.2rem;box-shadow:0 10px 30px rgba(15,23,42,.035)}
.metric{display:flex;gap:.8rem;align-items:center}.metric-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#eef2ff;color:var(--p)}
.avatar{width:54px;height:54px;border-radius:50%;object-fit:cover}.progress{height:8px}
.calendar-wrap{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden}.calendar-grid{display:grid;grid-template-columns:75px repeat(7,1fr);min-width:900px}
.cal-head,.cal-time,.cal-cell{border-right:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}.cal-head{padding:.7rem;text-align:center;font-size:.75rem;font-weight:800;color:#64748b}.cal-time{height:60px;text-align:right;padding:.3rem .5rem;font-size:.7rem;color:#94a3b8}.cal-cell{height:60px;padding:.2rem}
.event{font-size:.7rem;border-left:3px solid var(--p);background:#eef2ff;color:#3730a3;border-radius:8px;padding:.35rem;font-weight:700}
.table td,.table th{vertical-align:middle}.status{padding:.3rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700}.status.green{background:#dcfce7;color:#166534}.status.red{background:#fee2e2;color:#991b1b}.status.amber{background:#fef3c7;color:#92400e}
@media(max-width:991px){.sidebar{position:static;width:auto}.main-wrap{margin-left:0}.sidebar-nav{display:flex;overflow:auto}.sidebar .small{display:none}.sidebar-brand{justify-content:center}.sidebar-nav a span{white-space:nowrap}.topbar{position:static}}


/* Global primary-button contrast fix */
.btn-primary,
a.btn-primary,
.btn-primary:link,
.btn-primary:visited {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}
.btn-primary i,
.btn-primary svg {
  color: #fff !important;
}


/* DDJ portal PWA/mobile hardening */
html{scroll-behavior:smooth}body{min-width:0}.btn-primary,a.btn-primary,.btn-primary:link,.btn-primary:visited{color:#fff!important;-webkit-text-fill-color:#fff!important}.btn-primary:hover,.btn-primary:focus,.btn-primary:active{color:#fff!important;-webkit-text-fill-color:#fff!important}button,a,.form-control,.form-select{touch-action:manipulation}@media(max-width:767.98px){.content{padding:1rem!important}.card{border-radius:14px}.table-responsive{border-radius:12px}.topbar{padding:.75rem 1rem}.footer{text-align:center}}
