body { background:#f6f7fb; }
.card { border:0; box-shadow:0 2px 12px rgba(0,0,0,.06); }
.locked { opacity:.75; }
.diary-date { min-width:130px; }
.comment { border-left:3px solid #dee2e6; padding-left:1rem; }
.pdf-frame { width:100%; height:75vh; border:1px solid #dee2e6; border-radius:.5rem; background:white; }

.ldp-logo{height:58px;width:auto;display:block}.dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0}.stat-card{height:100%;background:#fff;border-radius:.75rem;padding:1.25rem;display:flex;align-items:center;gap:1rem;box-shadow:0 2px 12px rgba(0,0,0,.06)}.stat-icon{font-size:1.8rem}.dashboard-tile{height:100%;min-height:130px;background:#fff;border-radius:.75rem;padding:1.1rem;display:flex;flex-direction:column;justify-content:center;gap:.25rem;box-shadow:0 2px 12px rgba(0,0,0,.06);color:inherit;transition:transform .15s ease,box-shadow .15s ease}.dashboard-tile:hover{transform:translateY(-2px);box-shadow:0 4px 18px rgba(0,0,0,.09)}.tile-icon{font-size:2rem;margin-bottom:.25rem}.dashboard-tile small{color:#6c757d}@media(max-width:576px){.ldp-logo{height:48px}.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-hero .btn{width:100%}}

.diary-timeline{position:relative;max-width:1050px;margin:0 auto;padding:1rem 0 2rem}.diary-timeline:before{content:"";position:absolute;left:175px;top:0;bottom:0;width:3px;background:#dee2e6}.timeline-item{position:relative;display:grid;grid-template-columns:150px 50px 1fr;gap:0;margin-bottom:1.5rem;align-items:start}.timeline-date{text-align:right;padding:1rem 1rem 0 0}.timeline-day{font-size:2rem;font-weight:700;line-height:1}.timeline-month{font-size:.9rem;color:#6c757d}.timeline-dot{width:18px;height:18px;border-radius:50%;background:#0d6efd;border:4px solid #fff;box-shadow:0 0 0 2px #0d6efd;justify-self:center;margin-top:1.35rem;z-index:1}.timeline-upcoming .timeline-dot{background:#adb5bd;box-shadow:0 0 0 2px #adb5bd}.timeline-card{background:#fff;border:1px solid #e9ecef;border-radius:.75rem;padding:1.1rem;box-shadow:0 2px 10px rgba(0,0,0,.04)}.timeline-upcoming .timeline-card{background:#f8f9fa}
@media(max-width:700px){.diary-timeline:before{left:13px}.timeline-item{grid-template-columns:28px 1fr;gap:.75rem}.timeline-date{grid-column:2;text-align:left;padding:.25rem 0 0}.timeline-dot{grid-column:1;grid-row:1 / span 2;margin-top:1rem}.timeline-card{grid-column:2}.timeline-day{font-size:1.5rem}}

:root{--ldp-navy:#071b3a;--ldp-navy-light:#0d2d5c}
.ldp-navbar{background:var(--ldp-navy)!important}
.ldp-footer{background:var(--ldp-navy);color:#fff}
.ldp-footer a{color:#fff;text-decoration:none;margin-left:1.25rem}
.ldp-footer a:hover{text-decoration:underline}
.footer-links{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}
.footer-links a{margin-left:0}
@media(max-width:767px){.footer-links{justify-content:flex-start}.ldp-footer a{margin-left:0;margin-right:1rem}}

body .container{max-width:1024px}@media(max-width:576px){body .container{max-width:100%;width:100%;padding-left:12px;padding-right:12px}}

.admin-hero{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0}.admin-tile{min-height:155px;background:#fff;border:1px solid #e9ecef;border-radius:.75rem;padding:1.15rem;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.35rem;color:inherit;box-shadow:0 2px 12px rgba(0,0,0,.05);transition:transform .15s ease,box-shadow .15s ease}.admin-tile:hover{transform:translateY(-2px);box-shadow:0 5px 18px rgba(0,0,0,.1)}.admin-tile-icon{font-size:2.4rem;line-height:1.2;margin-bottom:.25rem}.admin-tile small{color:#6c757d;max-width:180px}.admin-tile strong{font-size:1.05rem}@media(max-width:576px){.admin-hero{align-items:flex-start;flex-direction:column}.admin-hero .btn{width:100%}}

.message-subject{border-radius:.7rem}.chat-avatar{width:56px;height:56px;min-width:56px;border-radius:50%;object-fit:cover;display:flex;align-items:center;justify-content:center;background:#e9ecef;border:1px solid #ced4da}


/* Header: always collapsed burger navigation on desktop and mobile. */
.ldp-navbar{position:relative}
.ldp-navbar .navbar-toggler{display:block!important;margin-left:auto}
.ldp-navbar .navbar-collapse{flex-grow:0}
.ldp-navbar .navbar-collapse:not(.show){display:none!important}
.ldp-navbar .navbar-collapse.show{display:block!important}
.ldp-navbar .navbar-nav{padding:.5rem;background:#071b3a;border-radius:.5rem;min-width:250px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.ldp-navbar .navbar-nav .nav-link{padding:.6rem .75rem;color:rgba(255,255,255,.95)}
@media(max-width:991.98px){
 .ldp-navbar .navbar-collapse{width:100%;margin-top:.5rem}
 .ldp-navbar .navbar-nav{width:100%;min-width:0}
}
@media(min-width:992px){
 .ldp-navbar .navbar-collapse{position:absolute;right:12px;top:100%;z-index:1050;margin-top:.5rem}
}

.audit-scroll{max-height:65vh;overflow:auto}.audit-scroll .sticky-top{z-index:2}.audit-value{white-space:pre-wrap;word-break:break-word;min-width:280px}

/* ===== LDP Fresh UI refresh ===== */
:root{
  --ldp-navy:#071b3a;
  --ldp-navy-2:#0d2b59;
  --ldp-blue:#2563eb;
  --ldp-sky:#eaf2ff;
  --ldp-bg:#f5f7fb;
  --ldp-text:#172033;
  --ldp-muted:#667085;
  --ldp-border:#e5eaf2;
  --ldp-radius:16px;
}
html,body{background:var(--ldp-bg);color:var(--ldp-text)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}
.container{max-width:1024px}
.ldp-navbar{
  background:linear-gradient(135deg,var(--ldp-navy),var(--ldp-navy-2))!important;
  box-shadow:0 4px 18px rgba(7,27,58,.18);
  min-height:72px;
}
.ldp-logo{max-height:48px;width:auto;object-fit:contain}
.navbar-toggler{
  border:1px solid rgba(255,255,255,.28)!important;
  border-radius:10px!important;
  padding:.55rem .7rem!important;
}
.navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.12)!important}
.ldp-navbar .navbar-nav{
  background:var(--ldp-navy-2)!important;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px!important;
  padding:.6rem!important;
}
.ldp-navbar .nav-link{border-radius:9px;transition:background .15s ease,transform .15s ease}
.ldp-navbar .nav-link:hover{background:rgba(255,255,255,.1);transform:translateX(2px)}
.card{
  border:1px solid var(--ldp-border);
  border-radius:var(--ldp-radius);
  box-shadow:0 6px 24px rgba(16,24,40,.055);
  background:#fff;
}
.btn{border-radius:10px;font-weight:600;padding:.62rem 1rem}
.btn-primary{background:var(--ldp-blue);border-color:var(--ldp-blue)}
.btn-primary:hover{filter:brightness(.94)}
.btn-outline-primary{border-color:#b8c9e8;color:var(--ldp-blue)}
.form-control,.form-select{
  border-radius:10px;border-color:#d9e0ea;padding:.68rem .8rem;background:#fff
}
.form-control:focus,.form-select:focus{
  border-color:#8bb2f5;box-shadow:0 0 0 .2rem rgba(37,99,235,.1)
}
.table{--bs-table-bg:transparent}
.table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ldp-muted);font-weight:700;border-bottom-color:var(--ldp-border)}
.alert{border-radius:12px;border:0}
.badge{border-radius:999px;padding:.4em .65em}
h1,h2,h3,h4,h5{letter-spacing:-.02em;font-weight:700}
.text-muted{color:var(--ldp-muted)!important}
.stat-card{
  background:#fff;border:1px solid var(--ldp-border);border-radius:14px;
  padding:1rem;display:flex;align-items:center;gap:.75rem;
  box-shadow:0 4px 18px rgba(16,24,40,.045);height:100%
}
.stat-icon{
  width:44px;height:44px;border-radius:12px;background:var(--ldp-sky);
  display:flex;align-items:center;justify-content:center;font-size:1.35rem
}
.admin-hero{
  background:linear-gradient(135deg,#fff,#f1f6ff);border:1px solid var(--ldp-border);
  border-radius:18px;padding:1.35rem!important;box-shadow:0 6px 24px rgba(16,24,40,.045)
}
.admin-tile{
  min-height:150px!important;border:1px solid var(--ldp-border)!important;
  border-radius:16px!important;background:#fff!important;
  box-shadow:0 5px 20px rgba(16,24,40,.05)!important;
}
.admin-tile:hover{border-color:#c7d7f2!important;box-shadow:0 10px 28px rgba(16,24,40,.09)!important}
.admin-tile-icon{
  width:54px;height:54px;border-radius:15px;background:var(--ldp-sky);
  display:flex;align-items:center;justify-content:center;font-size:1.7rem!important
}
.list-group-item{border-color:var(--ldp-border)}
.ldp-footer{
  background:var(--ldp-navy);color:#dbe6f7;margin-top:3rem
}
.ldp-footer a{color:#fff;text-decoration:none;margin-left:1rem}
.ldp-footer a:hover{text-decoration:underline}
.chat-avatar{border:0!important;background:#eef2f7!important}
.audit-scroll{border-radius:12px}
@media(max-width:576px){
  main.container{padding-left:14px!important;padding-right:14px!important}
  .display-6{font-size:2rem}
  .admin-tile{min-height:135px!important;padding:.8rem!important}
  .ldp-footer a{display:block;margin:.25rem 0}
}

.ldp-page main{animation:ldpFade .22s ease-out}
@keyframes ldpFade{from{opacity:.92;transform:translateY(3px)}to{opacity:1;transform:none}}


.chat-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 48px}
.chat-avatar-img{width:100%;height:100%;object-fit:cover;display:block}

/* Centre the logged-in user's profile picture in every site header. */
.ldp-navbar .header-profile-avatar{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:46px;
  height:46px;
  border-radius:50%;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eef2f7;
  border:2px solid rgba(255,255,255,.9);
  box-shadow:0 3px 12px rgba(0,0,0,.18);
  color:#536071;
  text-decoration:none;
  z-index:5;
}
.ldp-navbar .header-profile-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ldp-navbar .header-profile-avatar span{font-size:1.25rem;line-height:1}
@media(max-width:576px){
  .ldp-navbar .header-profile-avatar{width:42px;height:42px}
}

/* Keep the profile avatar anchored to the header itself, independent of the burger menu. */
.ldp-navbar > .container{position:relative!important;min-height:72px}
.ldp-navbar .header-profile-avatar{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  z-index:1101!important;
  flex:none!important;
}
.ldp-navbar .navbar-toggler{position:relative;z-index:1102}
.ldp-navbar .navbar-collapse{z-index:1100}
@media(max-width:576px){
  .ldp-navbar > .container{min-height:64px}
}

/* Header avatar: fixed in the header flow immediately to the right of the LDP logo.
   It is deliberately outside the collapsing burger-menu element, so it never moves. */
.ldp-navbar > .container{display:flex!important;align-items:center!important;position:relative!important}
.ldp-navbar .navbar-brand{flex:0 0 auto!important;margin-right:.75rem!important}
.ldp-navbar .header-profile-avatar{
  position:static!important;
  left:auto!important;
  top:auto!important;
  transform:none!important;
  margin:0 .5rem 0 0!important;
  width:44px!important;
  height:44px!important;
  flex:0 0 44px!important;
  border-radius:50%;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eef2f7;
  border:2px solid rgba(255,255,255,.9);
  box-shadow:0 3px 12px rgba(0,0,0,.18);
  color:#536071;
  text-decoration:none;
  z-index:1101!important;
}
.ldp-navbar .header-profile-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.ldp-navbar .header-profile-avatar span{font-size:1.2rem;line-height:1}
.ldp-navbar .navbar-toggler{position:relative!important;z-index:1102!important;margin-left:auto!important}
.ldp-navbar .navbar-collapse{z-index:1100!important}
@media(max-width:576px){
  .ldp-navbar > .container{min-height:64px}
  .ldp-navbar .header-profile-avatar{width:40px!important;height:40px!important;flex-basis:40px!important;margin-right:.35rem!important}
}

/* Site content width: 1024px maximum on desktop, fluid on mobile. */
body .container{max-width:1024px!important;width:100%}
@media(max-width:576px){body .container{max-width:100%!important;width:100%!important;padding-left:12px;padding-right:12px}}

/* Funky LDP icon system */
.ldp-icon{width:30px;height:30px;display:inline-block;vertical-align:middle;object-fit:contain;flex:0 0 auto}
.ldp-icon-lg{width:54px;height:54px}
.admin-tile .ldp-icon-lg{width:56px;height:56px}
.ldp-nav-icon{width:28px;height:28px;margin-right:.55rem}
.dashboard-icon{width:42px;height:42px}

/* Icon image fallback: all navigation/dashboard icons use the site base path. */
.ldp-nav-icon,.ldp-icon,.ldp-icon-lg{display:inline-block!important;object-fit:contain!important}
.admin-tile-icon,.dashboard-tile-icon{display:flex;align-items:center;justify-content:center}

/* Final icon visibility rules */
img.ldp-icon,img.ldp-icon-lg,img.ldp-nav-icon{display:inline-block!important;visibility:visible!important;opacity:1!important}
.stat-icon img{width:34px;height:34px}

/* Dashboard tile icon sizing */
.dashboard-tile .tile-icon{display:flex;align-items:center;justify-content:center;min-height:58px}
.dashboard-tile .tile-icon img{width:52px;height:52px;display:block!important}

/* Centre dashboard tile content and keep labels directly beneath their icons. */
.dashboard-tile{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:.35rem!important;
}
.dashboard-tile .tile-icon{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:58px!important;
}
.dashboard-tile strong,.dashboard-tile small{
  display:block!important;
  width:100%!important;
  text-align:center!important;
}
.admin-tile{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.admin-tile strong,.admin-tile small{width:100%;text-align:center}

/* Definitive dashboard icon rendering */
.dashboard-tile .tile-icon,
.admin-tile .admin-tile-icon,
.stat-icon{display:flex!important;align-items:center!important;justify-content:center!important}
.dashboard-tile .tile-icon img,
.admin-tile .admin-tile-icon img,
.stat-icon img{display:block!important;visibility:visible!important;opacity:1!important}
.dashboard-tile .tile-icon img{width:52px;height:52px}
.admin-tile .admin-tile-icon img{width:54px;height:54px}
.stat-icon img{width:34px;height:34px}

.dashboard-tile .tile-icon img,.admin-tile .admin-tile-icon img,.stat-icon img{
 display:block!important;visibility:visible!important;opacity:1!important;object-fit:contain!important
}
.dashboard-tile .tile-icon{display:flex!important;align-items:center!important;justify-content:center!important;width:100%}
.dashboard-tile{text-align:center!important;align-items:center!important}
.dashboard-tile strong,.dashboard-tile small{width:100%;text-align:center!important}

/* People & Hours report profile photos match the circular header avatar style. */
.report-profile-avatar,.report-profile-placeholder{
  width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  overflow:hidden;background:#eef2f7;border:2px solid rgba(7,27,58,.15);
  box-shadow:0 3px 10px rgba(0,0,0,.14);vertical-align:middle;text-decoration:none;
}
.report-profile-avatar{object-fit:cover}
.report-profile-placeholder{font-size:1.2rem;color:#536071}

.report-profile-placeholder img{width:24px;height:24px;object-fit:contain}
.report-profile-avatar{width:46px!important;height:46px!important;object-fit:cover!important;border-radius:50%!important;display:block!important}

/* LDP navigation: always use the burger menu on every screen size. */
.ldp-navbar .navbar-collapse:not(.show){display:none!important}
.ldp-navbar .navbar-collapse.show{display:block!important}
.ldp-navbar .navbar-toggler{display:block!important}
.ldp-navbar .navbar-nav{flex-direction:column!important;align-items:stretch!important}
.ldp-navbar .navbar-nav .nav-link{padding:.65rem .25rem}


/* Consistent dashboard panel sizing */
.dashboard-tile,
.admin-tile {
  width: 100%;
  height: 180px;
  min-height: 180px;
  box-sizing: border-box;
}

.stat-card {
  width: 100%;
  height: 120px;
  min-height: 120px;
  box-sizing: border-box;
}

@media (max-width: 576px) {
  .dashboard-tile,
  .admin-tile {
    height: 170px;
    min-height: 170px;
  }
  .stat-card {
    height: 110px;
    min-height: 110px;
  }
}

/* New-message notification bell */
.header-message-bell{
  position:relative;
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right:.5rem;
  color:#fff;
  text-decoration:none;
  flex:0 0 auto;
}
.header-message-bell img{
  width:25px;
  height:25px;
  filter:brightness(0) invert(1);
}
.header-message-count{
  position:absolute;
  top:-2px;
  right:-2px;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  color:#fff;
  font-size:.7rem;
  line-height:20px;
  text-align:center;
  font-weight:700;
  border:2px solid rgba(255,255,255,.45);
}
@media (max-width:576px){
  .header-message-bell{width:38px;height:38px;margin-right:.25rem}
  .header-message-count{top:-3px;right:-3px}
}

/* Final header profile avatar treatment: centred and slightly overlapping the
   header/content boundary without becoming oversized. */
.ldp-navbar{
  margin-bottom:22px!important;
}
.ldp-navbar > .container{
  min-height:72px!important;
}
.ldp-navbar .header-profile-avatar{
  position:absolute!important;
  left:50%!important;
  top:100%!important;
  transform:translate(-50%,-50%)!important;
  width:58px!important;
  height:58px!important;
  flex:0 0 58px!important;
  margin:0!important;
  z-index:1200!important;
}
@media(max-width:576px){
  .ldp-navbar > .container{
    min-height:64px!important;
  }
  .ldp-navbar .header-profile-avatar{
    width:52px!important;
    height:52px!important;
    flex-basis:52px!important;
  }
  .ldp-navbar{
    margin-bottom:20px!important;
  }
}


/* FINAL: centred overlapping profile avatar */
body .ldp-navbar > .container > .header-profile-avatar{
  position:absolute!important;
  left:50%!important;
  top:100%!important;
  transform:translate(-50%,-50%)!important;
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  min-height:58px!important;
  margin:0!important;
  padding:0!important;
  z-index:2000!important;
}
body .ldp-navbar > .container{
  position:relative!important;
  min-height:72px!important;
}
body .ldp-navbar{
  margin-bottom:29px!important;
}
body .ldp-navbar > .container > .header-profile-avatar img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
@media(max-width:576px){
  body .ldp-navbar > .container > .header-profile-avatar{
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    min-height:52px!important;
  }
  body .ldp-navbar > .container{
    min-height:64px!important;
  }
  body .ldp-navbar{
    margin-bottom:26px!important;
  }
}


/* FINAL: larger centred header avatar; only the bottom third crosses below the header */
body .ldp-navbar > .container > .header-profile-avatar{
  position:absolute!important;
  left:50%!important;
  top:100%!important;
  transform:translate(-50%,-33.333%)!important;
  width:116px!important;
  height:116px!important;
  min-width:116px!important;
  min-height:116px!important;
  margin:0!important;
  padding:0!important;
  z-index:2000!important;
}
body .ldp-navbar > .container{
  position:relative!important;
  min-height:72px!important;
}
body .ldp-navbar{
  margin-bottom:39px!important;
}
body .ldp-navbar > .container > .header-profile-avatar img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
@media(max-width:576px){
  body .ldp-navbar > .container > .header-profile-avatar{
    width:104px!important;
    height:104px!important;
    min-width:104px!important;
    min-height:104px!important;
  }
  body .ldp-navbar > .container{
    min-height:64px!important;
  }
  body .ldp-navbar{
    margin-bottom:35px!important;
  }
}


/* FINAL HEADER AVATAR POSITION: 10px from top of page */
body .ldp-navbar > .container > .header-profile-avatar{
  position:absolute!important;
  left:50%!important;
  top:10px!important;
  transform:translateX(-50%)!important;
  width:116px!important;
  height:116px!important;
  min-width:116px!important;
  min-height:116px!important;
  margin:0!important;
  padding:0!important;
  z-index:2000!important;
}
body .ldp-navbar > .container{
  position:relative!important;
  min-height:72px!important;
}
body .ldp-navbar{
  margin-bottom:39px!important;
}
body .ldp-navbar > .container > .header-profile-avatar img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
@media(max-width:576px){
  body .ldp-navbar > .container > .header-profile-avatar{
    width:104px!important;
    height:104px!important;
    min-width:104px!important;
    min-height:104px!important;
    top:10px!important;
  }
  body .ldp-navbar > .container{
    min-height:64px!important;
  }
  body .ldp-navbar{
    margin-bottom:35px!important;
  }
}


/* Mobile menu: add 25px breathing room above the first menu item */
@media (max-width: 991.98px){
  .ldp-navbar .navbar-collapse .navbar-nav{
    padding-top:30px!important;
  }
}


/* Saved pathway highlight on the main dashboard */
.dashboard-pathway-badge{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  margin-top:.65rem;
  padding:.55rem .9rem;
  border-radius:999px;
  background:#e9f2ff;
  border:2px solid #1f5fae;
  color:#123a69;
  box-shadow:0 3px 10px rgba(0,0,0,.08);
}
.dashboard-pathway-badge .dashboard-pathway-label{
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.dashboard-pathway-badge strong{
  font-size:.95rem;
}
@media(max-width:576px){
  .dashboard-pathway-badge{
    margin-top:.55rem;
    padding:.5rem .75rem;
    gap:.5rem;
  }
}

/* Diary entry action icons */
.diary-icon-btn{
  width:38px;
  height:38px;
  padding:7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:9px;
}
.diary-icon-btn img{
  width:20px;
  height:20px;
}
.diary-edit-btn{
  color:#1f5fae;
  border-color:#1f5fae;
}
.diary-delete-btn{
  color:#b42318;
  border-color:#b42318;
}
.diary-edit-btn:hover,
.diary-delete-btn:hover{
  color:#fff;
}

/* LDP uploaded full-page background */
body.ldp-page{
  background-color:#0867ee;
  background-image:url("../images/ldp-background.png");
  background-position:center center;
  background-repeat:no-repeat;
  background-size:cover;
  background-attachment:fixed;
}
@media(max-width:767px){
  body.ldp-page{background-attachment:scroll;background-position:center top;}
}


/* White/light text for content that sits directly over the uploaded blue
   background. Content inside white cards remains dark for readability. */
body.ldp-page .ldp-content{
  color:#fff;
}
body.ldp-page .ldp-content > h1,
body.ldp-page .ldp-content > h2,
body.ldp-page .ldp-content > h3,
body.ldp-page .ldp-content > h4,
body.ldp-page .ldp-content > h5,
body.ldp-page .ldp-content > h6{
  color:#fff;
}
body.ldp-page .ldp-content > .text-muted{
  color:rgba(255,255,255,.82)!important;
}
body.ldp-page .ldp-content .admin-hero h1,
body.ldp-page .ldp-content .admin-hero h2,
body.ldp-page .ldp-content .admin-hero h3,
body.ldp-page .ldp-content .admin-hero h4,
body.ldp-page .ldp-content .admin-hero h5,
body.ldp-page .ldp-content .admin-hero h6{
  color:#fff;
}
body.ldp-page .ldp-content .admin-hero .text-muted,
body.ldp-page .ldp-content .dashboard-hero .text-muted{
  color:rgba(255,255,255,.84)!important;
}
body.ldp-page .ldp-content .diary-date,
body.ldp-page .ldp-content .timeline-date,
body.ldp-page .ldp-content .timeline-day,
body.ldp-page .ldp-content .timeline-month{
  color:#fff;
}
body.ldp-page .ldp-content a:not(.card a):not(.dashboard-tile):not(.admin-tile){
  color:#fff;
}
body.ldp-page .ldp-content .card,
body.ldp-page .ldp-content .card h1,
body.ldp-page .ldp-content .card h2,
body.ldp-page .ldp-content .card h3,
body.ldp-page .ldp-content .card h4,
body.ldp-page .ldp-content .card h5,
body.ldp-page .ldp-content .card h6{
  color:var(--ldp-text);
}
body.ldp-page .ldp-content .card .text-muted{
  color:var(--ldp-muted)!important;
}
body.ldp-page .ldp-content .dashboard-tile,
body.ldp-page .ldp-content .admin-tile{
  color:var(--ldp-text);
}
body.ldp-page .ldp-content .dashboard-tile small,
body.ldp-page .ldp-content .admin-tile small{
  color:var(--ldp-muted);
}


/* Contrast correction: panels/cards have light backgrounds, so keep their
   content dark even though page-level text is white over the blue wallpaper. */
body.ldp-page .ldp-content .card,
body.ldp-page .ldp-content .card *{
  color:var(--ldp-text);
}
body.ldp-page .ldp-content .card .text-muted,
body.ldp-page .ldp-content .card small.text-muted,
body.ldp-page .ldp-content .card .form-text{
  color:var(--ldp-muted)!important;
}
body.ldp-page .ldp-content .card a{
  color:var(--ldp-blue);
}
body.ldp-page .ldp-content .card .btn-primary,
body.ldp-page .ldp-content .card .btn-primary *{
  color:#fff!important;
}
body.ldp-page .ldp-content .card .btn-outline-primary,
body.ldp-page .ldp-content .card .btn-outline-primary *{
  color:var(--ldp-blue);
}
body.ldp-page .ldp-content .card .btn-outline-danger,
body.ldp-page .ldp-content .card .btn-outline-danger *{
  color:#b42318;
}
body.ldp-page .ldp-content .card .table,
body.ldp-page .ldp-content .card .table th,
body.ldp-page .ldp-content .card .table td,
body.ldp-page .ldp-content .card .list-group-item,
body.ldp-page .ldp-content .card label{
  color:var(--ldp-text);
}
body.ldp-page .ldp-content .card .table thead th{
  color:var(--ldp-muted);
}
body.ldp-page .ldp-content .dashboard-tile,
body.ldp-page .ldp-content .dashboard-tile *,
body.ldp-page .ldp-content .admin-tile,
body.ldp-page .ldp-content .admin-tile *{
  color:var(--ldp-text);
}
body.ldp-page .ldp-content .dashboard-tile small,
body.ldp-page .ldp-content .admin-tile small{
  color:var(--ldp-muted);
}
body.ldp-page .ldp-content .alert{
  color:var(--ldp-text);
}
body.ldp-page .ldp-content .modal-content,
body.ldp-page .ldp-content .modal-content *{
  color:var(--ldp-text);
}


/* FINAL PANEL CONTRAST OVERRIDE
   Anything with a light/white panel background keeps dark readable text,
   including Bootstrap cards, tiles, list groups, tables and helper/subtext. */
body.ldp-page .ldp-content .card,
body.ldp-page .ldp-content .card *,
body.ldp-page .ldp-content .dashboard-tile,
body.ldp-page .ldp-content .dashboard-tile *,
body.ldp-page .ldp-content .admin-tile,
body.ldp-page .ldp-content .admin-tile *,
body.ldp-page .ldp-content .timeline-card,
body.ldp-page .ldp-content .timeline-card *,
body.ldp-page .ldp-content .list-group-item,
body.ldp-page .ldp-content .list-group-item *,
body.ldp-page .ldp-content .modal-content,
body.ldp-page .ldp-content .modal-content * {
  color: var(--ldp-text);
}

body.ldp-page .ldp-content .card .text-muted,
body.ldp-page .ldp-content .card .small.text-muted,
body.ldp-page .ldp-content .card small,
body.ldp-page .ldp-content .card .form-text,
body.ldp-page .ldp-content .dashboard-tile .text-muted,
body.ldp-page .ldp-content .dashboard-tile small,
body.ldp-page .ldp-content .admin-tile .text-muted,
body.ldp-page .ldp-content .admin-tile small,
body.ldp-page .ldp-content .timeline-card .text-muted,
body.ldp-page .ldp-content .timeline-card small {
  color: var(--ldp-muted) !important;
}

body.ldp-page .ldp-content .card a,
body.ldp-page .ldp-content .dashboard-tile a,
body.ldp-page .ldp-content .admin-tile a,
body.ldp-page .ldp-content .list-group-item a {
  color: var(--ldp-blue);
}

body.ldp-page .ldp-content .card .btn-primary,
body.ldp-page .ldp-content .card .btn-primary *,
body.ldp-page .ldp-content .dashboard-tile .btn-primary,
body.ldp-page .ldp-content .dashboard-tile .btn-primary *,
body.ldp-page .ldp-content .admin-tile .btn-primary,
body.ldp-page .ldp-content .admin-tile .btn-primary * {
  color: #fff !important;
}

/* Admin dashboard's season card and other light cards */
body.ldp-page .ldp-content .admin-hero .btn,
body.ldp-page .ldp-content .admin-hero .btn *,
body.ldp-page .ldp-content .dashboard-hero .btn,
body.ldp-page .ldp-content .dashboard-hero .btn * {
  color: #fff;
}

body.ldp-page .ldp-content .admin-hero .btn-outline-primary,
body.ldp-page .ldp-content .dashboard-hero .btn-outline-primary {
  color: var(--ldp-blue) !important;
  background: #fff;
}

/* Bootstrap utility text-muted can otherwise inherit the page's white text. */
body.ldp-page .ldp-content .text-muted {
  color: var(--ldp-muted);
}

/* ADMIN DASHBOARD: explicit contrast for the statistics and season panels. */
body.ldp-page .ldp-content .stat-card,
body.ldp-page .ldp-content .stat-card * {
  color: var(--ldp-text) !important;
}
body.ldp-page .ldp-content .stat-card .small,
body.ldp-page .ldp-content .stat-card .text-muted {
  color: var(--ldp-muted) !important;
}
body.ldp-page .ldp-content .stat-card .h3,
body.ldp-page .ldp-content .stat-card .h3 * {
  color: var(--ldp-blue) !important;
}

/* Current-season card: dark heading/name, muted dates, blue action button. */
body.ldp-page .ldp-content .admin-season-card,
body.ldp-page .ldp-content .admin-season-card * {
  color: var(--ldp-text) !important;
}
body.ldp-page .ldp-content .admin-season-card .text-muted,
body.ldp-page .ldp-content .admin-season-card small {
  color: var(--ldp-muted) !important;
}
body.ldp-page .ldp-content .admin-season-card .btn-outline-primary,
body.ldp-page .ldp-content .admin-season-card .btn-outline-primary * {
  color: var(--ldp-blue) !important;
  background:#fff !important;
  border-color:var(--ldp-blue) !important;
}

/* FINAL ADMIN DASHBOARD HERO CONTRAST FIX */
body.ldp-page .ldp-content .admin-hero,
body.ldp-page .ldp-content .admin-hero > div,
body.ldp-page .ldp-content .admin-hero h1,
body.ldp-page .ldp-content .admin-hero h2,
body.ldp-page .ldp-content .admin-hero h3,
body.ldp-page .ldp-content .admin-hero h4,
body.ldp-page .ldp-content .admin-hero h5,
body.ldp-page .ldp-content .admin-hero h6,
body.ldp-page .ldp-content .admin-hero p,
body.ldp-page .ldp-content .admin-hero strong,
body.ldp-page .ldp-content .admin-hero .small,
body.ldp-page .ldp-content .admin-hero .text-muted {
  color: var(--ldp-text) !important;
}
body.ldp-page .ldp-content .admin-hero .small.text-uppercase,
body.ldp-page .ldp-content .admin-hero .text-muted {
  color: var(--ldp-muted) !important;
}
body.ldp-page .ldp-content .admin-hero .btn-outline-primary,
body.ldp-page .ldp-content .admin-hero .btn-outline-primary * {
  color: var(--ldp-blue) !important;
  background: #fff !important;
  border-color: var(--ldp-blue) !important;
}

/* DIARY PAGE: heading sits directly on the blue background. */
body.ldp-page .ldp-content .diary-page-header,
body.ldp-page .ldp-content .diary-page-header .small,
body.ldp-page .ldp-content .diary-page-header h1,
body.ldp-page .ldp-content .diary-page-header p {
  color:#fff !important;
}

/* Keep the date reached by the automatic diary scroll clear of the navbar. */
body.ldp-page .ldp-content .timeline-item {
  scroll-margin-top: 100px;
}

/* MAIN DASHBOARD: tile subtext sits on white tiles but is intentionally white. */
body.ldp-page .ldp-content .dashboard-tile small,
body.ldp-page .ldp-content .dashboard-tile .small,
body.ldp-page .ldp-content .dashboard-tile .text-muted {
  color: #fff !important;
}
