:root{--app-background:radial-gradient(1000px 700px at 10% 10%, #38bdf82e, transparent 60%), radial-gradient(900px 700px at 90% 20%, #6366f12e, transparent 60%), linear-gradient(135deg, #071225 0%, #081a33 45%, #0a2642 100%)}html,body{background:var(--app-background);min-height:100%;margin:0;padding:0}*{box-sizing:border-box}body{color:#ffffffeb;background:var(--app-background);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit;text-decoration:none}.appShell{min-height:100vh;padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;display:flex}.appHeader{z-index:10;padding-top:env(safe-area-inset-top,0px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0610228c;border-bottom:1px solid #ffffff14;position:sticky;top:0}.appHeaderInner{justify-content:space-between;align-items:center;max-width:1000px;margin:0 auto;padding:14px 18px;display:flex}.brand{letter-spacing:.2px;font-weight:700}.nav{align-items:center;gap:14px;display:flex}.hamburger{cursor:pointer;z-index:20;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;padding:4px;display:none}.hamburgerLine{background:#ffffffd9;border-radius:2px;width:100%;height:2px;transition:transform .3s,opacity .3s;display:block}.hamburgerLineOpen:first-child{transform:translateY(7px)rotate(45deg)}.hamburgerLineOpen:nth-child(2){opacity:0}.hamburgerLineOpen:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (max-width:768px){.hamburger{display:flex}.nav{top:env(safe-area-inset-top,0px);width:280px;height:calc(100vh - env(safe-area-inset-top,0px));padding:70px 20px calc(20px + env(safe-area-inset-bottom,0px));z-index:15;background:#061022fa;border-left:1px solid #ffffff1a;flex-direction:column;align-items:stretch;gap:0;display:none;position:fixed;right:0}.navOpen{display:flex}.nav .navLink{text-align:left;border-radius:10px;padding:14px 16px;font-size:16px}.nav .navLink:hover{background:#ffffff14}}.navLink{color:#ffffffd9;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:8px 10px}.navLink:hover{color:#fffffff5;background:#ffffff14}.container{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:28px 18px}.containerWide{width:95%;max-width:1400px}.containerAvailability{width:85%;max-width:1400px}.page{place-items:center;width:100%;min-height:calc(100vh - 64px);padding:24px 18px;display:grid}.card{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:18px;width:100%;max-width:440px;padding:22px;box-shadow:0 18px 60px #00000059}.card>*{margin-left:auto;margin-right:auto}.title{letter-spacing:-.2px;margin:0;font-size:26px}.subtitle{color:#ffffffb3;margin:8px 0 0}.form{gap:14px;margin-top:18px;display:grid}.label{color:#fffc;gap:8px;font-size:14px;display:grid}.input{color:#ffffffeb;background:#020a148c;border:1px solid #ffffff24;border-radius:12px;outline:none;width:100%;height:44px;padding:0 12px}.input:focus{border-color:#38bdf880;box-shadow:0 0 0 4px #38bdf81f}.input[type=file]{text-align:center;cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.input[type=file]::-webkit-file-upload-button{color:#ffffffe6;height:calc(100% - 4px);font:inherit;cursor:pointer;background:#38bdf826;border:none;border-radius:8px;justify-content:center;align-items:center;margin:2px 12px 2px 2px;padding:0 16px;font-weight:600;transition:background .2s;display:flex}.input[type=file]::-webkit-file-upload-button:hover{background:#38bdf840}.input[type=file]::-moz-file-upload-button{color:#ffffffe6;height:calc(100% - 4px);font:inherit;cursor:pointer;background:#38bdf826;border:none;border-radius:8px;justify-content:center;align-items:center;margin:2px 12px 2px 2px;padding:0 16px;font-weight:600;transition:background .2s;display:flex}.input[type=file]::-moz-file-upload-button:hover{background:#38bdf840}.input[type=file]::file-selector-button{color:#ffffffe6;height:calc(100% - 4px);font:inherit;cursor:pointer;background:#38bdf826;border:none;border-radius:8px;justify-content:center;align-items:center;margin:2px 12px 2px 2px;padding:0 16px;font-weight:600;transition:background .2s;display:flex}.input[type=file]::file-selector-button:hover{background:#38bdf840}.button{color:#fffffff2;cursor:pointer;background:linear-gradient(135deg,#1d4ed8 0%,#2563eb 40%,#38bdf8 100%);border:0;border-radius:12px;height:46px;font-weight:600}.button:disabled{opacity:.55;cursor:not-allowed}.error{color:#fee2e2f2;background:#f871711a;border:1px solid #f8717159;border-radius:12px;padding:10px 12px;font-size:14px}.success{color:#dcfce7f2;background:#22c55e1a;border:1px solid #22c55e59;border-radius:12px;padding:10px 12px;font-size:14px}.footerRow{align-items:center;gap:8px;margin-top:14px;display:flex}.muted{color:#ffffffa6;font-size:14px}.link{color:#bae6fdf2;font-size:14px;font-weight:600}.link:hover{text-decoration:underline}.checkbox-label{color:#fffc;cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.checkbox-label input[type=checkbox]{accent-color:#2563eb;width:16px;height:16px}.form-section{margin:8px 0}.file-preview{color:#bae6fdf2;background:#38bdf81a;border:1px solid #38bdf833;border-radius:8px;margin-top:8px;padding:8px 12px;font-size:13px}.availabilityContainer{gap:16px;width:100%;display:grid}.availabilityCard{width:100%;max-width:none}.availabilityRequestCard{background:radial-gradient(1200px 500px at 0 0,#38bdf814,#0000 55%),linear-gradient(#0b172beb 0%,#07101feb 100%);min-width:0;padding:28px;overflow-x:hidden}.availabilityRequestTopBar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.availabilityRequestDateBlock{gap:8px;min-width:0;display:grid}.availabilityRequestDateEyebrow{letter-spacing:.12em;text-transform:uppercase;color:#bae6fdbf;font-size:12px}.availabilityRequestDate{letter-spacing:-.04em;margin:0;font-size:clamp(28px,4vw,42px);line-height:1}.availabilityRequestSubtitle{max-width:52ch}.availabilityRequestStation{width:min(320px,100%)}.availabilityRequestTabs{z-index:1;flex-wrap:wrap;gap:10px;width:100%;min-width:0;max-width:100%;margin-bottom:0;display:flex;position:relative}.availabilityShiftTab{--shift-color:#38bdf8;--shift-color-soft:#38bdf829;background:linear-gradient(180deg, var(--shift-color-soft) 0%, #07101fe6 100%);color:#ffffffd1;text-align:left;cursor:pointer;border:1px solid #ffffff1f;border-bottom:none;border-radius:16px 16px 0 0;min-width:180px;padding:14px 16px;transition:transform .15s,border-color .15s,color .15s}.availabilityShiftTab:hover{border-color:color-mix(in srgb, var(--shift-color) 60%, white 20%);color:#fffffff5;transform:translateY(-1px)}.availabilityShiftTabActive{color:#fffffffa;border-color:color-mix(in srgb, var(--shift-color) 70%, white 18%);box-shadow:inset 0 1px #ffffff14}.availabilityShiftTabName{font-size:16px;font-weight:700;display:block}.availabilityShiftTabMeta,.availabilityShiftTabStatus{margin-top:4px;font-size:12px;display:block}.availabilityShiftTabMeta{color:#ffffffa6}.availabilityShiftTabStatus{color:#bae6fdeb;font-weight:600}.availabilityRequestPanel{--active-shift-color:#38bdf8;--active-shift-soft:#38bdf82e;background:linear-gradient(135deg, var(--active-shift-soft) 0%, #0a172dc7 32%, #08101ff5 100%), linear-gradient(180deg, #0a182deb 0%, #061224e6 100%);border:1px solid #ffffff1f;border-radius:0 24px 24px;margin-top:-1px;padding:26px;box-shadow:inset 0 1px #ffffff0d}.availabilityRequestPanelHeader{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;display:flex}.availabilityRequestPanelTitle{margin:6px 0 0;font-size:clamp(26px,3vw,34px);line-height:1}.availabilityRequestPanelMeta{color:#ffffffb8;margin:8px 0 0}.availabilityRequestActionBlock{justify-items:end;gap:10px;display:grid}.availabilityRequestStateBadge{background:#ffffff14;border:1px solid #ffffff24;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.availabilityRequestStateBadgeOpen{color:#bae6fd}.availabilityRequestStateBadgeSelected{color:#bfdbfe;background:#3b82f62e;border-color:#3b82f647}.availabilityRequestStateBadgeAssigned{color:#bbf7d0;background:#22c55e2e;border-color:#22c55e47}.availabilityRequestStateBadgeLocked{color:#ffffffb8;background:#ffffff14}.availabilityRequestAction{min-width:210px}.availabilityRequestPositions{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.availabilityPositionCard{background:#ffffff12;border:1px solid #ffffff1f;border-radius:18px;padding:16px 18px;transition:opacity .15s,transform .15s,border-color .15s}.availabilityPositionCardOpen{background:linear-gradient(#ffffff1f 0%,#bae6fd14 100%);border-color:#7dd3fc59;box-shadow:0 10px 30px #0284c714}.availabilityPositionCardFilled{opacity:.56;background:linear-gradient(#ffffff0d 0%,#0f172a2e 100%)}.availabilityPositionCardEmpty{text-align:center;color:#ffffffb8;grid-column:1/-1}.availabilityPositionHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.availabilityPositionTitleRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.availabilityPositionTitle{margin:0;font-size:18px}.availabilityPositionRequired{letter-spacing:.08em;text-transform:uppercase;color:#fca5a5;background:#ef444429;border:1px solid #ef444442;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800}.availabilityPositionStatus{color:#ffffffbd;font-size:12px;font-weight:700}.availabilityPositionStatusOpen{color:#bae6fd}.availabilityPositionPeople{color:#ffffffeb;margin:14px 0 8px;font-size:15px}.availabilityPositionCapacity{color:#fff9;font-size:12px}.availabilityRequestFooter{justify-content:space-between;gap:12px;margin-top:20px;display:flex}.availabilityRequestNav{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:999px;padding:10px 14px}.availabilityRequestNav:hover{background:#ffffff1a}@media (max-width:900px){.availabilityRequestTopBar,.availabilityRequestPanelHeader{flex-direction:column}.availabilityRequestStation,.availabilityRequestAction{width:100%}.availabilityRequestActionBlock{justify-items:stretch;width:100%}.availabilityRequestPositions{grid-template-columns:1fr}}@media (max-width:640px){.availabilityRequestCard{padding:18px}.availabilityRequestTabs{overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:thin;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:4px;overflow:auto hidden}.availabilityShiftTab{border-bottom:none;border-radius:14px 14px 0 0;flex:0 0 148px;min-width:148px}.availabilityRequestPanel{border-radius:20px;margin-top:12px;padding:18px}.availabilityRequestFooter{flex-direction:column}}.availabilityHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.availabilityHeaderIntro{gap:6px;max-width:520px;display:grid}.availabilityHeaderInlineHidden .availabilitySummary{display:none}.availabilitySummary{background:#030c1899;border:1px solid #ffffff1f;border-radius:14px;max-width:360px;padding:14px 16px;font-size:14px;line-height:1.4}.availabilitySummarySticky{z-index:5;pointer-events:none;opacity:0;justify-content:flex-end;margin-top:12px;transition:opacity .2s,transform .2s;display:flex;position:sticky;top:86px;transform:translateY(-12px)}.availabilitySummaryCard{pointer-events:auto}.availabilitySummaryStickyVisible{opacity:1;pointer-events:none;transform:translateY(0)}.availabilitySummaryLabel{color:#bae6fdf2;margin-bottom:6px;font-weight:600;display:block}.availabilityControls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;display:flex}.availabilityControlButtons{gap:8px;display:flex}.availabilityWeekdays{text-align:center;color:#fff9;text-transform:uppercase;letter-spacing:.08em;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:6px;font-size:12px;display:grid}.availabilityWeekdayLabel{padding:4px 0}.availabilityGrid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.availabilityDay{background:linear-gradient(#0a182deb 0%,#061224c7 100%);border:1px solid #ffffff12;border-radius:18px;flex-direction:column;gap:12px;min-height:170px;padding:12px 12px 14px;display:flex}.availabilityDay:hover{border-color:#38bdf880;box-shadow:0 0 0 3px #38bdf81f}.availabilityDayPad{visibility:hidden;background:0 0;border:0;min-height:0;padding:0}.availabilityDayToday{border-color:#7dd3fc99;box-shadow:0 0 0 2px #7dd3fc3d}.availabilityDaySelected{background:linear-gradient(#10365ceb 0%,#082746d1 100%)}.availabilityDayLocked{opacity:.55;pointer-events:none;-webkit-backdrop-filter:grayscale(.3);backdrop-filter:grayscale(.3)}.availabilityDayCondensed{gap:8px;min-height:auto}.availabilityDayHeader{color:#ffffffb3;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;display:flex}.availabilityDayDate{color:#fffffff2;font-size:22px;font-weight:700}.availabilityDayMeta{flex-wrap:wrap;gap:6px;min-height:24px;display:flex}@media (max-width:1200px){.availabilityGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.availabilityWeekdays,.availabilityDayPad{display:none}}@media (max-width:900px){.availabilityGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.availabilityGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.availabilityDay{min-height:150px;padding:14px}.availabilityDayHeader{flex-direction:column;gap:2px}.availabilityDayDate{font-size:20px}.shiftChip{padding:12px}}@media (max-width:480px){.availabilityGrid{grid-template-columns:1fr;gap:12px}.availabilityDay{min-height:auto;padding:16px}.availabilityDayHeader{flex-direction:row;justify-content:space-between;align-items:center}.shiftList{gap:8px}.shiftChip{width:100%}}.availabilityList{flex-direction:column;gap:10px;display:flex}.availabilityListRow{background:linear-gradient(#0a182deb 0%,#061224c7 100%);border:1px solid #ffffff14;border-radius:16px;overflow:hidden}.availabilityListRow:hover{border-color:#38bdf866}.availabilityListRowToday{border-color:#7dd3fc99;box-shadow:0 0 0 2px #7dd3fc3d}.availabilityListRowSelected{background:linear-gradient(#10365ceb 0%,#082746d1 100%)}.availabilityListRowLocked{opacity:.5}.availabilityListHeader{width:100%;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.availabilityListHeader:disabled{cursor:default}.availabilityListHeader:not(:disabled):hover{background:#ffffff0a}.availabilityListDate{align-items:center;gap:12px;display:flex}.availabilityListDateText{gap:4px;min-width:0;display:grid}.availabilityListPreview{color:#bae6fdc7;max-width:32ch;font-size:12px;line-height:1.35}.availabilityListMeta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.availabilityListBadge{color:#bae6fdf2;background:#38bdf829;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:600;line-height:1}.availabilityListBadgeSuccess{color:#86efac;background:#22c55e29}.availabilityListChevron{color:#ffffff80;font-size:12px;transition:transform .2s}.availabilityListShifts{border-top:1px solid #ffffff0f;gap:8px;margin-top:-2px;padding:14px 16px 16px;display:grid}.availabilityListShifts .shiftChip{width:100%}.availabilityEmpty{padding:6px 0;font-size:13px}.shiftList{flex-direction:column;gap:7px;display:flex}.shiftChip{color:#ffffffeb;font:inherit;cursor:pointer;text-align:left;background:#3b82f61a;border:1px solid #ffffff1f;border-radius:14px;flex-direction:column;align-items:flex-start;gap:5px;padding:10px 11px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.shiftChip:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 18px #0307122e}.shiftChip:disabled{opacity:.65;cursor:wait}.shiftChipLocked{opacity:.4;cursor:not-allowed}.shiftChipHeader{justify-content:space-between;align-items:flex-start;gap:10px;width:100%;display:flex}.shiftChipTitleGroup{gap:2px;min-width:0;display:grid}.shiftChipTitle{font-size:15px;font-weight:700;line-height:1.15}.shiftChipStatus{letter-spacing:.04em;text-transform:uppercase;background:#03112633;border-radius:999px;flex-shrink:0;padding:3px 7px;font-size:11px;font-weight:700}.shiftChipTime{color:#031126cc;font-size:12px}.shiftChipMeta{color:#031126c7;font-size:12px;font-weight:600}.shiftChipCrew{color:#031126bd;text-wrap:balance;font-size:12px;line-height:1.35}@media (max-width:640px){.containerAvailability,.availabilityContainer{width:100%}.availabilitySummary{width:100%;max-width:none}.availabilitySummarySticky{position:static;top:auto}.availabilityControls{flex-direction:column;align-items:flex-start}.availabilityControlButtons{flex-wrap:wrap;justify-content:space-between;width:100%}.availabilityListHeader{align-items:flex-start;gap:12px}.availabilityListDate{align-items:flex-start}.availabilityListPreview{max-width:none}.availabilityListMeta{justify-content:flex-start;width:100%}.shiftChipHeader{flex-direction:column;align-items:flex-start;gap:6px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.appFooter{padding:24px 18px calc(24px + env(safe-area-inset-bottom,0px));background:#06102266;border-top:1px solid #ffffff14}.footerContent{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;max-width:1000px;margin:0 auto;display:flex}.footerBranding{align-items:center;gap:24px;display:flex}.footerLinks{align-items:center;gap:16px;display:flex}.footerLink{color:#fff9;font-size:13px;text-decoration:none;transition:color .2s}.footerLink:hover{color:#bae6fdf2;text-decoration:underline}.footerLighthouse{color:#fff9;align-items:center;gap:10px;font-size:13px;text-decoration:none;transition:color .2s;display:flex}.footerLighthouse:hover{color:#38bdf8}.footerLighthouseLogo{opacity:.6;width:auto;height:28px;transition:opacity .2s,filter .2s}.footerLighthouse:hover .footerLighthouseLogo{opacity:1;filter:brightness(1.2)drop-shadow(0 0 4px #38bdf880)}.footerBrand{color:#fff9;align-items:center;gap:10px;font-size:13px;text-decoration:none;transition:color .2s;display:flex}.footerBrand:hover{color:#f16465}.footerLogo{width:auto;height:24px}@media (max-width:640px){.footerContent{text-align:center;flex-direction:column;align-items:center;gap:16px}.footerBranding{flex-direction:column;gap:12px}}.adminShell{grid-template-columns:1fr 260px;align-items:start;gap:18px;display:grid}.adminContent{min-width:0}.adminSidebar{align-self:start;position:sticky;top:84px}.adminMenuToggle{color:#ffffffe6;font:inherit;cursor:pointer;background:#38bdf826;border:1px solid #38bdf84d;border-radius:10px;margin-bottom:16px;padding:10px 16px;font-size:14px;font-weight:600;display:none}.adminMenuToggle:hover{background:#38bdf840}.adminSidebarOverlay{display:none}@media (max-width:900px){.adminShell,.adminMenuToggle{display:block}.adminSidebar{top:env(safe-area-inset-top,0px);width:280px;height:calc(100vh - env(safe-area-inset-top,0px));padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));z-index:101;background:#061022fa;border-left:1px solid #ffffff1a;transition:transform .3s;position:fixed;right:0;overflow-y:auto;transform:translate(100%)}.adminSidebarOpen{transform:translate(0)}.adminSidebar .card{max-width:none!important}.adminSidebarOverlay{z-index:100;background:#00000080;display:block;position:fixed;inset:0}.adminContent{width:100%}}.dashboardAssignmentGrid{grid-template-columns:repeat(7,1fr);gap:16px;display:grid}@media (max-width:768px){.dashboardAssignmentGrid{grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.dashboardAssignmentGrid{grid-template-columns:1fr}}.dashboardCeuGrid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.dashboardQuickActions{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}@media (max-width:640px){.dashboardQuickActions{grid-template-columns:1fr}}
