/* Dedicated calendar layout; independent of older responsive-layout uploads. */
.course-browser{--calendar-green:#08634e;--calendar-line:#dbe7e2;color:#163b31;font-size:15px}
#viewModal:has(.course-browser) .dialog{width:min(1240px,96vw);max-width:1240px}
.course-browser-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:16px;background:#f3f8f5;border:1px solid var(--calendar-line);border-radius:16px;margin:18px 0}
.course-browser-toolbar label{display:grid;gap:6px;font-size:13px;font-weight:650;min-width:0}
.course-browser-toolbar input,.course-browser-toolbar button{font:inherit;box-sizing:border-box;min-height:44px;padding:10px 14px;border:1px solid #c5d8ce;border-radius:10px;background:white;color:#163b31;max-width:100%}
.course-browser-toolbar button{cursor:pointer;font-weight:650}
.course-browser-toolbar button[aria-pressed=true]{background:var(--calendar-green);border-color:var(--calendar-green);color:white}
.course-browser-toolbar input[type=search]{width:min(320px,100%)}
.course-browser-toolbar [hidden]{display:none!important}
.course-browser-month-nav{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.course-browser button:focus-visible,.course-browser input:focus-visible{outline:3px solid #e5aa3f;outline-offset:3px}
.course-browser-content{overflow-x:auto;border-radius:14px}
.course-browser-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--calendar-line);border-radius:14px;overflow:hidden;background:white}
.course-browser-weekday,.course-browser-day{min-width:0;border-right:1px solid var(--calendar-line);border-bottom:1px solid var(--calendar-line);padding:10px}
.course-browser-weekday{background:#edf5f0;text-align:center;font-size:13px;font-weight:750;padding:13px 8px}
.course-browser-day{min-height:112px;box-sizing:border-box}
.course-browser-day:nth-child(7n),.course-browser-weekday:nth-child(7n){border-right:0}
.course-browser-day.outside-month{background:#f7f9f8;color:#8a9b94}
.course-browser-day time{display:inline-grid;place-items:center;min-width:28px;height:28px;font-weight:650;font-size:13px}
.course-browser-day time[aria-current=date]{border-radius:50%;background:var(--calendar-green);color:white}
.course-browser-event{display:block;width:100%;text-align:left;overflow-wrap:anywhere;margin-top:7px;padding:9px;border:0;border-left:3px solid #168368;border-radius:7px;background:#e8f4ed;color:#164c3c;font:inherit;font-size:13px;line-height:1.35;cursor:pointer}
.course-browser-event:hover{background:#d8ebdf}
.course-browser-event[data-google-color]::before{content:'';display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%;background:var(--google-event-color);vertical-align:baseline}
.course-browser-event small{display:block;opacity:.78;font-size:11px;margin-top:3px}
.course-browser-table-wrap{overflow-x:auto;border:1px solid var(--calendar-line);border-radius:14px}
.course-browser table{width:100%;border-collapse:collapse;background:white}
.course-browser th,.course-browser td{padding:14px;text-align:left;border-bottom:1px solid var(--calendar-line);vertical-align:top}
.course-browser th{background:#edf5f0;font-size:13px;white-space:nowrap}
.course-browser tbody tr:hover{background:#f7faf8}
.course-browser>.sub{font-size:12px;color:#597268;line-height:1.6;margin-top:14px}
@media(max-width:700px){
 #viewModal:has(.course-browser) .dialog{width:100%;padding:18px;box-sizing:border-box}
 .course-browser-toolbar{gap:8px;padding:12px}.course-browser-toolbar>label{flex:1 1 160px}
 .course-browser-month-nav{margin-left:0;width:100%}.course-browser-month-nav button{flex:1;padding:8px;font-size:12px}
 .course-browser-month{min-width:560px}.course-browser-day{min-height:90px;padding:6px}
 .course-browser th,.course-browser td{padding:10px}
 .course-browser-table-wrap{overflow:visible;border:0;border-radius:0}
 .course-browser table{display:block;width:100%;min-width:0;border-collapse:separate;background:transparent}
 .course-browser thead{display:none}
 .course-browser tbody{display:grid;gap:12px;width:100%}
 .course-browser tbody tr{display:grid;gap:0;padding:8px 12px;border:1px solid var(--calendar-line);border-radius:14px;background:#fff;box-shadow:0 2px 8px #163b310a}
 .course-browser tbody tr:hover{background:#fff}
 .course-browser td{display:grid;grid-template-columns:minmax(6.25rem,.65fr) minmax(0,1fr);gap:12px;min-width:0;padding:9px 0;border-bottom:1px solid #e7efeb;overflow-wrap:anywhere;white-space:normal}
 .course-browser td:last-child{border-bottom:0}
 .course-browser td::before{content:attr(data-label);color:#597268;font-size:12px;font-weight:750;line-height:1.4}
 .course-browser td .course-browser-event{min-width:0;margin:0;padding:0;border:0;background:transparent;color:var(--calendar-green);font-size:15px;font-weight:750;line-height:1.4}
}
@media(max-width:360px){.course-browser td{grid-template-columns:minmax(5.5rem,.65fr) minmax(0,1fr);gap:8px}}
