:root{
  --pm-navy:#0B2545; --pm-navy-2:#13315c; --pm-red:#D62828; --pm-green:#2A9D4F; --pm-ink:#1c2733; --pm-muted:#6b7785;
  --pm-soft:#f4f6f9; --pm-line:#e3e8ee; --bs-body-color:#1c2733; --bs-link-color:#0B2545; --bs-link-hover-color:#D62828;
  --bs-primary:#0B2545; --bs-primary-rgb:11,37,69;
}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--pm-ink);background:#fff}
.btn-primary{--bs-btn-bg:var(--pm-navy);--bs-btn-border-color:var(--pm-navy);--bs-btn-hover-bg:var(--pm-navy-2);--bs-btn-hover-border-color:var(--pm-navy-2);--bs-btn-active-bg:var(--pm-navy-2);--bs-btn-disabled-bg:var(--pm-navy)}
.btn-accent{--bs-btn-color:#fff;--bs-btn-bg:var(--pm-red);--bs-btn-border-color:var(--pm-red);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#b91f1f;--bs-btn-hover-border-color:#b91f1f}
.btn-success{--bs-btn-bg:var(--pm-green);--bs-btn-border-color:var(--pm-green);--bs-btn-hover-bg:#23844a;--bs-btn-hover-border-color:#23844a}
.text-navy{color:var(--pm-navy)!important}.text-red{color:var(--pm-red)!important}.text-green{color:var(--pm-green)!important}
.status-badge{font-weight:600;letter-spacing:.2px}
.text-bg-warning{color:#3d2c00!important}

/* ---------- brand mark ---------- */
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--pm-navy);font-weight:700;font-size:1.15rem}
.brand-mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--pm-navy) 0 55%,var(--pm-red) 55% 78%,var(--pm-green) 78%);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.05rem}
.brand small{display:block;font-size:.66rem;font-weight:600;color:var(--pm-muted);letter-spacing:.6px;text-transform:uppercase;line-height:1}

/* ---------- public site ---------- */
.site-nav{background:#fff;border-bottom:3px solid transparent;border-image:linear-gradient(90deg,var(--pm-red),var(--pm-green)) 1;position:sticky;top:0;z-index:1030}
.site-nav .nav-link{color:var(--pm-ink);font-weight:500;padding:.6rem .8rem}
.site-nav .nav-link:hover,.site-nav .nav-link.active{color:var(--pm-red)}
.hero{background:radial-gradient(1200px 500px at 85% -10%,rgba(42,157,79,.28),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(214,40,40,.22),transparent 60%),var(--pm-navy);color:#fff;padding:5.5rem 0 5rem}
.hero h1{font-weight:800;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.1}
.hero .lead{color:#cfd9e6;max-width:38rem}
.hero-panel{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:1.4rem}
.hero-panel .step{display:flex;gap:.8rem;align-items:flex-start;padding:.55rem 0}
.hero-panel .step i{width:34px;height:34px;flex:none;border-radius:9px;background:rgba(255,255,255,.12);display:grid;place-items:center}
.section{padding:4.2rem 0}.section-soft{background:var(--pm-soft)}
.section-title{font-weight:800;color:var(--pm-navy)}
.eyebrow{text-transform:uppercase;letter-spacing:1.4px;font-size:.75rem;font-weight:700;color:var(--pm-red)}
.card-lift{border:1px solid var(--pm-line);border-radius:14px;transition:transform .15s,box-shadow .15s;height:100%}
.card-lift:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(11,37,69,.10)}
.icon-tile{width:48px;height:48px;border-radius:12px;background:rgba(11,37,69,.07);color:var(--pm-navy);display:grid;place-items:center;font-size:1.4rem}
.icon-tile.green{background:rgba(42,157,79,.12);color:var(--pm-green)}.icon-tile.red{background:rgba(214,40,40,.10);color:var(--pm-red)}
.page-hero{background:var(--pm-navy);color:#fff;padding:3rem 0}.page-hero h1{font-weight:800}
.cms-content h2{font-size:1.5rem;color:var(--pm-navy);margin-top:1.6rem}.cms-content h3{font-size:1.15rem;margin-top:1.2rem}
.cms-content ul{padding-left:1.2rem}
.cta-band{background:linear-gradient(100deg,var(--pm-navy),var(--pm-navy-2));color:#fff;border-radius:18px;padding:2.4rem}
.site-footer{background:#08182e;color:#b9c6d6;padding:3rem 0 1.5rem}.site-footer a{color:#b9c6d6;text-decoration:none}.site-footer a:hover{color:#fff}
.site-footer h6{color:#fff;text-transform:uppercase;letter-spacing:1px;font-size:.8rem}

/* ---------- homepage slideshow ---------- */
.pm-carousel .pm-slide-img{height:420px;object-fit:cover}
.pm-carousel .pm-slide-caption{background:linear-gradient(90deg,rgba(11,37,69,.88),rgba(11,37,69,.2));border-radius:12px;padding:1.1rem 1.5rem;max-width:520px;left:2rem;right:auto;bottom:2rem}
.pm-carousel .carousel-indicators [data-bs-target]{background-color:var(--pm-red);width:9px;height:9px;border-radius:50%}
.pm-carousel .carousel-control-prev,.pm-carousel .carousel-control-next{width:5%}
@media (max-width:576px){
  .pm-carousel .pm-slide-img{height:230px}
  .pm-carousel .pm-slide-caption{left:1rem;right:1rem;max-width:none;padding:.7rem .9rem}
  .pm-carousel .pm-slide-caption h3{font-size:1.05rem}
}

/* ---------- auth ---------- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--pm-soft),#e9eef5);padding:1.5rem}
.auth-card{width:100%;max-width:420px;background:#fff;border-radius:16px;padding:2rem;box-shadow:0 18px 50px rgba(11,37,69,.14);border-top:4px solid var(--pm-red)}

/* ---------- portal ---------- */
.portal{display:flex;min-height:100vh;background:var(--pm-soft)}
.sidebar{width:250px;background:var(--pm-navy);color:#cfd9e6;flex:none;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar .brand{color:#fff;padding:1.1rem 1.1rem .9rem}.sidebar .brand small{color:#9fb0c6}
.sidebar .nav-link{color:#cfd9e6;padding:.55rem 1.1rem;display:flex;align-items:center;gap:.7rem;border-left:3px solid transparent;font-size:.93rem}
.sidebar .nav-link:hover{background:rgba(255,255,255,.06);color:#fff}
.sidebar .nav-link.active{background:rgba(255,255,255,.10);color:#fff;border-left-color:var(--pm-red)}
.sidebar .nav-link .badge{margin-left:auto}
.sidebar .nav-sep{font-size:.68rem;letter-spacing:1.2px;text-transform:uppercase;color:#7f93ad;padding:.9rem 1.1rem .3rem}
.portal-main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{background:#fff;border-bottom:1px solid var(--pm-line);padding:.6rem 1.4rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:1020}
.topbar h1{font-size:1.15rem;margin:0;font-weight:700;color:var(--pm-navy)}
.portal-content{padding:1.4rem;max-width:1400px;width:100%}
.stat{background:#fff;border:1px solid var(--pm-line);border-radius:12px;padding:1rem 1.1rem;height:100%;position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pm-navy)}
.stat.red::before{background:var(--pm-red)}.stat.green::before{background:var(--pm-green)}.stat.amber::before{background:#f0a500}
.stat .n{font-size:1.9rem;font-weight:800;color:var(--pm-navy);line-height:1.1}.stat .l{color:var(--pm-muted);font-size:.82rem}
.stat a.stretched-link{text-decoration:none}
.panel{background:#fff;border:1px solid var(--pm-line);border-radius:12px}
.panel-h{padding:.8rem 1rem;border-bottom:1px solid var(--pm-line);font-weight:700;color:var(--pm-navy);display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.panel-b{padding:1rem}
.table>:not(caption)>*>*{padding:.6rem .8rem}.table thead th{font-size:.76rem;text-transform:uppercase;letter-spacing:.5px;color:var(--pm-muted);border-bottom-width:1px;white-space:nowrap}
.table-responsive{border-radius:12px}
.dl-grid{display:grid;grid-template-columns:150px 1fr;gap:.35rem 1rem;margin:0}.dl-grid dt{color:var(--pm-muted);font-weight:500}.dl-grid dd{margin:0}
.thread .msg{border:1px solid var(--pm-line);border-radius:12px;padding:.8rem 1rem;background:#fff;margin-bottom:.8rem}
.thread .msg.staff{border-left:4px solid var(--pm-green)}.thread .msg.internal{background:#fff8e6;border-left:4px solid #f0a500}
.cred-box{font-family:ui-monospace,Menlo,Consolas,monospace;background:#0B2545;color:#fff;border-radius:8px;padding:.6rem .9rem;display:inline-block}
.notif-unread{background:#f2f8ff}
.sidebar-toggle{display:none}
@media (max-width:991px){
  .sidebar{position:fixed;left:-260px;z-index:1040;transition:left .2s}.sidebar.open{left:0}
  .sidebar-toggle{display:inline-block}.dl-grid{grid-template-columns:1fr}
}
@media print{
  .sidebar,.topbar,.no-print,.site-nav,.site-footer{display:none!important}.portal-content{padding:0}.panel{border:0}
  body{background:#fff}.table{font-size:.8rem}
}
