:root {
    --paper: #ffffff;
    --ink: #1a233c;
    --muted: #69748c;
    --rule: #e4e8f0;
    --lime: #eaf2ff;
    --coral: #1667e8;
    --blue: #f7f9fc;
    --white: #ffffff;
    --navy-line: #73809a;
    --soft-shadow: 0 0.625rem 1.5rem rgba(26, 35, 60, 0.08), 0 0.125rem 0.375rem rgba(26, 35, 60, 0.05);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { display: flex; flex-direction: column; margin: 0; min-height: 100vh; background: var(--paper); color: var(--ink); font-family: "Inter", sans-serif; font-size: 1rem; overflow-x: hidden; position: relative; }
a { color: inherit; text-decoration: none; }
.site-header { align-items: center; border-bottom: 1px solid var(--navy-line); display: flex; gap: 2.75rem; justify-content: space-between; overflow: hidden; padding: 1.375rem clamp(1.5rem, 4vw, 4rem); position: relative; width: 100%; }
.site-header > *:not(.header-geometry) { position: relative; z-index: 1; }
.header-geometry { inset: 0; overflow: hidden; pointer-events: none; position: absolute; z-index: 0; }
.safety-diamond { background: rgba(22, 103, 232, 0.12); height: 3.25rem; left: 31%; position: absolute; top: 0.35rem; transform: rotate(45deg); width: 3.25rem; }
.safety-ring { border: 1px solid rgba(115, 128, 154, 0.34); border-radius: 50%; height: 6.5rem; left: 40%; position: absolute; top: 1.15rem; width: 6.5rem; }
.safety-stripe { background: repeating-linear-gradient(135deg, var(--coral) 0 0.4375rem, transparent 0.4375rem 0.875rem); height: 0.625rem; opacity: 0.48; position: absolute; right: 16%; top: 2.15rem; transform: rotate(-12deg); width: 4.5rem; }
.safety-shield { background: rgba(22, 103, 232, 0.1); border: 1px solid rgba(22, 103, 232, 0.32); clip-path: polygon(50% 0, 92% 15%, 86% 62%, 50% 100%, 14% 62%, 8% 15%); height: 3.75rem; left: 52%; position: absolute; top: 0.75rem; width: 3.25rem; }
.safety-clipboard { background: repeating-linear-gradient(180deg, transparent 0 0.4375rem, rgba(115, 128, 154, 0.3) 0.4375rem 0.5rem, transparent 0.5rem 0.875rem); border: 1px solid rgba(115, 128, 154, 0.35); border-radius: 0.25rem; height: 3.75rem; opacity: 0.72; position: absolute; right: 27%; top: 0.15rem; transform: rotate(8deg); width: 2.75rem; }
.safety-clipboard::before { background: var(--blue); border: 1px solid rgba(115, 128, 154, 0.4); border-radius: 0.25rem 0.25rem 0 0; content: ""; height: 0.4375rem; left: 0.625rem; position: absolute; top: -0.25rem; width: 1.375rem; }
.safety-lanyard { border: 1px solid rgba(115, 128, 154, 0.3); border-radius: 0 0 3rem 3rem; border-top: 0; height: 4.5rem; position: absolute; right: 7%; top: -0.75rem; width: 3.5rem; }
.safety-lanyard::after { background: rgba(22, 103, 232, 0.14); border: 1px solid rgba(22, 103, 232, 0.32); bottom: -0.625rem; content: ""; height: 1.125rem; left: 1rem; position: absolute; transform: rotate(45deg); width: 1.125rem; }
.page-geometry { inset: 4.5rem 0 0; overflow: hidden; pointer-events: none; position: absolute; z-index: 0; }
.dashboard-shell, .page-shell, .site-footer { position: relative; z-index: 1; }
.background-flame { background: rgba(22, 103, 232, 0.08); clip-path: polygon(50% 0, 74% 27%, 68% 49%, 100% 64%, 73% 100%, 31% 86%, 0 100%, 25% 58%, 17% 35%); height: 8rem; left: 7%; opacity: 0.8; position: absolute; top: 23%; transform: rotate(-12deg); width: 5.5rem; }
.background-extinguisher { background: rgba(26, 35, 60, 0.045); border: 1px solid rgba(115, 128, 154, 0.22); border-radius: 1rem 1rem 0.5rem 0.5rem; height: 5.25rem; left: 19%; position: absolute; top: 49%; transform: rotate(7deg); width: 2.75rem; }
.background-extinguisher::before { border: 1px solid rgba(115, 128, 154, 0.22); border-bottom: 0; border-radius: 0.5rem 0.5rem 0 0; content: ""; height: 0.875rem; left: 0.625rem; position: absolute; top: -0.75rem; width: 1.125rem; }
.background-phone { border: 1px solid rgba(22, 103, 232, 0.16); border-radius: 0.625rem; height: 6.5rem; opacity: 0.72; position: absolute; right: 13%; top: 34%; transform: rotate(13deg); width: 3.5rem; }
.background-phone::after { border: 1px solid rgba(22, 103, 232, 0.12); border-radius: 0.25rem; content: ""; inset: 0.75rem 0.375rem 0.875rem; position: absolute; }
.background-diamond { border: 1px solid rgba(22, 103, 232, 0.18); height: 2.75rem; position: absolute; transform: rotate(45deg); width: 2.75rem; }
.background-diamond-one { left: 30%; top: 41%; }
.background-diamond-two { right: 34%; top: 69%; transform: rotate(45deg) scale(0.62); }
.background-helicopter { height: 5rem; opacity: 0.85; position: absolute; right: 8%; top: 55%; width: 10rem; }
.helicopter-rotor { background: rgba(22, 103, 232, 0.3); height: 0.125rem; left: 1.25rem; position: absolute; top: 0.625rem; transform: rotate(-2deg); width: 4.5rem; }
.helicopter-rotor::after { background: rgba(22, 103, 232, 0.28); content: ""; height: 0.875rem; left: 2.5rem; position: absolute; top: 0.0625rem; width: 0.125rem; }
.helicopter-cabin { background: rgba(22, 103, 232, 0.16); border: 1px solid rgba(22, 103, 232, 0.32); border-radius: 58% 42% 48% 52%; height: 1.75rem; left: 1.5rem; position: absolute; top: 1.35rem; width: 4rem; }
.helicopter-window { background: rgba(247, 249, 252, 0.72); border: 1px solid rgba(22, 103, 232, 0.22); border-radius: 60% 35% 45% 55%; height: 0.75rem; left: 0.55rem; position: absolute; top: 0.35rem; width: 1.35rem; }
.helicopter-tail { background: rgba(22, 103, 232, 0.14); border: 1px solid rgba(22, 103, 232, 0.28); clip-path: polygon(0 32%, 100% 0, 100% 68%, 0 100%); height: 1rem; left: 5rem; position: absolute; top: 1.75rem; width: 4rem; }
.helicopter-tail-rotor { border: 1px solid rgba(22, 103, 232, 0.32); border-radius: 50%; height: 1.25rem; left: 8.45rem; position: absolute; top: 1.35rem; width: 1.25rem; }
.helicopter-tail-rotor::after { background: rgba(22, 103, 232, 0.3); content: ""; height: 0.125rem; left: 0.05rem; position: absolute; top: 0.5rem; transform: rotate(45deg); width: 1rem; }
.helicopter-skids { border-bottom: 1px solid rgba(22, 103, 232, 0.3); border-top: 1px solid rgba(22, 103, 232, 0.3); height: 0.625rem; left: 1.75rem; position: absolute; top: 3.35rem; width: 3.75rem; }
.helicopter-skids::before, .helicopter-skids::after { border-left: 1px solid rgba(22, 103, 232, 0.3); content: ""; height: 0.75rem; position: absolute; top: -0.65rem; width: 0.125rem; }
.helicopter-skids::before { left: 0.6rem; }
.helicopter-skids::after { left: 2.8rem; }
.background-rig { bottom: 3.5rem; height: 8rem; left: 37%; opacity: 0.78; position: absolute; width: 10rem; }
.rig-platform { background: transparent; border: 1px solid rgba(115, 128, 154, 0.32); height: 0.625rem; left: 0.25rem; position: absolute; top: 2.25rem; width: 9.5rem; }
.rig-platform::after { background: rgba(22, 103, 232, 0.3); content: ""; height: 0.125rem; left: -0.375rem; position: absolute; top: 0.875rem; width: 10.25rem; }
.rig-leg { background: rgba(115, 128, 154, 0.17); border: 1px solid rgba(115, 128, 154, 0.3); height: 5rem; position: absolute; top: 2.8rem; width: 0.45rem; }
.rig-leg-one { left: 1.1rem; transform: skewX(-6deg); }
.rig-leg-two { left: 3.25rem; transform: skewX(-3deg); }
.rig-leg-three { left: 6.1rem; transform: skewX(3deg); }
.rig-leg-four { left: 8.25rem; transform: skewX(6deg); }
.rig-tower { border-left: 1px solid rgba(115, 128, 154, 0.32); border-right: 1px solid rgba(115, 128, 154, 0.32); border-top: 1px solid rgba(115, 128, 154, 0.32); height: 1.9rem; left: 3.55rem; position: absolute; top: 0.4rem; transform: skewX(-12deg); width: 2rem; }
.rig-stack { background: rgba(115, 128, 154, 0.18); border: 1px solid rgba(115, 128, 154, 0.34); border-radius: 0.125rem 0.125rem 0 0; height: 1.25rem; position: absolute; top: 0.95rem; width: 0.7rem; }
.rig-stack::after { background: rgba(22, 103, 232, 0.28); content: ""; height: 0.125rem; left: 0.125rem; position: absolute; top: -0.35rem; width: 0.45rem; }
.rig-stack-one { left: 1.1rem; }
.rig-stack-two { left: 2.1rem; height: 1.65rem; top: 0.55rem; }
.rig-stack-three { left: 6.55rem; height: 1.5rem; top: 0.7rem; }
.rig-crane { border-left: 1px solid rgba(115, 128, 154, 0.38); height: 2.1rem; left: 7.95rem; position: absolute; top: 0.1rem; width: 0.125rem; }
.rig-crane-boom { border-top: 1px solid rgba(22, 103, 232, 0.36); height: 0.125rem; left: -0.35rem; position: absolute; top: 0.15rem; transform: rotate(-18deg); width: 2.25rem; }
.rig-crane-hook { border-left: 1px solid rgba(22, 103, 232, 0.32); height: 1.2rem; left: 1.5rem; position: absolute; top: 0.45rem; width: 0.125rem; }
.background-barrel { background: repeating-linear-gradient(180deg, transparent 0 0.75rem, rgba(22, 103, 232, 0.16) 0.75rem 0.9rem, transparent 0.9rem 1.5rem); border: 1px solid rgba(22, 103, 232, 0.2); border-radius: 0.75rem / 0.5rem; bottom: 1.5rem; height: 4rem; opacity: 0.76; position: absolute; right: 22%; transform: rotate(-7deg); width: 3.25rem; }
.background-boat { bottom: 2.5rem; height: 4.5rem; left: clamp(1.5rem, 6vw, 5rem); opacity: 0.78; position: absolute; width: 11rem; }
.boat-hull { background: rgba(22, 103, 232, 0.14); border: 1px solid rgba(22, 103, 232, 0.3); clip-path: polygon(0 0, 100% 0, 86% 68%, 14% 100%); height: 1.25rem; left: 0.5rem; position: absolute; top: 2.45rem; width: 9.75rem; }
.boat-cabin { background: rgba(115, 128, 154, 0.14); border: 1px solid rgba(115, 128, 154, 0.32); border-radius: 0.25rem 0.25rem 0 0; height: 1.25rem; left: 3.5rem; position: absolute; top: 1.25rem; width: 3.25rem; }
.boat-window { background: rgba(247, 249, 252, 0.7); border: 1px solid rgba(22, 103, 232, 0.22); height: 0.45rem; left: 0.4rem; position: absolute; top: 0.3rem; width: 1rem; }
.boat-mast { border-left: 1px solid rgba(115, 128, 154, 0.34); height: 1.45rem; left: 7.35rem; position: absolute; top: 0.55rem; }
.boat-mast::after { border-top: 1px solid rgba(22, 103, 232, 0.28); content: ""; left: -0.1rem; position: absolute; top: 0.2rem; transform: rotate(-22deg); width: 1.35rem; }
.boat-wake { border-top: 1px solid rgba(22, 103, 232, 0.24); height: 0.75rem; left: -0.75rem; position: absolute; top: 3.4rem; transform: skewX(-24deg); width: 4.25rem; }
.boat-wake::after { border-top: 1px solid rgba(22, 103, 232, 0.18); content: ""; left: 0.5rem; position: absolute; top: 0.45rem; width: 2.75rem; }
.people-route .page-geometry { position: absolute; }
.people-route .background-flame { background: rgba(22, 103, 232, 0.22); left: 9%; opacity: 1; top: 34rem; }
.people-route .background-extinguisher { background: rgba(26, 35, 60, 0.12); border-color: rgba(115, 128, 154, 0.45); left: 25%; opacity: 1; top: 51rem; }
.people-route .background-phone { border-color: rgba(22, 103, 232, 0.4); opacity: 1; right: 12%; top: 27rem; }
.people-route .background-diamond-one { border-color: rgba(22, 103, 232, 0.42); left: 43%; top: 26rem; }
.people-route .background-diamond-two { border-color: rgba(22, 103, 232, 0.42); right: 29%; top: 54rem; }
.people-route .background-helicopter { background: transparent; opacity: 1; right: 12%; top: 56rem; }
.people-route .background-rig { background: transparent; bottom: 4.5rem; left: 10%; opacity: 1; }
.people-route .background-barrel { background: repeating-linear-gradient(180deg, transparent 0 0.75rem, rgba(22, 103, 232, 0.3) 0.75rem 0.9rem, transparent 0.9rem 1.5rem); border-color: rgba(22, 103, 232, 0.4); bottom: 2rem; left: 28%; opacity: 1; right: auto; }
.brand-group { align-items: center; display: flex; flex-direction: column; gap: 0.25rem; }
.shell-brand { align-items: center; display: flex; flex-direction: column; gap: 0.3125rem; line-height: 1; white-space: nowrap; }
.shell-brand img { height: 1.6875rem; width: 1.6875rem; }
.shell-label { align-items: center; display: flex; font-size: 0.625rem; font-weight: 600; gap: 0.25rem; line-height: 1; white-space: nowrap; }
.shell-label img { height: 0.75rem; width: 0.75rem; }
.wordmark { font-size: 1.1875rem; font-weight: 700; letter-spacing: -0.03125rem; white-space: nowrap; }
.wordmark span { color: var(--coral); padding: 0 0.125rem; }
.primary-nav { align-items: center; display: flex; gap: 1.625rem; margin-right: auto; padding-bottom: 0.625rem; }
.primary-nav a, .header-admin { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.0125rem; }
.overview-nav-link { color: var(--muted); padding: 0.25rem 0; }
.overview-nav-link.active, .overview-nav-link:hover { color: var(--ink); }
.nav-flow { align-items: flex-start; display: flex; gap: 0.75rem; }
.nav-step-link { align-items: center; color: var(--muted); display: inline-flex; flex-direction: column; gap: 0.5rem; white-space: nowrap; }
.nav-step-link.active, .nav-step-link:hover { color: var(--ink); }
.nav-step { align-items: center; border: 1px solid currentColor; display: inline-flex; height: 1.25rem; justify-content: center; transform: rotate(45deg); width: 1.25rem; }
.nav-step-number { font-family: "DM Mono", monospace; font-size: 0.625rem; line-height: 1; transform: rotate(-45deg); }
.nav-step-link.active .nav-step { background: var(--coral); border-color: var(--coral); color: var(--white); }
.nav-flow-arrow { color: var(--coral); font-family: "DM Mono", monospace; font-size: 0.875rem; line-height: 1; margin-top: 0.3rem; }
.header-actions { align-items: center; display: flex; gap: 1.375rem; }
.header-login { background: var(--coral); border: 1px solid var(--coral); clip-path: polygon(0.35rem 0, calc(100% - 0.35rem) 0, 100% 50%, calc(100% - 0.35rem) 100%, 0.35rem 100%, 0 50%); color: var(--white); font-size: 0.8125rem; font-weight: 600; padding: 0.5625rem 0.75rem; }
.header-login:hover { background: var(--ink); border-color: var(--ink); }
.header-login span { font-family: "DM Mono", monospace; margin-left: 0.5rem; }
.header-user { --header-point: 0.35rem; background: transparent; border: 0; box-shadow: 0 0.125rem 0.375rem rgba(22, 103, 232, 0.12); color: var(--ink); display: block; font-size: 0.6875rem; isolation: isolate; max-width: 15rem; overflow: hidden; padding: 0.5625rem 0.75rem; position: relative; text-overflow: ellipsis; white-space: nowrap; }
.header-user::before, .header-user::after, .header-admin::before, .header-admin::after { clip-path: polygon(var(--header-point) 0, calc(100% - var(--header-point)) 0, 100% 50%, calc(100% - var(--header-point)) 100%, var(--header-point) 100%, 0 50%); content: ""; inset: 0; position: absolute; z-index: -1; }
.header-user::before { background: var(--coral); }
.header-user::after { background: rgba(234, 242, 255, 0.9); inset: 1px; }
.pulse-dot { background: #67a74f; border-radius: 50%; display: inline-block; height: 0.4375rem; width: 0.4375rem; }
.header-admin { --header-point: 0.35rem; background: transparent; border: 0; box-shadow: 0 0.125rem 0.375rem rgba(26, 35, 60, 0.05); isolation: isolate; padding: 0.5625rem 0.75rem; position: relative; }
.header-admin::before { background: var(--navy-line); }
.header-admin::after { background: var(--paper); inset: 1px; }
.dashboard-shell, .page-shell { flex: 1; padding: 3.25rem clamp(1.5rem, 4vw, 4rem) 6rem; width: 100%; }
.page-intro { max-width: 42.5rem; padding: 1.75rem 0 4.75rem; }
.page-intro h1 { margin-bottom: 1.5rem; }
.page-summary { color: var(--muted); font-size: 1.125rem; line-height: 1.5; max-width: 26.25rem; }
.intro-grid, .content-grid, .upcoming-section { margin: 0 auto; max-width: none; width: 100%; }
.intro-grid { display: grid; grid-template-columns: 1.4fr 0.6fr; padding-bottom: 4.75rem; }
.process-intro { align-items: end; display: grid; gap: 2rem; grid-template-columns: 1.35fr 0.65fr; padding: 1.25rem 0 4.25rem; }
.process-intro-note { max-width: 22rem; padding-bottom: 0.375rem; }
.process-intro-note p { font-size: 1.0625rem; line-height: 1.45; margin-bottom: 1.75rem; }
.process-section { border-top: 1px solid var(--ink); padding: 2rem 0 4.75rem; }
.process-section-heading { align-items: end; display: grid; gap: 2rem; grid-template-columns: 1.35fr 0.65fr; margin-bottom: 2.5rem; }
.process-section-heading h2 { font-size: 3.25rem; font-weight: 700; letter-spacing: -0.09375rem; line-height: 0.94; margin: 0.75rem 0 0; }
.process-section-note { color: var(--muted); font-size: 0.8125rem; line-height: 1.5; margin: 0; max-width: 22rem; }
.process-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; position: relative; }
.process-list::before { background: var(--navy-line); content: ""; height: 1px; left: 1.75rem; position: absolute; right: 1.75rem; top: 1.3125rem; }
.process-step { min-width: 0; padding-right: 1.25rem; position: relative; }
.process-step:not(:first-child) { padding-left: 0.75rem; }
.process-step-number { align-items: center; background: var(--paper); border: 1px solid var(--coral); color: var(--coral); display: inline-flex; font-family: "DM Mono", monospace; font-size: 0.75rem; height: 2.625rem; justify-content: center; position: relative; transform: rotate(45deg); width: 2.625rem; }
.process-step-number span { transform: rotate(-45deg); }
.process-step-copy { padding-top: 1.5rem; }
.process-step h3 { font-size: 1.1875rem; line-height: 1; margin: 0 0 0.75rem; }
.process-step p { color: var(--muted); font-size: 0.75rem; line-height: 1.45; margin: 0 0 1rem; max-width: 12rem; }
.process-step .text-link { font-size: 0.6875rem; gap: 0.5rem; }
.process-step-final .process-step-number { background: var(--coral); color: var(--white); }
.eyebrow, .stat-label, .card-index, .row-number { color: var(--muted); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.04375rem; line-height: 1.4; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: 5.375rem; font-weight: 700; letter-spacing: -0.1875rem; line-height: 0.94; margin: 1.375rem 0 0; }
h1 em, h2 em { color: var(--coral); font-style: normal; }
.intro-note { align-self: end; max-width: 15.625rem; padding-bottom: 0.3125rem; }
.intro-note p { font-size: 1.0625rem; line-height: 1.45; margin-bottom: 1.75rem; }
.text-link { border-bottom: 1px solid var(--ink); display: inline-flex; font-size: 0.8125rem; gap: 0.875rem; padding-bottom: 0.3125rem; }
.text-link span, .dark-button span { font-family: "DM Mono", monospace; }
.approval-card { background: var(--blue); }
.card-topline { align-items: center; display: flex; justify-content: space-between; }
.muted-copy { color: #5e5d58; font-size: 0.8125rem; line-height: 1.5; max-width: 22.5rem; }
.dark-button { background: var(--coral); clip-path: polygon(0.5rem 0, calc(100% - 0.5rem) 0, 100% 50%, calc(100% - 0.5rem) 100%, 0.5rem 100%, 0 50%); color: var(--white); display: inline-flex; font-size: 0.75rem; font-weight: 600; gap: 1.5rem; margin-top: 1.125rem; padding: 0.8125rem 1rem; }
.approval-card h2 { font-size: 2.375rem; font-weight: 700; letter-spacing: -1px; line-height: 0.98; margin: 3.5rem 0 1.875rem; }
.approval-list { border-top: 1px solid rgba(23, 23, 23, 0.35); }
.approval-row { border-bottom: 1px solid rgba(26, 35, 60, 0.15); display: flex; font-size: 0.6875rem; justify-content: space-between; padding: 0.5625rem 0; text-transform: uppercase; }
.content-grid { display: grid; gap: 2.25rem; grid-template-columns: 0.32fr 0.68fr; padding: 6.875rem 0 0; }
.page-content { padding-top: 0; }
.weekly-roster-accordion { border: 1px solid var(--navy-line); border-radius: 0; box-shadow: var(--soft-shadow); margin-bottom: 5.75rem; overflow: hidden; }
.weekly-roster-accordion summary { align-items: center; background: rgba(234, 242, 255, 0.72); cursor: pointer; display: flex; font-size: 1.375rem; font-weight: 700; justify-content: space-between; list-style: none; padding: 1.0625rem 1.25rem; }
.weekly-roster-accordion summary::-webkit-details-marker { display: none; }
.weekly-roster-accordion summary::after { color: var(--coral); content: "+"; font-family: "DM Mono", monospace; font-size: 1.25rem; font-weight: 400; }
.weekly-roster-accordion[open] summary { border-bottom: 1px solid var(--navy-line); }
.weekly-roster-accordion[open] summary::after { content: "-"; }
.weekly-roster-content { padding: 1.125rem 1.25rem 1.5rem; }
.weekly-roster-toolbar { align-items: center; display: flex; gap: 1.5rem; justify-content: space-between; margin-bottom: 1rem; }
.weeks-filter-form { align-items: center; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.weeks-filter-form label { color: var(--muted); font-size: 0.625rem; font-weight: 600; text-transform: uppercase; }
.weeks-filter-form input { background: rgba(255, 255, 255, 0.7); border: 1px solid var(--navy-line); border-radius: 0; color: var(--ink); font: inherit; font-size: 0.75rem; min-height: 2.375rem; padding: 0.5rem 0.625rem; }
.weeks-filter-form input:focus { border-color: var(--coral); outline: 0.125rem solid rgba(22, 103, 232, 0.15); }
.weeks-filter-button { background: var(--ink); border: 1px solid var(--ink); clip-path: polygon(0.4rem 0, calc(100% - 0.4rem) 0, 100% 50%, calc(100% - 0.4rem) 100%, 0.4rem 100%, 0 50%); color: var(--white); cursor: pointer; font: inherit; font-size: 0.75rem; font-weight: 600; min-height: 2.375rem; padding: 0.5rem 0.8125rem; }
.weeks-filter-button:hover { background: var(--coral); border-color: var(--coral); }
.weeks-filter-reset { border-bottom: 1px solid var(--ink); color: var(--muted); font-size: 0.75rem; padding-bottom: 0.125rem; }
.weekly-roster-toolbar p { color: var(--muted); font-size: 0.75rem; margin: 0; }
.weekly-roster-toolbar .dark-button { border: 0; cursor: pointer; margin-top: 0; white-space: nowrap; }
.weekly-roster-table-scroll { border: 1px solid var(--navy-line); border-radius: 0; max-height: 22rem; overflow: auto; scrollbar-color: var(--navy-line) transparent; scrollbar-width: thin; }
.weekly-roster-table { border-collapse: collapse; min-width: 38rem; width: 100%; }
.weekly-roster-table th, .weekly-roster-table td { border-bottom: 1px solid var(--rule); font-size: 0.75rem; padding: 0.8125rem 1rem; text-align: left; }
.weekly-roster-table th { background: var(--blue); color: var(--muted); font-size: 0.625rem; font-weight: 600; position: sticky; text-transform: uppercase; top: 0; z-index: 2; }
.weekly-roster-table td:first-child { color: var(--coral); font-family: "DM Mono", monospace; }
.weekly-roster-table tr.current-week td { background: var(--lime); border-bottom-color: rgba(22, 103, 232, 0.24); font-weight: 600; }
.weekly-roster-table tr.current-week td:first-child { box-shadow: inset 0.25rem 0 var(--coral); font-weight: 700; }
.weekly-roster-table tr:last-child td { border-bottom: 0; }
.masterlist-filter-bar { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.masterlist-filter { margin: 0; width: min(30rem, 100%); }
.masterlist-filter-row { align-items: center; display: flex; gap: 0.5rem; }
.masterlist-filter-row input { flex: 1; }
.masterlist-filter-row .people-filter-button { margin: 0; }
.masterlist-accordion, .masterlist-add-accordion { border: 1px solid var(--navy-line); border-radius: 0; box-shadow: var(--soft-shadow); overflow: hidden; }
.masterlist-accordion { margin-bottom: 1.5rem; }
.masterlist-add-accordion { margin-bottom: 5.75rem; }
.masterlist-accordion summary, .masterlist-add-accordion summary { align-items: center; background: rgba(234, 242, 255, 0.72); cursor: pointer; display: flex; font-size: 1.375rem; font-weight: 700; justify-content: space-between; list-style: none; padding: 1.0625rem 1.25rem; }
.masterlist-accordion summary::-webkit-details-marker, .masterlist-add-accordion summary::-webkit-details-marker { display: none; }
.masterlist-accordion summary::after, .masterlist-add-accordion summary::after { color: var(--coral); content: "+"; font-family: "DM Mono", monospace; font-size: 1.25rem; font-weight: 400; }
.masterlist-accordion[open] summary, .masterlist-add-accordion[open] summary { border-bottom: 1px solid var(--navy-line); }
.masterlist-accordion[open] summary::after, .masterlist-add-accordion[open] summary::after { content: "-"; }
.masterlist-content { padding: 1.125rem 1.25rem 1.5rem; }
.masterlist-add-content { padding: 1.125rem 1.25rem 1.5rem; }
.masterlist-form { display: flex; flex-direction: column; gap: 0.5rem; }
.masterlist-form label, .masterlist-filter label { color: var(--muted); font-size: 0.625rem; font-weight: 600; text-transform: uppercase; }
.masterlist-form select, .masterlist-filter input, .masterlist-table select { background: var(--white); border: 1px solid var(--navy-line); border-radius: 0; color: var(--ink); font: inherit; font-size: 0.75rem; min-height: 2.375rem; padding: 0.5rem 0.625rem; }
.masterlist-form select:focus, .masterlist-filter input:focus, .masterlist-table select:focus { border-color: var(--coral); outline: 0.125rem solid rgba(22, 103, 232, 0.15); }
.masterlist-submit { border: 0; cursor: pointer; margin-top: 0.5rem; }
.masterlist-filter-reset { border-bottom: 1px solid var(--ink); color: var(--muted); font-size: 0.75rem; padding-bottom: 0.125rem; }
.masterlist-add-form { align-items: end; display: grid; gap: 0.75rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; margin-top: 1.125rem; }
.masterlist-add-form > div { display: flex; flex-direction: column; gap: 0.5rem; }
.masterlist-table-scroll { border: 1px solid var(--navy-line); border-radius: 0; max-height: 28rem; overflow: auto; scrollbar-color: var(--navy-line) transparent; scrollbar-width: thin; }
.masterlist-table { border-collapse: collapse; min-width: 64rem; width: 100%; }
.masterlist-table th, .masterlist-table td { border-bottom: 1px solid var(--rule); font-size: 0.75rem; padding: 0.625rem 0.75rem; text-align: left; }
.masterlist-table th { background: var(--blue); box-shadow: 0 1px 0 var(--navy-line); color: var(--muted); font-size: 0.625rem; font-weight: 600; position: sticky; text-transform: uppercase; top: 0; z-index: 2; }
.masterlist-table td:first-child { color: var(--coral); font-family: "DM Mono", monospace; width: 3.5rem; }
.masterlist-table td:nth-child(2), .masterlist-table td:nth-child(3) { min-width: 15rem; }
.masterlist-table tr:last-child td { border-bottom: 0; }
.masterlist-table tbody tr:hover { background: var(--lime); }
.masterlist-table select { min-width: 13rem; width: 100%; }
.masterlist-person-display { display: block; font-size: 0.75rem; font-weight: 600; }
.masterlist-email { color: var(--muted); display: block; font-size: 0.6875rem; margin-top: 0.3125rem; }
.role-status { clip-path: polygon(0.25rem 0, calc(100% - 0.25rem) 0, 100% 50%, calc(100% - 0.25rem) 100%, 0.25rem 100%, 0 50%); display: inline-block; font-size: 0.625rem; padding: 0.375rem 0.625rem; text-transform: uppercase; }
.role-status-active { background: #5f994a; color: var(--white); }
.role-status-inactive { background: #a33f3f; color: var(--white); }
.masterlist-actions { display: flex; gap: 0.5rem; white-space: nowrap; }
.masterlist-actions form { margin: 0; }
.masterlist-update, .masterlist-delete { background: transparent; border: 0; cursor: pointer; font: inherit; font-size: 0.6875rem; isolation: isolate; padding: 0.5rem 0.625rem; position: relative; }
.masterlist-update::before, .masterlist-delete::before, .masterlist-delete::after { clip-path: polygon(0.2rem 0, calc(100% - 0.2rem) 0, 100% 50%, calc(100% - 0.2rem) 100%, 0.2rem 100%, 0 50%); content: ""; inset: 0; position: absolute; z-index: -1; }
.masterlist-update::before { background: var(--ink); }
.masterlist-update { color: var(--white); }
.masterlist-update:hover::before { background: var(--coral); }
.masterlist-delete::before { background: #d9a4a0; }
.masterlist-delete::after { background: #fff7f6; inset: 1px; }
.masterlist-delete { color: #a33f3f; }
.masterlist-delete:hover::before, .masterlist-delete:hover::after { background: #a33f3f; }
.masterlist-delete:hover { color: var(--white); }
.roles-add-accordion, .roles-accordion { border: 1px solid var(--navy-line); border-radius: 0; box-shadow: var(--soft-shadow); overflow: hidden; }
.roles-add-accordion { margin-bottom: 1.5rem; }
.roles-accordion { margin-bottom: 5.75rem; }
.roles-add-accordion summary, .roles-accordion summary { align-items: center; background: rgba(234, 242, 255, 0.72); cursor: pointer; display: flex; font-size: 1.375rem; font-weight: 700; justify-content: space-between; list-style: none; padding: 1.0625rem 1.25rem; }
.roles-add-accordion summary::-webkit-details-marker, .roles-accordion summary::-webkit-details-marker { display: none; }
.roles-add-accordion summary::after, .roles-accordion summary::after { color: var(--coral); content: "+"; font-family: "DM Mono", monospace; font-size: 1.25rem; font-weight: 400; }
.roles-add-accordion[open] summary, .roles-accordion[open] summary { border-bottom: 1px solid var(--navy-line); }
.roles-add-accordion[open] summary::after, .roles-accordion[open] summary::after { content: "-"; }
.roles-add-content, .roles-content { padding: 1.125rem 1.25rem 1.5rem; }
.roles-form { display: flex; flex-direction: column; gap: 0.5rem; }
.roles-form label { color: var(--muted); font-size: 0.625rem; font-weight: 600; text-transform: uppercase; }
.roles-form input, .roles-table input, .roles-table select { background: var(--white); border: 1px solid var(--navy-line); border-radius: 0; color: var(--ink); font: inherit; font-size: 0.75rem; min-height: 2.375rem; padding: 0.5rem 0.625rem; }
.roles-form input:focus, .roles-table input:focus, .roles-table select:focus { border-color: var(--coral); outline: 0.125rem solid rgba(22, 103, 232, 0.15); }
.roles-add-form { align-items: end; display: grid; gap: 0.75rem; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr) auto; }
.roles-add-form > div { display: flex; flex-direction: column; gap: 0.5rem; }
.roles-submit { border: 0; cursor: pointer; margin-top: 0.5rem; }
.roles-table-scroll { border: 1px solid var(--navy-line); border-radius: 0; max-height: 32rem; overflow: auto; scrollbar-color: var(--navy-line) transparent; scrollbar-width: thin; }
.roles-table { border-collapse: collapse; min-width: 70rem; width: 100%; }
.roles-table th, .roles-table td { border-bottom: 1px solid var(--rule); font-size: 0.75rem; padding: 0.625rem 0.75rem; text-align: left; }
.roles-table th { background: var(--blue); box-shadow: 0 1px 0 var(--navy-line); color: var(--muted); font-size: 0.625rem; font-weight: 600; position: sticky; text-transform: uppercase; top: 0; z-index: 2; }
.roles-table td:first-child { color: var(--coral); font-family: "DM Mono", monospace; width: 3.5rem; }
.roles-table td:nth-child(2) { min-width: 15rem; }
.roles-table td:nth-child(3) { min-width: 22rem; }
.roles-table tr:last-child td { border-bottom: 0; }
.roles-table input { min-width: 12rem; width: 100%; }
.roles-table select { min-width: 7rem; }
.roles-actions { display: flex; gap: 0.5rem; white-space: nowrap; }
.roles-actions form { margin: 0; }
.roles-update, .roles-delete { background: transparent; border: 0; cursor: pointer; font: inherit; font-size: 0.6875rem; isolation: isolate; padding: 0.5rem 0.625rem; position: relative; }
.roles-update::before, .roles-delete::before, .roles-delete::after { clip-path: polygon(0.2rem 0, calc(100% - 0.2rem) 0, 100% 50%, calc(100% - 0.2rem) 100%, 0.2rem 100%, 0 50%); content: ""; inset: 0; position: absolute; z-index: -1; }
.roles-update::before { background: var(--ink); }
.roles-update { color: var(--white); }
.roles-update:hover::before { background: var(--coral); }
.roles-delete::before { background: #d9a4a0; }
.roles-delete::after { background: #fff7f6; inset: 1px; }
.roles-delete { color: #a33f3f; }
.roles-delete:hover::before, .roles-delete:hover::after { background: #a33f3f; }
.roles-delete:hover { color: var(--white); }
.role-action-note { color: var(--muted); font-size: 0.6875rem; padding: 0.5rem 0.25rem; }
.roster-message { background: var(--lime); border: 1px solid var(--navy-line); border-radius: 0.375rem; font-size: 0.75rem; margin: 0 0 1rem; padding: 0.625rem 0.75rem; }
.assignment-section { padding-top: 0; }
.assignment-heading-row { align-items: end; display: flex; justify-content: space-between; margin-bottom: 1.75rem; }
.assignment-heading-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.assignment-action-group { margin: 0; position: relative; }
.assignment-action { border: 0; cursor: pointer; margin-top: 0; white-space: nowrap; }
.assignment-action-auto { background: var(--ink); }
.assignment-action-auto:hover { background: #30456d; }
.assignment-action-approval { background: #5f994a; }
.assignment-action-approval:hover { background: #477b37; }
.assignment-action-icon { font-size: 0.9375rem; line-height: 0.75; }
.assignment-tooltip { background: var(--ink); color: var(--white); font-size: 0.6875rem; left: 50%; line-height: 1.35; opacity: 0; padding: 0.5rem 0.625rem; pointer-events: none; position: absolute; text-align: center; top: calc(100% + 0.5rem); transform: translate(-50%, -0.25rem); transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease; visibility: hidden; width: max-content; max-width: 18rem; z-index: 5; }
.assignment-tooltip::before { border-bottom: 0.3rem solid var(--ink); border-left: 0.3rem solid transparent; border-right: 0.3rem solid transparent; content: ""; left: 50%; position: absolute; top: -0.3rem; transform: translateX(-50%); }
.assignment-action-group:hover .assignment-tooltip, .assignment-action-group:focus-within .assignment-tooltip, .status-tooltip-group:hover .assignment-tooltip, .status-tooltip-group:focus-within .assignment-tooltip { opacity: 1; transform: translate(-50%, 0); visibility: visible; }
.status-tooltip-group { display: inline-block; position: relative; }
.status-tooltip-group .assignment-tooltip { box-sizing: border-box; max-width: calc(100vw - 1rem); white-space: normal; width: min(18rem, calc(100vw - 1rem)); }
.assignment-add-accordion { border: 1px solid var(--navy-line); box-shadow: var(--soft-shadow); margin-bottom: 1.5rem; }
.assignment-add-accordion summary { align-items: center; background: rgba(234, 242, 255, 0.72); cursor: pointer; display: flex; font-size: 1.125rem; font-weight: 700; justify-content: space-between; list-style: none; padding: 0.875rem 1rem; }
.assignment-add-accordion summary::-webkit-details-marker { display: none; }
.assignment-add-accordion summary::after { color: var(--coral); content: "+"; font-family: "DM Mono", monospace; font-size: 1.25rem; font-weight: 400; }
.assignment-add-accordion[open] summary { border-bottom: 1px solid var(--navy-line); }
.assignment-add-accordion[open] summary::after { content: "-"; }
.assignment-add-form { align-items: end; display: grid; gap: 0.75rem; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; padding: 1rem; }
.assignment-add-form > div { display: flex; flex-direction: column; gap: 0.5rem; }
.assignment-add-form label { color: var(--muted); font-size: 0.625rem; font-weight: 600; text-transform: uppercase; }
.assignment-add-form select, .assignment-table select { background: var(--white); border: 1px solid var(--navy-line); border-radius: 0; color: var(--ink); font: inherit; font-size: 0.75rem; min-height: 2.375rem; padding: 0.5rem 0.625rem; }
.assignment-add-form select:focus, .assignment-table select:focus { border-color: var(--coral); outline: 0.125rem solid rgba(22, 103, 232, 0.15); }
.assignment-submit { border: 0; cursor: pointer; margin-top: 0; white-space: nowrap; }
.section-heading h2 { font-size: 2.6875rem; font-weight: 700; letter-spacing: -0.09375rem; line-height: 0.98; margin-top: 0.875rem; }
.assignment-table-scroll { border: 1px solid var(--navy-line); max-height: min(38rem, calc(100vh - 23rem)); overflow: auto; scrollbar-color: var(--navy-line) transparent; scrollbar-width: thin; }
.assignment-table { border-collapse: collapse; min-width: 82rem; width: 100%; }
.assignment-table th, .assignment-table td { border-bottom: 1px solid var(--rule); font-size: 0.75rem; padding: 0.625rem 0.8125rem; text-align: left; white-space: nowrap; }
.assignment-table th { background: var(--blue); color: var(--muted); font-size: 0.625rem; font-weight: 600; position: sticky; text-transform: uppercase; top: 0; z-index: 2; }
.assignment-table td:first-child { color: var(--coral); font-family: "DM Mono", monospace; }
.assignment-table tr.current-week td { background: var(--lime); border-bottom-color: rgba(22, 103, 232, 0.24); }
.assignment-table tr.current-week td.assignment-actions { background: var(--lime); }
.assignment-table tr.current-week td:first-child { box-shadow: inset 0.25rem 0 var(--coral); }
.assignment-table tr:last-child td { border-bottom: 0; }
.assignment-week-number { font-weight: 600; }
.assignment-table select { min-width: 15rem; width: 100%; }
.assignment-actions { white-space: nowrap; }
.assignment-actions form { display: inline-block; margin: 0; vertical-align: middle; }
.assignment-actions form + form { margin-left: 0.5rem; }
.assignment-update, .assignment-delete { background: transparent; border: 0; cursor: pointer; font: inherit; font-size: 0.6875rem; isolation: isolate; padding: 0.5rem 0.625rem; position: relative; }
.assignment-update::before, .assignment-delete::before, .assignment-delete::after { clip-path: polygon(0.2rem 0, calc(100% - 0.2rem) 0, 100% 50%, calc(100% - 0.2rem) 100%, 0.2rem 100%, 0 50%); content: ""; inset: 0; position: absolute; z-index: -1; }
.assignment-update::before { background: var(--ink); }
.assignment-update { color: var(--white); }
.assignment-update:hover::before { background: var(--coral); }
.assignment-delete::before { background: #d9a4a0; }
.assignment-delete::after { background: #fff7f6; inset: 1px; }
.assignment-delete { color: #a33f3f; }
.assignment-delete:hover::before, .assignment-delete:hover::after { background: #a33f3f; }
.assignment-delete:hover { color: var(--white); }
.status { align-items: center; background: transparent; border: 0; clip-path: polygon(0.3rem 0, calc(100% - 0.3rem) 0, 100% 50%, calc(100% - 0.3rem) 100%, 0.3rem 100%, 0 50%); color: var(--white); display: inline-flex; font-size: 0.625rem; min-height: 1.75rem; padding: 0.375rem 0.75rem; text-transform: uppercase; }
.status-approve, .status-approved { background: #5f994a; }
.status-pending { background: #8793a6; }
.status-requested, .status-review { background: var(--coral); }
.status-reject, .status-rejected, .status-cancelled, .status-failed { background: #a33f3f; }
.upcoming-section { border-top: 1px solid var(--ink); display: grid; gap: 2.25rem; grid-template-columns: 0.32fr 0.68fr; margin-top: 6.75rem; padding-top: 1.75rem; }
.upcoming-list { border-top: 1px solid var(--ink); }
.upcoming-row { align-items: center; border-bottom: 1px solid var(--rule); display: grid; font-size: 0.6875rem; gap: 1.125rem; grid-template-columns: 3.75rem 1fr 1.25rem; min-height: 4.25rem; text-transform: uppercase; }
.upcoming-row strong { font-size: 0.9375rem; font-weight: 500; text-transform: none; }
.text-arrow { font-size: 1.125rem; }
.placeholder-row { color: var(--muted); }
.people-page { background: rgba(244, 247, 252, 0.56); overflow: hidden; padding-top: 1rem; position: relative; }
.people-page::before { border: 1px solid rgba(26, 35, 60, 0.12); content: ""; height: 15rem; position: absolute; right: -5.25rem; top: 1rem; transform: rotate(14deg); width: 15rem; }
.people-page::after { background: var(--coral); content: ""; height: 0.5rem; position: absolute; right: clamp(1.875rem, 8vw, 8.75rem); top: 6rem; transform: rotate(-14deg); width: 5.375rem; }
.people-page > * { position: relative; z-index: 1; }
.aligned-page-intro { align-items: center; display: grid; gap: 2rem; grid-template-columns: auto minmax(16rem, 1fr); max-width: none; padding: 0.75rem 0 1rem; }
.aligned-page-intro h1 { font-size: 4.75rem; margin: 0; }
.aligned-page-intro .page-summary { justify-self: start; margin: 0; max-width: 24rem; width: 100%; }
.people-grid { background: transparent; display: block; padding: 0.5rem 0 0; }
.volunteers-accordion, .directory-accordion { border: 1px solid var(--navy-line); border-radius: 0; box-shadow: var(--soft-shadow); overflow: hidden; }
.volunteers-accordion summary, .directory-accordion summary { align-items: center; background: rgba(234, 242, 255, 0.72); cursor: pointer; display: flex; font-size: 1.375rem; font-weight: 700; justify-content: space-between; list-style: none; padding: 1.0625rem 1.25rem; }
.volunteers-accordion summary::-webkit-details-marker, .directory-accordion summary::-webkit-details-marker { display: none; }
.volunteers-accordion summary::after, .directory-accordion summary::after { color: var(--coral); content: "+"; font-family: "DM Mono", monospace; font-size: 1.25rem; font-weight: 400; }
.volunteers-accordion[open] summary, .directory-accordion[open] summary { border-bottom: 1px solid var(--navy-line); }
.volunteers-accordion[open] summary::after, .directory-accordion[open] summary::after { content: "-"; }
.accordion-count { color: var(--muted); font-family: "DM Mono", monospace; font-size: 0.6875rem; font-weight: 400; margin-left: auto; margin-right: 1.125rem; }
.volunteers-content { padding: 1.125rem 1.25rem 2.5rem; }
.people-table-tools { display: flex; justify-content: flex-end; }
.people-filter label { color: var(--muted); display: block; font-size: 0.625rem; font-weight: 600; margin-bottom: 0.4375rem; text-transform: uppercase; }
.people-filter-row { align-items: center; display: flex; gap: 0.5rem; }
.people-filter-row input { background: rgba(255, 255, 255, 0.55); border: 1px solid var(--navy-line); border-radius: 0; box-shadow: 0 0.1875rem 0.625rem rgba(26, 35, 60, 0.05); color: var(--ink); font: inherit; font-size: 0.8125rem; min-height: 2.375rem; padding: 0.5rem 0.6875rem; width: min(17.5rem, 40vw); }
.people-filter-row input:focus { border-color: var(--coral); outline: 0.125rem solid rgba(22, 103, 232, 0.15); }
.people-filter-button { background: var(--ink); border: 1px solid var(--ink); clip-path: polygon(0.4rem 0, calc(100% - 0.4rem) 0, 100% 50%, calc(100% - 0.4rem) 100%, 0.4rem 100%, 0 50%); color: var(--white); cursor: pointer; font: inherit; font-size: 0.75rem; font-weight: 600; min-height: 2.375rem; padding: 0.5rem 0.8125rem; }
.people-filter-button:hover { background: var(--coral); border-color: var(--coral); }
.volunteers-table-scroll { border: 1px solid var(--navy-line); border-radius: 0; box-shadow: 0 0.3125rem 0.875rem rgba(26, 35, 60, 0.06); max-height: 20rem; margin-top: 1rem; overflow: auto; overscroll-behavior: contain; scrollbar-color: var(--navy-line) transparent; scrollbar-gutter: stable; scrollbar-width: thin; }
.volunteers-table-scroll::-webkit-scrollbar { width: 0.75rem; }
.volunteers-table-scroll::-webkit-scrollbar-track { background: rgba(115, 128, 154, 0.12); }
.volunteers-table-scroll::-webkit-scrollbar-thumb { background: var(--navy-line); background-clip: padding-box; border: 0.1875rem solid transparent; border-radius: 999px; }
.simple-list { border: 0; border-radius: 0; box-shadow: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; overflow: hidden; }
.simple-row { align-items: center; border-bottom: 1px solid var(--rule); display: grid; gap: 0.625rem; grid-template-columns: 1.5rem minmax(0, 1fr) auto; min-height: 4.5rem; padding: 0.625rem 0.875rem 0.625rem 0; }
.simple-row:nth-child(3n + 1), .simple-row:nth-child(3n + 2) { background: rgba(255, 255, 255, 0.24); border-right: 1px solid var(--rule); padding-right: 1rem; }
.simple-row:nth-child(3n + 1) { padding-left: 1rem; }
.simple-row:nth-child(3n + 2), .simple-row:nth-child(3n + 3) { padding-left: 1rem; }
.simple-row:nth-child(3n + 3) { background: transparent; }
.simple-row:hover { background: var(--lime); }
.person-index { color: var(--coral); font-family: "DM Mono", monospace; font-size: 0.625rem; }
.person-details { display: flex; flex-direction: column; gap: 0.375rem; min-width: 0; }
.simple-row strong { font-size: 0.9375rem; font-weight: 600; }
.simple-row span { color: var(--muted); font-size: 0.75rem; }
.person-remove { background: #fff7f6; border: 1px solid #d9a4a0; clip-path: polygon(0.25rem 0, calc(100% - 0.25rem) 0, 100% 50%, calc(100% - 0.25rem) 100%, 0.25rem 100%, 0 50%); color: #a33f3f; cursor: pointer; font: inherit; font-size: 0.625rem; font-weight: 600; line-height: 1.2; max-width: 100%; padding: 0.375rem 0.5rem; white-space: nowrap; }
.person-remove:hover { background: #a33f3f; border-color: #a33f3f; color: var(--white); }
.directory-accordion { margin-top: 5.75rem; }
.directory-search { display: grid; gap: 2.25rem; grid-template-columns: 0.45fr 0.55fr; padding: 1.125rem 1.25rem 2.5rem; }
.directory-heading h2 { font-size: 2.6875rem; font-weight: 700; letter-spacing: -0.09375rem; line-height: 0.98; margin: 0.875rem 0 1rem; }
.directory-form { align-self: end; }
.directory-form label { color: var(--muted); display: block; font-size: 0.6875rem; font-weight: 600; margin-bottom: 0.5625rem; text-transform: uppercase; }
.directory-input-row { align-items: center; display: flex; gap: 0.75rem; }
.directory-input-row input { border: 1px solid var(--navy-line); border-radius: 0; box-shadow: 0 0.1875rem 0.625rem rgba(26, 35, 60, 0.05); color: var(--ink); flex: 1; font: inherit; min-height: 2.75rem; padding: 0.625rem 0.8125rem; }
.directory-input-row input:focus { border-color: var(--coral); outline: 0.125rem solid rgba(22, 103, 232, 0.15); }
.directory-input-row .dark-button { border: 0; cursor: pointer; margin-top: 0; white-space: nowrap; }
.directory-results { border-top: 1px solid var(--rule); grid-column: 1 / -1; }
.directory-result { align-items: center; border-bottom: 1px solid var(--rule); display: grid; gap: 0.875rem; grid-template-columns: 2.625rem 1fr auto; min-height: 4.5rem; padding: 0.75rem 0; }
.directory-result > div { display: flex; flex-direction: column; gap: 0.25rem; }
.directory-result strong { font-size: 0.875rem; font-weight: 600; }
.directory-result div span { color: var(--muted); font-size: 0.75rem; }
.directory-initials { align-items: center; background: var(--lime); border-radius: 50%; display: flex; font-size: 0.75rem; font-weight: 700; height: 2.25rem; justify-content: center; width: 2.25rem; }
.directory-add { background: transparent; border: 1px solid var(--ink); clip-path: polygon(0.3rem 0, calc(100% - 0.3rem) 0, 100% 50%, calc(100% - 0.3rem) 100%, 0.3rem 100%, 0 50%); color: var(--ink); cursor: pointer; font: inherit; font-size: 0.6875rem; padding: 0.5625rem 0.75rem; }

button:focus-visible, a:focus-visible { outline: 0.125rem solid var(--coral); outline-offset: 0.1875rem; }
.directory-add:hover { background: var(--ink); color: var(--white); }
.directory-message { color: var(--muted); font-size: 0.8125rem; margin: 1.125rem 0 0; }
.directory-error { color: #a33f3f; }
.people-approvals { margin-top: 4.75rem; }
.people-approvals h2 { margin-bottom: 1.875rem; }
.site-footer { background: rgba(255, 255, 255, 0.62); border-top: 1px solid var(--rule); display: flex; font-size: 0.625rem; font-weight: 600; justify-content: space-between; letter-spacing: 0.03125rem; padding: 1.375rem clamp(1.5rem, 4vw, 4rem); text-transform: uppercase; width: 100%; }
@media (max-width: 50rem) {
    .site-header { align-items: flex-start; flex-wrap: wrap; gap: 1.125rem; padding: 1.125rem 1.25rem; }
    .safety-ring { left: 68%; }
    .safety-diamond { left: 82%; }
    .safety-stripe { right: 4%; }
    .safety-shield { left: 47%; }
    .safety-clipboard { right: 23%; }
    .safety-lanyard { right: 3%; }
    .brand-group { gap: 0.25rem; }
    .primary-nav { flex-wrap: wrap; gap: 1rem; order: 3; padding-bottom: 0.625rem; width: 100%; }
    .header-actions { margin-left: auto; }
    .header-user { max-width: min(13rem, 45vw); }
    .dashboard-shell, .page-shell { padding: 2.5rem 1.25rem 4.75rem; }
    .intro-grid, .content-grid, .upcoming-section { display: block; }
    .process-intro, .process-section-heading { display: block; }
    .process-intro { padding: 1rem 0 3.25rem; }
    .process-intro-note, .process-section-note { margin-top: 2rem; }
    .process-section { padding: 1.5rem 0 3.75rem; }
    .process-section-heading { margin-bottom: 2rem; }
    .process-section-heading h2 { font-size: 2.625rem; }
    .process-list { display: block; padding-left: 0.5rem; }
    .process-list::before { bottom: 1.5rem; height: auto; left: 1.3125rem; right: auto; top: 1.5rem; width: 1px; }
    .process-step, .process-step:not(:first-child) { display: grid; gap: 1.5rem; grid-template-columns: 2.625rem 1fr; padding: 0 0 2rem; }
    .process-step:last-child { padding-bottom: 0; }
    .process-step-copy { padding-top: 0.25rem; }
    .process-step p { max-width: 24rem; }
    h1 { font-size: 3.875rem; }
    .intro-grid { padding-bottom: 3.25rem; }
    .intro-note { margin-top: 2.25rem; }
    .approval-card { min-height: 0; }
    .content-grid, .upcoming-section { padding-top: 4.75rem; }
    .section-heading { margin-bottom: 1.875rem; }
    .assignment-heading-row { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .assignment-heading-actions { width: 100%; }
    .assignment-heading-row .section-heading { margin-bottom: 0; }
    .assignment-add-form { display: block; }
    .assignment-add-form > div + div { margin-top: 0.75rem; }
    .assignment-add-form .assignment-submit { margin-top: 1rem; }
    .weekly-roster-accordion { margin-bottom: 4.75rem; }
    .weekly-roster-toolbar { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .weeks-filter-form { align-items: flex-start; flex-direction: column; width: 100%; }
    .weeks-filter-form input { width: min(18rem, 100%); }
    .masterlist-filter-row { align-items: stretch; flex-wrap: wrap; }
    .masterlist-filter-row input { min-width: 12rem; }
    .masterlist-add-form { display: block; }
    .masterlist-add-form > div + div { margin-top: 0.75rem; }
    .masterlist-add-form .masterlist-submit { margin-top: 1rem; }
    .masterlist-table-scroll { max-width: 100%; }
    .roles-add-form { display: block; }
    .roles-add-form > div + div { margin-top: 0.75rem; }
    .roles-add-form .roles-submit { margin-top: 1rem; }
    .roles-table-scroll { max-width: 100%; }
    .upcoming-section { margin-top: 4.75rem; }
    .page-intro { padding: 1.25rem 0 3.25rem; }
    .page-intro h1 { font-size: 3rem; letter-spacing: -0.125rem; }
    .people-page { padding-top: 1.5rem; }
    .aligned-page-intro { display: block; padding-bottom: 1.25rem; }
    .aligned-page-intro h1 { font-size: 3.625rem; }
    .aligned-page-intro .page-summary { margin-top: 0.5rem; }
    .people-grid { display: block; }
    .people-grid { padding: 0.75rem 0 0; }
    .volunteers-content { padding-left: 0.75rem; padding-right: 0.75rem; }
    .people-table-tools { justify-content: flex-start; }
    .people-filter-row input { width: min(17.5rem, calc(100vw - 8.125rem)); }
    .simple-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .simple-row:nth-child(3n + 1), .simple-row:nth-child(3n + 2), .simple-row:nth-child(3n + 3) { background: transparent; border-right: 0; padding-left: 0; padding-right: 0; }
    .simple-row:nth-child(odd) { background: rgba(255, 255, 255, 0.24); border-right: 1px solid var(--rule); padding-right: 1rem; }
    .simple-row:nth-child(even) { padding-left: 1rem; }
    .simple-list { display: block; }
    .simple-row, .simple-row:nth-child(even), .simple-row:nth-child(odd) { border-right: 0; padding-left: 0; padding-right: 0; }
    .people-grid > div + div { margin-top: 4rem; }
    .directory-accordion { margin-top: 4rem; }
    .directory-search { display: block; }
    .directory-form { margin-top: 1.875rem; }
    .directory-input-row { align-items: stretch; flex-direction: column; }
    .directory-input-row .dark-button { align-self: flex-start; }
    .directory-result { grid-template-columns: 2.25rem 1fr; }
    .directory-result form { grid-column: 2; }
    .people-approvals { margin-top: 4rem; }
    .site-footer { padding: 1.25rem; }
}