:root {
  --app-maroon:#6d1f36;
  --app-maroon-dark:#4d1426;
  --app-mustard:#d2a72c;
  --app-mustard-soft:#f7edc8;
  --app-green:#3f7657;
  --app-green-soft:#e3eee7;
  --app-graphite:#343a3d;
  --app-gray:#6b706f;
  --app-bg:#f3f1ed;
  --app-surface:#fffdf9;
  --app-border:#d8d3cb;
  --bs-primary:#6d1f36;
  --bs-primary-rgb:109,31,54;
  --bs-success:#3f7657;
  --bs-success-rgb:63,118,87;
  --bs-warning:#d2a72c;
  --bs-warning-rgb:210,167,44;
  --bs-link-color:#6d1f36;
  --bs-link-hover-color:#3f7657;
}
body { background:linear-gradient(180deg,#efede8 0,#f7f5f1 260px,#f3f1ed 100%); color:var(--app-graphite); min-height:100vh; }
.navbar.bg-primary { background:linear-gradient(115deg,#4d1426,#6d1f36 58%,#7e2b43)!important; border-bottom:3px solid var(--app-mustard); }
.card,.stat-card { border-radius:1rem; background:var(--app-surface); }
.stat-card { padding:1rem 1.15rem; box-shadow:0 .3rem 1rem rgba(62,45,43,.08); }
.calendar { overflow:hidden; }
.calendar-head { grid-template-columns:repeat(7,1fr); background:var(--app-graphite); color:#fff; font-weight:700; text-align:center; letter-spacing:.03em; }
.calendar-head>div { padding:.65rem; border-right:1px solid var(--app-border); }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-day { min-height:138px; padding:.55rem; border-right:1px solid var(--app-border); border-top:1px solid var(--app-border); position:relative; background:var(--app-surface); overflow:hidden; }
.calendar-day.weekend { background:#f2eee9; }
.calendar-day.outside { background:#e7e3dc; color:#9a958d; }
.calendar-day.today { background:#fffaf0; box-shadow:inset 0 0 0 2px var(--app-mustard); }
.day-number { font-weight:700; }
.schedule-line { font-size:.68rem; color:var(--app-green); font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:.3rem; }
.activity-chip { display:block; border-radius:.45rem; padding:.22rem .35rem; margin:.2rem 0; font-size:.69rem; text-decoration:none; overflow:hidden; }
.activity-chip strong,.activity-chip span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.day-add { position:absolute; right:.45rem; bottom:.35rem; color:var(--app-maroon); }
.table>tbody>tr>td { vertical-align:middle; }
.form-card { max-width:920px; margin:auto; }
.agenda-page-narrow { max-width:980px; margin:0 auto; }
.agenda-list { display:flex; flex-direction:column; gap:.65rem; }
.agenda-row { display:grid; grid-template-columns:150px 130px minmax(0,1fr); background:var(--app-surface); border:1px solid var(--app-border); border-radius:.85rem; overflow:hidden; box-shadow:0 .2rem .65rem rgba(62,45,43,.05); }
.agenda-row.agenda-today { border-color:var(--app-mustard); box-shadow:0 0 0 1px var(--app-mustard); }
.agenda-date,.agenda-hours,.agenda-content { padding:.85rem 1rem; }
.agenda-date,.agenda-hours { border-right:1px solid var(--app-border); }
.agenda-date { display:flex; flex-direction:column; justify-content:center; background:#f0ece6; }
.agenda-weekday { color:var(--app-maroon); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.agenda-hours { display:flex; flex-direction:column; justify-content:center; font-size:.86rem; background:var(--app-green-soft); color:#315c45; }
.agenda-activity { display:block; color:inherit; text-decoration:none; padding:.6rem .7rem; border-radius:.6rem; background:#f7f5f1; border-left:3px solid var(--app-maroon); }
.agenda-activity + .agenda-activity { margin-top:.5rem; }
a.agenda-activity:hover { background:var(--app-mustard-soft); color:inherit; }
.agenda-empty { min-height:54px; display:flex; justify-content:space-between; align-items:center; color:#64748b; }
.public-agenda .agenda-row { grid-template-columns:170px minmax(0,1fr); }

/* Bootstrap theme overrides */
a { color:var(--app-maroon); }
a:hover { color:var(--app-green); }
.brand-icon { width:34px; height:34px; object-fit:contain; margin-right:.65rem; filter:drop-shadow(0 2px 3px rgba(0,0,0,.2)); }
.navbar { min-height:68px; }
.navbar-brand { display:flex; align-items:center; letter-spacing:.01em; }
.navbar .nav-link { color:rgba(255,255,255,.76); border-radius:.55rem; padding:.42rem .7rem!important; margin:.15rem .08rem; font-weight:600; transition:background-color .2s,color .2s; }
.navbar .nav-link:hover { color:#fff; background:rgba(255,255,255,.1); }
.navbar .nav-link.active { color:#2f2922; background:var(--app-mustard); }
.navbar-user { color:#fff; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:.32rem .7rem; font-size:.86rem; }
.btn { border-radius:.65rem; font-weight:650; }
.btn-primary { --bs-btn-bg:var(--app-maroon); --bs-btn-border-color:var(--app-maroon); --bs-btn-hover-bg:var(--app-maroon-dark); --bs-btn-hover-border-color:var(--app-maroon-dark); --bs-btn-active-bg:var(--app-maroon-dark); --bs-btn-active-border-color:var(--app-maroon-dark); }
.btn-outline-primary { --bs-btn-color:var(--app-maroon); --bs-btn-border-color:var(--app-maroon); --bs-btn-hover-bg:var(--app-maroon); --bs-btn-hover-border-color:var(--app-maroon); --bs-btn-active-bg:var(--app-maroon-dark); }
.btn-danger { --bs-btn-bg:#9b3840; --bs-btn-border-color:#9b3840; --bs-btn-hover-bg:#7f2932; --bs-btn-hover-border-color:#7f2932; }
.btn-outline-danger { --bs-btn-color:#9b3840; --bs-btn-border-color:#9b3840; --bs-btn-hover-bg:#9b3840; --bs-btn-hover-border-color:#9b3840; }
.btn-outline-secondary { --bs-btn-color:#555b59; --bs-btn-border-color:#8f9491; --bs-btn-hover-bg:#555b59; --bs-btn-hover-border-color:#555b59; }
.form-control,.form-select { border-color:#c9c3ba; background-color:#fffefa; border-radius:.65rem; }
.form-control:focus,.form-select:focus { border-color:var(--app-maroon); box-shadow:0 0 0 .22rem rgba(109,31,54,.14); }
.form-check-input:checked { background-color:var(--app-maroon); border-color:var(--app-maroon); }
.table { --bs-table-bg:transparent; --bs-table-hover-bg:#f7edc8; --bs-table-border-color:var(--app-border); }
.table thead th { background:#ebe7e1; color:#4a4f4d; border-bottom:2px solid #c8c1b8; font-size:.78rem; text-transform:uppercase; letter-spacing:.035em; }
.list-group-item { --bs-list-group-bg:transparent; --bs-list-group-action-hover-bg:#f7edc8; }
.text-bg-primary { background-color:var(--app-maroon)!important; }
.text-bg-success { background-color:var(--app-green)!important; }
.text-bg-warning { background-color:var(--app-mustard)!important; color:#302b20!important; }
.text-bg-info { background-color:#6e8f7b!important; color:#fff!important; }
.text-bg-secondary { background-color:#727775!important; }
.text-bg-dark { background-color:var(--app-graphite)!important; }
.bg-primary-subtle { background-color:#f0dfe4!important; }
.text-primary-emphasis { color:#59172b!important; }
.bg-success-subtle { background-color:var(--app-green-soft)!important; }
.text-success-emphasis { color:#28513b!important; }
.bg-warning-subtle { background-color:var(--app-mustard-soft)!important; }
.text-warning-emphasis { color:#6b5315!important; }
.bg-info-subtle { background-color:#e0ebe4!important; }
.text-info-emphasis { color:#315c45!important; }
.bg-secondary-subtle { background-color:#e8e5df!important; }
.text-secondary-emphasis { color:#555b59!important; }
.bg-danger-subtle { background-color:#f3dfe0!important; }
.text-danger-emphasis { color:#7f2932!important; }
.border-primary { border-color:var(--app-maroon)!important; }
.border-success { border-color:var(--app-green)!important; }
.border-warning { border-color:var(--app-mustard)!important; }
.alert-success { --bs-alert-bg:var(--app-green-soft); --bs-alert-border-color:#b9d2c2; --bs-alert-color:#244c36; }
.alert-warning { --bs-alert-bg:var(--app-mustard-soft); --bs-alert-border-color:#e5cf83; --bs-alert-color:#604b16; }
.alert-danger { --bs-alert-bg:#f3dfe0; --bs-alert-border-color:#dbafb3; --bs-alert-color:#762832; }
.shadow-sm { box-shadow:0 .28rem .9rem rgba(62,45,43,.08)!important; }
footer { color:#747873!important; background:rgba(255,253,249,.7); }
h1,h2,h3,h4,h5 { color:#303634; letter-spacing:-.015em; }
@media(max-width:767.98px){
  .calendar-grid { display:block; }
  .calendar-day { min-height:100px; border-right:0; }
  .calendar-day.outside { display:none; }
  .activity-chip { font-size:.78rem; padding:.35rem .45rem; }
  .agenda-row,.public-agenda .agenda-row { grid-template-columns:1fr; }
  .agenda-date,.agenda-hours { border-right:0; border-bottom:1px solid var(--app-border); }
  .agenda-date { flex-direction:row; justify-content:space-between; align-items:center; }
  .agenda-hours { flex-direction:row; gap:1rem; padding-top:.5rem; padding-bottom:.5rem; }
  .navbar-user { display:inline-block; margin:.6rem 0; }
}

