@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:block;src:url("../../fonts/poppins-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:block;src:url("../../fonts/poppins-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:block;src:url("../../fonts/poppins-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:block;src:url("../../fonts/poppins-latin-700-normal.woff2") format("woff2");}
/* ============================================================
   CICS Extension & Technology Transfer Monitoring System v14
   Shared stylesheet
   ============================================================ */

:root{
  --navy-900:#0f1e4d;
  --navy-800:#152863;
  --blue-700:#3562a6;
  --blue-600:#3562a6;
  --denim-hover:#2b5088;
  --blue-500:#3b6bf0;
  --blue-50:#eef3ff;
  --ink-900:#101828;
  --ink-700:#344054;
  --ink-500:#4f5b72;
  --ink-400:#5f6b80;
  --line:#d9e4fd;
  --card:#ffffff;
  --bg:#f5f7fb;
  --green-600:#0e7350;
  --green-50:#e7f7ef;
  --orange-600:#a24f07;
  --orange-50:#fdf1e4;
  --purple-600:#1d4ed8;
  --purple-50:#eef3ff;
  --red-600:#b72d18;
  --red-50:#fdeeea;
  --radius-lg:0;
  --radius-md:0;
  --radius-sm:0;
  --shadow-card:0 1px 2px rgba(21,40,99,.04), 0 1px 6px rgba(21,40,99,.05);
  --shadow-pop:0 10px 30px rgba(21,40,99,.12);
  --font-heading:'Poppins','Segoe UI',system-ui,-apple-system,sans-serif;
  --font-body:'Poppins','Segoe UI',system-ui,-apple-system,sans-serif;
  font-size:16px;
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--ink-900);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
button{font-family: "Poppins";}
ul{list-style:none;margin:0;padding:0;}
img{max-width:100%;display:block;}

.hidden{display:none !important;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 18px;border-radius:0;border:1px solid transparent;
  font-size:14px;font-weight:600;cursor:pointer;transition:.15s ease;white-space:nowrap;
}
.btn-primary{background:var(--blue-700);color:#fff;}
.btn-primary:hover{background:var(--denim-hover);}
.btn-primary:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px;}
.btn-outline{background:#fff;color:var(--ink-700);border-color:var(--line);}
.btn-outline:hover{background:var(--bg);}
.btn-ghost{background:transparent;color:var(--ink-500);}
.btn-ghost:hover{background:var(--bg);color:var(--ink-900);}
.btn-sm{padding:6px 12px;font-size:14px;border-radius:0;}
.btn-danger{background:var(--red-600);color:#fff;}
.btn-danger:hover{background:#a82616;}
.btn[disabled]{opacity:.55;cursor:not-allowed;}
.btn-block{width:100%;}

/* ============================================================
   LOGIN PAGE
   ============================================================ */
.login-wrap{
  min-height:100vh;
  display:grid;
  grid-template-columns:1.1fr 1fr;
}
.login-visual{
  position:relative;
  background:
    linear-gradient(180deg, rgba(10,20,60,.15) 0%, rgba(8,15,45,.55) 55%, rgba(6,11,36,.92) 100%),
    linear-gradient(115deg,#bcd4f5 0%,#8fb3e8 35%,#5f88cf 65%,#3a5fad 100%);
  color:#fff;
  padding:56px 56px 44px;
  display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;
}
.login-visual::before{
  content:"";
  position:absolute;inset:0;
  background-image:
    radial-gradient(1.5px 1.5px at 20% 30%, rgba(255,255,255,.5) 0, transparent 60%),
    radial-gradient(1.5px 1.5px at 60% 15%, rgba(255,255,255,.35) 0, transparent 60%),
    radial-gradient(1.5px 1.5px at 80% 40%, rgba(255,255,255,.3) 0, transparent 60%);
  opacity:.7;
}
.login-building{
  position:absolute; right:8%; bottom:0; width:230px; opacity:.9;
}
.login-visual-content{position:relative;z-index:2;max-width:460px;}
.login-visual-content h1{
  font-size:34px;line-height:1.15;margin:14px 0 10px;letter-spacing:-.5px;
}
.login-visual-content h1 span{color:#9fc0ff;}
.login-visual-content p{
  font-size:16px;line-height:1.6;color:rgba(255,255,255,.82);margin:0 0 26px;
}
.login-tags{display:flex;gap:22px;flex-wrap:wrap;}
.login-tag{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:#fff;}
.login-tag .tag-ic{
  width:34px;height:34px;border-radius:0;background:rgba(255,255,255,.16);
  display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;
}
.login-panel{
  display:flex;align-items:center;justify-content:center;
  padding:40px 24px;background:#fff;
}
.login-card{width:100%;max-width:380px;}
.login-logo{
  width:64px;height:64px;border-radius:0;background:var(--blue-700);
  color:#fff;font-weight:600;font-size:20px;letter-spacing:.5px;
  display:flex;align-items:center;justify-content:center;margin:0 auto 18px;
}
.login-card h2{text-align:center;font-size:24px;margin:0 0 6px;color:var(--ink-900);}
.login-card > p.login-sub{text-align:center;color:var(--ink-500);font-size:14px;margin:0 0 26px;}

.role-switch{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;
  background:var(--bg);border-radius:0;padding:4px;margin-bottom:20px;
}
.role-switch button{
  border:none;background:transparent;padding:8px 4px;border-radius:0;
  font-size:12px;font-weight:600;color:var(--ink-500);cursor:pointer;line-height:1.25;
}
.role-switch button.active{background:#fff;color:var(--blue-700);box-shadow:var(--shadow-card);}

.role-note{
  display:flex;gap:10px;align-items:flex-start;
  background:var(--orange-50);border:1px solid #f4dcb8;color:#8a4d0c;
  padding:12px 14px;border-radius:0;font-size:14px;line-height:1.5;margin-bottom:18px;
}
.role-note strong{display:block;margin-bottom:2px;}

.field{margin-bottom:16px;}
.field label{display:block;font-size:14px;font-weight:600;color:var(--ink-700);margin-bottom:6px;}
.field-input{
  position:relative;display:flex;align-items:center;
  border:1px solid var(--line);border-radius:0;background:#fff;
  transition:border-color .15s;
}
.field-input:focus-within{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(59,107,240,.12);}
.field-input .ic{padding:0 10px 0 12px;color:var(--ink-400);display:flex;}
.field-input input{
  flex:1;border:none;outline:none;padding:11px 12px 11px 0;font-size:14px;background:transparent;color:var(--ink-900);
}
.field-input .toggle-pass{background:none;border:none;color:var(--ink-400);cursor:pointer;padding:0 12px;display:flex;}
/* Hide Edge's native password reveal button; the accessible custom button remains. */
.field-input input::-ms-reveal,.field-input input::-ms-clear{display:none;}
.field-input.disabled{background:var(--bg);}

.field-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;font-size:14px;}
.remember{display:flex;align-items:center;gap:8px;color:var(--ink-700);}
.remember input{accent-color:var(--blue-700);}
.forgot{color:var(--blue-700);font-weight:600;}
.forgot:hover{text-decoration:underline;}

.login-error{
  display:none;background:var(--red-50);border:1px solid #f3c6bd;color:var(--red-600);
  font-size:14px;padding:10px 12px;border-radius:0;margin-bottom:16px;
}
.login-error.show{display:block;}

.login-demo{
  margin-top:16px;font-size:12px;color:var(--ink-500);background:var(--bg);
  border-radius:0;padding:10px 12px;line-height:1.6;
}
.login-demo code{background:#fff;border:1px solid var(--line);border-radius:0;padding:1px 5px;}

.login-divider{display:flex;align-items:center;gap:10px;margin:24px 0 18px;color:var(--ink-400);font-size:12px;}
.login-divider::before,.login-divider::after{content:"";flex:1;height:1px;background:var(--line);}

.login-org{
  display:flex;gap:12px;align-items:center;background:var(--blue-50);
  border-radius:0;padding:12px 14px;
}
.login-org .ic{
  width:38px;height:38px;border-radius:0;background:var(--blue-700);color:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.login-org strong{display:block;font-size:14px;color:var(--ink-900);}
.login-org span{font-size:12px;color:var(--ink-500);}

/* ============================================================
   APP SHELL (dashboard / inner pages)
   ============================================================ */
.app-shell{display:flex;min-height:100vh;}

.sidebar{
  width:264px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;
}
.sidebar-brand{display:flex;gap:12px;align-items:flex-start;padding:20px 20px 16px;border-bottom:1px solid var(--line);}
.brand-mark{
  width:44px;height:44px;border-radius:0;background:var(--blue-700);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;
}
.brand-text strong{display:block;font-size:14px;color:var(--ink-900);line-height:1.3;}
.brand-text span{display:block;font-size:12px;color:var(--ink-500);line-height:1.4;margin-top:2px;}

.sidebar-scroll{flex:1;overflow-y:auto;padding:16px 12px;}
.nav-label{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--ink-400);text-transform:none;padding:8px 12px 6px;}
.nav-item{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:0;
  font-size:14px;font-weight:600;color:var(--ink-700);margin-bottom:2px;cursor:pointer;
}
.nav-item .ic{width:20px;text-align:center;flex-shrink:0;font-size:16px;}
.nav-item:hover{background:var(--bg);}
.nav-item.active{background:var(--blue-700);color:#fff;}
.nav-item.disabled{opacity:.45;cursor:not-allowed;}

.sidebar-foot{
  padding:16px;border-top:1px solid var(--line);
  display:flex;gap:10px;align-items:center;
  background:var(--navy-900);color:#fff;
}
.sidebar-foot .ic{
  width:34px;height:34px;border-radius:0;background:rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;
}
.sidebar-foot strong{display:block;font-size:12px;line-height:1.35;}
.sidebar-foot span{display:block;font-size:12px;color:rgba(255,255,255,.65);}

.main-col{flex:1;min-width:0;display:flex;flex-direction:column;}

.topbar{
  height:68px;flex-shrink:0;background:#fff;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20;
}
.topbar-left{display:flex;align-items:center;gap:14px;}
.menu-toggle{
  display:none;border:none;background:var(--bg);width:38px;height:38px;border-radius:0;
  align-items:center;justify-content:center;cursor:pointer;color:var(--ink-700);
}
.topbar-left h1{font-size:16px;margin:0;color:var(--ink-900);}
.topbar-right{display:flex;align-items:center;gap:18px;}
.bell{position:relative;width:38px;height:38px;border-radius:0;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--ink-700);cursor:pointer;}
.bell .dot{
  position:absolute;top:6px;right:6px;background:var(--red-600);color:#fff;font-size:12px;font-weight:600;
  min-width:16px;height:16px;border-radius:0;display:flex;align-items:center;justify-content:center;padding:0 3px;
}
.user-chip{display:flex;align-items:center;gap:10px;cursor:pointer;}
.avatar{
  width:36px;height:36px;border-radius:50%;background:var(--blue-700);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;
}
.user-chip .who strong{display:block;font-size:14px;color:var(--ink-900);line-height:1.3;}
.user-chip .who span{display:block;font-size:12px;color:var(--ink-500);}
.chev{color:var(--ink-400);font-size:12px;}

.page{padding:24px 28px 48px;max-width:1440px;}
.page-head{margin-bottom:22px;}
.page-head h2{font-size:24px;margin:0 0 4px;color:var(--ink-900);letter-spacing:-.3px;}
.page-head p{margin:0;color:var(--ink-500);font-size:14px;}
.page-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;}

.date-chip{
  display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:0;padding:9px 14px;font-size:14px;font-weight:600;color:var(--ink-700);
}

/* ---------- Cards / stat grid ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow-card);}
.card-pad{padding:20px;}

.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;}
.stat-card{padding:18px 20px;display:flex;flex-direction:column;gap:2px;}
.stat-top{display:flex;align-items:center;gap:14px;margin-bottom:6px;}
.stat-ic{width:44px;height:44px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.stat-ic.blue{background:var(--blue-50);color:var(--blue-700);}
.stat-ic.green{background:var(--green-50);color:var(--green-600);}
.stat-ic.orange{background:var(--orange-50);color:var(--orange-600);}
.stat-ic.purple{background:var(--purple-50);color:var(--purple-600);}
.stat-num{font-size:26px;font-weight:600;color:var(--ink-900);}
.stat-label{font-size:14px;font-weight:600;color:var(--ink-900);}
.stat-sub{font-size:12px;color:var(--ink-500);margin-bottom:4px;}
.stat-link{font-size:12px;font-weight:600;color:var(--blue-700);}

.section-grid{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:16px;margin-bottom:20px;align-items:start;}
.section-card h3{font-size:16px;margin:0;color:var(--ink-900);}
.section-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 4px;}
.section-head .view-all{font-size:12px;font-weight:600;color:var(--blue-700);}
.section-body{padding:12px 12px 18px;}

.quick-actions{display:flex;flex-direction:column;gap:10px;padding:8px 12px 16px;}
.qa{
  display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:0;background:var(--bg);
  cursor:pointer;border:1px solid transparent;transition:.15s;
}
.qa:hover{border-color:var(--line);background:#fff;box-shadow:var(--shadow-card);}
.qa .qa-ic{width:36px;height:36px;border-radius:0;background:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;box-shadow:var(--shadow-card);}
.qa .qa-text strong{display:block;font-size:14px;color:var(--ink-900);}
.qa .qa-text span{display:block;font-size:12px;color:var(--ink-500);margin-top:2px;line-height:1.4;}

.attn-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:0;}
.attn-item:hover{background:var(--bg);}
.attn-ic{width:38px;height:38px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.attn-ic.a1{background:var(--orange-50);color:var(--orange-600);}
.attn-ic.a2{background:var(--red-50);color:var(--red-600);}
.attn-ic.a3{background:var(--purple-50);color:var(--purple-600);}
.attn-text{flex:1;min-width:0;}
.attn-text strong{display:block;font-size:14px;color:var(--ink-900);}
.attn-text span{display:block;font-size:12px;color:var(--ink-500);margin-top:1px;}
.attn-text em{display:block;font-size:12px;color:var(--ink-400);margin-top:2px;font-style:normal;}

.progress-item{padding:12px;}
.progress-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;}
.progress-top strong{font-size:14px;color:var(--ink-900);}
.progress-top span{font-size:12px;color:var(--ink-500);}
.bar-track{height:8px;border-radius:0;background:var(--bg);overflow:hidden;margin:8px 0 4px;}
.bar-fill{height:100%;border-radius:0;}
.bar-fill.green{background:var(--green-600);}
.bar-fill.blue{background:var(--blue-700);}
.bar-fill.orange{background:#e08b1c;}
.progress-pct{font-size:12px;font-weight:600;color:var(--ink-500);text-align:right;}

.bottom-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;}

.activity-row{
  display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--line);
}
.activity-row:last-child{border-bottom:none;}
.act-ic{width:40px;height:40px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.act-ic.c1{background:var(--green-50);color:var(--green-600);}
.act-ic.c2{background:var(--blue-50);color:var(--blue-700);}
.act-ic.c3{background:var(--orange-50);color:var(--orange-600);}
.act-text{flex:1;min-width:0;}
.act-text strong{display:block;font-size:14px;color:var(--ink-900);}
.act-text span{display:block;font-size:12px;color:var(--ink-500);margin-top:1px;}
.act-meta{display:flex;align-items:center;gap:18px;flex-shrink:0;}
.act-date,.act-people{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-500);}

.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:0;font-size:12px;font-weight:600;}
.pill.done{background:var(--green-50);color:var(--green-600);}
.pill.ongoing{background:var(--blue-50);color:var(--blue-700);}
.pill.pending{background:var(--orange-50);color:var(--orange-600);}

/* ---------- Calendar ---------- */
.cal-nav{display:flex;align-items:center;gap:8px;}
.cal-nav button{width:26px;height:26px;border:1px solid var(--line);background:#fff;border-radius:0;cursor:pointer;color:var(--ink-500);}
.cal-title{font-weight:600;font-size:14px;color:var(--ink-900);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:8px 14px 16px;text-align:center;}
.cal-dow{font-size:12px;color:var(--ink-400);font-weight:600;padding-bottom:6px;}
.cal-day{
  position:relative;font-size:12px;color:var(--ink-700);padding:7px 0;border-radius:0;cursor:default;
}
.cal-day.muted{color:var(--ink-400);}
.cal-day.today{background:var(--blue-700);color:#fff;font-weight:600;}
.cal-day .dots{display:flex;gap:2px;justify-content:center;position:absolute;bottom:1px;left:0;right:0;}
.cal-day .dots span{width:4px;height:4px;border-radius:50%;background:var(--blue-600);}
.cal-day .dots span.o{background:#e08b1c;}

/* ---------- Table (Programs & Projects) ---------- */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
.tabs{display:flex;gap:4px;background:var(--bg);padding:4px;border-radius:0;}
.tabs button{border:none;background:transparent;padding:8px 16px;border-radius:0;font-size:14px;font-weight:600;color:var(--ink-500);cursor:pointer;}
.tabs button.active{background:#fff;color:var(--blue-700);box-shadow:var(--shadow-card);}
.toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.search-box{
  display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:0;padding:9px 12px;min-width:260px;color:var(--ink-400);
}
.search-box input{border:none;outline:none;font-size:14px;flex:1;color:var(--ink-900);background:transparent;}

.table-card{overflow:hidden;}
.activity-response-block+.activity-response-block{margin-top:16px;}
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;min-width:900px;}
thead th{
  text-align:left;font-size:12px;text-transform:none;letter-spacing:.04em;color:var(--ink-500);
  padding:14px 18px;border-bottom:1px solid var(--line);background:#f8faff;white-space:nowrap;
}
tbody td{padding:16px 18px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-700);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#f8faff;}
.pp-name{display:flex;gap:12px;align-items:center;}
.pp-ic{width:40px;height:40px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.pp-name strong{display:block;color:var(--ink-900);font-size:14px;}
.pp-name span{display:block;color:var(--ink-500);font-size:12px;margin-top:2px;max-width:260px;}
.badge-type{padding:3px 10px;border-radius:0;font-size:12px;font-weight:600;}
.badge-type.program{background:var(--green-50);color:var(--green-600);}
.badge-type.project{background:var(--blue-50);color:var(--blue-700);}
.badge-role{padding:3px 10px;border-radius:0;font-size:12px;font-weight:600;}
.badge-role.lead{background:var(--green-50);color:var(--green-600);}
.badge-role.co{background:var(--orange-50);color:var(--orange-600);}
.badge-role.support{background:var(--purple-50);color:var(--purple-600);}
.row-actions{position:relative;}
.row-actions button{border:none;background:transparent;cursor:pointer;color:var(--ink-500);font-size:16px;padding:4px 8px;border-radius:0;}
.row-actions button:hover{background:var(--bg);}
.table-foot{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;font-size:14px;color:var(--ink-500);}
.pager{display:flex;gap:6px;align-items:center;}
.pager button{width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:0;cursor:pointer;color:var(--ink-500);}
.pager button.active{background:var(--blue-700);border-color:var(--blue-700);color:#fff;font-weight:600;}
.empty-row td{padding:48px 18px;text-align:center;color:var(--ink-500);}

/* ---------- Legacy modal (unused mockup styles, kept out of Bootstrap's .modal/.modal-body namespace) ---------- */
.legacy-modal-overlay{
  position:fixed;inset:0;background:rgba(15,20,40,.5);display:none;align-items:center;justify-content:center;
  padding:20px;z-index:100;
}
.legacy-modal-overlay.show{display:flex;}
.legacy-modal{background:#fff;border-radius:0;width:100%;max-width:520px;box-shadow:var(--shadow-pop);max-height:92vh;overflow-y:auto;}
.legacy-modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line);}
.legacy-modal-head h3{margin:0;font-size:16px;}
.legacy-modal-close{border:none;background:var(--bg);width:32px;height:32px;border-radius:0;cursor:pointer;color:var(--ink-500);font-size:16px;}
.legacy-modal-body{padding:22px;}
.legacy-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--line);}

/* ---------- Bootstrap modal polish (View / Delete dialogs) ---------- */
.modal-dialog-centered{min-height:calc(100% - 3.5rem);}
.modal-content{border:0;border-radius:0;box-shadow:var(--shadow-pop, 0 20px 45px rgba(15,20,40,.25));}
.btn-close{opacity:.6;transition:opacity .15s ease;}
.btn-close:hover{opacity:1;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
select.field-select{
  width:100%;border:1px solid var(--line);border-radius:0;padding:11px 12px;font-size:14px;color:var(--ink-900);background:#fff;
}
textarea.field-area{
  width:100%;border:1px solid var(--line);border-radius:0;padding:11px 12px;font-size:14px;color:var(--ink-900);
  resize:vertical;min-height:76px;font-family: "Poppins";
}

/* ---------- Placeholder page ---------- */
.placeholder-card{
  text-align:center;padding:64px 24px;
}
.placeholder-ic{
  width:64px;height:64px;border-radius:0;background:var(--blue-50);color:var(--blue-700);
  display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 18px;
}
.placeholder-card h3{margin:0 0 8px;font-size:20px;color:var(--ink-900);}
.placeholder-card p{margin:0 auto 22px;max-width:420px;color:var(--ink-500);font-size:14px;line-height:1.6;}

/* ---------- Toast ---------- */
.toast{
  position:fixed;bottom:24px;right:24px;background:var(--ink-900);color:#fff;padding:12px 18px;
  border-radius:0;font-size:14px;font-weight:600;box-shadow:var(--shadow-pop);z-index:200;
  display:flex;align-items:center;gap:10px;transform:translateY(20px);opacity:0;pointer-events:none;transition:.25s ease;
}
.toast.show{transform:translateY(0);opacity:1;}
.toast .dot-ok{color:#4ade80;}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .section-grid{grid-template-columns:1fr;}
  .bottom-grid{grid-template-columns:1fr;}
}
@media (max-width:860px){
  .login-wrap{grid-template-columns:1fr;}
  .login-visual{display:none;}
  .sidebar{position:fixed;left:-280px;top:0;z-index:60;transition:left .2s ease;box-shadow:var(--shadow-pop);}
  .sidebar.open{left:0;}
  .menu-toggle{display:flex;}
  .stat-grid{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
  .page{padding:18px 16px 40px;}
  .user-chip .who{display:none;}
}
@media (max-width:640px){
  .toolbar{flex-direction:column;align-items:stretch;}
  .search-box{min-width:0;}
}

/* ============================================================
   Flask/Jinja integration layer
   Keeps existing Flask page markup and makes it follow the
   CICS System v14 visual language.
   ============================================================ */
.app-layout{display:flex;min-height:100vh;background:var(--bg)}
.app-sidebar{width:264px;flex:0 0 264px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:60}
.sidebar-brand{display:flex;gap:12px;align-items:flex-start;padding:20px;border-bottom:1px solid var(--line)}
.sidebar-logo{width:44px;height:44px;border:1px solid #cfdcfc!important;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.sidebar-logo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.sidebar-section{flex:1;overflow-y:auto;padding:14px 12px}
.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:0;font-size:14px;font-weight:600;color:var(--ink-700);margin-bottom:2px;text-decoration:none}
.sidebar-link:hover{background:var(--bg);color:var(--ink-900)}
.sidebar-link.active{background:var(--blue-700);color:#fff}
.sidebar-footer{padding:12px;border-top:1px solid var(--line);background:#fff;color:var(--ink-700)}
.sidebar-logout{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border-radius:0;color:#b42318;font-family: "Poppins";font-size:14px;font-weight:600;text-decoration:none;transition:background .15s ease,color .15s ease}
.sidebar-logout i{width:20px;text-align:center;font-size:16px}
.sidebar-logout:hover{background:var(--red-50);color:var(--red-600)}
.app-main{flex:1;min-width:0;display:flex;flex-direction:column}
.app-main>.navbar{height:68px;flex-shrink:0;background:#fff!important;border-bottom:1px solid var(--line)!important;position:sticky;top:0;z-index:20}
.app-content{padding:28px 32px 48px;max-width:1500px;width:100%;margin:0 auto}
.avatar-circle{width:36px;height:36px;border-radius:50%;background:var(--blue-700);color:#fff;border:0!important;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}
.card{border:1px solid var(--line)!important;border-radius:0!important;box-shadow:var(--shadow-card)!important;background:#fff}
.card-header{background:#fff!important;border-bottom:1px solid var(--line)!important;padding:18px 20px!important}
.card-body{padding:20px!important}
.form-control,.form-select{border:1px solid var(--line);border-radius:0;padding:10px 12px;font-size:14px}
.form-control:focus,.form-select:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(59,107,240,.12)}
.form-label{font-size:14px;font-weight:600;color:var(--ink-700)}
.btn{border-radius:0!important;font-weight:600}
.btn-primary{background:var(--blue-700)!important;border-color:var(--blue-700)!important}
.btn-primary:hover{background:var(--denim-hover)!important;border-color:var(--denim-hover)!important}
.btn-outline-secondary{border-color:var(--line)!important;color:var(--ink-700)!important;background:#fff!important}
.table{--bs-table-bg:transparent;--bs-table-hover-bg:#fafbfd}
.table>thead>tr>th{font-size:12px;text-transform:none;letter-spacing:.04em;color:var(--ink-500);padding:14px 18px;border-bottom:1px solid var(--line);white-space:nowrap}
.table>tbody>tr>td{padding:15px 18px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-700);vertical-align:middle}
.table-light{--bs-table-bg:#fafbfd!important}
.dropdown-menu{border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow-pop);padding:8px}
.alert{border-radius:0;border:1px solid transparent;font-size:14px}
.google-btn{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:0;padding:10px 14px;background:#fff;color:var(--ink-700);font-weight:600;text-decoration:none}
.google-btn:hover{background:var(--bg)}
@media(max-width:860px){
  .app-sidebar{position:fixed;left:-280px;top:0;transition:left .2s ease;box-shadow:var(--shadow-pop)}
  .app-sidebar.open{left:0}
  .app-content{padding:18px 16px 40px}
  .menu-toggle-cics{display:flex!important}
}
.menu-toggle-cics{display:none;border:0;background:var(--bg);width:38px;height:38px;border-radius:0;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-700)}

/* ============================================================
   My Programs & Projects + Activities additive UI
   These classes are scoped to the new pages so existing pages
   keep their current behavior and styling.
   ============================================================ */
.cics-page{width:100%;}
.cics-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px;flex-wrap:wrap;}
.cics-page-head h2{margin:0 0 5px;font-size:26px;letter-spacing:-.4px;color:var(--ink-900);}
.cics-page-head p{margin:0;color:var(--ink-500);font-size:14px;}
.cics-primary-btn{display:inline-flex;align-items:center;gap:8px;background:var(--blue-700);color:#fff;border:1px solid var(--blue-700);border-radius:0;padding:11px 17px;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;}
.cics-primary-btn:hover{background:var(--denim-hover);color:#fff;}
.cics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap;}
.cics-tabs{display:flex;align-items:center;gap:6px;}
.cics-tab{border:0;background:transparent;color:var(--ink-500);padding:10px 18px;font-size:14px;font-weight:600;border-bottom:2px solid transparent;cursor:pointer;}
.cics-tab:hover{color:var(--ink-900);}
.cics-tab.active{color:var(--blue-700);border-bottom-color:var(--blue-700);}
.cics-search{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:0;padding:10px 12px;min-width:300px;color:var(--ink-400);}
.cics-search:focus-within{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(59,107,240,.1);}
.cics-search input{border:0;outline:0;background:transparent;flex:1;min-width:0;color:var(--ink-900);font-size:14px;}
.cics-data-card{background:#fff;border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow-card);overflow:hidden;}
.cics-table-wrap{overflow-x:auto;}
.cics-data-table{width:100%;min-width:1050px;border-collapse:collapse;}
.cics-data-table th{background:#f8faff;text-align:left;font-size:12px;text-transform:none;letter-spacing:.04em;color:var(--ink-500);padding:14px 18px;border-bottom:1px solid var(--line);white-space:nowrap;}
.cics-data-table td{padding:15px 18px;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink-700);vertical-align:middle;}
.cics-data-table tbody tr:last-child td{border-bottom:0;}
.cics-data-table tbody tr:hover{background:#f8faff;}
.pp-program{background:var(--green-50);color:var(--green-600);}
.pp-project{background:var(--blue-50);color:var(--blue-700);}
.cics-status{display:inline-flex;align-items:center;padding:5px 10px;border-radius:0;font-size:12px;font-weight:600;white-space:nowrap;}
.cics-status.completed{background:var(--green-50);color:var(--green-600);}
.cics-status.ongoing{background:var(--blue-50);color:var(--blue-700);}
.cics-status.pending,.cics-status.planning{background:var(--orange-50);color:var(--orange-600);}
.cics-status.cancelled{background:var(--red-50);color:var(--red-600);}
.cics-row-actions{display:flex;align-items:center;gap:3px;}
.cics-row-actions a,.cics-row-actions button{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--blue-700);text-decoration:none;cursor:pointer;}
.cics-row-actions a:hover,.cics-row-actions button:hover{background:var(--blue-50);}
.cics-row-actions button.action-delete{color:#b42332;border-color:#f1c6cc;}
.cics-row-actions button.action-delete:hover{background:#fff1f2;color:#951b2a;border-color:#e9a5af;}
.cics-table-foot{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;font-size:12px;color:var(--ink-500);}
.cics-empty{text-align:center;padding:44px 20px;display:flex;align-items:center;flex-direction:column;gap:8px;}
.cics-empty i{font-size:30px;color:var(--blue-700);}
.cics-empty strong{font-size:16px;color:var(--ink-900);}
.cics-empty span{font-size:14px;color:var(--ink-500);max-width:430px;}
.cics-empty .btn{margin-top:8px;}
.add-choice-grid{display:grid;gap:12px;}
.add-choice{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:0;color:var(--ink-900);text-decoration:none;}
.add-choice:hover{border-color:#b9c8f8;background:var(--blue-50);}
.add-choice-icon{width:42px;height:42px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:16px;}
.add-choice-icon.program{background:var(--green-50);color:var(--green-600);}
.add-choice-icon.project{background:var(--blue-50);color:var(--blue-700);}
.add-choice strong{display:block;font-size:14px;}
.add-choice small{display:block;color:var(--ink-500);font-size:12px;margin-top:2px;}
.cics-form-card{background:#fff;border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow-card);padding:24px;max-width:900px;}
.cics-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.cics-form-group{min-width:0;}
.cics-form-group.full{grid-column:1/-1;}
.cics-form-group label{display:block;font-size:14px;font-weight:600;color:var(--ink-700);margin-bottom:7px;}
.cics-form-group .optional{font-weight:500;color:var(--ink-400);}
.cics-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line);}
.list-filter-bar{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(140px,1fr)) auto;gap:8px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:0;padding:10px 12px;margin-bottom:16px;box-shadow:0 2px 8px rgba(20,37,93,.05);}
.list-filter-bar.project-filter-bar{grid-template-columns:minmax(210px,1.45fr) repeat(3,minmax(125px,1fr)) auto;}
.list-filter-bar.responses-filter-card{grid-template-columns:minmax(260px,1fr) auto;}
.list-filter-bar label{display:block;font-size:12px;font-weight:600;color:var(--ink-500);margin:0 0 4px 2px;letter-spacing:.01em;}
.list-filter-bar .form-select{height:36px;font-size:12px;padding:6px 30px 6px 9px;border-radius:0;}
.list-filter-search .cics-search{min-width:0;width:100%;height:36px;padding:6px 9px;border-radius:0;}
.list-filter-search .cics-search input{font-size:12px;}
.list-filter-submit{height:36px;padding:0 12px;border-radius:0;font-size:12px;font-weight:600;white-space:nowrap;}
.activity-filter-card{grid-template-columns:minmax(210px,1.6fr) repeat(3,minmax(125px,1fr)) auto;}
.activity-filter-card .form-select{font-size:12px;padding:6px 30px 6px 9px;}
.activity-filter-submit{height:36px;padding-left:12px;padding-right:12px;}
.activity-stat-grid{margin-bottom:18px;}
.activity-stat-grid .stat-card{min-height:112px;}
.cics-section-head{display:flex;align-items:center;justify-content:space-between;padding:17px 18px 12px;color:var(--ink-900);font-size:14px;}
.cics-section-head span{font-size:12px;color:var(--ink-500);font-weight:500;}
.cics-section-head b{color:var(--ink-700);}
.table-sub{display:block;color:var(--ink-500);font-size:12px;margin-top:3px;}
.activity-table .pp-name span{max-width:220px;}
.activity-table td:nth-child(2) strong{display:block;color:var(--ink-900);font-size:12px;}
.activity-table td:nth-child(3){white-space:nowrap;}
.activity-table td:nth-child(5){font-weight:600;color:var(--ink-900);white-space:nowrap;}
.activity-bottom-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;margin-top:18px;}
.activity-overview{display:flex;align-items:center;justify-content:center;gap:34px;padding:12px 22px 24px;min-height:190px;}
.donut{width:125px;height:125px;border-radius:50%;background:conic-gradient(var(--green-600) 0 var(--done), var(--blue-700) var(--done) calc(var(--done) + var(--ongoing)), #f0a12c calc(var(--done) + var(--ongoing)) 100%);position:relative;flex-shrink:0;}
.donut:after{content:"";position:absolute;inset:28px;background:#fff;border-radius:50%;}
.overview-legend{display:flex;flex-direction:column;gap:13px;font-size:12px;color:var(--ink-700);}
.overview-legend>div{display:flex;align-items:center;gap:8px;min-width:150px;}
.overview-legend b{margin-left:auto;color:var(--ink-900);}
.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.legend-dot.done{background:var(--green-600);}
.legend-dot.ongoing{background:var(--blue-700);}
.legend-dot.pending{background:#f0a12c;}
.quick-stat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-500);}
.quick-stat-row:first-of-type{border-top:0;}
.quick-stat-row span{display:flex;align-items:center;gap:8px;}
.quick-stat-row i{color:var(--blue-700);font-size:16px;}
.quick-stat-row b{font-size:14px;color:var(--ink-900);}
.cics-info-note{display:flex;align-items:center;gap:10px;margin-top:18px;background:var(--blue-50);color:var(--ink-700);padding:12px 15px;border-radius:0;font-size:12px;}
.cics-info-note i{color:var(--blue-700);font-size:16px;}

@media(max-width:1100px){
  .list-filter-bar,.list-filter-bar.project-filter-bar,.activity-filter-card{grid-template-columns:1fr 1fr;}
  .list-filter-bar.responses-filter-card{grid-template-columns:1fr auto;}
  .list-filter-search,.activity-filter-search{grid-column:1/-1;}
  .list-filter-submit,.activity-filter-submit{width:auto;}
}
@media(max-width:860px){
  .cics-page-head h2{font-size:23px;}
  .cics-toolbar{align-items:stretch;}
  .cics-tabs{overflow-x:auto;}
  .cics-search{min-width:0;width:100%;}
  .cics-form-grid{grid-template-columns:1fr;}
  .cics-form-group.full{grid-column:auto;}
  .list-filter-bar,.list-filter-bar.project-filter-bar,.activity-filter-card{grid-template-columns:1fr;}
  .list-filter-bar.responses-filter-card{grid-template-columns:1fr;}
  .list-filter-search,.activity-filter-search{grid-column:auto;}
  .list-filter-submit,.activity-filter-submit{width:100%;}
  .activity-bottom-grid{grid-template-columns:1fr;}
  .activity-overview{justify-content:space-around;gap:16px;}
}
@media(max-width:560px){
  .cics-page-head{align-items:stretch;}
  .cics-primary-btn{width:100%;}
  .cics-form-card{padding:17px;}
  .activity-overview{flex-direction:column;}
}

/* =========================================================
   PROJECT MODULE
   Wizard forms + project list/detail modal styles.
========================================================= */
.project-wizard-wrap{max-width:1100px;margin:0 auto 30px}
.project-wizard-head{background:#fff;border:1px solid #d3e0fd;border-radius:0;padding:20px 22px;margin-bottom:16px}
.project-wizard-head h4{margin:0;color:#14255d;font-weight:600}
.project-wizard-head p{margin:5px 0 0;color:#7d8ba0;font-size:.875rem}
.project-progress{height:7px;background:#e5edfe;border-radius:0;overflow:hidden;margin-top:16px}
.project-progress-bar{height:100%;width:10%;background:#1454e8;border-radius:0;transition:width .2s}
.project-step-indicator{display:flex;justify-content:space-between;gap:8px;margin-top:9px;color:var(--ink-500);font-size:.75rem;overflow-x:auto}
.project-step-indicator button{background:none;border:0;font:inherit;color:inherit;white-space:nowrap;cursor:pointer;padding:2px 4px;border-radius:0;transition:color .15s,background-color .15s}
.project-step-indicator button:hover{color:#1454e8;background-color:#eef3ff}
.project-step-indicator .active{color:#1454e8;font-weight:600}
.project-form{background:#fff;border:1px solid #d3e0fd;border-radius:0;box-shadow:0 2px 9px rgba(25,54,92,.04);overflow:hidden}
.project-step{display:none;padding:24px}
.project-step.active{display:block}
.project-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}
.project-section-num{width:38px;height:38px;border-radius:0;background:#eaf1ff;color:#1454e8;display:grid;place-items:center;font-weight:600;flex:0 0 auto}
.project-section-title h5{margin:2px 0 3px;color:#14255d;font-weight:600}
.project-section-title p{margin:0;color:#8996a9;font-size:.875rem}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.project-field.full{grid-column:1/-1}
.project-field-hint{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:.875rem;font-weight:600;color:#2f6fed;text-decoration:none}
.project-field-hint:hover{text-decoration:underline}
.btn-link-reset{background:none;border:0;padding:0;cursor:pointer;font-family: "Poppins"}
.project-field-spaced{margin-top:14px}
.project-field label{display:block;font-weight:600;color:#344967;font-size:.875rem;margin-bottom:6px}
.project-field .form-control,.project-field .form-select{min-height:43px;border-color:#cfdcfc;border-radius:0}
.project-field textarea.form-control{min-height:110px;resize:vertical}
.project-field textarea.form-control.compact-textarea{min-height:64px;height:64px}
.project-field textarea.tall{min-height:180px}
.project-help{display:block;color:#8996a9;font-size:.75rem;margin-top:5px}
.project-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.project-choice{display:flex;gap:9px;align-items:flex-start;border:1px solid #d3e0fd;border-radius:0;padding:11px;background:#fafcff;cursor:pointer}
.project-choice:hover{border-color:#b9cdfa;background:#f6f9ff}
.project-choice input{margin-top:3px}
.project-choice span{font-size:.875rem;color:#536782;line-height:1.35}
.project-actions{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #e5edfe;padding:16px 24px;background:#fafcff}
.project-actions .right{display:flex;gap:9px;margin-left:auto}
.project-step-label{font-size:.875rem;color:#7d8ba0;align-self:center}
.repeat-box{border:1px solid #cfdcfc;border-radius:0;padding:14px;background:#fafcff}
.repeat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.repeat-header label{margin:0}
.repeat-list{display:flex;flex-direction:column;gap:9px}
.repeat-row{display:flex;gap:8px;align-items:center}
.repeat-row .form-control{flex:1}
.repeat-remove{flex:0 0 auto}
.project-team-row,.project-team-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(190px,1fr) 38px;gap:8px;align-items:center}
.project-team-head{padding:0 1px;color:#65758b;font-size:.875rem;text-transform:none;letter-spacing:.03em}
.project-team-row .form-control,.project-team-row .form-select{width:100%;min-width:0}
.project-note{background:#f4f7fe;border:1px solid #dce6fb;border-radius:0;padding:12px 14px;color:#27458f;font-size:.875rem;line-height:1.5;margin-top:8px}
.parent-note{background:#fff8e8;border:1px solid #f2dfae;border-radius:0;padding:12px 14px;color:#745711;font-size:.875rem;line-height:1.5;margin-top:8px}
.budget-note{background:#f4f7fe;border:1px solid #dce6fb;border-radius:0;padding:12px 14px;color:#27458f;font-size:.875rem;line-height:1.5;margin-top:8px}

.project-parent{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:0;background:#eef4ff;color:#2854a6;font-size:.875rem;font-weight:600}
.project-parent.none{background:#eff3fe;color:#7b8797;font-weight:500}
/* ============================================================
   Record view modals (Projects, Activities, Programs, Technology)
   .project-view-* and .pv-* share one design.
   ============================================================ */
.project-view-modal,.pv-modal{border:0;border-radius:0;overflow:hidden;box-shadow:0 24px 60px rgba(15,30,77,.28)}
.project-view-header,.pv-modal-header{position:relative;align-items:center;padding:20px 24px;color:#fff;border:0;
  background:radial-gradient(120% 160% at 100% 0,rgba(91,140,255,.45) 0,transparent 55%),linear-gradient(135deg,#0f1e4d 0%,#1d3fb8 100%)}
.project-view-header .btn-close,.pv-modal-header .btn-close{align-self:flex-start;opacity:.85;filter:invert(1) brightness(1.6)}
.project-view-header .btn-close:hover,.pv-modal-header .btn-close:hover{opacity:1}
.project-view-title-wrap,.pv-modal-title-wrap{display:flex;align-items:center;gap:14px;min-width:0}
.project-view-icon,.pv-modal-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;font-size:21px;color:#fff;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28)}
.project-view-header .modal-title,.pv-modal-header .modal-title{margin:0 0 6px;color:#fff;font-size:1.15rem;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.project-view-header .cics-status,.pv-modal-header .cics-status{vertical-align:middle}
.project-view-body,.pv-body{padding:20px 24px 24px;background:#f3f6fd}
.project-view-section,.pv-section{margin:0 0 14px;padding:0;background:#fff;border:1px solid #dbe5fb;border-top:3px solid #1d4ed8;padding-bottom:20px;
  box-shadow:0 1px 3px rgba(21,40,99,.05)}
.project-view-section:last-child,.pv-section:last-child{margin-bottom:0}
.project-view-section>h6,.pv-section>h6{display:flex;align-items:center;gap:10px;margin:0;padding:13px 20px;
  color:#14255d;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:#f8faff;border-bottom:1px solid #e6edfc}
.project-view-section>h6 i,.pv-section>h6 i{display:grid;place-items:center;width:26px;height:26px;font-size:.9rem;color:#1d4ed8;background:#e4edff}
.project-view-section>:not(h6),.pv-section>:not(h6){margin-left:20px;margin-right:20px}
.project-view-section>h6+*,.pv-section>h6+*{margin-top:18px}
.project-view-grid,.pv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.project-view-item,.pv-item{min-width:0;padding:11px 0;border-bottom:1px solid #eef2fb}
.project-view-item.full,.pv-item.full{grid-column:1/-1}
.project-view-item label,.pv-item label{display:block;margin:0 0 4px;color:#7a8aa3;font-size:.6875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.project-view-item>div,.pv-item>div{color:#1c2f52;font-size:.9rem;font-weight:500;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}
/* last row of each grid has no divider */
.project-view-grid>.project-view-item:last-child,.pv-grid>.pv-item:last-child{border-bottom:0}
.project-view-grid>.project-view-item:nth-last-child(2):nth-child(odd):not(.full),.pv-grid>.pv-item:nth-last-child(2):nth-child(odd):not(.full){border-bottom:0}
.project-view-empty,.pv-empty{padding:4px 0;color:#9aa6b8;font-size:.875rem;font-style:italic}
.project-view-chips,.pv-chips{display:flex;flex-wrap:wrap;gap:8px}
.project-view-chip,.pv-chip{padding:6px 12px;color:#1d4ed8;font-size:.8125rem;font-weight:500;line-height:1.3;background:#eaf1ff;border:1px solid #cfdcfb}
.project-view-chip.green,.pv-chip-green{color:#157347;background:#e8f8ee;border-color:#bfe6cf}
.project-view-stat-row,.pv-stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.project-view-stat,.pv-stat{padding:14px;text-align:center;background:#f6f9ff;border:1px solid #dbe5fb;border-top:2px solid #1d4ed8}
.project-view-stat span,.pv-stat span{display:block;color:#14255d;font-size:1.2rem;font-weight:600}
.project-view-stat label,.pv-stat label{display:block;margin:4px 0 0;color:#7a8aa3;font-size:.6875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.project-view-list{margin:0;padding-left:18px;color:#344967;font-size:.875rem;line-height:1.6}
.project-view-spaced{margin-top:12px}
.project-view-section .table-responsive,.pv-section .table-responsive{border:1px solid #e6edfc}
.project-view-section .table,.pv-section .table{margin:0;font-size:.875rem}
.project-view-section .table thead th,.pv-section .table thead th{padding:10px 14px;color:#5a6b86;font-size:.6875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;background:#f3f6fd;border-bottom:1px solid #dbe5fb}
.project-view-section .table td,.pv-section .table td{padding:11px 14px;color:#1c2f52;border-color:#eef2fb}
.project-view-section>p,.pv-section>p{color:#1c2f52;font-size:.9rem}
.project-view-modal .modal-footer,.pv-modal .modal-footer{padding:12px 24px;background:#fff;border-top:1px solid #dbe5fb}
.pv-modal .mt-2{margin-top:12px}
.pv-program-modal .pv-stat-row{grid-template-columns:minmax(0,260px)}
#projectTable td:last-child,#projectTable th:last-child{position:sticky;right:0;background:#fff;box-shadow:-6px 0 8px -8px rgba(20,37,93,.15)}
#projectTable thead th:last-child{background:#f8faff;box-shadow:-6px 0 8px -8px rgba(20,37,93,.15)}
#projectTable tbody tr:hover td:last-child{background:#f6f8fe}

@media(max-width:768px){
  .project-grid,.project-choice-grid,.project-view-grid,.project-view-stat-row,.pv-grid,.pv-stat-row{grid-template-columns:1fr}
  .project-view-section>:not(h6),.pv-section>:not(h6){margin-left:14px;margin-right:14px}
  .project-view-grid>.project-view-item:nth-last-child(2):nth-child(odd):not(.full),.pv-grid>.pv-item:nth-last-child(2):nth-child(odd):not(.full){border-bottom:1px solid #eef2fb}
  .project-view-body,.pv-body{padding:14px}
  .project-step{padding:18px}
  .project-actions{padding:14px 18px}
  .project-step-indicator{white-space:nowrap}
  .repeat-header{align-items:flex-start;flex-direction:column}
  .repeat-row{align-items:stretch}
  .repeat-row .form-control{min-width:0}
  .project-team-row{grid-template-columns:1fr}
  .project-team-head{display:none}
  .project-team-row .repeat-remove{width:100%}
}

/* Activity wizard rows – aligned with Program/Project form styling */
.activity-repeat-grid,.activity-schedule-grid,.activity-financial-grid,.activity-monitor-grid{display:grid;gap:10px;align-items:center;margin-bottom:10px}
.activity-repeat-grid{grid-template-columns:1.1fr 1fr 1.6fr auto}
.activity-repeat-grid.project-activity-plan-row{grid-template-columns:minmax(0,1fr) minmax(170px,220px) auto auto}
.activity-repeat-grid.two-col{grid-template-columns:1.4fr 1fr auto}
.activity-repeat-grid.budget-row{grid-template-columns:1fr 1.6fr 1fr auto;align-items:start}
.activity-budget-card{margin-top:16px}
.budget-category-wrap{display:flex;flex-direction:column;gap:6px}
.budget-row .remove-row,.budget-row>.form-control,.budget-row>.form-select{align-self:center}
.activity-schedule-grid{grid-template-columns:1fr 1.6fr 1fr auto}
.activity-financial-grid{grid-template-columns:1.8fr .8fr .9fr .9fr auto}
.activity-monitor-grid{grid-template-columns:1.3fr 1fr 1fr .9fr 1fr auto}
@media(max-width:900px){.activity-repeat-grid,.activity-schedule-grid,.activity-financial-grid,.activity-monitor-grid{grid-template-columns:1fr}.activity-repeat-grid .btn,.activity-schedule-grid .btn,.activity-financial-grid .btn,.activity-monitor-grid .btn{width:100%}}

/* Technology Transfer edit — aligned with Extension Project forms */
.technology-wizard-wrap{max-width:1100px}
.technology-form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.technology-record-status{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:0;color:#69778b;background:#e7eefe;font-size:12px;font-weight:600;white-space:nowrap}
.technology-record-status i{font-size:12px}.technology-record-status.active{color:#14784f;background:#e8f7ef}.technology-record-status.inactive{color:#667085;background:#e5edfe}
.technology-training-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.technology-total-field .form-control{color:#35506f;background:#f1f5fe;font-weight:600}
.technology-follow-up-card{margin-top:20px;padding:24px;background:#fff;border:1px solid #d3e0fd;border-radius:0;box-shadow:0 2px 9px rgba(25,54,92,.04)}
.technology-follow-up-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.technology-follow-up-head .project-section-title{margin-bottom:0}
.technology-due-chip{display:inline-flex;align-items:center;padding:7px 11px;color:#1e54d7;background:#edf3ff;border-radius:0;font-size:12px;font-weight:600;white-space:nowrap}
.technology-due-chip.overdue{color:#b42318;background:#fff0ed}
.technology-follow-up-card textarea{min-height:100px}
.technology-history{padding-top:22px;margin-top:24px;border-top:1px solid #dbe5fd;scroll-margin-top:90px}
.technology-history-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}
.technology-history-head h5{margin:0;color:#14255d;font-size:16px;font-weight:600}.technology-history-head p{margin:3px 0 0;color:#7c899b;font-size:12px}.technology-history-head>span{padding:5px 9px;color:#53647b;background:#e9effe;border-radius:0;font-size:12px;font-weight:600}
.technology-history .table{margin-bottom:0;border:1px solid #dde7fd}.technology-history .table th{padding:10px 12px;color:#5e6d82;background:#f5f8fe;font-size:12px;text-transform:none;letter-spacing:.035em}.technology-history .table td{padding:11px 12px;color:#40536d;font-size:14px}
.technology-history-empty{display:flex;align-items:center;gap:12px;padding:17px;color:#728096;background:#f8faff;border:1px dashed #c8d8fc;border-radius:0}.technology-history-empty>i{display:grid;place-items:center;width:38px;height:38px;color:#5474bc;background:#edf3ff;border-radius:0}.technology-history-empty strong,.technology-history-empty span{display:block}.technology-history-empty strong{color:#344862;font-size:14px}.technology-history-empty span{margin-top:2px;font-size:12px}
@media(max-width:768px){.technology-form-heading,.technology-follow-up-head{flex-direction:column}.technology-training-grid{grid-template-columns:1fr}.technology-follow-up-card{padding:18px}.technology-due-chip{white-space:normal}.technology-history-head{align-items:flex-start}}

/* =========================================================
   Analytics Dashboard - Core KPI and visualization layer
   ========================================================= */
.dashboard-shell{display:flex;flex-direction:column;gap:20px;padding-bottom:30px}.dashboard-kpi-section,.dashboard-panel{background:#fff;border:1px solid #d6e2fd;border-radius:0;box-shadow:0 5px 18px rgba(27,43,71,.05)}.dashboard-kpi-section{padding:20px}.dashboard-section-head,.dashboard-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px}.dashboard-section-head{margin-bottom:15px}.dashboard-kicker{display:block;text-transform:none;letter-spacing:.08em;font-size:.75rem;font-weight:600;color:#6f7f96;margin-bottom:4px}.dashboard-section-head h3,.dashboard-panel-head h3{margin:0;color:#172b55;font-size:1rem;font-weight:600}.dashboard-section-head p{margin:4px 0 0;color:#8390a3;font-size:.75rem}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.dashboard-kpi-card{min-width:0;border:1px solid #d9e4fd;border-radius:0;padding:15px;display:flex;gap:11px;background:linear-gradient(180deg,#fff,#fafcff)}.dashboard-kpi-icon{width:38px;height:38px;flex:0 0 auto;border-radius:0;display:grid;place-items:center;font-size:1rem}.dashboard-kpi-card.blue .dashboard-kpi-icon{background:#eaf1ff;color:#2967dc}.dashboard-kpi-card.green .dashboard-kpi-icon{background:#eaf8ef;color:#19874b}.dashboard-kpi-card.violet .dashboard-kpi-icon{background:#eef3ff;color:#1d4ed8}.dashboard-kpi-card.amber .dashboard-kpi-icon{background:#fff4df;color:#b77718}.dashboard-kpi-card.orange .dashboard-kpi-icon{background:#fff0e7;color:#c76827}.dashboard-kpi-body{min-width:0;flex:1}.dashboard-kpi-body>span{display:block;color:#66778f;font-size:.75rem;font-weight:600}.dashboard-kpi-body>strong{display:block;color:#172b55;font-size:1.35rem;line-height:1.15;margin-top:4px}.dashboard-kpi-body>strong.kpi-unavailable{font-size:.875rem;color:#9a7a35}.dashboard-kpi-body small{display:block;color:#8996a8;font-size:.75rem;line-height:1.35;margin-top:4px;min-height:28px}.dashboard-progress{height:5px;background:#e5edfe;border-radius:0;overflow:hidden;margin-top:8px}.dashboard-progress i{display:block;height:100%;border-radius:inherit;background:#2868df}.dashboard-kpi-card.green .dashboard-progress i{background:#1c9b5a}.dashboard-kpi-card.violet .dashboard-progress i{background:#7447db}.dashboard-kpi-card.orange .dashboard-progress i{background:#e18a26}.dashboard-chart-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.dashboard-panel{padding:19px;min-width:0}.dashboard-wide{grid-column:1/-1}.dashboard-panel-note{color:#8a97a9;font-size:.75rem}.dashboard-column-chart{height:205px;display:flex;align-items:flex-end;gap:8px;padding:14px 5px 0;border-bottom:1px solid #dbe5fd}.dashboard-column{height:100%;flex:1;min-width:22px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.dashboard-column-value{font-size:.75rem;font-weight:600;color:#52657d}.dashboard-column-track{height:155px;width:min(28px,80%);background:#ebf1fe;border-radius:0;display:flex;align-items:flex-end;overflow:hidden}.dashboard-column-track i{display:block;width:100%;background:linear-gradient(180deg,#5b8cf0,#1454e8);border-radius:0}.dashboard-column small{font-size:.75rem;color:#8996a8}.dashboard-legend{display:flex;gap:15px;margin-top:9px;color:#8190a3;font-size:.75rem}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.legend-dot.blue{background:#2868df}.dashboard-status-chart{display:flex;flex-direction:column;gap:17px;padding-top:13px}.dashboard-status-label{display:flex;justify-content:space-between;margin-bottom:6px;color:#5f7087;font-size:.75rem}.dashboard-status-label strong{color:#233958}.dashboard-status-track{height:10px;background:#e5edfe;border-radius:0;overflow:hidden}.dashboard-status-track i{display:block;height:100%;border-radius:inherit}.dashboard-status-track .completed{background:#1e9c5b}.dashboard-status-track .ongoing{background:#e18a26}.dashboard-status-track .pending{background:#8393a8}.dashboard-status-track .cancelled{background:#c94b58}.dashboard-program-list{display:flex;flex-direction:column;gap:13px;margin-top:15px}.dashboard-program-row{display:grid;grid-template-columns:minmax(150px,1.3fr) repeat(3,minmax(150px,1fr));gap:15px;align-items:center}.dashboard-program-name{font-size:.75rem;font-weight:600;color:#344862;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-metric-bar{display:grid;grid-template-columns:61px 1fr 38px;align-items:center;gap:6px;font-size:.75rem;color:#8290a3}.dashboard-metric-bar div{height:7px;background:#e5edfe;border-radius:0;overflow:hidden}.dashboard-metric-bar i{display:block;height:100%;border-radius:inherit}.dashboard-metric-bar i.blue{background:#2868df}.dashboard-metric-bar i.green{background:#1e9c5b}.dashboard-metric-bar i.orange{background:#e18a26}.dashboard-metric-bar strong{font-size:.75rem;color:#445873;text-align:right}.dashboard-score-bars{display:flex;flex-direction:column;gap:15px;margin-top:18px}.dashboard-score-bars>div:not(.dashboard-gain){display:grid;grid-template-columns:65px 1fr 45px;align-items:center;gap:9px;font-size:.75rem;color:#697b92}.dashboard-score-bars>div:not(.dashboard-gain)>div{height:11px;background:#e5edfe;border-radius:0;overflow:hidden}.dashboard-score-bars>div:not(.dashboard-gain) i{display:block;height:100%;background:#91a6c6;border-radius:inherit}.dashboard-score-bars>div:not(.dashboard-gain) i.post{background:#1e9c5b}.dashboard-score-bars strong{text-align:right;color:#253a59;font-size:.75rem}.dashboard-gain{display:flex;align-items:center;gap:8px;background:#eef8f2;border:1px solid #d7eddf;border-radius:0;padding:10px;color:#197644}.dashboard-gain i{font-size:1rem}.dashboard-gain strong{font-size:.875rem}.dashboard-gain small{color:#6a8d76;font-size:.75rem}.dashboard-adoption{display:flex;align-items:center;justify-content:center;gap:28px;min-height:170px}.dashboard-donut{--value:0;width:125px;height:125px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#1e9c5b calc(var(--value)*1%),#dce6fd 0);position:relative}.dashboard-donut:after{content:"";position:absolute;width:84px;height:84px;border-radius:50%;background:#fff}.dashboard-donut span{position:relative;z-index:1;color:#172b55;font-size:1.25rem;font-weight:600}.dashboard-adoption-copy{font-size:.75rem;color:#65778e;line-height:2}.dashboard-adoption-copy i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dashboard-adoption-copy i.active{background:#1e9c5b}.dashboard-adoption-copy i.inactive{background:#c94b58}.dashboard-adoption-copy strong{color:#30455f}.dashboard-adoption-copy small{display:block;color:#8a97a9;font-size:.75rem;line-height:1.3;margin-top:5px}.dashboard-empty{min-height:150px;display:grid;place-items:center;text-align:center;color:#8a97a9;font-size:.75rem;padding:20px}.dashboard-supporting-note{display:flex;gap:11px;align-items:flex-start;padding:14px 17px;background:#f2f6ff;border:1px solid #dce6fa;border-radius:0;color:#64748a}.dashboard-supporting-note>i{color:#326be0;font-size:1rem}.dashboard-supporting-note strong,.dashboard-supporting-note span{display:block}.dashboard-supporting-note strong{font-size:.75rem;color:#243b5d}.dashboard-supporting-note span{font-size:.75rem;line-height:1.45;margin-top:2px}
@media(max-width:1250px){.dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-program-row{grid-template-columns:1.2fr repeat(3,1fr)}}
@media(max-width:900px){.dashboard-chart-grid{grid-template-columns:1fr}.dashboard-wide{grid-column:auto}.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-program-row{grid-template-columns:1fr}.dashboard-metric-bar{grid-template-columns:75px 1fr 45px}}
@media(max-width:560px){.dashboard-kpi-grid{grid-template-columns:1fr}.dashboard-section-head,.dashboard-panel-head{align-items:flex-start;flex-direction:column}.dashboard-panel{padding:15px}.dashboard-kpi-section{padding:15px}.dashboard-column-chart{gap:4px}.dashboard-adoption{flex-direction:column;gap:15px}}
.dashboard-target-chart{display:flex;flex-direction:column;gap:16px;margin-top:18px}.dashboard-target-chart>div{display:grid;grid-template-columns:50px 1fr 55px;align-items:center;gap:9px;font-size:.75rem;color:#708198}.dashboard-target-chart>div>div{height:12px;background:#e5edfe;border-radius:0;overflow:hidden}.dashboard-target-chart i{display:block;height:100%;background:#91a6c6;border-radius:inherit}.dashboard-target-chart i.actual{background:#1e9c5b}.dashboard-target-chart strong{text-align:right;color:#314862;font-size:.75rem}.dashboard-target-chart p{margin:0;color:#8795a8;font-size:.75rem;line-height:1.45}.dashboard-budget-total{display:flex;justify-content:space-between;align-items:flex-end;margin-top:18px}.dashboard-budget-total span{color:#7b8a9e;font-size:.75rem}.dashboard-budget-total strong{color:#172b55;font-size:1.2rem}.dashboard-budget-track{height:10px;background:#e5edfe;border-radius:0;overflow:hidden;margin:13px 0 15px}.dashboard-budget-track i{display:block;height:100%;background:linear-gradient(90deg,#2868df,#32a1ec);border-radius:inherit}.dashboard-budget-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.dashboard-budget-grid div{background:#f5f8fe;border-radius:0;padding:9px}.dashboard-budget-grid span,.dashboard-budget-grid strong{display:block}.dashboard-budget-grid span{font-size:.75rem;color:#8795a8}.dashboard-budget-grid strong{font-size:.75rem;color:#3c5069;margin-top:3px}
.dashboard-target-full{width:100%}.dashboard-program-heading{font-weight:600}.dashboard-note-spaced{margin-top:12px}

/* ============================================================
   Professional refinement layer
   Shared clarity, accessibility and responsive behavior.
   ============================================================ */
body{line-height:1.6;}

/* Typography system: display headings + readable Poppins UI/body text. */
h1,h2,h3,h4,.cics-page-head h2,.project-wizard-head h4,.budget-head h2,.login-card h2,.dashboard-section-head h3,.dashboard-panel-head h3{
  font-family: "Poppins";
  font-weight:400;
  letter-spacing:.025em;
}
p,span,label,input,select,textarea,table,.form-control,.form-select{font-family: "Poppins";}
.btn,button,.sidebar-link,.navbar,.nav-link,.dropdown-item,.cics-primary-btn,.list-filter-clear{
  font-family: "Poppins";
  font-weight:600;
}
.stat-num,.dashboard-kpi-body>strong,.dashboard-donut span,.summary-box strong,.project-view-stat span,.quick-stat-row b,.overview-legend b,.dashboard-budget-total strong,.dashboard-budget-grid strong{
  font-family: "Poppins";
  font-weight:600;
}
.user-menu-static{cursor:default;}
.user-menu-static:hover{background:transparent;}
a,button,input,select,textarea{outline-offset:3px;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(36,82,232,.28)!important;
  outline-offset:2px;
}

.sidebar-brand{align-items:center;}
.sidebar-brand-copy{min-width:0;}
.sidebar-brand-copy strong{display:block;font-size:14px;font-weight:600;color:var(--ink-900);line-height:1.3;}
.sidebar-brand-copy span{display:block;font-size:12px;color:var(--ink-500);line-height:1.35;margin-top:3px;}
.sidebar-link{min-height:42px;}
.sidebar-link i{width:20px;text-align:center;font-size:16px;}

.app-main>.navbar{height:72px;}
.topbar-context{min-width:0;}
.topbar-page-copy{min-width:0;}
.topbar-page-copy span,.topbar-page-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.topbar-page-copy span{font-size:12px;line-height:1.2;color:var(--ink-500);text-transform:none;letter-spacing:.06em;font-weight:600;}
.topbar-page-copy strong{font-size:16px;line-height:1.3;color:var(--ink-900);margin-top:2px;}
.topbar-icon-btn{width:44px;height:44px;border:0;border-radius:0;background:var(--bg);color:var(--ink-700);display:grid;place-items:center;font-size:20px;}
.topbar-icon-btn:hover{background:var(--blue-50);color:var(--blue-700);}
.notification-menu{width:min(420px,calc(100vw - 32px));max-height:min(520px,70vh);overflow-y:auto;}
.notification-menu .dropdown-item{padding:11px 13px;}
.user-menu-button{border:0;background:transparent;border-radius:0;display:flex;align-items:center;gap:10px;padding:4px 7px 4px 4px;color:var(--ink-700);}
.user-menu-button:hover{background:var(--bg);}
.user-menu-copy{text-align:left;}
.user-menu-copy strong,.user-menu-copy small{display:block;white-space:nowrap;}
.user-menu-copy strong{font-size:14px;font-weight:600;color:var(--ink-900);line-height:1.3;}
.user-menu-copy small{font-size:12px;color:var(--ink-500);margin-top:1px;}
.user-dropdown-menu{min-width:250px;}
.user-dropdown-summary{padding:9px 13px;}
.user-dropdown-summary strong,.user-dropdown-summary span{display:block;}
.user-dropdown-summary strong{font-size:14px;color:var(--ink-900);}
.user-dropdown-summary span{font-size:12px;color:var(--ink-500);margin-top:2px;overflow-wrap:anywhere;}
.user-dropdown-menu .dropdown-item{display:flex;align-items:center;gap:9px;padding:9px 13px;font-size:14px;}
.user-table-person{display:flex;align-items:center;gap:10px;}
.user-table-person .avatar-circle{width:34px;height:34px;font-size:12px;}
.user-table-person strong{color:var(--ink-900);font-size:14px;}
.sidebar-backdrop{display:none;position:fixed;inset:0;border:0;background:rgba(15,30,77,.42);z-index:55;}

.app-content{padding:28px 32px 56px;max-width:1440px;}
.cics-page-head{align-items:center;margin-bottom:24px;}
.cics-page-head h2{font-size:32px;line-height:1.1;margin-bottom:6px;}
.cics-page-head p{font-size:14px;line-height:1.55;max-width:760px;}
.cics-primary-btn{min-height:44px;padding:10px 17px;}
.card,.cics-data-card,.cics-form-card{box-shadow:0 3px 14px rgba(21,40,99,.05)!important;}

.form-label,.project-field label,.cics-form-group label{font-size:14px;line-height:1.4;}
.form-control,.form-select{min-height:44px;font-size:14px;}
.required-mark{color:var(--red-600);font-weight:600;margin-left:3px;}
.form-required-note{display:flex;align-items:center;gap:6px;color:var(--ink-500);font-size:12px;margin-top:8px;}
.form-required-note i{color:var(--blue-700);}

.list-filter-bar{padding:13px 14px;gap:11px;border-radius:0;}
.list-filter-bar label{font-size:12px;margin:0 0 6px 2px;color:var(--ink-700);}
.list-filter-bar .form-select,.list-filter-search .cics-search,.activity-filter-search .cics-search,.list-filter-submit{height:42px;}
.list-filter-bar .form-select,.list-filter-search .cics-search input,.activity-filter-search .cics-search input,.list-filter-submit{font-size:14px;}
.list-filter-actions{display:flex;align-items:center;gap:5px;white-space:nowrap;}
.list-filter-clear{min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;color:var(--ink-500);font-size:14px;font-weight:600;}

table{min-width:0;}
.cics-table-wrap,.table-responsive,.table-wrap{-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.cics-data-table{min-width:1000px;}
.activity-table{min-width:1450px;}
.table-responsive>.table{min-width:780px;}
.budget-table{min-width:760px;}
.cics-data-table th{font-size:12px;}
.cics-data-table td{font-size:14px;line-height:1.45;}
.table-sub{font-size:12px;line-height:1.4;}
.cics-row-actions a,.cics-row-actions button,.my-file-menu-btn{width:40px;height:40px;}
.cics-row-actions a:focus-visible,.cics-row-actions button:focus-visible{outline:3px solid rgba(36,82,232,.25);}

.project-wizard-head{padding:22px 24px;}
.project-wizard-head h4{font-size:27px;line-height:1.1;}
.project-step-indicator{font-size:12px;gap:7px;padding-bottom:3px;}
.project-step-indicator button{padding:6px 8px;border-radius:0;}
.project-step-indicator .active{background:var(--blue-50);}
.project-step-indicator .completed{color:var(--green-600);}
.project-step{padding:28px;}
.project-section-title h5{font-size:16px;}
.project-section-title p,.project-help{font-size:14px;line-height:1.5;}
.project-actions{padding:17px 24px;}
.project-actions .btn{min-height:42px;}
.integration-card{border:1px solid var(--line);border-radius:0;background:#fafcff;padding:16px;}
.integration-card.full{grid-column:1/-1;}
.integration-card.evaluation{border-color:#ddd5fa;background:#fbfcff;}
.integration-card-head{display:flex;align-items:center;gap:11px;margin-bottom:14px;}
.integration-card-head>span{width:38px;height:38px;border-radius:0;background:var(--blue-50);color:var(--blue-700);display:grid;place-items:center;flex:0 0 auto;}
.integration-card.evaluation .integration-card-head>span{background:var(--purple-50);color:var(--purple-600);}
.integration-card-head strong,.integration-card-head small{display:block;}
.integration-card-head strong{font-size:14px;color:var(--ink-900);}
.integration-card-head small{font-size:12px;color:var(--ink-500);margin-top:1px;}
.integration-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

/* Login: original two-panel layout, refined with the official CICS mark. */
.login-college-label{font-size:12px;font-weight:600;color:rgba(255,255,255,.85);letter-spacing:.03em;line-height:1.45;}
.login-system-name{font-weight:600!important;color:#fff!important;margin-bottom:26px!important;}
.login-logo{padding:0;overflow:hidden;border:1px solid #cfdcfc;box-shadow:0 7px 18px rgba(20,37,93,.14);}
.login-logo img{display:block;width:100%;height:100%;object-fit:cover;}
.login-card h2{font-size:32px;line-height:1.1;}
.login-card .btn-block{min-height:46px;}
.field-input{min-height:46px;}
.toggle-pass{min-width:44px;min-height:44px;justify-content:center;}
.login-back-link{margin:0!important;}
.login-back-link{text-align:center;font-size:14px;margin-top:18px!important;}
.login-hint{color:var(--ink-500);font-size:14px;margin:-6px 0 18px;}

/* Dashboard: readable labels and balanced cards at ordinary laptop widths. */
.dashboard-shell{gap:22px;}
.dashboard-kpi-section,.dashboard-panel{border-color:var(--line);box-shadow:0 3px 14px rgba(21,40,99,.05);}
.dashboard-kpi-section{padding:22px;}
.dashboard-kicker{font-size:12px;color:#5f7087;margin-bottom:5px;}
.dashboard-section-head h3,.dashboard-panel-head h3{font-size:20px;line-height:1.15;}
.dashboard-section-head p{font-size:14px;line-height:1.5;}
.dashboard-panel-note{font-size:12px;color:#667085;}
.dashboard-data-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:0;background:var(--green-50);color:var(--green-600);font-size:12px;font-weight:600;white-space:nowrap;}
.dashboard-header-controls,.dashboard-year-filter{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.dashboard-header-controls{justify-content:flex-end;}
.dashboard-year-filter label{font-size:12px;font-weight:600;color:#53657f;}
.dashboard-year-filter .form-select{width:auto;min-width:120px;}
.dashboard-year-filter .btn{white-space:nowrap;}
.dashboard-year-note{margin:-6px 0 16px;color:#75849a;font-size:12px;line-height:1.5;}
@media(max-width:560px){.dashboard-header-controls{justify-content:flex-start;}.dashboard-year-filter{width:100%;}.dashboard-year-filter .form-select{flex:1;}}
.dashboard-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:14px;}
.dashboard-kpi-card{padding:17px;min-height:132px;}
.dashboard-kpi-body>span{font-size:12px;color:#53647b;}
.dashboard-kpi-body>strong{font-size:24px;margin-top:5px;}
.dashboard-kpi-body>strong.kpi-unavailable{font-size:14px;line-height:1.35;}
.dashboard-kpi-body small{font-size:12px;color:#667085;min-height:auto;line-height:1.45;}
.dashboard-panel{padding:21px;}
.dashboard-column-value,.dashboard-column small{font-size:12px;}
.dashboard-legend{font-size:12px;}
.dashboard-status-label{font-size:14px;}
.dashboard-program-name{font-size:14px;}
.dashboard-metric-bar{font-size:12px;grid-template-columns:72px 1fr 42px;}
.dashboard-metric-bar strong{font-size:12px;}
.dashboard-score-bars>div:not(.dashboard-gain),.dashboard-score-bars strong{font-size:12px;}
.dashboard-gain strong{font-size:14px;}
.dashboard-gain small{font-size:12px;}
.dashboard-adoption-copy{font-size:14px;line-height:1.8;}
.dashboard-adoption-copy small{font-size:12px;}
.dashboard-empty{font-size:14px;}
.dashboard-supporting-note strong{font-size:14px;}
.dashboard-supporting-note span{font-size:12px;line-height:1.55;}
.dashboard-target-chart>div,.dashboard-target-chart strong{font-size:12px;}
.dashboard-target-chart p{font-size:12px;line-height:1.5;}
.dashboard-budget-total span{font-size:12px;}
.dashboard-budget-grid span{font-size:12px;}
.dashboard-budget-grid strong{font-size:14px;}

/* Bring module-specific legacy pages back to the shared visual system. */
.budget-page,.pv-modal{color:var(--ink-700);}
.budget-head h2{color:var(--ink-900)!important;font-size:32px!important;letter-spacing:.025em;}
.budget-head p{color:var(--ink-500)!important;font-size:14px;line-height:1.55;}
.budget-card,.summary-box,.tree-node{border-color:var(--line)!important;box-shadow:0 3px 14px rgba(21,40,99,.045)!important;}
.budget-card h3{color:var(--navy-900)!important;font-size:16px!important;}
.summary-box small,.tree-subtitle,.tree-node-amount .of,.stat-mini .lbl{color:var(--ink-500)!important;}
.summary-box small{font-size:12px!important;}
.summary-box strong{color:var(--navy-900)!important;}
.stat-mini .lbl{font-size:12px!important;}
.pv-item label,.pv-stat label{font-size:12px!important;color:var(--ink-500)!important;}
.pv-item div{font-size:14px!important;}
.pv-section h6{font-size:14px!important;}

@media(max-width:1100px){
  .topbar-page-copy span{display:none;}
  .dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:860px){
  body.sidebar-open{overflow:hidden;}
  .sidebar-backdrop.show{display:block;}
  .app-content{padding:20px 16px 44px;}
  .topbar-page-copy strong{font-size:16px;}
  .notification-menu{position:fixed!important;top:68px!important;right:16px!important;left:16px!important;width:auto;transform:none!important;}
}
@media(max-width:640px){
  .app-main>.navbar .container-fluid{padding-left:14px!important;padding-right:14px!important;}
  .app-main>.navbar{height:64px;}
  .topbar-page-copy{max-width:150px;}
  .cics-page-head h2{font-size:23px;}
  .cics-page-head p{font-size:14px;}
  .dashboard-kpi-grid{grid-template-columns:1fr;}
  .dashboard-kpi-card{min-height:0;}
  .project-step{padding:20px 17px;}
  .project-actions{padding:15px 17px;}
  .integration-card-grid{grid-template-columns:1fr;}
  .list-filter-actions{width:100%;}
  .list-filter-actions .list-filter-submit{flex:1;}
}


/* Compact dashboard section switcher */
.dashboard-view-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:7px;background:#fff;border:1px solid #d6e2fd;border-radius:0;box-shadow:0 3px 14px rgba(21,40,99,.05)}
.dashboard-view-tab{appearance:none;border:1px solid transparent;background:transparent;color:#63738a;border-radius:0;padding:9px 15px;display:inline-flex;align-items:center;gap:7px;font-size:.75rem;font-weight:600;cursor:pointer;transition:.16s ease}
.dashboard-view-tab:hover{background:#f4f7fe;color:var(--blue-700)}
.dashboard-view-tab.active{background:#edf3ff;border-color:#d7e4ff;color:#1454e8;box-shadow:0 2px 6px rgba(20,84,232,.08)}
.dashboard-view-tab i{font-size:.875rem}
.dashboard-content-grid{min-height:0}
.dashboard-content-grid [data-dashboard-section][hidden]{display:none!important}
@media(max-width:560px){.dashboard-view-tabs{display:grid;grid-template-columns:repeat(2,1fr)}.dashboard-view-tab{justify-content:center;padding:9px 8px}}

/* =========================================================
   Dashboard redesign v2
   ========================================================= */
.dashboard-redesign{gap:16px;padding-bottom:24px}
.dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;border:1px solid #dfe7f3;border-radius:0;background:linear-gradient(135deg,#ffffff 0%,#f6f9ff 100%);box-shadow:0 8px 24px rgba(23,43,85,.06)}
.dashboard-hero-copy{min-width:0}.dashboard-eyebrow{display:inline-flex;align-items:center;gap:7px;color:#1454e8;font-size:12px;font-weight:600;text-transform:none;letter-spacing:.08em;margin-bottom:7px}.dashboard-hero h3{margin:0;color:#122957;font-size:25px;font-weight:600;letter-spacing:-.02em}.dashboard-hero p{margin:6px 0 0;color:#718097;font-size:14px;line-height:1.45}.dashboard-hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.dashboard-hero .dashboard-year-filter{padding:6px 7px 6px 10px;border:1px solid #cfdcfc;border-radius:0;background:#fff}.dashboard-year-filter label{display:flex;align-items:center;gap:6px;color:#50627b;font-size:12px;font-weight:600}.dashboard-year-filter .form-select{border:0;min-width:96px;box-shadow:none;font-size:12px;font-weight:600;color:#233b60;background-color:transparent}.dashboard-year-filter .btn{border-radius:0;padding:6px 11px}.dashboard-live{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:0;background:#edf9f2;color:#1c8150;font-size:12px;font-weight:600}.dashboard-live i{font-size:12px}.dashboard-year-note{display:flex;align-items:flex-start;gap:7px;margin:-3px 2px 0;color:#78869a;font-size:12px;line-height:1.45}.dashboard-year-note i{color:#2868df;margin-top:2px}
.dashboard-kpi-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.dashboard-kpi-strip .dashboard-kpi-card{border:1px solid #d3e0fd;border-radius:0;padding:15px;min-height:118px;background:#fff;box-shadow:0 4px 16px rgba(21,40,99,.045)}.dashboard-kpi-strip .dashboard-kpi-icon{width:36px;height:36px;border-radius:0}.dashboard-kpi-strip .dashboard-kpi-body>span{font-size:12px}.dashboard-kpi-strip .dashboard-kpi-body>strong{font-size:20px}.dashboard-kpi-strip .dashboard-kpi-body small{font-size:12px;line-height:1.35}.dashboard-kpi-strip .dashboard-progress{margin-top:7px;height:4px}
.dashboard-redesign-tabs{position:sticky;top:8px;z-index:8;padding:5px;border:1px solid #cfdcfc;border-radius:0;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 5px 18px rgba(21,40,99,.06)}.dashboard-redesign-tabs .dashboard-view-tab{flex:1;justify-content:center;padding:9px 14px;font-size:12px;border-radius:0}.dashboard-redesign-tabs .dashboard-view-tab.active{background:var(--blue-700);color:#fff;border-color:var(--blue-700);box-shadow:0 4px 10px rgba(53,98,166,.2)}.dashboard-redesign-tabs .dashboard-view-tab.active i{color:#fff}
.dashboard-redesign-grid,.dashboard-monitoring-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:14px;align-items:stretch}.dashboard-redesign-grid [data-dashboard-section][hidden],.dashboard-monitoring-grid [data-dashboard-section][hidden]{display:none!important}.dashboard-redesign .dashboard-panel{padding:18px;border-radius:0;border:1px solid #d3e0fd;box-shadow:0 4px 16px rgba(21,40,99,.045);background:#fff}.dashboard-redesign .dashboard-wide{grid-column:1/-1}.dashboard-redesign .dashboard-panel-head{margin-bottom:11px}.dashboard-redesign .dashboard-panel-head h3{font-size:16px;letter-spacing:-.01em}.dashboard-redesign .dashboard-kicker{font-size:12px;letter-spacing:.09em;color:#71819a}.dashboard-redesign .dashboard-panel-note{font-size:12px}.dashboard-redesign .dashboard-column-chart{height:170px;padding-top:10px}.dashboard-redesign .dashboard-column-track{height:125px;width:min(24px,75%)}.dashboard-redesign .dashboard-column-value,.dashboard-redesign .dashboard-column small{font-size:12px}.dashboard-redesign .dashboard-status-chart{gap:13px;padding-top:4px}.dashboard-redesign .dashboard-status-label{font-size:12px;margin-bottom:5px}.dashboard-redesign .dashboard-status-track{height:8px}.dashboard-highlight-panel{background:linear-gradient(145deg,#122957,#1c448d)!important;border-color:#122957!important;color:#fff}.dashboard-highlight-panel .dashboard-kicker,.dashboard-highlight-panel h3{color:#fff!important}.dashboard-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dashboard-mini-grid>div{padding:11px;border:1px solid rgba(255,255,255,.12);border-radius:0;background:rgba(255,255,255,.08)}.dashboard-mini-grid i{display:block;font-size:14px;color:#bcd2ff;margin-bottom:7px}.dashboard-mini-grid span{display:block;color:#d7e3f8;font-size:12px}.dashboard-mini-grid strong{display:block;color:#fff;font-size:20px;margin-top:2px}.dashboard-target-chart{padding-top:3px}.dashboard-target-chart>div{font-size:12px}.dashboard-target-chart p{font-size:12px;margin-top:12px}.dashboard-redesign .dashboard-program-list{gap:9px;margin-top:9px}.dashboard-redesign .dashboard-program-row{padding:9px 0;border-bottom:1px solid #e4ecfe}.dashboard-redesign .dashboard-program-row:last-child{border-bottom:0}.dashboard-redesign .dashboard-program-name{font-size:12px}.dashboard-redesign .dashboard-metric-bar{font-size:12px;grid-template-columns:65px 1fr 35px}.dashboard-redesign .dashboard-metric-bar strong{font-size:12px}.dashboard-score-bars{margin-top:8px!important;gap:11px!important}.dashboard-redesign .dashboard-score-bars>div:not(.dashboard-gain){font-size:12px;grid-template-columns:58px 1fr 40px}.dashboard-score-bars>div:not(.dashboard-gain)>div{height:9px}.dashboard-gain{padding:9px}.dashboard-gain strong{font-size:12px}.dashboard-gain small{font-size:12px}.dashboard-score-callout{min-height:135px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border-radius:0;background:#f5f8fe;border:1px solid #dfe8fd}.dashboard-score-callout strong{font-size:38px;color:#172b55;line-height:1}.dashboard-score-callout strong small{font-size:16px;color:#8290a3}.dashboard-score-callout span{margin-top:8px;color:#78869a;font-size:12px}.dashboard-budget-total{display:flex;justify-content:space-between;align-items:center}.dashboard-budget-total span{font-size:12px;color:#78869a}.dashboard-budget-total strong{display:block;color:#172b55;font-size:23px;margin-top:2px}.dashboard-budget-percent{font-size:20px;font-weight:600;color:#1454e8}.dashboard-budget-track{height:9px;margin:12px 0;background:#e5edfe;border-radius:0;overflow:hidden}.dashboard-budget-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1454e8,#6d91ef)}.dashboard-budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dashboard-budget-grid>div{padding:9px 10px;border:1px solid #dbe5fd;border-radius:0;background:#f7faff}.dashboard-budget-grid span{display:block;font-size:12px;color:#78869a}.dashboard-budget-grid strong{display:block;font-size:14px;color:#273d5e;margin-top:2px}.dashboard-budget-note{display:flex;gap:7px;margin-top:11px;padding:9px 10px;border-radius:0;background:#f4f7fe;color:#68788f;font-size:12px;line-height:1.4}.dashboard-budget-note i{color:#2868df}.dashboard-resource-stat{display:flex;align-items:center;gap:11px;padding:16px;border-radius:0;background:#f6f8fe;border:1px solid #e1e9fb}.dashboard-resource-stat>i{width:34px;height:34px;display:grid;place-items:center;border-radius:0;background:#e7efff;color:#1454e8}.dashboard-resource-stat span{display:block;color:#7a889b;font-size:12px}.dashboard-resource-stat strong{display:block;color:#172b55;font-size:20px;margin-top:2px}.dashboard-muted{margin:9px 0 0;color:#8793a4;font-size:12px;line-height:1.45}.dashboard-adoption{min-height:135px!important;gap:18px}.dashboard-donut{width:105px;height:105px}.dashboard-donut:after{width:70px;height:70px}.dashboard-donut span{font-size:20px}.dashboard-adoption-copy{font-size:12px!important;line-height:1.8!important}.dashboard-adoption-copy small{font-size:12px}.dashboard-monitoring-grid .dashboard-panel{min-width:0}.dashboard-monitor-list{display:flex;flex-direction:column;gap:0}.dashboard-monitor-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #e4ecfe}.dashboard-monitor-item:last-child{border-bottom:0}.dashboard-monitor-item>div{min-width:0}.dashboard-monitor-item strong{display:block;color:#314862;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-monitor-item small{display:block;color:#8a97a9;font-size:12px;margin-top:2px}.dashboard-monitor-item>b{font-size:16px;color:#1454e8}.dashboard-monitor-item>span{font-size:12px;color:#8a97a9}.dashboard-redesign .dashboard-supporting-note{margin-top:9px;padding:9px 11px;font-size:12px}.dashboard-redesign .dashboard-supporting-note strong{font-size:12px}.dashboard-redesign .dashboard-supporting-note span{font-size:12px}.dashboard-monitoring-grid .dashboard-wide .dashboard-program-row{grid-template-columns:minmax(170px,1.4fr) repeat(6,minmax(100px,1fr))}.dashboard-monitoring-grid .dashboard-program-row>div:not(.dashboard-program-name){font-size:12px;color:#52657d}.dashboard-monitoring-grid .dashboard-program-row>div strong{display:block;margin-top:2px}.dashboard-monitoring-grid .dashboard-program-name small{display:block;font-size:12px;color:#8a97a9;font-weight:500;margin-top:2px}
@media(max-width:1100px){.dashboard-kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-hero{align-items:flex-start}.dashboard-hero-actions{flex-direction:column;align-items:stretch}.dashboard-live{justify-content:center}.dashboard-monitoring-grid .dashboard-wide .dashboard-program-row{grid-template-columns:1fr 1fr}.dashboard-monitoring-grid .dashboard-wide .dashboard-program-row>div{padding:3px 0}}
@media(max-width:860px){.dashboard-hero{flex-direction:column}.dashboard-hero-actions{width:100%;flex-direction:row;justify-content:flex-start}.dashboard-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-redesign-grid,.dashboard-monitoring-grid{grid-template-columns:1fr}.dashboard-redesign .dashboard-wide{grid-column:auto}.dashboard-redesign-tabs{position:static}}
@media(max-width:560px){.dashboard-kpi-strip{grid-template-columns:1fr}.dashboard-hero{padding:18px}.dashboard-hero h3{font-size:20px}.dashboard-hero-actions{display:grid;grid-template-columns:1fr}.dashboard-hero .dashboard-year-filter{width:100%}.dashboard-live{width:max-content}.dashboard-redesign-tabs{display:grid;grid-template-columns:repeat(2,1fr)}.dashboard-redesign-tabs .dashboard-view-tab{padding:9px 6px}.dashboard-budget-grid{grid-template-columns:1fr}.dashboard-monitoring-grid .dashboard-wide .dashboard-program-row{grid-template-columns:1fr}.dashboard-monitor-item{grid-template-columns:minmax(0,1fr) auto auto}}


/* Program / Project month + year period pickers */
.month-year-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:8px}
.project-field input[type="date"]:disabled{background:#eff3fe}

/* Program & Project summary cards */
.program-stat-grid,
.project-stat-grid{margin-bottom:18px;}
.program-stat-grid .stat-card,
.project-stat-grid .stat-card{min-height:112px;}
.program-stat-grid .stat-num,
.project-stat-grid .stat-num{font-size:26px;}
@media (max-width: 720px){
  .program-stat-grid .stat-card,
  .project-stat-grid .stat-card{min-height:104px;}
}

/* Page header action buttons (not table row icons) */
.cics-page-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px;}
.cics-page-actions a,.cics-page-actions button{width:auto;height:auto;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;line-height:1.2;white-space:nowrap;text-decoration:none;border-radius:0;}
@media (max-width:768px){
  .cics-page-actions{width:100%;justify-content:stretch;}
  .cics-page-actions a,.cics-page-actions button{flex:1 1 auto;justify-content:center;}
}

/* Stacked Pre / Post / Eval response counts in Activity Responses table */
.resp-stack{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.35;}
.resp-stack .resp-label{display:inline-block;min-width:34px;color:var(--ink-500);font-weight:600;font-size:12px;}
.resp-stack strong{color:var(--ink-900);}

/* Per-activity satisfaction/evaluation breakdown on the dashboard */
.dashboard-metric-bar i.amber{background:#e1a52c;}
.dashboard-program-row.satisfaction-row{grid-template-columns:minmax(150px,1.6fr) minmax(150px,1fr) 90px;}
.dashboard-program-row.satisfaction-row .dashboard-program-name{white-space:normal;}
.dashboard-program-row.satisfaction-row .dashboard-program-name small{display:block;color:#8a97a9;font-size:12px;font-weight:500;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dashboard-program-row.satisfaction-row>div:last-child{text-align:right;}
.dashboard-program-row.satisfaction-row>div:last-child strong{display:block;color:#172b55;font-size:.875rem;margin-top:2px;}
@media(max-width:900px){.dashboard-program-row.satisfaction-row{grid-template-columns:1fr;gap:6px;}.dashboard-program-row.satisfaction-row>div:last-child{text-align:left;}}
.dashboard-program-row.learning-outcome-row .dashboard-program-name{white-space:normal;}
.dashboard-program-row.learning-outcome-row .dashboard-program-name small{display:block;color:#8a97a9;font-size:12px;font-weight:500;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dashboard-program-row.learning-outcome-row>div:last-child{text-align:right;}
.dashboard-program-row.learning-outcome-row>div:last-child strong{display:block;color:#172b55;font-size:.875rem;margin-top:2px;}
@media(max-width:900px){.dashboard-program-row.learning-outcome-row{grid-template-columns:1fr;gap:6px;}.dashboard-program-row.learning-outcome-row>div:last-child{text-align:left;}}


/* =========================================================
   TECHNOLOGY TRANSFER — aligned with Program / Project UI
========================================================= */
.list-filter-bar.technology-filter-bar{
  grid-template-columns:minmax(240px,1.55fr) repeat(3,minmax(145px,1fr)) auto;
}
.technology-stat-grid{margin-bottom:18px;}
.technology-stat-grid .stat-card{min-height:112px;}
.stat-ic.gray{background:#ebf1fe;color:#667085;}
.pp-ic.pp-technology{background:#eef4ff;color:var(--blue-700);}
.pp-name .table-sub{display:block;margin-top:3px;color:var(--ink-500);}
.technology-table{min-width:900px;}
.technology-table td{vertical-align:middle;}
.tech-follow-up{display:flex;align-items:center;gap:9px;}
.tech-follow-up strong,.tech-follow-up small{display:block;}
.tech-follow-up strong{font-size:14px;color:var(--ink-900);}
.tech-follow-up small{font-size:12px;color:var(--ink-500);margin-top:2px;}
.tech-follow-dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;background:#98a2b3;}
.tech-follow-dot.upcoming{background:#2e90fa;}
.tech-follow-dot.due_soon{background:#f79009;}
.tech-follow-dot.overdue{background:#d92d20;}

.technology-actions{display:flex;align-items:center;gap:6px;}
.technology-view-action,.technology-more-action{
  min-height:40px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--blue-700);
  display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:600;
}
.technology-view-action{padding:0 12px;}
.technology-more-action{width:40px;padding:0;}
.technology-view-action:hover,.technology-more-action:hover{background:var(--blue-50);border-color:#c7d7fe;}
.technology-actions-menu{min-width:205px;padding:6px;}
.technology-actions-menu .dropdown-item{display:flex;align-items:center;gap:9px;border-radius:0;padding:9px 10px;font-size:14px;}
.technology-actions-menu .dropdown-item i{width:18px;text-align:center;}

.notification-menu{padding:0;overflow:hidden;}
.notification-head{
  padding:14px 15px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#fafcff;
}
.notification-head strong{display:block;font-size:14px;color:var(--ink-900);}
.notification-head span:not(.notification-count){display:block;font-size:12px;color:var(--ink-500);margin-top:2px;}
.notification-count{
  min-width:27px;height:27px;padding:0 7px;border-radius:0;background:var(--blue-50);color:var(--blue-700);
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;
}
.notification-menu .notification-item{
  display:flex;align-items:flex-start;gap:11px;padding:12px 14px;white-space:normal;
}
.notification-menu .notification-item:hover{background:#f8faff;}
.notification-icon{
  width:36px;height:36px;border-radius:0;display:grid;place-items:center;flex:0 0 36px;background:#eef4ff;color:var(--blue-700);
}
.notification-icon.activity{background:#fff6ed;color:#e04f16;}
.notification-copy{min-width:0;flex:1;}
.notification-copy strong{display:block;font-size:14px;line-height:1.35;color:var(--ink-900);}
.notification-copy>span{display:block;font-size:12px;line-height:1.45;color:var(--ink-500);margin-top:2px;}
.notification-copy small{display:block;font-size:12px;font-weight:600;color:var(--blue-700);margin-top:5px;}
.notification-arrow{align-self:center;color:#98a2b3;font-size:12px;}

@media (max-width:1100px){
  .list-filter-bar.technology-filter-bar{grid-template-columns:1fr 1fr;}
}
@media (max-width:700px){
  .list-filter-bar.technology-filter-bar{grid-template-columns:1fr;}
  .technology-view-action span{display:none;}
  .technology-view-action{width:40px;padding:0;}
}


/* Technology Transfer table: keep actions/dropdowns visible without an inner scrollbar */
.technology-table-wrap{
  overflow:visible !important;
  max-height:none !important;
  height:auto !important;
}
.technology-table{
  width:100% !important;
  min-width:0 !important;
  table-layout:fixed;
}
.technology-table th:nth-child(1),.technology-table td:nth-child(1){width:24%;}
.technology-table th:nth-child(2),.technology-table td:nth-child(2){width:21%;}
.technology-table th:nth-child(3),.technology-table td:nth-child(3){width:19%;}
.technology-table th:nth-child(4),.technology-table td:nth-child(4){width:20%;}
.technology-table th:nth-child(5),.technology-table td:nth-child(5){width:16%;}
.technology-actions{white-space:nowrap;}
.technology-actions-menu{z-index:1080;}

@media (max-width:900px){
  .technology-table-wrap{overflow-x:auto !important;}
  .technology-table{min-width:760px !important;table-layout:auto;}
}


/* FINAL Technology Transfer action-menu fix:
   Bootstrap dropdowns must be allowed to extend outside the table/card. */
.cics-data-card:has(.technology-table),
.cics-data-card:has(.technology-table) .cics-table-wrap,
.cics-data-card:has(.technology-table) .technology-table-wrap,
.cics-data-card:has(.technology-table) .cics-data-table,
.cics-data-card:has(.technology-table) tbody,
.cics-data-card:has(.technology-table) tr,
.cics-data-card:has(.technology-table) td{
  overflow:visible !important;
}

.cics-data-card:has(.technology-table){
  position:relative;
  z-index:auto;
}
.technology-table td:last-child{
  position:relative;
}
.technology-actions .dropdown{
  position:static;
}
.technology-actions-menu{
  position:absolute !important;
  z-index:9999 !important;
  min-width:210px;
}

/* Give the final rows enough visual room when their action menu is opened,
   without creating a scrollbar. */
.technology-table tbody tr:last-child td{
  padding-bottom:18px;
}

@media (max-width:900px){
  .cics-data-card:has(.technology-table) .technology-table-wrap{
    overflow-x:auto !important;
    overflow-y:visible !important;
  }
}

.technology-data-card,
.technology-data-card .technology-table-wrap{
  overflow:visible !important;
  max-height:none !important;
}
.technology-data-card{
  padding-bottom:8px;
}


/* Technology Transfer modal interaction fix */
.modal{z-index:1055 !important;}
.modal-backdrop{z-index:1050 !important;}
.modal-dialog,.modal-content,.modal form,.modal button,.modal input,.modal textarea{
  pointer-events:auto !important;
}
.technology-actions-menu.show{z-index:1040 !important;}
body.modal-open .technology-actions-menu{display:none !important;}


/* FINAL modal click fix:
   Do not let the Technology Transfer card create a stacking context below
   Bootstrap's body-level backdrop. */
.technology-data-card{
  position:relative !important;
  z-index:auto !important;
}

/* Bootstrap modal/backdrop standard stacking order. */
.modal-backdrop.show{
  z-index:1040 !important;
  pointer-events:auto;
}
.modal.show{
  z-index:1055 !important;
  pointer-events:auto !important;
}
.modal.show .modal-dialog,
.modal.show .modal-content{
  position:relative;
  z-index:1;
  pointer-events:auto !important;
}


/* Coordinator-entered summary for printed / face-to-face activity evaluations */
.evaluation-summary-card{padding:0 0 18px;overflow:hidden;}
.evaluation-summary-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:18px;}
.evaluation-summary-meta>div,.evaluation-live-result>div{border:1px solid #d9e4fd;border-radius:0;padding:12px 14px;background:#fff;}
.evaluation-summary-meta span,.evaluation-live-result span{display:block;font-size:.75rem;color:#7a8799;margin-bottom:4px;}
.evaluation-summary-meta strong,.evaluation-live-result strong{color:#172b55;}
.evaluation-rating-list{padding:8px 18px 0;}
.evaluation-rating-row{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(180px,.7fr);gap:18px;align-items:end;padding:13px 0;border-bottom:1px solid #e3ebfe;}
.evaluation-rating-row:last-child{border-bottom:0;}
.evaluation-rating-value{display:flex;align-items:center;gap:12px;}
.evaluation-rating-value>strong{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#eef3ff;color:#1d4ed8;font-size:1rem;}
.evaluation-rating-value>span{font-weight:600;color:#32425f;}
.evaluation-live-result{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 18px 0;}
.evaluation-summary-card>.budget-note,.evaluation-summary-card>.d-flex{margin-left:18px;margin-right:18px;}
@media(max-width:900px){.evaluation-summary-meta,.evaluation-live-result{grid-template-columns:1fr 1fr;}.evaluation-rating-row{grid-template-columns:1fr;}}
@media(max-width:600px){.evaluation-summary-meta,.evaluation-live-result{grid-template-columns:1fr;}}

/* Consistent calendar-period filters */
.quarter-filter-control,.period-filter-field { min-width:155px; display:flex; flex-direction:column; gap:6px; }
.quarter-filter-control label,.period-filter-field label { margin:0; color:#526080; font-size:12px; font-weight:600; line-height:1.2; }
.quarter-filter-control .form-select,.period-filter-field .form-select { min-height:40px; border-color:#d0ddfc; border-radius:0; font-size:14px; width:100%; }
.dashboard-year-filter,.budget-year-control,.targets-year-form.period-filter-panel { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; padding:12px 14px; border:1px solid #d6e2fd; border-radius:0; background:#f8faff; margin:0; }
.dashboard-year-filter>.btn,.budget-year-control>.btn,.period-filter-panel>.btn { min-height:40px; white-space:nowrap; border-radius:0; }
.dashboard-year-filter #dashboardYear { min-width:110px; min-height:40px; border-radius:0; }
.targets-year-form.period-filter-panel select { width:100%; }
.targets-year-form.period-filter-panel .period-filter-field:first-child { min-width:110px; }
.budget-year-control>label { align-self:center; margin:0; font-size:12px; }
.budget-year-control>select { width:110px; min-height:40px; }
.list-filter-bar { align-items:end; gap:12px; }
.list-filter-bar .quarter-filter-control { min-width:155px; }
.reports-filter-grid { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); align-items:end; }
.my-files-search-form { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }
.my-files-search-form .my-files-search-box { flex:1; min-width:240px; }
@media(max-width:760px) {
 .dashboard-year-filter,.budget-year-control,.targets-year-form.period-filter-panel { width:100%; }
 .quarter-filter-control,.period-filter-field { flex:1; min-width:140px; }
 .dashboard-year-filter>.btn,.budget-year-control>.btn,.period-filter-panel>.btn { flex:0 0 auto; }
 .compact-dashboard-toolbar { justify-content:flex-start; flex-wrap:wrap; }
 .list-filter-bar { flex-wrap:wrap; }
}
@media(max-width:440px) {
 .period-filter-panel>.btn,.dashboard-year-filter>.btn { width:100%; }
 .my-files-search-form .my-files-search-box { min-width:100%; }
}

.list-filter-bar:has(.quarter-filter-control){grid-template-columns:repeat(auto-fit,minmax(165px,1fr));align-items:end;}
.list-filter-bar:has(.quarter-filter-control)>div{min-width:0;}
.list-filter-bar:has(.quarter-filter-control) .cics-search{min-width:0;}
@media(max-width:600px){.list-filter-bar:has(.quarter-filter-control){grid-template-columns:1fr;}.list-filter-bar:has(.quarter-filter-control) .list-filter-actions{justify-content:flex-start;}}

/* Response Links: manual (printed) result shortcuts, evenly sized and aligned. */
.manual-entry-panel{margin-top:22px;padding-top:18px;border-top:1px solid #d6e2fd;}
.manual-entry-panel h5{margin:0 0 4px;}
.manual-entry-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:720px;}
.manual-entry-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;padding:10px 14px;}
@media(max-width:700px){.manual-entry-actions{grid-template-columns:1fr;}}

/* ---- Sharp corners: override Bootstrap's default rounding ---- */
:root{
  --bs-border-radius:0;--bs-border-radius-sm:0;--bs-border-radius-lg:0;
  --bs-border-radius-xl:0;--bs-border-radius-xxl:0;--bs-border-radius-2xl:0;--bs-border-radius-pill:0;
}
.btn,.form-control,.form-select,.input-group-text,.card,.card-header,.card-footer,.modal-content,
.dropdown-menu,.dropdown-item,.badge,.alert,.toast,.list-group,.list-group-item,.progress,
.progress-bar,.page-link,.nav-pills .nav-link,.nav-tabs .nav-link,.accordion-item,.accordion-button,
.popover,.tooltip-inner,.table-responsive,.form-check-input[type="checkbox"]{border-radius:0!important}

/* ---- On-brand blue tints instead of neutral grays in containers ---- */
:root{
  --bs-border-color:var(--line);--bs-border-color-translucent:rgba(29,78,216,.15);
  --bs-light:var(--blue-50);--bs-light-rgb:238,243,255;
  --bs-secondary-bg:var(--blue-50);--bs-tertiary-bg:var(--bg);
}
.bg-light,.text-bg-light,.table-light,.card-header,.card-footer,.modal-header,.modal-footer,
.list-group-item-light,.accordion-button:not(.collapsed){background-color:var(--blue-50)!important}
.border,.border-top,.border-bottom,.border-start,.border-end{border-color:var(--line)!important}
.modal-header,.modal-footer,.card-header,.card-footer,.dropdown-divider,hr{border-color:var(--line)}
.form-control,.form-select,.input-group-text{border-color:#c9d8fb}
.form-control:disabled,.form-select:disabled,.form-control[readonly]{background-color:var(--blue-50)}
.table{--bs-table-border-color:var(--line);--bs-table-striped-bg:var(--blue-50);--bs-table-hover-bg:var(--blue-50)}
.btn-secondary{background:var(--blue-50)!important;border-color:#c9d8fb!important;color:var(--blue-700)!important}
.btn-secondary:hover{background:#dfe8ff!important}
.btn-outline-secondary{border-color:#c9d8fb!important;color:var(--blue-700)!important}
.btn-outline-secondary:hover{background:var(--blue-50)!important}

/* ============================================================
   CLEAN & SIMPLE LAYER
   One accent (blue), flat cards, quiet tables, simple forms.
   Type scale: 12 / 14 / 16 / 20 / 24 — weights 400 / 600.
   Spacing scale: 8 / 16 / 24 / 32.
   ============================================================ */
:root{--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;}
body{font-size:14px;font-weight:400;}
h1,h2,h3,h4,h5,h6{font-weight:600;}
.page-head h2,.app-content h1{font-size:24px;}
.section-card h3,.dashboard-section-head h3,.dashboard-panel-head h3,.card-header h5,.card-header h6{font-size:16px;font-weight:600;}
.dashboard-kicker,.nav-label,.stat-sub{font-size:12px;font-weight:400;color:var(--ink-500);letter-spacing:0;}

/* 1 · One accent: decorative icon tints all become blue */
.stat-ic,.stat-ic.blue,.stat-ic.green,.stat-ic.orange,.stat-ic.purple,
.dashboard-kpi-icon,.dashboard-kpi-card .dashboard-kpi-icon,
.dashboard-kpi-card.blue .dashboard-kpi-icon,.dashboard-kpi-card.green .dashboard-kpi-icon,
.dashboard-kpi-card.violet .dashboard-kpi-icon,.dashboard-kpi-card.amber .dashboard-kpi-icon,
.dashboard-kpi-card.orange .dashboard-kpi-icon,
.attn-ic,.attn-ic.a1,.attn-ic.a2,.attn-ic.a3,.pp-ic,.qa .qa-ic,.tech-summary-icon,
.tech-summary-icon.blue,.tech-summary-icon.green,.tech-summary-icon.orange,.tech-summary-icon.purple,
.notification-icon{background:var(--blue-50)!important;color:var(--blue-700)!important}
.badge-role.lead,.badge-role.co,.badge-role.support,.badge-type.program,.badge-type.project{background:var(--blue-50);color:var(--blue-700)}
.bar-fill.green,.bar-fill.orange,.bar-fill.blue{background:var(--blue-700)}

/* 2 · Fewer boxes: flat white cards, one hairline border, no shadow */
.card,.dashboard-kpi-section,.dashboard-panel,.project-form,.table-card,.section-card{
  background:#fff;border:1px solid var(--line)!important;box-shadow:none!important}
.card-header,.modal-header,.modal-footer{background:#fff!important;border-color:var(--line)!important}
.dashboard-kpi-card{border:0;background:none;padding:0 var(--space-2);box-shadow:none}
.dashboard-kpi-card+.dashboard-kpi-card{border-left:1px solid var(--line)}
.qa{background:transparent;border-color:transparent}
.qa:hover{background:var(--blue-50);box-shadow:none;border-color:transparent}
.qa .qa-ic{box-shadow:none}
.dashboard-budget-grid div,.summary-box{background:transparent;border:0;padding:0}
.modal-content{box-shadow:var(--shadow-pop)}

/* 3 · Stats: keep icons, large number */
.stat-card{padding:var(--space-3);gap:4px}
.stat-top{margin-bottom:6px}
.stat-num,.dashboard-kpi-body>strong{font-size:32px;font-weight:600;line-height:1.2;color:var(--ink-900)}
.stat-label,.dashboard-kpi-body>span{font-size:12px;font-weight:400;color:var(--ink-500)}
.stat-link{font-weight:600}

/* 4/5 · Spacing scale for the main containers */
.app-content{padding:var(--space-4) var(--space-4) 48px}
.page-head{margin-bottom:var(--space-3)}
.stat-grid,.section-grid,.dashboard-shell{gap:var(--space-3);margin-bottom:var(--space-3)}
.dashboard-kpi-grid,.dashboard-chart-grid{gap:var(--space-2)}
.dashboard-kpi-section,.dashboard-panel,.card-pad,.card-body{padding:var(--space-3)!important}
.card-header{padding:var(--space-2) var(--space-3)!important}
.section-head{padding:var(--space-3) var(--space-3) 0}
.section-body{padding:var(--space-2) var(--space-2) var(--space-3)}
.project-grid{gap:var(--space-2)}

/* 6 · Buttons: one filled primary, everything else quiet */
.btn{font-size:14px;font-weight:600;box-shadow:none!important}
.btn-secondary,.btn-light,.btn-outline-primary,.btn-outline-secondary,.btn-outline{
  background:#fff!important;color:var(--ink-700)!important;border:1px solid var(--line)!important}
.btn-secondary:hover,.btn-light:hover,.btn-outline-primary:hover,.btn-outline-secondary:hover,.btn-outline:hover{
  background:var(--blue-50)!important;color:var(--blue-700)!important;border-color:#c9d8fb!important}
.btn-outline-danger{background:#fff!important;color:var(--red-600)!important;border:1px solid var(--line)!important}
.btn-outline-danger:hover{background:var(--red-50)!important}

/* 7 · Tables: thin rules, no header fill, no stripes, quiet hover, row actions on hover */
thead th,.table>thead>tr>th{background:transparent!important;font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.04em;color:var(--ink-500)}
tbody tr:hover,.table-hover>tbody>tr:hover>*{background:var(--blue-50)}
.table{--bs-table-striped-bg:transparent;--bs-table-hover-bg:var(--blue-50)}
.table-light,.table-light>*{--bs-table-bg:transparent!important;background:transparent!important}
@media (hover:hover){
  tbody tr .row-actions{opacity:.55;transition:opacity .15s}
  tbody tr:hover .row-actions{opacity:1}
}
.empty-row td{padding:var(--space-4) var(--space-2)}

/* 8 · Forms: one column, labels above, no required-fields banner */
.project-grid{grid-template-columns:minmax(0,1fr);max-width:760px}
.form-required-note{display:none}
.form-label,.project-field label{font-size:14px;font-weight:600;color:var(--ink-700)}
.form-control,.form-select{min-height:44px}
.cics-info-note,.budget-note,.project-field-hint{background:transparent!important;border:0!important;
  padding:0!important;color:var(--ink-500)!important;font-size:12px;font-weight:400}

/* 9 · Sidebar: text + icon, active = light fill with blue bar */
.sidebar-link{font-weight:400;color:var(--ink-700);border-left:3px solid transparent;padding:10px 12px}
.sidebar-link:hover{background:var(--blue-50);color:var(--blue-700)}
.sidebar-link.active,.nav-item.active{background:var(--blue-50);color:var(--blue-700);font-weight:600;border-left-color:var(--blue-700)}
.nav-item{font-weight:400}
.app-main>.navbar{box-shadow:none}

/* 10 · Empty states: one quiet line */
.dashboard-empty,.empty-budget,.empty-row td{background:transparent;border:0;color:var(--ink-500);
  font-size:14px;text-align:center;padding:var(--space-4) var(--space-2)}
.dashboard-empty i,.empty-budget i{display:none}

/* ---- Light blue table headers & section titles ---- */
thead th,.table>thead>tr>th,.table-light th,.table>thead.table-light>tr>th,
.cics-data-table thead th,.budget-table th,.evaluation-summary-page #tallyTable th,
.technology-history .table th{
  background:#eef3fb!important;color:#355070!important;border-color:#dce5f0!important;
  font-size:14px!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important}
thead th small,.evaluation-summary-page #tallyTable th small{color:#475467!important}
.table-light{--bs-table-bg:#eef3fb!important;--bs-table-color:#355070!important}
.cics-section-head,.section-head,.dashboard-panel-head,.card-header{color:var(--blue-700)}
.cics-section-head>strong,.cics-section-head,.section-head h3,.dashboard-panel-head h3,
.dashboard-section-head h3,.card-header h5,.card-header h6,.card-header strong{color:var(--blue-700)!important;font-weight:600}
.cics-section-head span,.cics-section-head b{color:var(--ink-500)}
.cics-section-head b{color:var(--ink-700)}

/* ---- Record view modal / details page: win over the global !important header & table rules ---- */
.modal-content .project-view-header,.modal-content .pv-modal-header{
  background:radial-gradient(120% 160% at 100% 0,rgba(91,140,255,.45) 0,transparent 55%),linear-gradient(135deg,#0f1e4d 0%,#1d3fb8 100%)!important;
  color:#fff!important;border:0!important}
.project-view-modal .modal-footer,.pv-modal .modal-footer{background:#fff!important}
.project-view-section .table thead th,.pv-section .table thead th,.td-table thead th{
  background:#f3f6fd!important;color:#5a6b86!important;font-size:.6875rem!important;border-bottom:1px solid #dbe5fb!important}
.project-view-section .table thead th small,.pv-section .table thead th small{color:#5a6b86!important}
.td-card .table.td-table>thead>tr>th,.project-view-section .table>thead>tr>th,.pv-section .table>thead>tr>th{
  background:#f3f6fd!important;color:#5a6b86!important;border-color:#dbe5fb!important;
  font-size:.6875rem!important;letter-spacing:.07em!important;text-transform:uppercase!important}

/* ---- Users table: aligned action buttons ---- */
.user-actions-cell{width:1%;white-space:nowrap;vertical-align:middle}
.user-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap}
.user-action-form{display:inline-flex;margin:0}
.user-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:112px;height:34px;padding:0 12px;
  font-size:.8125rem;font-weight:500;line-height:1;white-space:nowrap}
.user-action-btn i{font-size:.9rem;line-height:1}
@media(max-width:991.98px){.user-actions{flex-direction:column;align-items:stretch}.user-action-btn{width:100%}}
.user-action-btn.btn-outline-warning{color:#8a4b00;background:#fff;border:1px solid #e3b25a}
.user-action-btn.btn-outline-warning:hover{color:#6b3a00;background:#fff4dc;border-color:#d98a0b}
.user-action-btn.btn-outline-success{color:#0f6b43;background:#fff;border:1px solid #7cc7a0}
.user-action-btn.btn-outline-success:hover{color:#0b5535;background:#e8f8ee;border-color:#12875a}

/* ---- Users table: soft, rounded action buttons + status pill ---- */
.user-actions{gap:8px}
.user-action-btn,.user-action-btn.btn{min-width:108px;height:36px;padding:0 14px 0 12px;gap:7px;font-size:.8125rem;font-weight:500;letter-spacing:.01em;
  border-radius:10px!important;border:1px solid transparent;box-shadow:none;
  transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.user-action-btn i{font-size:.95rem}
.user-action-btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(21,40,99,.12)}
.user-action-btn:active{transform:none;box-shadow:none}
.user-action-btn:focus-visible{outline:3px solid rgba(59,107,240,.28);outline-offset:1px}
.user-action-btn.btn-outline-primary{color:var(--blue-700)!important;background:#eaf1ff!important;border-color:#d4e2ff!important}
.user-action-btn.btn-outline-primary:hover{color:#fff!important;background:var(--blue-700)!important;border-color:var(--blue-700)!important}
.user-action-btn.btn-outline-warning{color:#8a4b00!important;background:#fff3dc!important;border-color:#fbe2b0!important}
.user-action-btn.btn-outline-warning:hover{color:#fff!important;background:#d98a0b!important;border-color:#d98a0b!important}
.user-action-btn.btn-outline-success{color:#0f6b43!important;background:#e5f6ee!important;border-color:#c3e8d5!important}
.user-action-btn.btn-outline-success:hover{color:#fff!important;background:#12875a!important;border-color:#12875a!important}
.user-action-btn.btn-outline-danger{color:#b42318!important;background:#feeceb!important;border-color:#fbd3d0!important}
.user-action-btn.btn-outline-danger:hover{color:#fff!important;background:#d0361f!important;border-color:#d0361f!important}
.user-status{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 10px;font-size:.75rem;font-weight:600;line-height:1.2;border-radius:999px}
.user-status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.user-status.is-active{color:#0f6b43;background:#e5f6ee}
.user-status.is-inactive{color:#5b6b82;background:#eceff5}

/* ---- Users table: vertical centering + perfectly round avatars ---- */
.user-row>td{vertical-align:middle!important}
.user-table-person{display:flex;align-items:center;gap:12px;min-width:0}
.user-table-person .avatar-circle{flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;aspect-ratio:1/1;padding:0;
  border-radius:50%!important;font-size:13px;font-weight:600;letter-spacing:.02em;line-height:1;text-transform:uppercase;
  display:inline-flex;align-items:center;justify-content:center;overflow:hidden}
.user-table-person strong{min-width:0;line-height:1.3}
.user-row .user-status,.user-row .user-actions{vertical-align:middle}

/* ---- Users table: action buttons stacked vertically ---- */
.user-actions{display:inline-flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px;width:136px}
.user-action-form{display:flex;width:100%}
.user-action-btn,.user-action-btn.btn{width:100%;min-width:0;justify-content:flex-start;padding:0 14px}
.user-actions-cell{width:1%;text-align:center!important;padding-top:12px!important;padding-bottom:12px!important}
.user-action-btn{align-items:center}
.user-action-btn i{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}
.user-action-btn i::before{display:block;line-height:1;vertical-align:0!important}

/* ============================================================
   Rounded buttons & search/input fields only (8px).
   Cards, tables, popups and the rest of the UI stay square.
   ============================================================ */
:root{--r-ctl:8px}
/* buttons */
.btn,.btn-sm,.btn-lg,.cics-primary-btn,.list-filter-submit,.list-filter-clear,.tech-view-btn,.tech-more-btn,
.faculty-edit-btn,.faculty-delete-btn,.archive-close-button,.pager button,.tabs button,.row-actions button,
.cal-nav button,.td-hero-action,.td-close,.user-action-btn{border-radius:var(--r-ctl)!important}
/* inputs, selects, search fields */
.form-control,.form-select,.input-group-text,textarea.form-control,
.search-box,.cics-search,.my-files-search-box,.my-files-search-form input,.tech-search-field input,
.faculty-search-wrap input,.list-filter-bar .form-control,.list-filter-bar .form-select,
.tech-filter-bar .form-control,.tech-filter-bar .form-select,.period-filter-field .form-select,.period-filter-field .form-control{border-radius:var(--r-ctl)!important}
/* joined controls keep a clean seam */
.input-group>.form-control,.input-group>.form-select{border-radius:var(--r-ctl)!important}
.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0!important;border-bottom-right-radius:0!important}
.input-group>:not(:first-child):not(.dropdown-menu){border-top-left-radius:0!important;border-bottom-left-radius:0!important}

/* ============================================================
   Unified filter bars: search grows, dropdowns share equal widths,
   actions sit at the right. Every control is 44px tall.
   ============================================================ */
.list-filter-bar{display:flex!important;flex-wrap:wrap;align-items:flex-end;gap:14px 14px;padding:16px 18px;margin-bottom:18px;
  background:#fff;border:1px solid var(--line);box-shadow:0 1px 3px rgba(21,40,99,.05)}
.list-filter-bar>div{min-width:0;margin:0}
.list-filter-bar>.list-filter-search,.list-filter-bar>.activity-filter-search{flex:3 1 300px}
.list-filter-bar>div:not(.list-filter-search):not(.activity-filter-search):not(.list-filter-actions),
.list-filter-bar>.quarter-filter-control{flex:1 1 170px;max-width:260px;min-width:150px}
.list-filter-bar>.list-filter-actions,.list-filter-bar>.activity-filter-submit{flex:0 0 auto;margin-left:auto}
.list-filter-bar label,.period-filter-field label,.quarter-filter-control label,.budget-year-control label{display:block;margin:0 0 6px 2px;
  color:#5a6b86;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;line-height:1.2}
.list-filter-bar .form-select,.list-filter-bar .form-control,.list-filter-search .cics-search,.activity-filter-search .cics-search,
.quarter-filter-control .form-select,.period-filter-field .form-select{height:44px;min-height:44px;font-size:14px}
.list-filter-bar .form-select,.quarter-filter-control .form-select,.period-filter-field .form-select{padding:0 34px 0 14px;width:100%;background-color:#fff}
.list-filter-search .cics-search,.activity-filter-search .cics-search{width:100%;min-width:0;padding:0 14px;gap:10px;background:#fff}
.cics-search i{color:#8a97ab;font-size:.95rem}
.cics-search input{height:100%;font-size:14px!important}
.list-filter-bar .form-select:focus,.quarter-filter-control .form-select:focus,.period-filter-field .form-select:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(59,107,240,.12)}
.list-filter-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}
.list-filter-submit{height:44px;padding:0 20px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:8px}
.list-filter-clear{height:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 16px;
  color:#52627a;font-size:14px;font-weight:600;text-decoration:none;background:#fff;border:1px solid #cdd9f5;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.list-filter-clear:hover{color:#1d4ed8;background:#eef3ff;border-color:#b6c9f7}
/* year / quarter panels (dashboard, budgets, quarterly targets) */
.dashboard-year-filter,.budget-year-control,.targets-year-form.period-filter-panel{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px;padding:14px 16px;
  background:#fff;border:1px solid var(--line);box-shadow:0 1px 3px rgba(21,40,99,.05)}
.dashboard-year-filter .period-filter-field,.dashboard-year-filter .quarter-filter-control,.budget-year-control .quarter-filter-control,
.targets-year-form .period-filter-field{flex:1 1 150px;min-width:140px;max-width:230px}
.dashboard-year-filter .form-select,.budget-year-control .form-select,.targets-year-form .form-select{height:44px;min-height:44px;font-size:14px}
.dashboard-year-filter>.btn,.budget-year-control>.btn,.period-filter-panel>.btn{height:44px;min-height:44px;padding:0 20px;font-size:14px;display:inline-flex;align-items:center;gap:6px}
.budget-year-control{align-items:flex-end}.budget-year-control>label{align-self:flex-end;margin:0 0 14px}
/* reports + files */
.reports-filter-grid{gap:14px;align-items:end}
.reports-filter-grid .form-select,.reports-filter-grid .form-control{height:44px;min-height:44px;font-size:14px}
.my-files-search-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px;padding:14px 16px;background:#fff;border:1px solid var(--line);box-shadow:0 1px 3px rgba(21,40,99,.05);margin-bottom:16px}
.my-files-search-form .my-files-search-box{flex:3 1 300px;min-height:44px}
.my-files-search-form .quarter-filter-control{flex:1 1 170px;max-width:240px}
@media(max-width:700px){
  .list-filter-bar>div:not(.list-filter-actions),.list-filter-bar>.quarter-filter-control{flex:1 1 100%;max-width:none}
  .list-filter-bar>.list-filter-actions{width:100%;margin-left:0}
  .list-filter-actions .list-filter-submit,.list-filter-actions .list-filter-clear{flex:1}
}
.list-filter-bar>.list-filter-search,.list-filter-bar>.activity-filter-search{flex:3 1 240px}
.list-filter-bar>div:not(.list-filter-search):not(.activity-filter-search):not(.list-filter-actions),
.list-filter-bar>.quarter-filter-control{flex:1 1 140px;min-width:130px;max-width:230px}
.cics-search i{display:inline-flex;align-items:center;line-height:1}
.list-filter-submit i,.list-filter-clear i{display:inline-flex;line-height:1}
@media(max-width:700px){
  .list-filter-bar>div:not(.list-filter-search):not(.activity-filter-search):not(.list-filter-actions),.list-filter-bar>.quarter-filter-control{flex:1 1 100%;max-width:none}
}

/* ---- Accessibility: respect reduced-motion preference globally ---- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ---- Table pagination (js/shared/table-paginate.js) ---- */
[data-page-hidden]{display:none!important}
.tpager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:12px 18px;border-top:1px solid var(--line);background:#fff;font-size:13px;color:var(--ink-700)}
.tpager[hidden]{display:none}
.tpager-summary{margin:0;color:var(--ink-500)}
.tpager-size{display:flex;align-items:center;gap:8px;margin-left:auto}
.tpager-size label{margin:0;font-size:12px;color:var(--ink-500);white-space:nowrap}
.tpager-size .form-select{width:auto;min-width:64px;padding-top:5px;padding-bottom:5px}
.tpager-controls{display:flex;align-items:center;gap:4px}
.tpager-btn{min-width:36px;height:36px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;color:var(--ink-700);font-size:13px;font-weight:600;cursor:pointer;border-radius:0}
.tpager-btn:hover:not(:disabled){background:var(--blue-50);border-color:var(--blue-500);color:var(--blue-700)}
.tpager-btn:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}
.tpager-btn:disabled{opacity:.45;cursor:not-allowed}
.tpager-btn.is-current{background:var(--blue-700);border-color:var(--blue-700);color:#fff}
.tpager-gap{min-width:24px;text-align:center;color:var(--ink-500)}
@media (max-width:600px){
  .tpager{justify-content:center;text-align:center}
  .tpager-size{margin-left:0}
  .tpager-btn:not(.is-current):not(.tpager-edge){display:none}
}
@media print{
  [data-page-hidden]{display:revert!important}
  .tpager{display:none!important}
}

/* Notification popover: fixed heading, bounded list and readable rows. */
.notification-trigger{border:0;border-radius:12px!important;background:#fff;}
.notification-trigger:hover,.notification-trigger[aria-expanded="true"]{background:var(--blue-50);border-color:#b6c9f7;color:var(--blue-700);}
.notification-badge{position:absolute;top:-5px;right:-6px;min-width:20px;height:20px;padding:0 5px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:999px;background:#b42318;color:#fff;font-size:12px;font-weight:600;line-height:1;}
.notification-menu.dropdown-menu{width:min(390px,calc(100vw - 32px));max-height:none;padding:0;border:1px solid #dce3ed;border-radius:16px!important;box-shadow:0 12px 36px rgba(16,24,40,.14);overflow:hidden;}
.notification-head{padding:16px 18px;background:#fff;gap:12px;}
.notification-head strong{font-size:15px;font-weight:700;}
.notification-head span:not(.notification-count){color:#475467;font-size:12px;line-height:1.5;margin-top:3px;}
.notification-count{flex-shrink:0;min-width:26px;height:26px;border-radius:999px;background:var(--blue-50);color:var(--blue-700);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;}
.notification-list{max-height:min(420px,calc(100dvh - 180px));overflow-y:auto;overscroll-behavior:contain;}
.notification-menu .notification-item{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;white-space:normal;border-bottom:1px solid #eef2f6;}
.notification-menu .notification-item:last-child{border-bottom:0;}
.notification-menu .notification-item:hover,.notification-menu .notification-item:focus-visible{background:#f3f6fc;}
.notification-menu .notification-item:focus-visible{outline:2px solid var(--blue-700);outline-offset:-3px;}
.notification-menu .notification-icon{width:36px;height:36px;flex:0 0 36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;}
.notification-menu .notification-icon.activity{background:#fff4e5!important;color:#93370d!important;}
.notification-copy{overflow-wrap:anywhere;}
.notification-copy .notification-category{font-size:12px;font-weight:500;color:#475467;margin:0 0 3px;}
.notification-copy strong{font-size:13px;font-weight:600;line-height:1.5;}
.notification-copy>span{color:#475467;line-height:1.55;}
.notification-copy small{font-size:12px;line-height:1.5;margin-top:6px;}
.notification-arrow{color:#667085;flex-shrink:0;}
.notification-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 20px;text-align:center;color:#475467;font-size:13px;}
.notification-empty>i{display:grid;place-items:center;width:44px;height:44px;margin-bottom:6px;border-radius:50%;background:#f2f4f7;color:#475467;font-size:20px;}
.notification-empty strong{color:var(--ink-900);font-size:14px;font-weight:600;}
@media(max-width:600px){.notification-menu.dropdown-menu{width:auto;}}


/* One title style for the dashboard and module landing pages. */
:root .cics-page-title{font-family:var(--font-body)!important;font-size:28px!important;font-weight:700!important;line-height:1.25!important;letter-spacing:-.5px!important;color:#243447!important;}
.cics-page-title strong{font-weight:inherit;}
@media(max-width:600px){:root .cics-page-title{font-size:23px!important;}}

/* CICS approved dashboard Overview: vertically stacked panels, no nested table scrollbars. */
.dashboard-redesign-grid.cics-overview-stack:has(>.dashboard-panel[data-dashboard-section="overview"]:not([hidden])){grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.cics-overview-stack>.dashboard-panel[data-dashboard-section="overview"]{grid-column:1/-1;min-width:0;padding:18px 20px;border:1px solid #d8e3f4;background:#fff}
.cics-overview-stack .cics-participant-panel .cics-chart-frame{height:265px;max-height:265px;min-height:265px}
.cics-overview-stack .cics-panel-heading h3{display:flex;align-items:center;gap:10px;color:#285b9b;font-size:16px;font-weight:700}
.cics-overview-stack .cics-panel-heading h3 i{color:#2861aa;font-size:19px}
.cics-overview-stack .cics-panel-heading p{margin:5px 0 0;color:#65758b;font-size:12px;line-height:1.45}
.cics-overview-stack .dashboard-panel-head{align-items:center;gap:12px;flex-wrap:wrap}
.cics-overview-stack .cics-table-wrap{width:100%;overflow-x:auto;overflow-y:visible;max-height:none}
.cics-overview-stack .cics-dashboard-table{width:100%;table-layout:fixed;border-collapse:collapse}
.cics-overview-stack .cics-dashboard-table th,.cics-overview-stack .cics-dashboard-table td{padding:9px 13px;line-height:1.5;vertical-align:middle}
.cics-overview-stack .cics-dashboard-table th:first-child,.cics-overview-stack .cics-dashboard-table td:first-child{width:auto;text-align:left;overflow-wrap:anywhere}
.cics-overview-stack .cics-dashboard-table th.numeric,.cics-overview-stack .cics-dashboard-table td.numeric{width:110px;max-width:110px;text-align:right;font-variant-numeric:tabular-nums}
.cics-overview-stack .cics-dashboard-table tr[hidden]{display:none!important}
.cics-view-all{border:0;background:none;padding:11px 0 0;color:#285b9b;font-size:13px;font-weight:600;cursor:pointer}
.cics-view-all:hover{text-decoration:underline}
.cics-view-all:focus-visible{outline:2px solid #285b9b;outline-offset:3px}
@media(max-width:640px){.cics-overview-stack>.dashboard-panel[data-dashboard-section="overview"]{padding:14px}.cics-overview-stack .cics-participant-panel .cics-chart-frame{height:225px;max-height:225px;min-height:225px}.cics-overview-stack .cics-dashboard-table th.numeric,.cics-overview-stack .cics-dashboard-table td.numeric{width:78px;max-width:78px}}

/* Approved dashboard refinements: top-five read-only tables and wide Resources budget. */
.cics-overview-stack .cics-dashboard-table tbody tr,
.cics-overview-stack .cics-dashboard-table tbody tr:hover,
.cics-overview-stack .cics-dashboard-table tbody tr:hover > td,
.cics-overview-stack .cics-dashboard-table tbody tr > td {background:#fff!important;cursor:default!important;transition:none!important;}
.cics-overview-stack .cics-dashboard-table tbody tr {pointer-events:none;}
.dashboard-redesign-grid.cics-overview-stack:has(>.cics-budget-wide:not([hidden])) {grid-template-columns:minmax(0,1fr);}
.cics-overview-stack>.cics-budget-wide {grid-column:1/-1;min-width:0;padding:22px;}
.cics-budget-horizontal {display:grid;grid-template-columns:minmax(180px,240px) minmax(200px,1fr) minmax(180px,260px);gap:26px;align-items:center;}
.cics-budget-chart-area {display:flex;justify-content:center;align-items:center;min-width:0;}
.cics-budget-chart-area .cics-chart-frame.cics-doughnut {position:relative;width:205px;height:205px;flex:0 1 205px;}
.cics-doughnut-center {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;}
.cics-doughnut-center strong {color:#193a6c;font-size:28px;line-height:1.2;font-weight:750;}
.cics-doughnut-center span {color:#67788e;font-size:12px;}
.cics-budget-stats {min-width:0;}
.cics-budget-label {display:block;color:#65758b;font-size:13px;margin-bottom:4px;}
.cics-budget-allocated {display:block;font-size:25px;color:#193a6c;margin-bottom:16px;font-variant-numeric:tabular-nums;}
.cics-budget-stat-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.cics-budget-stat-grid>div {padding:13px;border:1px solid #dce6f5;border-radius:6px;min-width:0;}
.cics-budget-stat-grid span {display:block;color:#62758c;font-size:12px;margin-bottom:4px;}
.cics-budget-stat-grid strong {font-size:16px;color:#1d3555;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.cics-budget-detail-box {background:#f1f6fd;border-radius:6px;padding:18px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:8px;}
.cics-budget-detail-box strong {color:#244d89;font-size:15px;}
.cics-budget-detail-box p {font-size:12px;color:#62758c;line-height:1.5;margin:0;}
.cics-budget-detail-link {color:#fff;background:#315f9e;padding:10px 13px;border-radius:5px;font-size:13px;font-weight:650;text-decoration:none;align-self:flex-start;}
.cics-budget-detail-link:hover {background:#254c80;color:#fff;}
@media(max-width:950px){.cics-budget-horizontal{grid-template-columns:190px minmax(0,1fr)}.cics-budget-detail-box{grid-column:1/-1}.cics-budget-chart-area .cics-chart-frame.cics-doughnut{width:180px;height:180px;flex-basis:180px}}
@media(max-width:600px){.cics-budget-horizontal{grid-template-columns:minmax(0,1fr)}.cics-budget-detail-box{grid-column:auto}.cics-budget-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Dashboard text readability: preserve existing layout, adjust small type. */
.dashboard-compact .cics-overview-stack .cics-panel-heading h3 { font-size:18px; }
.dashboard-compact .cics-overview-stack .cics-panel-heading p { font-size:14px; }
.dashboard-compact .cics-budget-label { font-size:15px; }
.dashboard-compact .cics-budget-stat-grid span { font-size:14px; }
.dashboard-compact .cics-budget-stat-grid strong { font-size:18px; }
.dashboard-compact .cics-budget-detail-box strong { font-size:17px; }
.dashboard-compact .cics-budget-detail-box p { font-size:14px; }
.dashboard-compact .cics-budget-detail-link { font-size:14px; }

/* Responses card: pre/post/satisfaction breakdown inside one card, same size as the other stat cards */
.activity-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.activity-stat-grid .stat-card{min-height:143px;}
.stat-card-breakdown .stat-top{margin-bottom:8px;}
.stat-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:8px;}
.stat-breakdown>div{display:flex;flex-direction:column;min-width:0;}
.stat-breakdown .stat-num{font-size:24px;line-height:1.2;}
.stat-breakdown .stat-label{font-size:12px;font-weight:400;color:var(--ink-500);line-height:1.2;white-space:nowrap;}
@media (max-width:1180px){.activity-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:860px){.activity-stat-grid{grid-template-columns:1fr;}}
@media (max-width:1500px){.stat-breakdown{column-gap:6px;}.stat-breakdown .stat-num{font-size:20px;}.stat-breakdown .stat-label{font-size:11px;}}

/* Faculty dropdown rows (Project Leaders and Other Faculty Involvement) */
.activity-repeat-grid.personnel-row{align-items:start;}
.personnel-name-wrap{display:flex;flex-direction:column;gap:8px;min-width:0;}

/* Planned work and unread reminders. */
.notification-form{margin:0;border-bottom:1px solid #eef2f6;}
.notification-form.is-unread{background:#f3f6fc;border-left:3px solid #245bca;}
.notification-form .notification-item{width:100%;text-align:left;background:transparent;border:0;}

/* Project activity list: long status labels wrap inside their cell. */
.planned-activities-table .cics-status{white-space:normal;display:inline-block;line-height:1.3;max-width:100%;text-align:left;}
.planned-activities-table td:nth-child(3){min-width:150px;}
.planned-activities-table td:last-child a{white-space:normal;line-height:1.3;display:inline-block;}

/* Compact reminders: full context remains available through native details. */
.notification-menu.notification-compact{width:min(320px,calc(100vw - 32px));border-radius:10px!important;}
.notification-compact .notification-head{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #eef2f6;}
.notification-compact .notification-head strong{display:inline;font-size:13px;line-height:1.2;}
.notification-compact .notification-head .notification-summary{display:inline;flex:1;min-width:0;margin:0!important;font-size:11px!important;line-height:1.2;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.notification-read-all,.notification-open-form{margin:0;}
.notification-read-all button{border:0;background:transparent;color:var(--blue-700);font-size:11px;font-weight:600;padding:2px 0;white-space:nowrap;}
.notification-read-all button:hover{text-decoration:underline;}
.notification-compact .notification-list{max-height:min(300px,calc(100dvh - 120px));overflow-y:auto;overscroll-behavior:contain;}
.notification-entry{display:flex;align-items:flex-start;gap:8px;padding:7px 10px 7px 12px;border-bottom:1px solid #eef2f6;border-left:2px solid transparent;}
.notification-entry:last-child{border-bottom:0;}
.notification-entry:hover{background:#f8faff;}
.notification-entry.is-unread{background:#f5f8ff;border-left-color:#245bca;}
.notification-compact .notification-icon{width:22px;height:22px;flex:0 0 22px;border-radius:6px;font-size:11px;margin-top:1px;display:grid;place-items:center;}
.notification-compact .notification-copy{position:relative;display:block;padding-right:22px;min-width:0;flex:1;}
.notification-compact .notification-title{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding:0;border:0;background:transparent;color:var(--ink-700);font-size:12px;font-weight:500;line-height:1.35;}
.notification-entry.is-unread .notification-title{color:var(--ink-900);font-weight:600;}
.notification-title:hover{color:var(--blue-700);text-decoration:underline;}
.notification-compact .notification-meta{display:block;color:#667085;font-size:11px;line-height:1.35;margin-top:1px;}
.notification-sep{margin:0 4px;}
.notification-status{font-weight:600;color:#245bca;}
.notification-status.overdue{color:#b42318;}
.notification-status.due_soon{color:#93370d;}
.notification-details{position:static;margin:0;}
.notification-toggle{list-style:none;position:absolute;top:0;right:0;width:22px;height:22px;display:grid;place-items:center;border-radius:6px;color:#667085;font-size:10px;cursor:pointer;}
.notification-toggle::-webkit-details-marker{display:none;}
.notification-toggle:hover{background:#e8eefb;color:var(--blue-700);}
.notification-toggle i{transition:transform .15s;}
.notification-details[open] .notification-toggle i{transform:rotate(180deg);}
.notification-expanded{margin:5px 0 1px;padding:6px 8px;border-radius:6px;background:#f2f5fb;font-size:11px;line-height:1.45;color:#475467;overflow-wrap:anywhere;}
.notification-expanded strong{display:block;font-size:11px;font-weight:600;color:var(--ink-700);}
.notification-expanded p{margin:2px 0 0;}
.notification-title:focus-visible,.notification-read-all button:focus-visible,.notification-toggle:focus-visible{outline:2px solid #245bca;outline-offset:1px;border-radius:4px;}
@media(max-width:600px){.notification-menu.notification-compact{left:auto!important;right:12px!important;width:min(320px,calc(100vw - 24px));}}

/* CICS soft tabs — consistent across Faculty, Users and Archived Records. */
.cics-soft-tabs.nav{display:flex;flex-wrap:wrap;gap:8px;border-bottom:0!important;padding:4px 0 8px;}
.cics-soft-tabs.nav .nav-link{border:1px solid transparent!important;border-radius:10px!important;padding:10px 18px!important;background:transparent!important;color:#62738d!important;font-weight:600;line-height:1.4;transition:background-color .15s,border-color .15s,color .15s;}
.cics-soft-tabs.nav .nav-link:hover{background:#edf3fc!important;color:#20569b!important;border-color:#dbe6f6!important;}
.cics-soft-tabs.nav .nav-link.active,.cics-soft-tabs.nav .nav-link[aria-current="page"]{background:#f4f8ff!important;color:#20569b!important;border-color:#b8cdea!important;box-shadow:0 1px 3px rgba(31,74,130,.07)!important;}
.cics-soft-tabs.nav .nav-link:focus-visible{outline:2px solid #20569b;outline-offset:2px;}
