*{box-sizing:border-box}body{margin:0;background:#f1f6f5;color:#173d38;font:16px/1.6 Arial,Helvetica,sans-serif}header{background:#fff;border-top:5px solid #c71920;padding:20px clamp(20px,5vw,70px);display:flex;justify-content:space-between;align-items:center;gap:20px}header img{width:230px;max-width:100%}nav{display:flex;gap:24px}a{color:#00665e;font-weight:700}main{max-width:1200px;margin:36px auto;padding:0 20px}.panel{background:white;border:1px solid #d5e1de;border-radius:14px;padding:32px;margin-bottom:28px}.login{max-width:650px;margin:60px auto}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.2}h1{font-size:38px;margin:8px 0 20px}h2{font-size:30px}.eyebrow{color:#a51219;text-transform:uppercase;letter-spacing:.1em;font-weight:bold;font-size:14px}.muted{color:#526963;font-size:14px}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin:24px 0}label{display:block;font-weight:700;font-size:14px}input,select{font:inherit;font-size:16px;display:block;max-width:100%;padding:12px;border:1px solid #819b96;border-radius:6px;background:#fff;color:#173d38}input[type=email]{width:310px}button,.button{display:inline-block;min-height:46px;border:0;border-radius:6px;background:#c71920;color:white;padding:12px 18px;font:700 16px Arial;cursor:pointer;text-decoration:none}button:disabled{opacity:.6;cursor:wait}.secondary{background:#e5efec;color:#173d38}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c59b42;outline-offset:3px}fieldset{border:1px solid #d5e1de;border-radius:8px;padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}legend{font-weight:700}fieldset:disabled{opacity:.5}.check{display:flex;align-items:center;gap:10px}.check input{width:18px;height:18px;margin:0}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:650px}th,td{padding:16px 12px;border-bottom:1px solid #d5e1de;vertical-align:top}th{background:#edf5f3}td button{font-size:14px;padding:8px 12px;min-height:40px;margin:0 8px 8px 0}td:nth-child(2){max-width:350px}p[role=status]{color:#a51219;font-weight:700}#member-form button{margin-right:10px}@media(max-width:650px){header{align-items:flex-start;flex-direction:column}.panel{padding:22px}fieldset{grid-template-columns:1fr}.filters{align-items:stretch;flex-direction:column}input[type=email]{width:100%}h1{font-size:32px}}

#email-login input,#code-login input,#email-setup input{width:100%;margin:8px 0 20px}#email-login button,#code-login button{margin:0 8px 12px 0}[hidden]{display:none!important}


header nav a.contact-nav{display:inline-flex;align-items:center;padding:9px 16px;border-radius:24px;background:#c71920;color:#fff;font-size:14px;font-weight:bold;text-decoration:none}header nav a.contact-nav:hover{background:#a51219}


header.hero-header,body>header,header.preview-contact-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px}header>nav{min-width:0;justify-content:flex-end}header>a.contact-header{grid-column:3;justify-self:end;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 18px;border-radius:24px;background:#c71920;color:#fff;border:1px solid #c71920;font-size:14px;font-weight:bold;line-height:1.2;text-decoration:none;white-space:nowrap}header>a.contact-header:hover{background:#a51219;border-color:#a51219}header>a.contact-header:focus-visible{outline:3px solid #d5a644;outline-offset:4px}
@media(max-width:950px){header.hero-header,body>header,header.preview-contact-header{grid-template-columns:minmax(0,1fr) auto;gap:18px}header>nav{grid-column:1/-1;grid-row:2;width:100%;justify-content:flex-start}header>a.contact-header{grid-column:2;grid-row:1}}
@media(max-width:420px){header>a.brand,header>a.brand-mark{width:min(180px,100%)}header>a.contact-header{padding:9px 12px;font-size:13px}header.hero-header,body>header{column-gap:12px}}
nav{flex-wrap:wrap}.news-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.news-heading h2{margin:0}#news-form{margin:24px 0;padding:24px;background:#f1f6f5;border-radius:10px}#news-form>label{margin:16px 0}#news-form input:not([type=checkbox]),#news-form textarea{width:100%}textarea{font:inherit;padding:12px;border:1px solid #819b96;border-radius:6px;color:#173d38;resize:vertical;max-width:100%}textarea:focus-visible{outline:3px solid #c59b42;outline-offset:3px}.news-card{border:1px solid #d5e1de;border-left:4px solid #00665e;border-radius:8px;padding:20px;margin-top:16px;overflow-wrap:anywhere}.news-card h3{margin:0;font-size:20px}.news-card .muted{margin:6px 0}.news-message{white-space:pre-wrap}.news-actions{display:flex;gap:12px;flex-wrap:wrap}@media(max-width:650px){#news-form{padding:16px}}
#shift-form{padding:24px;background:#f1f6f5;border-radius:10px}#shift-form h3{margin-top:0}.schedule-copy{margin-top:24px;border:1px solid #d5e1de;border-radius:8px;padding:16px}.schedule-copy summary{font-weight:bold;cursor:pointer}#schedule-list .news-card p{margin:8px 0}@media(max-width:650px){#shift-form{padding:16px}}
.schedule-toolbar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.schedule-week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:20px 0}.schedule-week-strip button{padding:12px 4px;background:#eef2f5;color:#263746;border-radius:6px;font-size:14px}.schedule-week-strip button.selected{background:#155844;color:white}.schedule-day-row{display:grid;grid-template-columns:80px 1fr;border-top:1px solid #d6dce1;padding:18px 0;gap:16px}.schedule-day-label{font-size:16px;font-weight:700}.schedule-day-label strong{display:block;font-size:30px}.schedule-shift{background:#175c4d;color:white;border-radius:8px;padding:18px;margin-bottom:12px;overflow-wrap:anywhere}.schedule-shift h3{margin:0 0 8px;font-size:18px}.schedule-shift p{margin:4px 0}.schedule-shift .secondary{background:white;color:#5b1e28}.schedule-shift.conflict{outline:3px solid #aa7000}.schedule-unavailable{background:#e6e8ec;border-left:5px solid #737b85;color:#343d46;border-radius:6px;padding:16px;margin-bottom:12px;overflow-wrap:anywhere}.schedule-unavailable button{margin-right:8px}.availability-panel{border-top:1px solid #d6dce1;margin-top:28px;padding-top:20px}.availability-panel [hidden]{display:none}.schedule-empty{color:#596575;padding:12px 0}@media(max-width:600px){.schedule-day-row{grid-template-columns:48px 1fr;gap:10px}.schedule-shift{padding:14px}.schedule-week-strip button{font-size:14px;padding:10px 2px}.schedule-day-label strong{font-size:26px}}
/* Compact weekly agenda with navigation beside the visible week. */
#team-schedule .schedule-calendar-nav{align-items:center;margin:20px 0 8px;padding:12px 0;border-top:1px solid #d6dce1;gap:8px}#team-schedule .schedule-calendar-nav button{padding:10px 14px;min-height:44px;font-size:14px}#team-schedule #schedule-period{margin:0 0 0 12px;flex:1;min-width:240px;font-size:14px}#team-schedule .schedule-week-strip{margin:8px 0 12px}#team-schedule .schedule-week-strip button{min-height:44px;padding:8px 4px}#team-schedule .schedule-day-row{grid-template-columns:54px minmax(0,1fr);padding:10px 0;gap:12px;align-items:start}#team-schedule .schedule-day-label{font-size:14px}#team-schedule .schedule-day-label strong{font-size:23px;line-height:1.2}#team-schedule .schedule-day-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:8px}#team-schedule .schedule-shift,#team-schedule .schedule-day-cards .schedule-unavailable{margin:0;padding:12px 14px}#team-schedule .schedule-shift h3{font-size:16px;margin:0 0 4px}#team-schedule .schedule-shift p{font-size:14px;line-height:1.4;margin:2px 0}#team-schedule .schedule-shift .news-actions{margin-top:8px;gap:6px}#team-schedule .schedule-shift button{padding:7px 10px;font-size:14px;min-height:36px}#team-schedule .schedule-empty{margin:0;padding:8px 0;font-size:14px}@media(max-width:600px){#team-schedule #schedule-period{flex-basis:100%;margin:4px 0 0;min-width:0}#team-schedule .schedule-day-row{grid-template-columns:40px minmax(0,1fr);gap:8px}#team-schedule .schedule-week-strip button{font-size:14px;padding:8px 1px}#team-schedule .schedule-calendar-nav button{padding:10px;font-size:14px}#team-schedule .schedule-day-cards{grid-template-columns:1fr}}

#team-schedule .schedule-calendar-scope{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600}#team-schedule .schedule-calendar-scope select{width:auto;min-height:44px;margin:0;padding:8px 12px;font-size:14px}@media(max-width:600px){#team-schedule .schedule-calendar-scope{flex-basis:100%}#team-schedule .schedule-calendar-scope select{flex:1;min-width:0}}

.shift-shortcuts{margin:12px 0 18px}.shift-shortcuts>span{display:block;font-weight:700;margin-bottom:8px}.shift-shortcuts .news-actions:empty{display:none}.shift-shortcut{display:inline-flex;gap:4px;max-width:100%}.shift-shortcuts button{min-height:44px}.shift-shortcuts>button{margin-top:8px}.shift-shortcuts .muted{margin:8px 0}

.schedule-available{background:#e6f4ec;border-left:5px solid #24734d;color:#173d38;border-radius:6px;padding:16px;margin-bottom:12px;overflow-wrap:anywhere}.work-availability-panel{border-top:1px solid #d6dce1;margin-top:28px;padding:24px}.work-availability-panel [hidden]{display:none}

tr.santa-break{background:#edf5f3;font-weight:700}

.pending-employee{padding:20px;margin:16px 0;border:1px solid #d5e1de;border-radius:8px}.pending-employee label{display:inline-flex;flex-direction:column;margin:0 14px 14px 0;gap:6px}.pending-employee input,.pending-employee select{font:inherit;padding:10px;max-width:100%}

#member-form[hidden],#member-details[hidden],#members tr[hidden]{display:none}

#appointment-view[hidden]{display:none}.appointment-list{max-height:440px;overflow:auto}.appointment-list thead th{position:sticky;top:0;background:#edf5f3}

/* Readiness includes text labels so status never depends on color alone. */
#ready-overview{display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:8px}.readiness-card{padding:10px 12px;border:1px solid var(--ready-color);border-left:6px solid var(--ready-color);border-radius:8px;background:var(--ready-bg);color:var(--ready-text);overflow-wrap:anywhere}.readiness-card strong,.readiness-card span{display:block}.readiness-card strong{font-size:14px;line-height:1.35}.readiness-card span{font-size:13px;margin-top:3px}.readiness-green{--ready-color:#22834a;--ready-bg:#eaf7ee;--ready-text:#14532d}.readiness-yellow{--ready-color:#b88600;--ready-bg:#fff8d6;--ready-text:#694b00}.readiness-red{--ready-color:#c53030;--ready-bg:#fff0f0;--ready-text:#922323}.readiness-unknown{--ready-color:#778582;--ready-bg:#f1f5f4;--ready-text:#435550}.readiness-badge{padding:6px 12px;border:1px solid var(--ready-color);border-radius:6px;background:var(--ready-bg);color:var(--ready-text)}

#paper-supplies{border-left:5px solid #c71920}#paper-supplies .filters{margin-bottom:0}#paper-alert-button{font-weight:800;letter-spacing:.03em}

/* Supply request: stacked controls, compatible with portal security policy. */
#supply-request-form{margin-top:24px;padding-top:20px;border-top:1px solid #d5e1de}
#supply-request-details{display:block;width:100%;max-width:640px;box-sizing:border-box;margin-top:6px}
#supply-request-send{display:block;margin-top:12px}

/* Portal navigation: brand and account actions above a compact navigation row. */
body>header.portal-header{display:block;padding:18px clamp(20px,4vw,64px) 0;border-bottom:1px solid #d5e1de}
.portal-header-top{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1400px;margin:auto}
.portal-brand{display:block;flex:0 1 210px;min-width:0}.portal-brand img{display:block;width:210px;max-width:100%;height:auto}
.portal-header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.portal-header-actions a,.portal-header-actions button{font-size:14px;text-decoration:none;min-height:40px;padding:10px 16px;border-radius:8px;line-height:20px}.portal-header-actions .portal-contact{background:#edf5f3;color:#00665e}
header.portal-header>nav.portal-navigation{display:flex;align-items:center;justify-content:flex-start;gap:4px 8px;max-width:1400px;width:100%;margin:16px auto 0;padding:10px 0;border-top:1px solid #e3ece9;flex-wrap:wrap}
.portal-navigation>a,.portal-admin-menu>summary{display:block;padding:9px 12px;border-radius:7px;font-size:14px;line-height:22px;text-decoration:none;white-space:nowrap;font-weight:700;color:#00665e}.portal-navigation>a:hover,.portal-admin-menu>summary:hover{background:#edf5f3}
.portal-admin-menu{position:relative}.portal-admin-menu>summary{cursor:pointer;list-style:none}.portal-admin-menu>summary::-webkit-details-marker{display:none}.portal-admin-menu>summary:after{content:' ▾';margin-left:6px}.portal-admin-menu[open]>summary{background:#edf5f3}
.portal-admin-links{position:absolute;z-index:20;top:100%;left:0;width:220px;background:#fff;border:1px solid #d5e1de;border-radius:10px;padding:8px;box-shadow:0 12px 30px #173d3826}.portal-admin-links>a{display:block;text-decoration:none;padding:10px 12px;border-radius:6px;font-size:14px}.portal-admin-links>a:hover{background:#edf5f3}.portal-admin-menu summary:focus-visible{outline:3px solid #c59b42;outline-offset:2px}
@media(max-width:600px){.portal-header-top{gap:12px}.portal-brand{flex-basis:150px}.portal-header-actions{gap:6px}.portal-header-actions a,.portal-header-actions button{padding:8px 10px;font-size:13px}.portal-navigation>a,.portal-admin-menu>summary{padding:8px;font-size:13px}.portal-admin-links{position:static;width:100%;box-shadow:none}.portal-admin-menu[open]{flex-basis:100%}}

.schedule-day-info{grid-column:1 / -1;min-width:0;background:#fff8e7;border:1px solid #e5cf96;border-left:4px solid #b9892f;border-radius:10px;padding:16px}.schedule-day-info h3{margin:0 0 8px;font-size:1rem}.day-operating-hours{font-weight:700}.day-notes{white-space:pre-wrap;overflow-wrap:anywhere}.schedule-day-info form{margin-top:16px;max-width:640px}.schedule-day-info label{display:flex;flex-direction:column;gap:6px;margin:12px 0}.schedule-day-info textarea{box-sizing:border-box;width:100%;font:inherit;padding:10px;border:1px solid #bccbc5;border-radius:6px}.schedule-day-info button{margin-right:8px}

.schedule-shift.schedule-unassigned{background:#b02b3e;border:2px solid #b02b3e;color:white}.schedule-unassigned>p:first-of-type{color:white;font-weight:700}.schedule-shift.schedule-assigned{background:#175c4d;border:2px solid #175c4d;color:white}

#team-schedule .schedule-jump{display:flex;align-items:flex-end;gap:8px;margin:0;padding:0;flex-wrap:wrap}#team-schedule .schedule-jump label{display:flex;flex-direction:column;gap:5px;margin:0}#team-schedule .schedule-jump input{box-sizing:border-box;min-width:155px;max-width:100%}@media(max-width:600px){#team-schedule .schedule-jump{flex-basis:100%}#team-schedule .schedule-jump label{flex:1}}

.staffing-builder{padding:18px;margin:18px 0;background:#f0f7f3;border:1px solid #c2d8ca;border-radius:12px}.staffing-builder summary{font-size:1.15rem;font-weight:700;cursor:pointer}.staffing-builder input[type=number]{max-width:110px}#staffing-preview-list{max-height:280px;overflow:auto}.schedule-view-buttons{display:flex;gap:3px}#team-schedule .schedule-view-buttons button[aria-pressed=true]{background:#175c4d;color:white}#team-schedule .schedule-view-buttons button[aria-pressed=false]{background:white;color:#175c4d;border:1px solid #b8cbc3}

.planner-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:18px;margin:16px 0;background:#eff6f2;border:1px solid #c2d8ca;border-radius:12px}.planner-actions>div{flex:1;min-width:220px}.planner-actions p{margin:6px 0 0}.planner-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 24px));max-height:90vh;overflow:auto;border:1px solid #c3d3ca;border-radius:16px;padding:24px;color:#173d38;background:white;box-shadow:0 24px 90px #173d3855}.planner-dialog::backdrop{background:#102b28aa}.planner-dialog h3{margin-top:0}.planner-dialog .planner-close{float:right}.planner-dialog #shift-form{padding:0;background:white}.planner-dialog .filters{gap:14px}.planner-dialog .shift-shortcuts{margin:14px 0;padding:12px;background:#f1f6f5;border-radius:8px}.planner-dialog .shift-shortcuts summary{cursor:pointer;font-weight:600}.planner-dialog input[type=number]{max-width:100px}@media(max-width:600px){.planner-dialog{padding:18px}.planner-actions>button{flex:1}.planner-actions>div{flex-basis:100%}}

#team-schedule .schedule-shift h3,#team-schedule .schedule-shift p,#team-schedule .schedule-shift label{color:white}.shift-assignment{margin:12px 0 6px}.shift-assignment label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}.shift-assignment select{box-sizing:border-box;width:100%;min-width:0;padding:9px;border:1px solid #d8e2dd;border-radius:6px;background:white;color:#173d38;font:inherit}.shift-assignment select:focus-visible{outline:3px solid #efc867;outline-offset:2px}.assignment-feedback:empty{display:none}.schedule-shift.schedule-assigned .secondary{color:#175c4d}.schedule-shift.schedule-unassigned .secondary{color:#8b2030}

/* Compact schedule controls: one location/scope row and one calendar toolbar. */
#team-schedule .schedule-control-bar{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:18px 0 12px}
#team-schedule .schedule-primary-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:0;flex:1}
#team-schedule .schedule-primary-filters label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;min-width:180px;max-width:300px;flex:1}
#team-schedule .schedule-primary-filters select{height:42px;min-height:42px;padding:8px 12px;font-size:14px;width:100%;box-sizing:border-box}
#team-schedule .planner-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;padding:0;background:none;border:0;border-radius:0}
#team-schedule .planner-actions button{min-height:42px;padding:9px 14px;font-size:14px;flex:none}
#team-schedule .schedule-calendar-nav{align-items:flex-end;gap:8px;margin:0;padding:12px 0;border-top:1px solid #e2e9e5}
#team-schedule .schedule-calendar-nav button{height:40px;min-height:40px;padding:8px 12px;font-size:13px}
#team-schedule .schedule-jump{align-items:flex-end;flex-basis:auto;gap:6px}
#team-schedule .schedule-jump label{font-size:12px;gap:5px;flex:none}
#team-schedule .schedule-jump input{height:40px;min-height:40px;width:155px;min-width:0;padding:7px 10px;font-size:14px}
#team-schedule .schedule-view-buttons{gap:0;border:1px solid #b8cbc3;border-radius:7px;overflow:hidden}
#team-schedule .schedule-view-buttons button{border:0;border-radius:0;min-height:38px;height:38px;padding:8px 15px}
#team-schedule .schedule-copy{margin:0;padding:0;border:0;border-radius:0}
#team-schedule .schedule-copy summary{list-style:none;padding:10px 12px;font-size:13px;font-weight:600;cursor:pointer;color:#175c4d}
#team-schedule .schedule-copy summary::-webkit-details-marker{display:none}
#team-schedule .schedule-copy summary::after{content:' ▾'}
#team-schedule .schedule-copy[open]{flex-basis:100%;background:#f4f8f6;border-radius:8px;padding:10px 14px}
#team-schedule .schedule-copy[open] summary{padding:0 0 10px}
#team-schedule .schedule-copy form{margin:0}
#team-schedule #schedule-period{flex-basis:100%;margin:4px 0 0;min-width:0;font-size:13px;line-height:1.5}
#team-schedule #schedule-status:empty{display:none}
#team-schedule #schedule-view[hidden]{display:none}
@media(max-width:600px){#team-schedule .schedule-primary-filters{flex-basis:100%;gap:8px}#team-schedule .schedule-primary-filters label{min-width:0;max-width:none}#team-schedule .planner-actions{width:100%}#team-schedule .planner-actions button{flex:1}#team-schedule .schedule-calendar-nav{gap:6px}#team-schedule .schedule-calendar-nav button{padding:8px 10px}#team-schedule .schedule-jump{flex-basis:auto}#team-schedule .schedule-jump input{width:145px}}

#team-schedule .schedule-day-closed .day-operating-hours{font-weight:800;font-size:1.2rem;letter-spacing:.06em;}

.closing-warning{padding:18px;border:3px solid #a51d25;border-radius:8px;background:#fff0f0;color:#831720;font-size:clamp(1.15rem,3vw,1.5rem);letter-spacing:.02em}#closing-history{margin-top:20px}#closing-history-list article{padding:12px 0;border-bottom:1px solid #d8e2de}
