/* Modals (SPEC §Modals). .pm* rules copied from the reference; .modal-bg/.modal/.modal-h authored to match. */
.modal-bg{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(27,27,25,.35)}
.modal{position:relative;width:100%;max-width:480px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;background:#FFFFFF;border:1px solid #E3E1DA;border-radius:12px;box-shadow:0 20px 50px rgba(27,27,25,.25)}
.modal:focus{outline:none}
.modal-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 10px 0 16px;font-size:16px;font-weight:650;line-height:1.3;color:#1C1B18}
.modal-h span{padding-top:5px;min-width:0;overflow-wrap:anywhere}
.modal-x{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:#8A8983;cursor:pointer}
.modal-x:hover{background:#EEEDE7;color:#1C1B18}
.ev-modal .dl{display:grid;grid-template-columns:84px 1fr;gap:9px 12px;margin:0;padding:14px 16px 16px;font-size:13.5px}
.ev-modal .dl dt{color:#8A8983}
.ev-modal .dl dd{margin:0;color:#1B1B19;min-width:0;overflow-wrap:anywhere}

/* Program modal */
.pm{border-color:#E3E1DA}
.pm-head{display:flex;align-items:flex-start;gap:12px;padding:16px 16px 0}
.pm-lg{flex:none;width:32px;height:32px;color:var(--apps);margin-top:2px}
.pm-ttl{flex:1;min-width:0}
.pm-ttl p{margin:0;font-size:12px;color:#6E6D67}
.pm-ttl h2{margin:2px 0 0;font-size:18px;font-weight:650;line-height:1.25}
.pm-hr{flex:none;display:flex;align-items:center;gap:6px;margin:-4px -6px 0 0}
.pm-ext{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;color:#8A8983;text-decoration:none}
.pm-ext:hover{background:#E6ECF8;color:#3B5998}
.pm-x{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:#8A8983;cursor:pointer}
.pm-x:hover{background:#EEEDE7;color:#1C1B18}
.pm-btn{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:13px;font-weight:500;padding:7px 14px;border-radius:8px;border:1px solid #D6D4CC;background:#FFFFFF;color:#3A3935;text-decoration:none;cursor:pointer}
.pm-btn.pri{background:var(--apps-soft);border-color:var(--apps-line);color:var(--apps)}
.pm-btn.pri:hover{background:#DCE4F4;color:var(--apps)}
.pm-btn.pri.sm{height:32px;padding:0 14px;box-sizing:border-box}
.pm-desc{margin:12px 16px 0;font-size:14px;line-height:1.5;color:#1C1B18}
.pm-dates{margin:14px 16px 0;display:flex;flex-direction:column;gap:6px}
.pm-dr{display:flex;align-items:center;gap:10px;min-height:32px;padding:0 12px;border-radius:8px;font-size:13px;background:var(--run-soft);border:1px solid var(--run-line);color:#3A3935}
.pm-dr.apps{background:var(--apps-soft);border-color:var(--apps-line);color:var(--apps)}
.pm-dr.now{background:var(--now-soft);border-color:var(--apps);color:var(--apps)}
.pm-dr .pm-di{flex:none}
.pm-dr .pm-dk{font-weight:600;white-space:nowrap}
.pm-dr .pm-dv{flex:1;min-width:0}
.pm-pill{flex:none;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;background:#FFFFFF;border:1px solid var(--apps-line);color:var(--apps);font-variant-numeric:tabular-nums}
.pm-dr.now .pm-pill{background:var(--apps);border-color:var(--apps);color:#FFFFFF}
.pm-dr:not(.apps):not(.now) .pm-pill{border-color:var(--run-line);color:#3A3935}
.pm dl{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;margin:0;padding:14px 16px 16px;font-size:13px}
.pm dt{color:#6E6D67}
.pm dd{margin:0;color:#1C1B18;min-width:0}
.pm-desc:last-child,.pm-dates:last-child{margin-bottom:16px}
/* Keyboard focus */
.pm-ext:focus-visible,.pm-x:focus-visible,.pm-btn:focus-visible,.modal-x:focus-visible,.ev-modal a:focus-visible{outline:2px solid var(--apps);outline-offset:2px}
/* Narrow screens: rows wrap instead of overflowing */
@media (max-width:520px){
  .pm-dr{flex-wrap:wrap;column-gap:10px;row-gap:2px;padding:6px 12px}
  .pm-dr .pm-dv{flex:1 1 auto}
  .pm-dr .pm-pill{margin-left:auto}
  .pm dl{grid-template-columns:88px 1fr}
  /* Logo + actions on the first line, org and name full width below */
  .pm-head{flex-wrap:wrap;row-gap:8px}
  .pm-hr{margin-left:auto}
  .pm-ttl{order:3;flex-basis:100%}
}
.ev-modal .ev-host{display:flex;align-items:center;gap:8px}
.ev-modal .ev-host .lg{width:16px;height:16px;color:#3A3935}
