/* Calendars on the participant portal and staff pages */
table.cal{table-layout:fixed;border:1px solid var(--line);background:var(--bg)}
table.cal th{text-align:center;padding:6px 2px}
table.cal td{height:104px;vertical-align:top;border:1px solid var(--soft);padding:3px;background:var(--bg)!important;overflow:hidden}
table.cal td.off{background:var(--panel)!important;color:var(--muted)}
table.cal td.today{outline:3px solid var(--rule);outline-offset:-3px}
.dn{display:block;font-weight:700;font-size:.8125rem;margin-bottom:2px}
.chip{display:block;width:100%;margin:0 0 2px;padding:1px 4px;text-align:left;font:600 .75rem/1.3 var(--sans);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-left-width:5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip.t-interview{border-left-color:var(--navy2)}
.chip.t-meeting{border-left-color:var(--rule)}
.chip.t-class{border-left-color:var(--good)}
.chip.t-checkin{border-left-color:var(--warn)}
.chip.t-task,.chip.t-review{border-left-color:var(--muted);border-style:dashed;border-left-style:solid}
@media (max-width:700px){table.cal td{height:76px;font-size:.75rem}.chip b{display:none}}
.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:8px 0 16px;font-size:.8125rem}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:5px;height:14px;display:inline-block;background:var(--navy2)}
.inbox{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:260px;overflow:auto}
.inbox li{border:1px solid var(--soft);background:var(--panel);padding:7px 10px;font-size:.9rem}
.inbox li.unread{border-left:5px solid var(--rule)}
.inbox small{display:block;color:var(--muted)}
.todo{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.todo li{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--soft);background:var(--panel);padding:8px 10px}
.evt{border:1px solid var(--soft);background:var(--panel);padding:10px 12px;margin-bottom:10px}
.evt b{display:block}
.avgrid{table-layout:fixed;min-width:560px}
.avgrid th,.avgrid td{text-align:center;padding:4px 2px;font-size:.75rem}
.avgrid tbody th{text-align:left;font-size:.8125rem;text-transform:none;letter-spacing:0;white-space:nowrap}
.avc{display:grid;place-items:center;margin:0;min-height:36px;cursor:pointer}
.avc input{width:22px;height:22px;min-height:0}
.chips2{display:flex;flex-wrap:wrap;gap:4px}
.cs{font:600 .8125rem var(--sans);padding:3px 8px;border:1px solid var(--link);background:var(--bg);color:var(--link);cursor:pointer;min-height:30px}
.cs:hover,.cs.sel{background:var(--navy);color:#fff;border-color:var(--navy)}
dialog.cdlg{width:min(640px,94vw);max-height:90vh;overflow:auto;padding:0;border:2px solid var(--navy);background:var(--bg);color:var(--ink)}
dialog.cdlg::backdrop{background:rgba(0,0,0,.55)}
.cdlg .cp-head{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--navy);color:#fff;padding:10px 16px}
.cdlg .cp-head h2{color:#fff}
.cdlg .in{padding:16px}

.tsw .btn[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}

/* Requests tab blinks while an employer is waiting for an answer. It stops once the tab is open, and for people who ask for less motion. */
@keyframes rqblink{0%,100%{background:var(--panel);color:var(--link);box-shadow:none}50%{background:#ffd21f;color:#111;box-shadow:0 0 0 3px var(--navy)}}
.tabbtns button.blink:not([aria-pressed="true"]){animation:rqblink 1.4s ease-in-out infinite;font-weight:700}
@media (prefers-reduced-motion:reduce){.tabbtns button.blink:not([aria-pressed="true"]){animation:none;background:#ffd21f;color:#111;box-shadow:0 0 0 3px var(--navy)}}
