.mark { font-size: 24px; font-weight: normal; }
.menu-button { margin-left: auto; background: transparent; color: #fff; border: 1px solid #ffffff66; border-radius: 6px; padding: 7px 11px; font-size: 22px; cursor: pointer; }
.menu { position: fixed; z-index: 30; top: 0; right: -330px; width: min(330px, 88vw); height: 100vh; background: #fff; box-shadow: -5px 0 24px #0004; padding: 18px 0; transition: right .2s ease; display: flex; flex-direction: column; }
.menu-open .menu { right: 0; }
.menu-head { display: flex; justify-content: space-between; align-items: center; padding: 0 20px 14px; border-bottom: 1px solid #dce1e6; }
.menu-head button { border: 0; background: none; font-size: 28px; color: #861f41; }
.menu a { display: block; padding: 13px 20px; color: #18202a; text-decoration: none; border-bottom: 1px solid #edf0f2; }
.menu a:hover { background: #fff3e9; color: #861f41; }
.menu .hokie-history { margin-top: auto; background: #861f41; color: #fff; border-top: 3px solid #e87722; border-bottom: 0; font-weight: bold; }
.menu .hokie-history:hover { background: #6f1936; color: #fff; }
.menu-shade { display: none; position: fixed; z-index: 20; inset: 0; background: #0007; }
.menu-open .menu-shade { display: block; }
html { scroll-behavior: smooth; }
.item-actions { display: flex; align-items: center; gap: 7px; }
.item-actions form { margin: 0; }
.edit { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; color: #861f41; background: transparent; border: 0; padding: 0; text-decoration: none; }
.edit:hover { color: #e87722; }
.edit-icon { width: 18px; height: 18px; display: block; }
.side-calendar { padding: 12px 13px 14px; border-bottom: 1px solid #dce1e6; }
.calendar-nav { display: grid; grid-template-columns: 30px 1fr 30px; align-items: center; text-align: center; margin-bottom: 7px; }
.calendar-nav strong { font-size: 13px; color: #18202a; }
.calendar-nav button { border: 0; background: transparent; color: #861f41; font-size: 22px; line-height: 1; cursor: pointer; }
.calendar-weekdays,.calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; text-align: center; }
.calendar-weekdays { color: #67717c; font-size: 10px; font-weight: bold; margin-bottom: 3px; }
.calendar-day { box-sizing: border-box; width: 100%; aspect-ratio: 1; min-width: 0; padding: 0; border: 1px solid transparent; border-radius: 50%; background: transparent; color: #18202a; cursor: pointer; font-size: 11px; }
.calendar-day:hover { background: #fff3e9; border-color: #e87722; }
.calendar-day.is-today { border-color: #e87722; font-weight: bold; }
.calendar-day.is-selected { background: #861f41; border-color: #861f41; color: #fff; font-weight: bold; }
.calendar-blank{min-width:0}.calendar-selected-date{margin:7px 0 0;text-align:center;color:#59636e;font-size:10px;font-weight:700}
.edit-panel { max-width: 850px; margin-left: auto; margin-right: auto; }
.edit-panel h1 { padding: 0 18px; }
.edit-checks { display: flex; gap: 24px; align-items: center; }
.edit-checks label { font-size: 14px; }
.edit-checks input { display: inline; width: auto; }

.password-field { display: block; position: relative; }
.password-field input { padding-right: 44px; }
.stack .password-toggle { position: absolute; right: 2px; top: 6px; width: 40px; height: 38px; padding: 8px; background: transparent; color: #4e5964; border: 0; border-radius: 4px; display: grid; place-items: center; cursor: pointer; }
.password-toggle:hover, .password-toggle:focus-visible { background: #f0f2f4; color: var(--maroon); }
.password-toggle svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-toggle .eye-closed { display: none; }
.password-toggle.is-visible .eye-open { display: none; }
.password-toggle.is-visible .eye-closed { display: block; }
.user-list { display: grid; gap: 12px; padding: 0 16px; }
.user-card { border: 1px solid #dce1e6; border-radius: 8px; padding: 13px 15px; background: #fff; }
.user-card.inactive { background: #f4f5f6; opacity: .8; }
.user-summary { display: grid; grid-template-columns: 1fr auto 30px; gap: 12px; align-items: center; }
.user-summary strong, .user-summary span { display: block; }
.user-summary > div > span { color: #67717c; font-size: 13px; margin-top: 2px; }
.account-status { color: #287a45; background: #e8f5ec; border-radius: 12px; padding: 3px 9px; font-size: 12px; font-weight: bold; }
.inactive .account-status { color: #67717c; background: #e1e4e7; }
.handoff-form { display: flex; justify-content: flex-end; align-items: end; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #edf0f2; }
.handoff-form label { color: #4e5964; font-size: 12px; font-weight: bold; }
.handoff-form select { display: block; min-width: 210px; padding: 7px; margin-top: 3px; border: 1px solid #bbc3cb; border-radius: 5px; }
.user-actions, .inactive-actions { display: flex; gap: 8px; align-items: end; }
.inactive-actions { justify-content: flex-end; margin-top: 12px; }
.inactive-actions form { margin: 0; }
.user-actions button, .inactive-actions button { border: 0; border-radius: 5px; padding: 8px 11px; font-weight: bold; cursor: pointer; }
.secondary { background: #e8eaed; color: #18202a; }
.danger { background: #b42318; color: #fff; }
.current-account { margin: 8px 0 0; color: #67717c; font-size: 12px; text-align: right; }
.edit-panel label small { display: block; color: #67717c; font-weight: normal; }
@media(max-width:720px) { .user-summary { grid-template-columns: 1fr auto 30px; } .handoff-form,.inactive-actions { align-items: stretch; flex-direction: column; } .handoff-form select { width: 100%; } .user-actions { display: grid; grid-template-columns: 1fr 1fr; } }
.form-actions { display: flex; justify-content: flex-end; align-items: center; gap: 18px; }
.form-actions a { color: #67717c; }
.assignees { border: 1px solid #bbc3cb; border-radius: 6px; padding: 10px 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 14px; }
.assignees legend { color: #4e5964; font-size: 13px; font-weight: bold; padding: 0 5px; }
.assignees label { font-size: 14px; font-weight: normal; }
.assignees input { display: inline; width: auto; margin: 0 5px 0 0; }
.assignees .all-students { grid-column: 1 / -1; color: #861f41; font-weight: bold; padding-bottom: 7px; border-bottom: 1px solid #edf0f2; }
@media(max-width:720px) { .assignees { grid-template-columns: 1fr; } }
.menu-count { float: right; background: #e87722; color: #fff; border-radius: 12px; min-width: 24px; padding: 1px 7px; text-align: center; font-size: 12px; }
.reminder-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 20px; }
.reminder { display: grid; grid-template-columns: 30px 1fr 24px; gap: 8px; padding: 11px 0; border-bottom: 1px solid #edf0f2; }
.reminder p { margin: 3px 0; color: #67717c; }
.reminder.done > div { opacity: .55; text-decoration: line-through; }
.status { color: #861f41; font-size: 20px; }
@media(max-width:720px) { .reminder-grid { grid-template-columns: 1fr; } }
.device-time { display: block; margin: 2px 0 5px; color: #67717c; font-weight: normal; }
.private-badge { display: inline-block; margin-left: 6px; background: #18202a; color: #fff; border-radius: 12px; padding: 2px 7px; font-size: 11px; }
.archive-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 16px; }
.archive-head h1 { margin: 0; }
.archive-actions { display: flex; gap: 10px; }
.archive-actions a,.archive-actions button,.archive-filters button { background: #861f41; color: #fff; border: 0; border-radius: 5px; padding: 9px 13px; text-decoration: none; font-weight: bold; }
.archive-filters { display: flex; align-items: end; gap: 12px; background: #fff; padding: 14px; border: 1px solid #dce1e6; border-radius: 8px; }
.archive-filters label { font-size: 13px; font-weight: bold; }
.archive-filters select { display: block; min-width: 140px; padding: 8px; margin-top: 4px; }
.archive-month > h2 { margin-top: 28px; color: #861f41; border-bottom: 2px solid #e87722; padding-bottom: 5px; }
.archive-record { background: #fff; border: 1px solid #dce1e6; border-left: 5px solid #bbc3cb; border-radius: 7px; padding: 15px 17px; margin: 12px 0; }
.archive-record.included { border-left-color: #e87722; }
.archive-record-head { display: flex; justify-content: space-between; gap: 12px; }.archive-record-controls{display:flex;align-items:flex-start;gap:10px}.archive-record-controls form{margin:0}.archive-batch-note{background:#f7f8f9;border-left:4px solid #e87722;padding:9px 12px}.archive-batch-note p{margin:3px 0;color:#67717c;font-size:13px}
.archive-record h3 { margin: 5px 0; }
.archive-record time { color: #67717c; margin-left: 8px; }
.type-badge { background: #f8e7ee; color: #861f41; border-radius: 11px; padding: 3px 8px; font-size: 11px; font-weight: bold; }
.report-check { white-space: nowrap; font-size: 13px; font-weight: bold; }
.archive-record dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
.archive-record dl div { background: #f7f8f9; padding: 8px; }
.archive-record dt { font-size: 11px; text-transform: uppercase; color: #67717c; }
.archive-record dd { margin: 2px 0 0; }
.review-note { border-top: 1px solid #edf0f2; padding-top: 9px; margin-top: 9px; }
.review-note p { white-space: pre-wrap; }
.archive-links a { display: block; overflow-wrap: anywhere; }
@media(max-width:720px) { .archive-head,.archive-filters { align-items: stretch; flex-direction: column; } .archive-record-head { flex-direction: column; } .archive-record dl { grid-template-columns: 1fr; } }
@media print { .topbar,.menu,.menu-shade,.archive-actions,.archive-filters,.report-check,.archive-edit { display:none!important; } main { max-width:none; padding:0; } .archive-record { break-inside:avoid; box-shadow:none; } }

/* Desktop left sidebar; a fully hidden hamburger drawer on phones/tablets. */
@media(min-width:1101px) {
  .menu { left: 0; right: auto; top: 70px; width: 250px; height: calc(100vh - 70px); box-shadow: 3px 4px 18px #0002; transition: none; overflow-y: auto; }
  .menu-open .menu { left: 0; right: auto; }
  .menu-head button,.menu-button,.menu-shade,.menu-open .menu-shade { display: none; }
  body main { margin-left: 270px; margin-right: auto; }
}
@media(max-width:1100px) {
  .menu { left: 0; right: auto; top: 0; height: 100dvh; transform: translateX(-110%); visibility: hidden; pointer-events: none; transition: transform .2s ease, visibility 0s linear .2s; overflow-y: auto; }
  .menu-open .menu { left: 0; right: auto; transform: translateX(0); visibility: visible; pointer-events: auto; transition: transform .2s ease; }
  .menu-button { display: block; }
  body main { margin-left: auto; margin-right: auto; }
  body.menu-open { overflow: hidden; }
}
.priority-key { display: flex; flex-wrap: wrap; gap: 6px; }
.priority-key span { background: #fff; border: 1px solid #dce1e6; border-radius: 14px; padding: 4px 8px; font-size: 11px; }
.priority-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 20px; }
.priority-section h2 span,.completed-priorities summary span { float: right; background: #f8e7ee; color: #861f41; border-radius: 13px; padding: 1px 8px; }
.priority-section.overdue h2 { border-top-color: #b42318; }
.priority-section.today h2 { border-top-color: #e87722; }
.priority-item { display: grid; grid-template-columns: 30px 1fr auto; gap: 9px; border-bottom: 1px solid #edf0f2; border-left: 4px solid #bbc3cb; padding: 11px 8px; }
.priority-item.priority-5 { border-left-color: #b42318; }
.priority-item.priority-4 { border-left-color: #e87722; }
.priority-item.priority-3 { border-left-color: #477b9f; }
.priority-item.priority-2 { border-left-color: #8a96a1; }
.priority-item.priority-1 { border-left-color: #bbc3cb; }
.priority-item strong { display: block; margin-top: 4px; }
.priority-item p { margin: 2px 0; color: #67717c; }
.priority-number { background: #18202a; color: #fff; border-radius: 10px; padding: 2px 6px; font-size: 11px; font-weight: bold; }
.dashboard-priorities { margin-bottom: 16px; }
.dashboard-priority-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 13px 17px; border-top: 4px solid #861f41; border-bottom: 1px solid #dce1e6; border-radius: 9px 9px 0 0; }
.dashboard-priority-head h2 { border: 0; padding: 0; }
.dashboard-priority-head .eyebrow { font-size: 11px; }
.dashboard-priority-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; padding: 6px 15px; }
.dashboard-priority-list .priority-item { grid-template-columns: 28px 28px 1fr 30px; align-items: center; }
.priority-rank { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #861f41; color: #fff; font-size: 12px; font-weight: bold; }
.dashboard-priority-list .priority-item:nth-child(1) .priority-rank { background: #b42318; }
.dashboard-priority-list .priority-item:nth-child(2) .priority-rank { background: #e87722; }
.priority-item.done > div { opacity: .55; text-decoration: line-through; }
.completed-priorities { grid-column: 1 / -1; }
.completed-priorities summary { padding: 14px 17px; font-weight: bold; cursor: pointer; }
@media(max-width:850px) { .priority-sections,.dashboard-priority-list { grid-template-columns: 1fr; } .completed-priorities { grid-column: auto; } .dashboard-priority-head { align-items: flex-start; flex-direction: column; } }
.checklist-head{display:flex;justify-content:space-between;align-items:center;background:#fff;border-left:6px solid #e87722;border-radius:10px;padding:18px 22px}.checklist-head h1,.checklist-head p{margin:2px 0}.progress-ring{--progress:0;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#2e7d4f calc(var(--progress)*1%),#f1c84b 0);position:relative}.progress-ring:after{content:"";position:absolute;inset:10px;border-radius:50%;background:#fff}.progress-ring span{z-index:1;font-size:20px;font-weight:bold}.sort-buttons{display:flex;gap:8px;align-items:center;margin:16px 0}.sort-buttons a{padding:7px 12px;border:1px solid #bbc3cb;border-radius:18px;color:#18202a;text-decoration:none}.sort-buttons a.active{background:#861f41;color:#fff;border-color:#861f41}.checklist-list{display:grid;gap:9px;margin-top:16px}.checklist-item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;border:1px solid;border-left-width:7px;border-radius:8px;padding:13px;background:#fff}.checklist-item.confirmed{border-color:#75b68b;background:#eef8f1}.checklist-item.missing{border-color:#dfbf45;background:#fff9dd}.checklist-item p{margin:3px 0;color:#67717c}.status-toggle{width:36px;height:36px;border-radius:50%;border:0;color:#fff;font-size:20px;font-weight:bold;cursor:pointer}.confirmed .status-toggle{background:#2e7d4f}.missing .status-toggle{background:#d3a900}.checklist-item .item-actions{display:flex}.checklist-item form{margin:0}@media(max-width:620px){.checklist-head{align-items:flex-start}.progress-ring{width:75px;height:75px}.checklist-item{grid-template-columns:38px 1fr}.checklist-item .item-actions{grid-column:2}.sort-buttons{flex-wrap:wrap}}
