:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#183341;background:#f3f6f7;font-synthesis:none;--navy:#102f42;--green:#087966;--line:#dce5e9}*{box-sizing:border-box}body{margin:0}a{color:#086b62;text-underline-offset:3px}header{background:var(--navy);color:white;min-height:90px;padding:18px max(24px,calc((100vw - 1200px)/2));display:flex;gap:24px;align-items:center}header a{color:white;text-decoration:none}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:23px;letter-spacing:1px;white-space:nowrap}.brand small{display:block;font-size:10px;letter-spacing:1.1px;font-weight:500;margin-top:3px}.brandmark{font-size:34px;color:#57c5ac}.headerlabel{border-left:1px solid #46606f;padding-left:24px;color:#c0d8df}.username{margin-left:auto;font-size:14px}header form{margin:0}nav{background:white;border-bottom:1px solid var(--line);display:flex;gap:6px;padding:0 max(18px,calc((100vw - 1200px)/2));overflow-x:auto}nav a{padding:19px 13px 16px;white-space:nowrap;text-decoration:none;color:#526875;font-size:14px;border-bottom:3px solid transparent}nav a[aria-current]{color:#086b62;border-color:var(--green);font-weight:700}main{max-width:1200px;margin:36px auto;padding:0 24px;min-height:65vh}h1{font-size:clamp(26px,3vw,36px);line-height:1.2;letter-spacing:-1px;margin:4px 0 14px}h2{font-size:21px;line-height:1.35;margin:0 0 12px}p{line-height:1.6;margin:10px 0 18px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.6px;color:#087966;margin-bottom:10px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:26px;margin-bottom:20px;box-shadow:0 3px 10px #18334104}.grid{display:grid;gap:22px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid .card{margin-bottom:0}.grid+details,.grid+section{margin-top:24px}.shifts{margin-bottom:28px}.cardtop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.cardtop h2{margin:0}.grade{font-size:12px;font-weight:700;color:#086b62}.badge{display:inline-block;border-radius:30px;padding:5px 11px;background:#edf1f4;color:#526875;font-size:12px;font-weight:650;white-space:nowrap}.approved,.open,.available{background:#e3f4ed;color:#087357}.pending,.draft{background:#fff3d5;color:#885e0b}.cancelled,.rejected,.removed{background:#fce8e8;color:#a32a37}.tags{display:flex;gap:8px;flex-wrap:wrap}.date{font-weight:650;line-height:1.8}.instructions{white-space:normal;border-left:3px solid #b6dcd3;padding-left:12px}.maplink{display:inline-block;font-size:14px;margin-bottom:20px}.confirmed{color:#087357;font-size:14px;border-top:1px solid var(--line);padding-top:16px}.muted{color:#687d87;font-size:14px}.login{max-width:480px;margin:60px auto}.login h1{font-size:34px}.narrow{max-width:600px}label{display:block;font-size:14px;font-weight:650;margin:0 0 17px}input,select,textarea{font:inherit;font-weight:400;display:block;width:100%;margin-top:7px;border:1px solid #b6c8d0;background:#fff;color:#183341;border-radius:7px;padding:12px;min-height:46px}input:focus,select:focus,textarea:focus{outline:3px solid #a4dccc;outline-offset:2px}button,.button{font:inherit;font-size:14px;font-weight:700;border:1px solid transparent;border-radius:7px;background:var(--green);color:white;padding:12px 20px;min-height:45px;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{filter:brightness(.94)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #39bcb1;outline-offset:4px}button[hidden]{display:none}.secondary{background:white;border-color:#bcced6;color:#264c60}.danger{background:#a8303b}.quiet{background:#234759;border-color:#426574;white-space:nowrap}form+form{margin-top:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row select{width:auto;flex:1;min-width:170px;margin:0}.row button{flex-shrink:0}.check{display:flex;align-items:center;gap:9px;font-weight:400;margin:12px 0}.check input{width:18px;min-height:18px;margin:0}fieldset{border:1px solid var(--line);border-radius:7px;margin:20px 0;padding:15px}legend{font-size:14px;font-weight:650}summary{cursor:pointer;font-size:18px;font-weight:700}summary .muted{font-weight:400;margin-left:8px}details[open]>summary{margin-bottom:24px}.alert{padding:16px 20px;border-radius:8px;margin-bottom:24px;line-height:1.5}.error{background:#fce8e8;color:#8c2630}.success{background:#dff2e9;color:#116548}.empty{padding:40px;border:1px dashed #b6c8d0;border-radius:12px;color:#687d87;line-height:1.6;grid-column:1/-1}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line)}th{color:#687d87}footer{border-top:1px solid var(--line);max-width:1152px;margin:50px auto 0;padding:25px 0;font-size:12px;color:#687d87;display:flex;justify-content:space-between}@media(max-width:700px){header{padding:18px;flex-wrap:wrap;gap:12px}.brand{font-size:20px}.brandmark{font-size:28px}.headerlabel{font-size:12px;padding-left:12px}.username{margin-left:0;flex:1}.grid.two{grid-template-columns:1fr}main{margin:25px auto;padding:0 16px}.card{padding:21px}.login{margin:32px auto}.cardtop{align-items:flex-start}.heading{align-items:flex-start;flex-direction:column}nav{padding:0 6px}nav a{padding:16px 10px 13px}footer{margin:30px 16px 0;gap:14px;flex-wrap:wrap}.row button{flex:1}summary .muted{display:block;margin:8px 0 0}.login h1{font-size:30px}}
.calendar-shell{padding:24px}.calendar-filters{display:grid;grid-template-columns:1.2fr 1.8fr 1fr;gap:18px;border-bottom:1px solid var(--line);margin-bottom:22px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.calendar-toolbar h2{margin:0}.calendar-toolbar label{margin:0}.calendar-toolbar .calendar-jump{font-size:11px}.calendar-toolbar .calendar-mode{font-size:11px}.calendar-toolbar input,.calendar-toolbar select{margin-top:3px;padding:9px;min-height:42px}.calendar-toolbar .row{gap:7px}.calendar-toolbar button{padding:10px 14px;min-height:42px}.calendar-legend{display:flex;gap:7px;flex-wrap:wrap;margin:22px 0 10px}.calendar-legend .badge{font-size:11px}.calendar-scroll{overflow-x:auto}.calendar-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);min-width:700px}.calendar-dayname{background:#f5f8f9;font-size:12px;font-weight:750;padding:12px 10px;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day{min-height:130px;padding:8px 5px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:white;min-width:0}.calendar-day.other-month{background:#f7f9fa}.calendar-day.is-today{background:#eef9f4}.calendar-daynumber{font-size:12px;margin:0 0 8px;padding:4px 6px}.is-today>.calendar-daynumber{color:#087966;font-weight:850}.calendar-event{display:flex;flex-direction:column;text-align:left;width:100%;min-height:0;padding:8px 7px;margin-bottom:6px;background:#e8f5ee;border:1px solid #c4e3d4;border-left:3px solid #269575;border-radius:5px;color:#175143;font-size:11px;gap:4px;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.calendar-event strong{font-size:12px;font-weight:750}.calendar-event.approved{background:#dcefe7;border-left-color:#087357}.calendar-event.pending{background:#fff4d7;border-color:#eadcae;border-left-color:#b58520;color:#79560e}.calendar-event.closed,.calendar-event.draft{background:#edf1f4;border-color:#d0dce3;border-left-color:#8a9ca9;color:#526875}.calendar-event.cancelled,.calendar-event.rejected,.calendar-event.removed{background:#fcecee;border-color:#eed1d6;border-left-color:#bd5360;color:#942f3b}.calendar-event-time{font-size:10px;font-weight:600}.calendar-event-grade{font-size:10px;font-weight:400}.calendar-list .calendar-day{border:0;border-bottom:1px solid var(--line);min-height:0;padding:18px 0}.calendar-list .calendar-daynumber{font-size:16px;padding:0;margin-bottom:14px}.calendar-list .calendar-event{font-size:13px;padding:13px 16px;gap:6px}.calendar-list .calendar-event strong{font-size:16px}.calendar-list .calendar-event-time,.calendar-list .calendar-event-grade{font-size:12px}.calendar-board.week .calendar-day{min-height:350px}dialog{border:1px solid var(--line);border-radius:14px;max-width:600px;width:calc(100% - 32px);padding:26px;color:#183341;max-height:85vh;overflow:auto;box-shadow:0 16px 70px #102f4233}dialog::backdrop{background:#102f4277}.calendar-dialog-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.calendar-dialog-top h2{font-size:24px}.calendar-notes{white-space:pre-wrap}#calendar-detail-body>.button{margin:10px 10px 10px 0}#calendar-detail-body form{margin:10px 0}@media(max-width:700px){.calendar-shell{padding:16px}.calendar-filters{grid-template-columns:1fr;gap:0}.calendar-toolbar{align-items:flex-start}.calendar-toolbar h2{order:-1;width:100%;font-size:22px}.calendar-toolbar>.row{flex-wrap:nowrap}.calendar-toolbar .row button{flex:none}.calendar-board{min-width:700px}.calendar-legend{margin-top:18px}.calendar-toolbar .calendar-jump input{width:145px}.calendar-toolbar .calendar-mode select{width:90px}}
