:root{--green:#36486c;--green-dark:#2c3b59;--text:#333333;--muted:#5d6470;--paper:#E3E7EC;--card:#fff;--line:rgba(0,0,0,.08);--shadow:0 14px 34px rgba(0,0,0,.08)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Poppins,Arial,sans-serif;background:#f1f5f9;color:var(--text);-webkit-font-smoothing:antialiased}#catalyst-dorm-demo-display,#cita-dorm-schedule-demo-display,#cita-dorm-display{width:100vw;height:100vh}.cdd-loading{width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:22px;background:radial-gradient(circle at 82% 12%,rgba(118,153,194,.1),transparent 30%),#fff}.cdd-loading img{width:min(250px,26vw);max-height:190px;object-fit:contain}.cdd-loading p{margin:0;color:#666;font-weight:600}.cdd-loader-line{height:5px;width:min(300px,40vw);border-radius:8px;background:linear-gradient(90deg,var(--green) 0 35%,#e5e5e5 35% 100%);animation:cddPulse 1.1s ease-in-out infinite alternate}@keyframes cddPulse{to{filter:brightness(.9);transform:scaleX(.94)}}
.cdd-shell{height:100vh;display:grid;grid-template-rows:122px minmax(0,1fr) 52px;background:linear-gradient(135deg,#f1f5f9 0%,#f1f5f9 100%)}.cdd-header{background:#fff;border-bottom:4px solid var(--green);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:14px 34px;gap:28px;box-shadow:0 5px 16px rgba(0,0,0,.04)}.cdd-brand{display:flex;align-items:center;gap:20px;min-width:0}.cdd-brand img{width:122px;height:88px;object-fit:contain;flex:0 0 auto}.cdd-brand-copy{min-width:0}.cdd-brand-kicker{font-size:12px;letter-spacing:.14em;color:var(--green-dark);font-weight:800;text-transform:uppercase;margin-bottom:3px}.cdd-brand-title{font-size:28px;line-height:1.08;font-weight:800;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdd-brand-sub{margin-top:3px;font-size:14px;color:#666;font-weight:600}.cdd-datebox{text-align:right;min-width:360px}.cdd-datebox .cdd-mode{font-size:12px;letter-spacing:.14em;color:var(--green-dark);font-weight:800;text-transform:uppercase}.cdd-datebox .cdd-date{font-size:24px;line-height:1.2;font-weight:800;margin-top:3px}.cdd-datebox .cdd-clock{margin-top:5px;display:flex;justify-content:flex-end;align-items:baseline;gap:7px}.cdd-datebox .cdd-clock-label{font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:#777;font-weight:800}.cdd-datebox .cdd-clock-value{font-size:15px;color:#444;font-weight:800}.cdd-stage{position:relative;min-height:0;padding:24px 34px 18px;overflow:hidden}.cdd-slide{position:absolute;inset:24px 34px 18px;opacity:0;transform:translateX(22px);pointer-events:none;transition:opacity .48s ease,transform .48s ease;display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px}.cdd-slide.active{opacity:1;transform:translateX(0);pointer-events:auto}.cdd-slide-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.cdd-slide-head .cdd-section-kicker{font-size:12px;letter-spacing:.14em;color:var(--green-dark);font-weight:800;text-transform:uppercase}.cdd-slide-head h1{font-size:34px;line-height:1.1;margin:3px 0 0;font-weight:800;letter-spacing:-.025em}.cdd-slide-note{font-size:14px;color:#666;font-weight:600}.cdd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:14px;min-height:0}.cdd-time-card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);display:grid;grid-template-columns:150px minmax(0,1fr);overflow:hidden;min-height:0}.cdd-time-card.next{border:2px solid rgba(118,153,194,.55);box-shadow:0 14px 34px rgba(118,153,194,.11)}.cdd-time{background:#eef3f8;border-right:1px solid rgba(118,153,194,.18);display:flex;align-items:center;justify-content:center;text-align:center;padding:15px 12px;font-size:22px;line-height:1.12;font-weight:800;color:#1f1f1f}.cdd-time-card.next .cdd-time{background:var(--green);color:#fff}.cdd-events{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:12px 17px}.cdd-event{padding:5px 0}.cdd-event+.cdd-event{border-top:1px solid #ededed}.cdd-event-title{font-size:20px;line-height:1.18;font-weight:800;color:#232323}.cdd-event-meta{margin-top:3px;font-size:13px;color:#555;line-height:1.35;font-weight:600}.cdd-event-notes{margin-top:3px;font-size:12px;color:#727272;line-height:1.35}.cdd-next-tag{display:inline-flex;margin-left:8px;vertical-align:middle;background:#eef3f8;color:var(--green-dark);border-radius:7px;padding:3px 7px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:800}.cdd-special-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0}.cdd-special-grid.single{grid-template-columns:1fr}.cdd-special-col{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:18px;min-height:0;overflow:hidden}.cdd-special-col h2{font-size:22px;margin:0 0 12px;color:#232323}.cdd-special-list{display:grid;gap:10px}.cdd-special-item{display:grid;grid-template-columns:125px minmax(0,1fr);gap:14px;align-items:center;background:#f7f7f7;border-left:4px solid var(--green);border-radius:10px;padding:11px 13px}.cdd-special-time{font-size:16px;font-weight:800;color:#232323}.cdd-special-title{font-size:17px;line-height:1.2;font-weight:800}.cdd-special-meta{font-size:12px;color:#5d5d5d;margin-top:3px;line-height:1.35}.cdd-ann-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-height:0}.cdd-ann-grid.single{grid-template-columns:1fr}.cdd-ann-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:24px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.cdd-ann-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--green)}.cdd-ann-card.important{background:linear-gradient(135deg,#eef3f8,#fff)}.cdd-ann-card .label{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:800;color:var(--green-dark);margin-bottom:8px}.cdd-ann-card h2{font-size:25px;line-height:1.15;margin:0 0 8px}.cdd-ann-card p{font-size:17px;line-height:1.55;margin:0;color:#4d4d4d;font-weight:500}.cdd-empty-card{height:100%;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);display:grid;place-items:center;text-align:center;padding:50px}.cdd-empty-card img{width:180px;max-height:135px;object-fit:contain;margin-bottom:16px}.cdd-empty-card h2{font-size:32px;margin:0 0 8px}.cdd-empty-card p{font-size:17px;color:#666;margin:0}.cdd-footer{height:52px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;padding:0 34px;gap:20px}.cdd-footer-left{display:flex;align-items:center;gap:16px;min-width:0}.cdd-tagline{font-size:12px;letter-spacing:.08em;color:var(--green-dark);font-weight:800;white-space:nowrap}.cdd-connection{font-size:11px;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdd-rotation{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:#555}.cdd-countdown{--p:100;width:29px;height:29px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--p)*1%),#e5e5e5 0);display:grid;place-items:center}.cdd-countdown:after{content:"";width:19px;height:19px;background:#fff;border-radius:50%}.cdd-screen-index{white-space:nowrap}.cdd-progress-text{white-space:nowrap}.cdd-no-rotation .cdd-countdown,.cdd-no-rotation .cdd-progress-text{display:none}
@media(max-width:1200px){.cdd-shell{grid-template-rows:110px minmax(0,1fr) 48px}.cdd-header{padding:12px 24px}.cdd-brand img{width:105px;height:76px}.cdd-brand-title{font-size:24px}.cdd-datebox{min-width:300px}.cdd-datebox .cdd-date{font-size:21px}.cdd-stage{padding:18px 24px 14px}.cdd-slide{inset:18px 24px 14px}.cdd-slide-head h1{font-size:29px}.cdd-time-card{grid-template-columns:125px 1fr}.cdd-time{font-size:18px}.cdd-event-title{font-size:17px}.cdd-footer{padding:0 24px}}
@media(max-width:900px){.cdd-header{grid-template-columns:1fr auto}.cdd-brand-copy .cdd-brand-sub{display:none}.cdd-brand-title{font-size:20px}.cdd-datebox{min-width:240px}.cdd-datebox .cdd-date{font-size:18px}.cdd-grid,.cdd-special-grid,.cdd-ann-grid{grid-template-columns:1fr}.cdd-time-card{grid-template-columns:135px 1fr}.cdd-slide-head h1{font-size:25px}}

/* v1.0.2 — labeled current-time clock */
.cdd-loading img{width:min(375px,39vw);max-height:285px}
.cdd-shell{grid-template-rows:160px minmax(0,1fr) 52px}
.cdd-shell.has-announcements{grid-template-rows:160px 76px minmax(0,1fr) 52px}
.cdd-brand img{width:183px;height:132px}
.cdd-empty-card img{width:270px;max-height:203px}
.cdd-announcement-bar{margin:10px 34px 0;background:#fff;border:1px solid rgba(118,153,194,.24);border-left:6px solid var(--green);border-radius:12px;box-shadow:0 8px 22px rgba(0,0,0,.06);padding:10px 16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;overflow:hidden}
.cdd-announcement-bar.important{background:linear-gradient(90deg,#eef3f8 0%,#fff 70%);border-color:rgba(118,153,194,.34)}
.cdd-ann-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--green-dark);font-weight:800;white-space:nowrap}
.cdd-ann-copy{min-width:0;display:flex;align-items:baseline;gap:10px;white-space:nowrap;overflow:hidden}
.cdd-ann-copy strong{font-size:15px;color:#232323;flex:0 0 auto}
.cdd-ann-copy span{font-size:13px;color:#555;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.cdd-ann-count{font-size:10px;color:#777;font-weight:800;white-space:nowrap}
@media(max-width:1200px){
  .cdd-shell{grid-template-rows:140px minmax(0,1fr) 48px}
  .cdd-shell.has-announcements{grid-template-rows:140px 70px minmax(0,1fr) 48px}
  .cdd-brand img{width:158px;height:114px}
  .cdd-announcement-bar{margin:8px 24px 0;padding:9px 13px}
}
@media(max-width:900px){
  .cdd-brand img{width:158px;height:114px}
  .cdd-ann-copy strong{font-size:13px}.cdd-ann-copy span{font-size:12px}
}

/* v1.0.3 — logos increased another 25% */
.cdd-loading img{width:min(469px,49vw);max-height:356px}
.cdd-shell{grid-template-rows:200px minmax(0,1fr) 52px}
.cdd-shell.has-announcements{grid-template-rows:200px 76px minmax(0,1fr) 52px}
.cdd-brand img{width:229px;height:165px}
.cdd-empty-card img{width:338px;max-height:254px}
@media(max-width:1200px){
  .cdd-shell{grid-template-rows:175px minmax(0,1fr) 48px}
  .cdd-shell.has-announcements{grid-template-rows:175px 70px minmax(0,1fr) 48px}
  .cdd-brand img{width:198px;height:143px}
}
@media(max-width:900px){
  .cdd-brand img{width:198px;height:143px}
}

/* v1.0.4 — full-day schedule screen + longer resident-specific screen */
.cdd-grid-all{grid-auto-rows:minmax(0,1fr);align-content:stretch}
.cdd-grid-all.cdd-relaxed{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cdd-grid-all.cdd-standard{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cdd-grid-all.cdd-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cdd-grid-all.cdd-dense{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.cdd-grid-all.cdd-extra-dense{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}

.cdd-grid-all.cdd-standard .cdd-time-card,
.cdd-grid-all.cdd-compact .cdd-time-card{grid-template-columns:108px minmax(0,1fr)}
.cdd-grid-all.cdd-dense .cdd-time-card{grid-template-columns:92px minmax(0,1fr)}
.cdd-grid-all.cdd-extra-dense .cdd-time-card{grid-template-columns:80px minmax(0,1fr)}

.cdd-grid-all.cdd-standard .cdd-time{font-size:18px;padding:10px 8px}
.cdd-grid-all.cdd-compact .cdd-time{font-size:17px;padding:8px 7px}
.cdd-grid-all.cdd-dense .cdd-time{font-size:15px;padding:7px 5px}
.cdd-grid-all.cdd-extra-dense .cdd-time{font-size:14px;padding:6px 4px}

.cdd-grid-all.cdd-standard .cdd-events{padding:9px 11px}
.cdd-grid-all.cdd-compact .cdd-events{padding:7px 9px}
.cdd-grid-all.cdd-dense .cdd-events{padding:6px 8px}
.cdd-grid-all.cdd-extra-dense .cdd-events{padding:5px 7px}

.cdd-grid-all.cdd-standard .cdd-event-title{font-size:17px}
.cdd-grid-all.cdd-compact .cdd-event-title{font-size:16px}
.cdd-grid-all.cdd-dense .cdd-event-title{font-size:14px;line-height:1.12}
.cdd-grid-all.cdd-extra-dense .cdd-event-title{font-size:13px;line-height:1.1}

.cdd-grid-all.cdd-compact .cdd-event-meta,
.cdd-grid-all.cdd-dense .cdd-event-meta,
.cdd-grid-all.cdd-extra-dense .cdd-event-meta{font-size:11px;margin-top:2px}
.cdd-grid-all.cdd-dense .cdd-event-notes,
.cdd-grid-all.cdd-extra-dense .cdd-event-notes{font-size:10px;margin-top:2px}
.cdd-grid-all.cdd-dense .cdd-next-tag,
.cdd-grid-all.cdd-extra-dense .cdd-next-tag{font-size:8px;padding:2px 5px;margin-left:4px}

.cdd-special-slide .cdd-special-col{display:flex;flex-direction:column}
.cdd-special-slide .cdd-special-list{grid-auto-rows:minmax(0,1fr);flex:1;min-height:0}
.cdd-special-slide .cdd-special-item{min-height:0}

@media(max-width:1400px){
  .cdd-grid-all.cdd-standard,.cdd-grid-all.cdd-compact{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cdd-grid-all.cdd-dense,.cdd-grid-all.cdd-extra-dense{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1000px){
  .cdd-grid-all.cdd-relaxed,.cdd-grid-all.cdd-standard,.cdd-grid-all.cdd-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cdd-grid-all.cdd-dense,.cdd-grid-all.cdd-extra-dense{grid-template-columns:repeat(3,minmax(0,1fr))}
}


/* v1.0.5 — resident name is the primary visual on Appointments & Duties */
.cdd-special-content{min-width:0;display:flex;flex-direction:column;justify-content:center}
.cdd-special-resident{font-size:24px;line-height:1.08;font-weight:800;color:#232323;letter-spacing:-.01em;overflow-wrap:anywhere}
.cdd-special-title{margin-top:4px;font-size:16px;line-height:1.2;font-weight:800;color:var(--green-dark)}
.cdd-special-meta{font-size:13px;color:#555;margin-top:4px;line-height:1.35;font-weight:600}
.cdd-special-notes{font-weight:500;color:#6b6b6b}
.cdd-special-item{padding:12px 14px}
@media(max-width:1200px){
  .cdd-special-resident{font-size:21px}
  .cdd-special-title{font-size:15px}
}


/* v1.0.8 — TV-first lobby readability and chronological two-column flow */
.cdd-shell{grid-template-rows:170px minmax(0,1fr) 54px}
.cdd-shell.has-announcements{grid-template-rows:170px 112px minmax(0,1fr) 54px}
.cdd-header{padding:16px 42px;gap:34px}
.cdd-brand{gap:24px}
.cdd-brand img{width:205px;height:148px}
.cdd-brand-kicker{font-size:14px;letter-spacing:.13em;margin-bottom:4px}
.cdd-brand-title{font-size:34px;line-height:1.05}
.cdd-brand-sub{margin-top:5px;font-size:17px}
.cdd-datebox{min-width:390px}
.cdd-datebox .cdd-mode{font-size:14px}
.cdd-datebox .cdd-date{font-size:30px;margin-top:4px}
.cdd-datebox .cdd-clock{margin-top:7px;gap:9px}
.cdd-datebox .cdd-clock-label{font-size:12px}
.cdd-datebox .cdd-clock-value{font-size:20px}

.cdd-announcement-bar{margin:12px 42px 0;padding:14px 20px;border-left-width:8px;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;overflow:visible}
.cdd-announcement-bar.important{background:linear-gradient(90deg,#f1f5f9 0%,#f1f5f9 62%,#fff 100%);border-color:rgba(118,153,194,.48);box-shadow:0 10px 28px rgba(118,153,194,.10)}
.cdd-ann-label{font-size:13px;letter-spacing:.1em;padding:6px 9px;border-radius:7px;background:#f1f5f9;color:var(--green-dark)}
.cdd-announcement-bar.important .cdd-ann-label{background:var(--green);color:#fff}
.cdd-ann-copy{align-items:center;gap:14px;white-space:normal;overflow:visible;line-height:1.25}
.cdd-ann-copy strong{font-size:22px;line-height:1.18}
.cdd-ann-copy span{font-size:19px;line-height:1.32;color:#444;font-weight:600;overflow:visible;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cdd-announcement-bar.important .cdd-ann-copy strong{font-size:24px}
.cdd-announcement-bar.important .cdd-ann-copy span{font-size:20px;font-weight:700;color:#333}
.cdd-ann-count{font-size:12px}

.cdd-stage{padding:22px 42px 18px}
.cdd-slide{inset:22px 42px 18px;gap:18px}
.cdd-slide-head{align-items:flex-end}
.cdd-slide-head .cdd-section-kicker{font-size:14px;letter-spacing:.13em}
.cdd-slide-head h1{font-size:42px;line-height:1.05;margin-top:4px}
.cdd-slide-note{font-size:17px}

/* Fill the left schedule column from earliest to latest, then continue at the top of the right. */
.cdd-grid-all,.cdd-grid-all.cdd-relaxed,.cdd-grid-all.cdd-standard,.cdd-grid-all.cdd-compact,.cdd-grid-all.cdd-dense,.cdd-grid-all.cdd-extra-dense{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:18px;align-content:stretch;min-height:0}
.cdd-schedule-column{display:grid;grid-template-rows:repeat(var(--cdd-schedule-rows),minmax(0,1fr));gap:12px;min-height:0}
.cdd-time-card,.cdd-grid-all.cdd-standard .cdd-time-card,.cdd-grid-all.cdd-compact .cdd-time-card,.cdd-grid-all.cdd-dense .cdd-time-card,.cdd-grid-all.cdd-extra-dense .cdd-time-card{grid-template-columns:145px minmax(0,1fr);border-radius:12px}
.cdd-time,.cdd-grid-all.cdd-standard .cdd-time,.cdd-grid-all.cdd-compact .cdd-time,.cdd-grid-all.cdd-dense .cdd-time,.cdd-grid-all.cdd-extra-dense .cdd-time{font-size:24px;line-height:1.08;padding:12px 10px}
.cdd-events,.cdd-grid-all.cdd-standard .cdd-events,.cdd-grid-all.cdd-compact .cdd-events,.cdd-grid-all.cdd-dense .cdd-events,.cdd-grid-all.cdd-extra-dense .cdd-events{padding:10px 16px}
.cdd-event{padding:4px 0}
.cdd-event-title,.cdd-grid-all.cdd-standard .cdd-event-title,.cdd-grid-all.cdd-compact .cdd-event-title,.cdd-grid-all.cdd-dense .cdd-event-title,.cdd-grid-all.cdd-extra-dense .cdd-event-title{font-size:23px;line-height:1.12}
.cdd-event-meta,.cdd-grid-all.cdd-compact .cdd-event-meta,.cdd-grid-all.cdd-dense .cdd-event-meta,.cdd-grid-all.cdd-extra-dense .cdd-event-meta{font-size:15px;line-height:1.25;margin-top:3px}
.cdd-event-notes,.cdd-grid-all.cdd-dense .cdd-event-notes,.cdd-grid-all.cdd-extra-dense .cdd-event-notes{font-size:14px;line-height:1.25;margin-top:3px}
.cdd-next-tag,.cdd-grid-all.cdd-dense .cdd-next-tag,.cdd-grid-all.cdd-extra-dense .cdd-next-tag{font-size:10px;padding:3px 7px;margin-left:7px}

/* Slightly tighten only when a day contains many distinct time rows. */
.cdd-grid-all.cdd-standard .cdd-schedule-column{gap:10px}
.cdd-grid-all.cdd-standard .cdd-time{font-size:22px}
.cdd-grid-all.cdd-standard .cdd-event-title{font-size:21px}
.cdd-grid-all.cdd-compact .cdd-schedule-column{gap:8px}
.cdd-grid-all.cdd-compact .cdd-time{font-size:20px;padding:8px}
.cdd-grid-all.cdd-compact .cdd-events{padding:7px 12px}
.cdd-grid-all.cdd-compact .cdd-event-title{font-size:19px}
.cdd-grid-all.cdd-compact .cdd-event-meta{font-size:13px}
.cdd-grid-all.cdd-compact .cdd-event-notes{font-size:12px}
.cdd-grid-all.cdd-dense .cdd-schedule-column,.cdd-grid-all.cdd-extra-dense .cdd-schedule-column{gap:6px}
.cdd-grid-all.cdd-dense .cdd-time,.cdd-grid-all.cdd-extra-dense .cdd-time{font-size:18px;padding:6px}
.cdd-grid-all.cdd-dense .cdd-events,.cdd-grid-all.cdd-extra-dense .cdd-events{padding:5px 10px}
.cdd-grid-all.cdd-dense .cdd-event-title,.cdd-grid-all.cdd-extra-dense .cdd-event-title{font-size:17px}
.cdd-grid-all.cdd-dense .cdd-event-meta,.cdd-grid-all.cdd-extra-dense .cdd-event-meta{font-size:12px}
.cdd-grid-all.cdd-dense .cdd-event-notes,.cdd-grid-all.cdd-extra-dense .cdd-event-notes{font-size:11px}

.cdd-special-grid{gap:20px}
.cdd-special-col{border-radius:12px;padding:20px}
.cdd-special-col h2{font-size:27px;margin-bottom:14px}
.cdd-special-list{gap:11px}
.cdd-special-item{grid-template-columns:145px minmax(0,1fr);gap:16px;border-radius:9px;padding:13px 15px}
.cdd-special-time{font-size:20px}
.cdd-special-resident{font-size:27px}
.cdd-special-title{font-size:18px;margin-top:4px}
.cdd-special-meta{font-size:14px}

.cdd-footer{height:54px;padding:0 42px}
.cdd-tagline{font-size:13px}
.cdd-connection{font-size:12px}
.cdd-rotation{font-size:13px;gap:11px}

@media(max-width:1400px), (max-height:820px){
  .cdd-shell{grid-template-rows:138px minmax(0,1fr) 48px}
  .cdd-shell.has-announcements{grid-template-rows:138px 94px minmax(0,1fr) 48px}
  .cdd-header{padding:12px 28px;gap:24px}
  .cdd-brand{gap:18px}.cdd-brand img{width:170px;height:122px}.cdd-brand-title{font-size:27px}.cdd-brand-kicker{font-size:11px}.cdd-brand-sub{font-size:14px}
  .cdd-datebox{min-width:310px}.cdd-datebox .cdd-mode{font-size:11px}.cdd-datebox .cdd-date{font-size:23px}.cdd-datebox .cdd-clock-label{font-size:10px}.cdd-datebox .cdd-clock-value{font-size:16px}
  .cdd-announcement-bar{margin:9px 28px 0;padding:10px 15px;gap:12px}.cdd-ann-label{font-size:10px}.cdd-ann-copy strong{font-size:18px}.cdd-ann-copy span{font-size:16px}.cdd-announcement-bar.important .cdd-ann-copy strong{font-size:20px}.cdd-announcement-bar.important .cdd-ann-copy span{font-size:17px}.cdd-ann-count{font-size:10px}
  .cdd-stage{padding:16px 28px 13px}.cdd-slide{inset:16px 28px 13px;gap:12px}.cdd-slide-head .cdd-section-kicker{font-size:11px}.cdd-slide-head h1{font-size:32px}.cdd-slide-note{font-size:14px}
  .cdd-grid-all,.cdd-grid-all.cdd-relaxed,.cdd-grid-all.cdd-standard,.cdd-grid-all.cdd-compact,.cdd-grid-all.cdd-dense,.cdd-grid-all.cdd-extra-dense{gap:13px}.cdd-schedule-column{gap:8px}
  .cdd-time-card,.cdd-grid-all.cdd-standard .cdd-time-card,.cdd-grid-all.cdd-compact .cdd-time-card,.cdd-grid-all.cdd-dense .cdd-time-card,.cdd-grid-all.cdd-extra-dense .cdd-time-card{grid-template-columns:118px minmax(0,1fr)}
  .cdd-time,.cdd-grid-all.cdd-standard .cdd-time{font-size:19px;padding:8px}.cdd-events,.cdd-grid-all.cdd-standard .cdd-events{padding:7px 11px}.cdd-event-title,.cdd-grid-all.cdd-standard .cdd-event-title{font-size:18px}.cdd-event-meta,.cdd-grid-all.cdd-standard .cdd-event-meta{font-size:12px}.cdd-event-notes,.cdd-grid-all.cdd-standard .cdd-event-notes{font-size:11px}
  .cdd-grid-all.cdd-compact .cdd-time{font-size:17px}.cdd-grid-all.cdd-compact .cdd-event-title{font-size:16px}.cdd-grid-all.cdd-dense .cdd-time,.cdd-grid-all.cdd-extra-dense .cdd-time{font-size:15px}.cdd-grid-all.cdd-dense .cdd-event-title,.cdd-grid-all.cdd-extra-dense .cdd-event-title{font-size:14px}
  .cdd-special-col{padding:15px}.cdd-special-col h2{font-size:21px}.cdd-special-item{grid-template-columns:118px 1fr;padding:10px 12px}.cdd-special-time{font-size:16px}.cdd-special-resident{font-size:21px}.cdd-special-title{font-size:15px}.cdd-special-meta{font-size:12px}
  .cdd-footer{height:48px;padding:0 28px}.cdd-tagline{font-size:11px}.cdd-connection{font-size:10px}.cdd-rotation{font-size:11px}
}

@media(max-width:900px){
  .cdd-grid-all,.cdd-grid-all.cdd-relaxed,.cdd-grid-all.cdd-standard,.cdd-grid-all.cdd-compact,.cdd-grid-all.cdd-dense,.cdd-grid-all.cdd-extra-dense{grid-template-columns:1fr;overflow:auto}
  .cdd-schedule-column{grid-template-rows:none;grid-auto-rows:minmax(70px,auto)}
  .cdd-header{grid-template-columns:minmax(0,1fr) auto}.cdd-brand-title{font-size:20px}.cdd-brand-sub{display:none}.cdd-datebox{min-width:220px}
}


/* v1.0.9 — appointments and duties now use schedule-like cards with safer text fitting */
.cdd-special-grid{gap:18px;align-items:start}
.cdd-special-col{background:transparent;border:none;box-shadow:none;padding:0;min-height:0;display:flex;flex-direction:column}
.cdd-special-col h2{font-size:25px;line-height:1.1;margin:0 0 12px;color:#232323;font-weight:800;letter-spacing:-.02em}
.cdd-special-list{display:grid;gap:10px;min-height:0;align-content:start}
.cdd-special-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:grid;grid-template-columns:128px minmax(0,1fr);overflow:hidden;min-height:0}
.cdd-special-timeblock{background:#eef3f8;border-right:1px solid rgba(118,153,194,.18);display:flex;align-items:center;justify-content:center;text-align:center;padding:10px 8px;font-size:20px;line-height:1.08;font-weight:800;color:#1f1f1f}
.cdd-special-body{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:10px 14px}
.cdd-special-resident{font-size:22px;line-height:1.08;font-weight:800;color:#232323;letter-spacing:-.01em;overflow-wrap:anywhere}
.cdd-special-title{margin-top:4px;font-size:15px;line-height:1.18;font-weight:800;color:var(--green-dark);overflow-wrap:anywhere}
.cdd-special-meta{margin-top:4px;font-size:12px;line-height:1.28;font-weight:600;color:#555;overflow-wrap:anywhere}
.cdd-special-notes{margin-top:4px;font-size:12px;line-height:1.28;font-weight:500;color:#6b6b6b;overflow-wrap:anywhere}

@media(max-width:1400px), (max-height:820px){
  .cdd-special-col h2{font-size:20px;margin-bottom:10px}
  .cdd-special-list{gap:8px}
  .cdd-special-card{grid-template-columns:108px minmax(0,1fr)}
  .cdd-special-timeblock{font-size:17px;padding:8px 6px}
  .cdd-special-body{padding:8px 11px}
  .cdd-special-resident{font-size:18px}
  .cdd-special-title{font-size:13px}
  .cdd-special-meta,.cdd-special-notes{font-size:11px;line-height:1.22}
}

@media(max-width:900px){
  .cdd-special-card{grid-template-columns:110px minmax(0,1fr)}
}


/* v1.0.10 — each schedule item gets its own card; add new schedule screens after 10 items */
.cdd-grid-all.single{grid-template-columns:minmax(0,1fr)}
.cdd-schedule-slide .cdd-schedule-column{align-content:start}


/* v1.0.11 — unified 8-card pages, multi-highlight, cleaner header spacing, and mobile/tablet fit */
.cdd-shell{grid-template-rows:184px minmax(0,1fr) 54px}
.cdd-shell.has-announcements{grid-template-rows:184px 112px minmax(0,1fr) 54px}
.cdd-header{padding:18px 42px 26px;gap:34px}
.cdd-grid-all{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-height:0;align-items:stretch}
.cdd-grid-all.single{grid-template-columns:minmax(0,1fr)}
.cdd-schedule-column{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:12px;min-height:0;align-content:start}
.cdd-grid-all.single .cdd-schedule-column{grid-template-rows:repeat(8,minmax(0,1fr))}
.cdd-special-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-height:0;align-items:stretch}
.cdd-special-grid.single{grid-template-columns:minmax(0,1fr)}
.cdd-special-col{display:flex;flex-direction:column;min-height:0}
.cdd-special-col h2{font-size:24px;line-height:1.1;margin:0 0 12px;color:#232323;font-weight:800;letter-spacing:-.02em}
.cdd-special-list{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:12px;min-height:0;align-content:start}
.cdd-special-grid.single .cdd-special-list{grid-template-rows:repeat(8,minmax(0,1fr))}
.cdd-time-card,.cdd-special-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:grid;grid-template-columns:128px minmax(0,1fr);overflow:hidden;min-height:0}
.cdd-time,.cdd-special-timeblock{background:#eef3f8;border-right:1px solid rgba(118,153,194,.18);display:flex;align-items:center;justify-content:center;text-align:center;padding:10px 8px;font-size:21px;line-height:1.08;font-weight:800;color:#1f1f1f}
.cdd-events,.cdd-special-body{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:10px 14px}
.cdd-event{padding:0}
.cdd-event-title{font-size:20px;line-height:1.12;font-weight:800;color:#232323;overflow-wrap:anywhere}
.cdd-event-meta{margin-top:4px;font-size:12px;line-height:1.28;color:#555;font-weight:600;overflow-wrap:anywhere}
.cdd-event-notes{margin-top:4px;font-size:12px;line-height:1.28;color:#6b6b6b;font-weight:500;overflow-wrap:anywhere}
.cdd-special-resident{font-size:20px;line-height:1.08;font-weight:800;color:#232323;letter-spacing:-.01em;overflow-wrap:anywhere}
.cdd-special-title{margin-top:4px;font-size:15px;line-height:1.18;font-weight:800;color:var(--green-dark);overflow-wrap:anywhere}
.cdd-special-meta{margin-top:4px;font-size:12px;line-height:1.28;font-weight:600;color:#555;overflow-wrap:anywhere}
.cdd-special-notes{margin-top:4px;font-size:12px;line-height:1.28;font-weight:500;color:#6b6b6b;overflow-wrap:anywhere}
.cdd-time-card.next,.cdd-special-card.next{border:2px solid rgba(118,153,194,.55);box-shadow:0 14px 34px rgba(118,153,194,.11)}
.cdd-time-card.next .cdd-time,.cdd-special-card.next .cdd-special-timeblock{background:var(--green);color:#fff}
.cdd-next-tag{display:inline-flex;margin-left:8px;vertical-align:middle;background:#eef3f8;color:var(--green-dark);border-radius:7px;padding:3px 7px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:800}
.cdd-time-card.next .cdd-next-tag,.cdd-special-card.next .cdd-next-tag{background:#eef3f8;color:var(--green-dark)}

@media(max-width:1400px), (max-height:820px){
  .cdd-shell{grid-template-rows:152px minmax(0,1fr) 48px}
  .cdd-shell.has-announcements{grid-template-rows:152px 94px minmax(0,1fr) 48px}
  .cdd-header{padding:14px 28px 20px;gap:24px}
  .cdd-grid-all,.cdd-special-grid{gap:14px}
  .cdd-schedule-column,.cdd-special-list{gap:10px}
  .cdd-time-card,.cdd-special-card{grid-template-columns:110px minmax(0,1fr)}
  .cdd-time,.cdd-special-timeblock{font-size:17px;padding:8px 6px}
  .cdd-events,.cdd-special-body{padding:8px 11px}
  .cdd-event-title{font-size:16px}
  .cdd-event-meta,.cdd-event-notes,.cdd-special-meta,.cdd-special-notes{font-size:11px;line-height:1.22}
  .cdd-special-resident{font-size:17px}
  .cdd-special-title{font-size:13px}
  .cdd-special-col h2{font-size:20px;margin-bottom:10px}
}

@media(max-width:1100px){
  html,body{height:auto;overflow:auto}
  #catalyst-dorm-demo-display,#cita-dorm-schedule-demo-display,#cita-dorm-display{height:auto;min-height:100vh}
  .cdd-shell,.cdd-shell.has-announcements{height:auto;min-height:100vh;grid-template-rows:auto auto minmax(0,1fr) auto}
  .cdd-stage{overflow:auto;padding:16px 20px 14px}
  .cdd-slide{position:static;inset:auto;transform:none;opacity:1;display:none;gap:14px}
  .cdd-slide.active{display:grid}
  .cdd-header{padding:14px 20px 18px;gap:18px}
  .cdd-brand{gap:14px}
  .cdd-brand img{width:128px;height:92px}
  .cdd-brand-title{font-size:22px;white-space:normal}
  .cdd-brand-kicker{font-size:11px}
  .cdd-brand-sub{font-size:13px}
  .cdd-datebox{min-width:210px}.cdd-datebox .cdd-mode{font-size:11px}.cdd-datebox .cdd-date{font-size:20px}.cdd-datebox .cdd-clock-label{font-size:10px}.cdd-datebox .cdd-clock-value{font-size:15px}
  .cdd-announcement-bar{margin:8px 20px 0;padding:10px 12px;gap:10px}.cdd-ann-label{font-size:10px}.cdd-ann-copy strong{font-size:17px}.cdd-ann-copy span{font-size:14px}.cdd-announcement-bar.important .cdd-ann-copy strong{font-size:18px}.cdd-announcement-bar.important .cdd-ann-copy span{font-size:15px}
  .cdd-slide-head .cdd-section-kicker{font-size:11px}.cdd-slide-head h1{font-size:28px}.cdd-slide-note{font-size:13px}
  .cdd-grid-all,.cdd-special-grid{grid-template-columns:1fr}
  .cdd-schedule-column,.cdd-grid-all.single .cdd-schedule-column,.cdd-special-list,.cdd-special-grid.single .cdd-special-list{grid-template-rows:none;grid-auto-rows:minmax(90px,auto)}
  .cdd-time-card,.cdd-special-card{grid-template-columns:108px minmax(0,1fr)}
  .cdd-time,.cdd-special-timeblock{font-size:16px}.cdd-event-title{font-size:17px}.cdd-special-resident{font-size:18px}.cdd-special-title{font-size:14px}
  .cdd-footer{padding:0 20px}
}

@media(max-width:680px){
  .cdd-header{grid-template-columns:1fr;align-items:start}
  .cdd-datebox{text-align:left;min-width:0}
  .cdd-datebox .cdd-clock{justify-content:flex-start}
  .cdd-brand-title{font-size:20px}
  .cdd-announcement-bar{grid-template-columns:1fr}
  .cdd-time-card,.cdd-special-card{grid-template-columns:92px minmax(0,1fr)}
  .cdd-time,.cdd-special-timeblock{font-size:14px;padding:8px 5px}
  .cdd-events,.cdd-special-body{padding:8px 10px}
  .cdd-event-title{font-size:16px}
  .cdd-special-resident{font-size:17px}
  .cdd-rotation{font-size:10px;gap:8px}
}


/* v1.0.12 — fix second-page left-first flow and repair appointments/duties layout */
.cdd-grid-all{grid-template-columns:repeat(2,minmax(0,1fr));}
.cdd-grid-all.single{grid-template-columns:minmax(0,1fr)}
.cdd-schedule-column{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:12px;min-height:0;align-content:start}
.cdd-grid-all.single .cdd-schedule-column{grid-template-rows:repeat(4,minmax(0,1fr))}
.cdd-special-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch;min-height:0}
.cdd-special-grid.single{grid-template-columns:minmax(0,1fr)}
.cdd-special-col{display:flex;flex-direction:column;min-height:0}
.cdd-special-col-single .cdd-special-grid-inner{display:grid;gap:18px;min-height:0}
.cdd-special-col-single .cdd-special-grid-inner.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
.cdd-special-col-single .cdd-special-grid-inner.one-col{grid-template-columns:minmax(0,1fr)}
.cdd-special-list{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:12px;min-height:0;align-content:start}
.cdd-special-col-single .cdd-special-list{grid-template-rows:repeat(4,minmax(0,1fr))}

@media(max-width:1100px){
  .cdd-special-col-single .cdd-special-grid-inner.two-col{grid-template-columns:1fr}
  .cdd-schedule-column,.cdd-grid-all.single .cdd-schedule-column,.cdd-special-list,.cdd-special-col-single .cdd-special-list{grid-template-rows:none;grid-auto-rows:minmax(90px,auto)}
}


/* v1.0.13 — mobile announcement stacking/fitting fix */
@media(max-width:680px){
  .cdd-announcement-bar{
    grid-template-columns:minmax(0,1fr);
    align-items:start;
    gap:10px;
    margin:10px 16px 0;
    padding:12px;
    overflow:hidden;
  }
  .cdd-ann-label{
    display:block;
    width:100%;
    white-space:normal;
    text-align:left;
    font-size:10px;
    line-height:1.2;
    padding:7px 9px;
  }
  .cdd-ann-copy{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    width:100%;
    min-width:0;
    white-space:normal;
    overflow:visible;
    line-height:1.3;
  }
  .cdd-ann-copy strong,
  .cdd-announcement-bar.important .cdd-ann-copy strong{
    display:block;
    width:100%;
    min-width:0;
    flex:none;
    font-size:18px;
    line-height:1.2;
    overflow-wrap:anywhere;
  }
  .cdd-ann-copy span,
  .cdd-announcement-bar.important .cdd-ann-copy span{
    display:block;
    width:100%;
    min-width:0;
    font-size:14px;
    line-height:1.35;
    font-weight:600;
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
    overflow-wrap:anywhere;
    -webkit-line-clamp:unset;
    -webkit-box-orient:unset;
  }
  .cdd-ann-count{
    display:block;
    font-size:10px;
    white-space:normal;
  }
}


/* v1.0.14 — appointments/duties match schedule cards and mobile items stack cleanly */
.cdd-special-card{
  grid-template-columns:128px minmax(0,1fr);
}
.cdd-special-timeblock{
  background:#eef3f8;
  border-right:1px solid rgba(118,153,194,.18);
}
.cdd-special-body{
  padding:10px 14px;
}
.cdd-special-card .cdd-event-title{
  font-size:20px;
  line-height:1.12;
}
.cdd-special-card .cdd-event-meta{
  margin-top:4px;
  font-size:12px;
  line-height:1.28;
}
.cdd-special-card .cdd-event-notes{
  margin-top:4px;
  font-size:12px;
  line-height:1.28;
}

@media(max-width:1100px){
  .cdd-grid-all,
  .cdd-special-grid,
  .cdd-special-col-single .cdd-special-grid-inner{
    grid-template-columns:1fr !important;
  }
  .cdd-schedule-column,
  .cdd-special-list{
    display:grid;
    grid-template-rows:none !important;
    grid-auto-rows:minmax(90px,auto);
    gap:10px;
  }
}

@media(max-width:680px){
  .cdd-stage{
    padding:14px 16px 12px;
  }
  .cdd-grid-all,
  .cdd-special-grid,
  .cdd-special-col-single .cdd-special-grid-inner{
    display:grid;
    grid-template-columns:1fr !important;
    gap:12px;
  }
  .cdd-schedule-column,
  .cdd-special-list{
    gap:12px;
  }
  .cdd-time-card,
  .cdd-special-card{
    grid-template-columns:92px minmax(0,1fr);
  }
  .cdd-time,
  .cdd-special-timeblock{
    font-size:14px;
    padding:8px 5px;
  }
  .cdd-events,
  .cdd-special-body{
    padding:8px 10px;
  }
  .cdd-special-card .cdd-event-title,
  .cdd-event-title{
    font-size:16px;
  }
  .cdd-special-card .cdd-event-meta,
  .cdd-special-card .cdd-event-notes,
  .cdd-event-meta,
  .cdd-event-notes{
    font-size:11px;
    line-height:1.3;
  }
}

/* v1.0.15 — keep Appointments & Duties cards full-height like Daily Schedule cards */
@media(min-width:1101px){
  /* The section heading uses only the space it needs; the card area fills everything below it. */
  .cdd-special-col{
    height:100%;
    min-height:0;
  }
  .cdd-special-col > .cdd-special-list{
    flex:1 1 auto;
    min-height:0;
    grid-template-rows:repeat(4,minmax(0,1fr));
  }
  .cdd-special-col-single > .cdd-special-grid-inner{
    flex:1 1 auto;
    min-height:0;
    align-items:stretch;
  }
  .cdd-special-col-single > .cdd-special-grid-inner > .cdd-special-list{
    height:100%;
    min-height:0;
    grid-template-rows:repeat(4,minmax(0,1fr));
  }
  .cdd-special-card{
    height:100%;
    min-height:0;
  }
}

/* v1.0.18 — robust TV fitting for Appointments & Duties notes */
/* Notes on resident-specific cards are intentionally kept on the same detail flow as the
   appointment/duty description. This prevents a third stacked text row from being clipped on
   full-HD TV browsers while keeping the resident name prominent and the notes readable. */
.cdd-special-card.has-notes .cdd-special-body{
  padding-top:7px;
  padding-bottom:7px;
}
.cdd-special-card.has-notes .cdd-event-title{
  line-height:1.06;
}
.cdd-special-details{
  margin-top:3px;
  font-size:12px;
  line-height:1.22;
  color:#555;
  font-weight:600;
  overflow-wrap:anywhere;
}
.cdd-special-details .cdd-event-meta,
.cdd-special-details .cdd-event-notes{
  display:inline;
  margin:0;
  font-size:inherit;
  line-height:inherit;
}
.cdd-special-details .cdd-event-notes{
  color:#666;
  font-weight:500;
}
.cdd-special-detail-sep{
  color:#777;
  font-weight:600;
}

@media(min-width:1101px){
  .cdd-special-slide{
    gap:10px;
  }
  .cdd-special-col h2{
    margin-bottom:8px;
  }
  .cdd-special-list{
    gap:8px;
  }
  .cdd-special-card.has-notes .cdd-special-body{
    padding:6px 12px;
  }
  .cdd-special-card.has-notes .cdd-event-title{
    font-size:19px;
  }
}

@media (min-width:1101px) and (max-width:1400px), (min-width:1101px) and (max-height:820px){
  .cdd-special-slide{
    gap:8px;
  }
  .cdd-special-col h2{
    margin-bottom:6px;
  }
  .cdd-special-list{
    gap:6px;
  }
  .cdd-special-card.has-notes .cdd-special-body{
    padding:4px 10px;
  }
  .cdd-special-card.has-notes .cdd-event-title{
    font-size:16px;
    line-height:1.04;
  }
  .cdd-special-details{
    margin-top:2px;
    font-size:11px;
    line-height:1.16;
  }
}


/* Catalyst demo brand lockup */
.catalyst-display-logo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:0 0 auto}
.catalyst-display-logo img{display:block;object-fit:contain}
.catalyst-display-logo small{display:block;color:#36486c;font-size:9px;line-height:1;font-weight:800;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.cdd-brand>.catalyst-display-logo img{width:183px;height:auto;max-height:118px}
.cdd-loading .catalyst-display-logo img{width:min(430px,42vw);height:auto;max-height:none}
.cdd-loading .catalyst-display-logo small{font-size:12px;margin-top:2px}
.cdd-empty-card .catalyst-display-logo{margin-bottom:14px}
.cdd-empty-card .catalyst-display-logo img{width:240px;height:auto;max-height:none}
@media(max-width:1200px){.cdd-brand>.catalyst-display-logo img{width:158px}.catalyst-display-logo small{font-size:8px}}
