:root{
  --ps-primary:#0f9f8f;
  --ps-navy:#183a5a;
  --ps-teal:#0f9f8f;
  --ps-teal-soft:#e7faf6;
  --ps-primary-deep:#087c73;
  --ps-primary-soft:#e7faf6;
  --ps-blue:#3b82f6;
  --ps-blue-soft:#eaf3ff;
  --ps-sky:#38bdf8;
  --ps-violet:#8b5cf6;
  --ps-violet-soft:#f1edff;
  --ps-amber:#f59e0b;
  --ps-amber-soft:#fff5d9;
  --ps-coral:#fb7185;
  --ps-coral-soft:#fff0f3;
  --ps-green:#22a06b;
  --ps-green-soft:#eaf9f1;
  --ps-bg:#f7fbff;
  --ps-card:#ffffff;
  --ps-border:#e4edf5;
  --ps-text:#183153;
  --ps-muted:#708197;
  --ps-sidebar:272px;
  --ps-shadow:0 10px 32px rgba(49,85,119,.075);
}

*{box-sizing:border-box}
html{background:var(--ps-bg)}
body{margin:0;background:linear-gradient(180deg,#fbfdff 0,#f6fbff 420px,#f8fbfe 100%);color:var(--ps-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:.94rem;min-height:100vh}
a{color:var(--ps-primary-deep);text-decoration:none;transition:color .18s ease}
a:hover{color:#05675f}
.app-shell{min-height:100vh}

/* Bright navigation */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--ps-sidebar);background:linear-gradient(180deg,#ffffff 0%,#f8fcff 58%,#f3fafb 100%);color:var(--ps-text);z-index:1040;display:flex;flex-direction:column;transition:transform .22s ease;border-right:1px solid #dfeaf3;box-shadow:8px 0 30px rgba(70,105,135,.05)}
.sidebar-brand{display:flex;align-items:center;gap:.85rem;padding:1.2rem 1.15rem 1rem;border-bottom:1px solid #e8f0f6;color:var(--ps-text)}
.sidebar-brand:hover{color:var(--ps-text)}
.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:linear-gradient(135deg,#1bc6b3 0%,#3b82f6 100%);color:#fff;font-size:1.05rem;font-weight:850;box-shadow:0 9px 22px rgba(59,130,246,.19)}
.brand-title{font-weight:850;letter-spacing:.01em;color:#173a5e}
.brand-subtitle{font-size:.71rem;color:#7890a5;line-height:1.25;margin-top:.1rem}
.sidebar-scroll{overflow-y:auto;padding:.9rem .75rem 1.3rem;scrollbar-width:thin;scrollbar-color:#c8d8e5 transparent}
.sidebar-scroll::-webkit-scrollbar{width:5px}.sidebar-scroll::-webkit-scrollbar-track{background:transparent}.sidebar-scroll::-webkit-scrollbar-thumb{background:#cbdbe7;border-radius:999px}.sidebar-scroll::-webkit-scrollbar-thumb:hover{background:#a9c2d3}
.nav-section{padding:.85rem .8rem .34rem;font-size:.66rem;letter-spacing:.13em;font-weight:850;color:#93a7b9}
.side-link{position:relative;display:flex;align-items:center;gap:.82rem;padding:.73rem .82rem;border-radius:13px;color:#4e6680;margin:.18rem 0;font-weight:680;transition:all .18s ease}
.side-link i{font-size:1.03rem;width:22px;text-align:center;color:#7290a7;transition:color .18s ease}
.side-link:hover{background:#f0f8fc;color:#173a5e;transform:translateX(2px)}
.side-link:hover i{color:var(--ps-primary)}
.side-link.active{background:linear-gradient(90deg,#e3faf5 0%,#edf8ff 100%);color:#08786f;box-shadow:inset 3px 0 0 #18b7a4}
.side-link.active i{color:#0f9f8f}
.sidebar-user{margin-top:auto;padding:.9rem;border-top:1px solid #e5eef5;background:rgba(255,255,255,.7)}
.user-pill{display:flex;gap:.75rem;align-items:center;padding:.65rem .7rem;border-radius:14px;background:#f4f9fd;border:1px solid #e4edf5}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#dff8f3,#e5f2ff);color:#08786f;font-weight:850;flex:0 0 auto;border:1px solid #d7ebe9}
.sidebar-user .avatar{background:linear-gradient(135deg,#dff8f3,#e2efff);color:#0d766c}
.sidebar-user-role{color:#7b8ea2!important}

/* Main shell */
.main-area{min-height:100vh;margin-left:var(--ps-sidebar);transition:margin .22s ease}
.topbar{height:74px;position:sticky;top:0;z-index:1020;background:rgba(255,255,255,.9);backdrop-filter:blur(15px);border-bottom:1px solid #e5eef5;display:flex;align-items:center;padding:0 1.6rem;box-shadow:0 4px 22px rgba(56,91,122,.035)}
.topbar-title{font-size:1.12rem;font-weight:850;color:#183a5a;letter-spacing:-.01em}
.topbar-subtitle{font-size:.75rem;color:#8191a4;margin-top:.08rem}
.page-content{padding:1.6rem}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.3rem;padding:.15rem .1rem}
.page-head h1{font-size:1.65rem;font-weight:850;color:#183a5a;margin:0;letter-spacing:-.025em}
.page-head p{margin:.28rem 0 0;color:var(--ps-muted);max-width:720px}

/* Cards */
.card{background:#fff;border:1px solid var(--ps-border);border-radius:20px;box-shadow:var(--ps-shadow);overflow:hidden}
.card-header{background:linear-gradient(180deg,#fff,#fcfeff);border-bottom:1px solid #e8f0f6;padding:1.05rem 1.2rem;font-weight:780;color:#24445f}
.card-body{padding:1.2rem}
.card-footer{background:#fcfeff;border-top:1px solid #e8f0f6;padding:.95rem 1.2rem}

.metric-card{height:100%;padding:1.22rem 1.2rem;border:1px solid var(--ps-border);border-radius:20px;background:linear-gradient(145deg,#fff 0%,#fbfdff 100%);box-shadow:var(--ps-shadow);position:relative;overflow:hidden;isolation:isolate;transition:transform .18s ease,box-shadow .18s ease}
.metric-card:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(49,85,119,.10)}
.metric-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--metric,#0f9f8f)}
.metric-card:after{content:"";position:absolute;width:112px;height:112px;border-radius:50%;right:-42px;top:-46px;background:var(--metric-soft,#e7faf6);z-index:-1}
.metric-card.tone-teal{--metric:#0f9f8f;--metric-soft:#e3faf5}.metric-card.tone-blue{--metric:#3b82f6;--metric-soft:#eaf3ff}.metric-card.tone-amber{--metric:#f59e0b;--metric-soft:#fff5d9}.metric-card.tone-violet{--metric:#8b5cf6;--metric-soft:#f1edff}.metric-card.tone-green{--metric:#22a06b;--metric-soft:#eaf9f1}.metric-card.tone-coral{--metric:#fb7185;--metric-soft:#fff0f3}
.metric-label{color:#7890a5;font-size:.75rem;font-weight:780;text-transform:uppercase;letter-spacing:.07em}
.metric-value{font-size:2rem;font-weight:880;color:#193b5b;line-height:1.15;margin-top:.28rem;letter-spacing:-.03em}
.metric-icon{position:absolute;right:1.05rem;bottom:.95rem;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--metric-soft,#e7faf6);color:var(--metric,#0f9f8f);font-size:1.2rem;z-index:1}

/* Buttons */
.btn{border-radius:12px;font-weight:680;padding:.58rem .95rem;transition:all .18s ease}
.btn:hover{transform:translateY(-1px)}
.btn-sm{border-radius:9px;padding:.38rem .68rem}
.btn-primary{--bs-btn-bg:#0f9f8f;--bs-btn-border-color:#0f9f8f;--bs-btn-hover-bg:#0a877b;--bs-btn-hover-border-color:#0a877b;--bs-btn-active-bg:#08786f;--bs-btn-active-border-color:#08786f;box-shadow:0 7px 17px rgba(15,159,143,.17)}
.btn-outline-primary{--bs-btn-color:#0b8d81;--bs-btn-border-color:#76cfc4;--bs-btn-hover-bg:#e7faf6;--bs-btn-hover-color:#08786f;--bs-btn-hover-border-color:#5fc4b8;background:#fff}
.btn-light{--bs-btn-bg:#fff;--bs-btn-border-color:#dce8f1;--bs-btn-hover-bg:#f3f9fd;--bs-btn-hover-border-color:#cddde9;--bs-btn-color:#466179;box-shadow:0 4px 12px rgba(67,96,124,.04)}
.btn-soft{background:#edf9f7;color:#08786f;border:1px solid #d4f0eb}.btn-soft:hover{background:#ddf5f1;color:#05675f;border-color:#bce6df}

/* Forms */
.form-control,.form-select{border-radius:12px;border-color:#d9e5ee;min-height:44px;background-color:#fff;color:#29445e}
.form-control:hover,.form-select:hover{border-color:#bfd2df}
.form-control:focus,.form-select:focus{border-color:#52c7bb;box-shadow:0 0 0 .23rem rgba(15,159,143,.11)}
.input-group-text{border-color:#d9e5ee;color:#7b8fa3}
label.form-label{font-weight:680;color:#38566f;margin-bottom:.4rem}
.required:after{content:" *";color:#e05267}
.form-check-input:checked{background-color:#0f9f8f;border-color:#0f9f8f}

/* Tables */
.table{--bs-table-bg:transparent;color:#314d66}
.table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.065em;color:#6f8498;background:#f3f8fc;border-bottom:1px solid #dfe9f1;white-space:nowrap;padding:.9rem}
.table tbody td{padding:.9rem;border-color:#edf3f7;vertical-align:middle;background:#fff}
.table-hover tbody tr:hover td{background:#f7fcfd}
.table tbody tr:last-child td{border-bottom:0}

.status-chip,.priority-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.32rem .62rem;font-size:.71rem;font-weight:780;white-space:nowrap;border:1px solid transparent}
.status-New{background:#f0f4f8;color:#536a7f;border-color:#e1e8ef}.status-Potential{background:#e8f5ff;color:#1672a6;border-color:#cfeaff}.status-KIV{background:#fff6dd;color:#966716;border-color:#f9e7b1}.status-Not-Interested,.status-Not-Relevant{background:#fff0f2;color:#b33b50;border-color:#ffd6dd}.status-Applied{background:#f1edff;color:#7652c8;border-color:#e1d9ff}.status-Offered{background:#fff0e6;color:#c26420;border-color:#ffddc3}.status-Enrolled{background:#eaf9f1;color:#1b7d53;border-color:#cceedd}
.priority-Low{background:#f1f5f9;color:#687c90}.priority-Normal{background:#eaf4ff;color:#2c75b9}.priority-High{background:#fff4d8;color:#9a6810}.priority-Urgent{background:#fff0f2;color:#bd3851}

.alert{border-radius:14px;border:1px solid transparent;box-shadow:0 6px 20px rgba(55,84,111,.05)}
.alert-success{background:#edf9f3;border-color:#d3efdf;color:#236b4a}.alert-warning{background:#fff8e7;border-color:#f5e5b5;color:#805b16}.alert-danger{background:#fff1f3;border-color:#ffd9df;color:#9c3447}.alert-info{background:#edf7ff;border-color:#d5eaff;color:#28638c}
.empty-state{padding:3rem 1rem;text-align:center;color:var(--ps-muted)}.empty-state i{font-size:2rem;color:#9ab8cb}
.section-title{font-size:1rem;font-weight:820;color:#24445f}.section-note{font-size:.8rem;color:var(--ps-muted);margin-top:.12rem}
.info-list{display:grid;grid-template-columns:145px 1fr;gap:.75rem 1rem}.info-label{color:var(--ps-muted);font-size:.78rem;font-weight:700}
.timeline{position:relative;padding-left:1.4rem}.timeline:before{content:"";position:absolute;left:.42rem;top:.3rem;bottom:.3rem;width:2px;background:#dbeeea}.timeline-item{position:relative;padding:0 0 1.2rem 1rem}.timeline-item:before{content:"";position:absolute;left:-1.27rem;top:.3rem;width:11px;height:11px;border-radius:50%;background:#15aa99;box-shadow:0 0 0 4px #e1f8f4}
.filter-panel{background:linear-gradient(145deg,#fff,#fbfdff);border:1px solid var(--ps-border);border-radius:18px;padding:1.05rem;box-shadow:0 8px 25px rgba(49,85,119,.055)}
.chart-wrap{position:relative;height:300px;min-height:300px;max-height:300px;overflow:hidden}.chart-wrap canvas{display:block;width:100%!important;height:100%!important;max-width:100%;max-height:100%}
.progress{height:9px;border-radius:99px;background:#edf3f7}.progress-bar{background:linear-gradient(90deg,#18b6a5,#3b82f6);border-radius:99px}

/* Dropdowns & pagination */
.dropdown-menu{border:1px solid #e4edf5!important;border-radius:14px!important;box-shadow:0 16px 38px rgba(55,84,111,.12)!important}
.dropdown-item{color:#425f78;padding:.55rem .7rem}.dropdown-item:hover{background:#f0f8fc;color:#173a5e}
.pagination{margin-bottom:0}.page-link{color:#0b8d81;border-color:#dfe9f1}.page-link:hover{color:#08786f;background:#eef9f7}.page-item.active .page-link{background:#0f9f8f;border-color:#0f9f8f}

/* Login - intentionally bright, not gloomy */
.login-page{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#fff}
.login-visual{position:relative;display:flex;align-items:flex-end;padding:3.2rem;color:#173a5e;background:linear-gradient(145deg,#effcf9 0%,#eaf6ff 52%,#fff8e8 100%);overflow:hidden;border-right:1px solid #e1ecf4}
.login-visual:before,.login-visual:after{content:"";position:absolute;border-radius:50%;filter:blur(1px)}
.login-visual:before{width:430px;height:430px;right:-110px;top:-120px;background:rgba(72,198,190,.18)}
.login-visual:after{width:270px;height:270px;right:80px;top:110px;background:rgba(59,130,246,.12)}
.login-copy{max-width:650px;position:relative;z-index:1}
.login-copy h1{font-size:2.6rem;font-weight:880;line-height:1.08;color:#153b5c;letter-spacing:-.035em}
.login-copy p{color:#5f7890;font-size:1.05rem;max-width:540px}
.login-feature{display:flex;gap:.8rem;margin-top:1.1rem;color:#45637d;font-weight:580}.login-feature i{color:#0f9f8f}
.login-form-side{display:grid;place-items:center;padding:2.2rem;background:linear-gradient(180deg,#ffffff,#f8fcff)}
.login-card{width:min(435px,100%);background:#fff;border:1px solid #e1ebf3;border-radius:24px;padding:2.1rem;box-shadow:0 25px 70px rgba(68,103,135,.13)}
.login-logo{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#19b8a7,#4d8cf5);display:grid;place-items:center;color:#fff;font-weight:880;margin-bottom:1.2rem;box-shadow:0 10px 24px rgba(59,130,246,.18)}

.mobile-menu{display:none}.sidebar-overlay{display:none}
.footer{padding:1.05rem 1.6rem;color:#8091a3;font-size:.78rem;border-top:1px solid #e5eef5;background:rgba(255,255,255,.8)}

@media(max-width:991.98px){
  .chart-wrap{height:260px;min-height:260px;max-height:260px}
  .sidebar{transform:translateX(-100%);box-shadow:18px 0 45px rgba(30,65,95,.16)}body.sidebar-open .sidebar{transform:translateX(0)}
  .main-area{margin-left:0}.mobile-menu{display:inline-flex}.sidebar-overlay{position:fixed;inset:0;background:rgba(31,54,74,.26);backdrop-filter:blur(2px);z-index:1035}body.sidebar-open .sidebar-overlay{display:block}
  .page-content{padding:1rem}.topbar{padding:0 1rem}.page-head{flex-direction:column}.login-page{grid-template-columns:1fr}.login-visual{display:none}
}
@media(max-width:575.98px){
  .page-content{padding:.82rem}.topbar{height:66px}.page-head h1{font-size:1.38rem}.metric-value{font-size:1.65rem}.card,.metric-card{border-radius:16px}.info-list{grid-template-columns:1fr;gap:.2rem}.info-label{margin-top:.5rem}.login-form-side{padding:1rem}.login-card{padding:1.45rem;border-radius:20px}.table td,.table th{padding:.72rem}.hide-mobile{display:none!important}
}
