:root{--bg:#07090d;--panel:#11151b;--panel2:#151a21;--line:#303740;--text:#edf4ff;--muted:#8fa0b5;--blue:#7eacf5;--cyan:#22b8cf;--green:#34a853;--yellow:#fbbc04;--red:#ef5350;--purple:#a142f4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}.app{height:100vh;display:flex;flex-direction:column}.topbar{height:64px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding:0 18px;background:#080a0d}.icon,.topbar button,.views button{background:transparent;border:0;color:var(--blue);cursor:pointer}.icon{font-size:22px}.brand{width:150px;display:flex;flex-direction:column;font-size:18px}.brand span{color:var(--muted);font-size:13px}.navdate{display:flex;align-items:center;gap:12px}.navdate h1{font-size:20px;margin:0;min-width:180px}.navdate #todayBtn{border:1px solid var(--blue);border-radius:4px;padding:9px 18px}.status{margin-left:auto;color:var(--muted);font-size:12px;display:flex;gap:7px;align-items:center}.dot{width:8px;height:8px;background:#41c77a;border-radius:50%}.views{display:flex;background:#151515;padding:4px;border-radius:4px}.views button{padding:8px 18px;color:var(--muted)}.views button.active{background:#20242a;color:white}.body{display:flex;min-height:0;flex:1}aside{width:250px;border-right:1px solid var(--line);padding:16px 10px;overflow:auto;background:#090b0e}main{flex:1;overflow:auto}section{margin-bottom:25px}.sectionHead{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px;margin:12px 0}.sectionHead button{background:none;border:0;color:var(--blue);font-size:20px;cursor:pointer}.calRow{display:flex;align-items:center;gap:9px;padding:7px 4px;font-size:13px}.calRow input{accent-color:var(--blue)}.swatch{width:13px;height:13px;border-radius:3px}.calMeta{margin-left:auto;color:var(--muted);cursor:pointer}.sideAction{width:100%;text-align:left;padding:8px;border:0;background:transparent;color:var(--muted);cursor:pointer}.mini-title{display:flex;justify-content:space-between;margin-bottom:10px}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;font-size:11px;text-align:center}.mini-day{padding:6px 0;border-radius:50%;color:var(--muted)}.mini-day.today{background:var(--blue);color:#07101f}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:38px repeat(6,minmax(110px,1fr));min-height:calc(100vh - 64px);border-top:1px solid var(--line);border-left:1px solid var(--line)}.dow,.day{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.dow{height:38px;padding:12px;text-align:center;color:var(--muted);font-size:11px;background:#111}.day{padding:8px;background:#111;min-height:130px}.day.other{opacity:.38}.day.today{background:#1f3c63}.dayNum{font-size:12px;margin-bottom:7px}.dayNum span{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:50%}.day.today .dayNum span{background:var(--blue);color:#08101b}.event{font-size:11px;padding:3px 6px;border-radius:2px;margin:2px 0;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.page{padding:28px}.hidden{display:none!important}.pageHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.pageHead h2{margin:0 0 5px}.pageHead p{margin:0;color:var(--muted)}.primary{background:var(--blue);color:#07101f;border:0;border-radius:4px;padding:11px 18px;font-weight:700;cursor:pointer}.fab{position:fixed;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;border:0;background:var(--blue);font-size:28px;color:white;cursor:pointer}.card{border:1px solid var(--line);background:#111;border-radius:9px;padding:16px;margin-bottom:12px}.employeeTop{display:flex;align-items:center;gap:14px}.rank{width:34px;height:34px;border-radius:50%;background:var(--blue);color:#08101b;display:flex;align-items:center;justify-content:center;font-weight:800}.grow{flex:1}.muted{color:var(--muted);font-size:12px}.ptoGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.ptoBox{border:1px solid var(--line);border-radius:8px;padding:12px;background:#0d1014}.ptoTitle{font-size:12px;color:var(--muted);text-transform:uppercase}.ptoNums{display:flex;gap:18px;margin-top:8px}.ptoNums b{display:block;font-size:18px}.good{color:#58d68d}.warn{color:#ffd54f}.bad{color:#ff7b72}.warning{margin-top:10px;color:#ffd54f;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{background:#111;border:1px solid var(--line);padding:14px;border-radius:8px}.stat b{font-size:24px;display:block}.taskRow{display:grid;grid-template-columns:100px 1fr 130px 120px;align-items:center;gap:12px}.tag{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:4px 8px;width:max-content}.modalOverlay{position:fixed;inset:0;background:rgba(0,0,0,.68);display:flex;align-items:center;justify-content:center;z-index:20}.modal{width:min(720px,94vw);max-height:92vh;overflow:auto;background:#121416;border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 80px #000;padding:0}.modalHead{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.modalBody{padding:20px}.modalFoot{padding:15px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.modal input,.modal select,.modal textarea{width:100%;background:#171a1d;border:1px solid #40464d;border-radius:4px;color:white;padding:12px;font:inherit}.formGroup{margin-bottom:16px}.formGroup label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.secondary{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:4px;padding:10px 16px;cursor:pointer}.danger{background:#8f3430;border:0;color:white;border-radius:4px;padding:10px 16px}.ptoPreview{border:1px solid var(--line);background:#0c1014;border-radius:8px;padding:14px;margin-top:8px}.balanceLine{display:flex;justify-content:space-between;padding:4px 0}.divider{border-top:1px solid var(--line);margin:7px 0}.alert{padding:10px;border-radius:6px;margin-top:10px;background:#331d1d;color:#ffb4ab}.alert.amber{background:#332b10;color:#ffe082}#toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:#1c222a;border:1px solid var(--line);padding:10px 14px;border-radius:8px;display:none;z-index:99}@media(max-width:900px){aside{position:fixed;z-index:10;top:64px;bottom:0;transform:translateX(-100%);transition:.2s}.body.sidebarOpen aside{transform:translateX(0)}.brand{width:auto}.status{display:none}.calendar-grid{grid-auto-rows:minmax(100px,auto)}.ptoGrid,.stats{grid-template-columns:1fr}.taskRow{grid-template-columns:1fr}}

.certList{display:grid;gap:10px}.certEditor{border:1px solid var(--line);border-radius:7px;padding:11px;background:#0d1014}.certCheck{display:flex!important;align-items:center;gap:9px;margin:0!important}.certCheck input{width:auto!important}.certDateGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.certDateGrid small{display:block;color:var(--muted);margin-bottom:6px}@media(max-width:700px){.certDateGrid{grid-template-columns:1fr}}

/* v0.3.3 task-series controls */
.readBox{border:1px solid var(--line);border-radius:8px;padding:12px;background:rgba(255,255,255,.025);min-height:44px}
.deleteChoices{display:grid;gap:10px;margin-top:14px}
button.wide{width:100%;text-align:left;padding:12px 14px;height:auto;line-height:1.35}
button.wide small{display:block;margin-top:3px;opacity:.7;font-weight:400}
.taskRow{cursor:pointer}
.taskRow .icon{flex:0 0 auto}

/* v0.3.4 restored calendar views, mini navigation, print and CSV */
.calendarViews{display:flex;background:#151515;padding:4px;border-radius:4px}.calendarViews button,.topAction{background:transparent;border:0;color:var(--muted);padding:8px 15px;cursor:pointer}.calendarViews button.active{background:#20242a;color:#fff}.calendarTools{display:flex;gap:2px}.topAction:hover{color:#fff}.mini-title{align-items:center}.miniNav{border:0;background:transparent;color:var(--blue);cursor:pointer}.mini-day{border:0;background:transparent;cursor:pointer}.mini-day.selected{outline:1px solid var(--blue);color:#fff}.dayweek-wrap,.weekView{position:relative;min-height:calc(100vh - 64px);background:#111}.allDayRow{display:grid;grid-template-columns:82px 1fr;border-bottom:1px solid var(--line)}.allDayEvents{padding:8px;min-height:48px}.timeGrid{display:grid;grid-template-columns:82px 1fr}.timeLabel{height:54px;padding:8px 10px;text-align:right;color:var(--muted);font-size:11px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.timeSlot{height:54px;border-bottom:1px solid var(--line)}.weekView{display:grid;grid-template-columns:82px repeat(7,minmax(110px,1fr));align-content:start}.weekCorner,.weekHead{height:56px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:6px}.weekHead span{display:block;color:var(--muted);font-size:11px}.weekHead b{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%}.weekHead.today b{background:var(--blue);color:#07101f}.weekAllDay{min-height:66px;padding:4px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.weekSlot{height:54px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.nowLine{position:absolute;left:82px;right:0;border-top:2px solid #ea4335;z-index:5;pointer-events:none}.nowLine span{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:#ea4335}.quarter-wrap{padding:18px}.quarterGrid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:18px}.quarterMonth{border:1px solid var(--line);border-radius:8px;padding:12px;background:#111}.quarterMonth h3{margin:0 0 12px}.quarterDays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.quarterDays>b{font-size:10px;color:var(--muted);padding:5px}.quarterDay{position:relative;border:0;background:transparent;color:var(--text);min-height:42px;border-radius:5px;cursor:pointer}.quarterDay:hover{background:#20242a}.quarterDay.other{opacity:.28}.quarterDay.today{outline:1px solid var(--blue)}.quarterDay i{position:absolute;right:3px;bottom:2px;font-size:9px;font-style:normal;background:var(--blue);color:#07101f;border-radius:999px;min-width:15px;padding:1px 4px}.exportChoices{display:grid;gap:10px}
@media(max-width:1200px){.topbar{gap:8px}.calendarViews button{padding:8px 9px}.quarterGrid{grid-template-columns:1fr}.calendarTools{display:none}}
@media print{body{background:#fff;color:#000}.topbar,aside,.fab,#tasksPage,#peoplePage{display:none!important}.body,main,#calendarPage{display:block!important;overflow:visible!important}.calendar-grid{min-height:auto}.day{background:#fff!important;color:#000;min-height:100px}.dow{background:#eee;color:#000}.event{-webkit-print-color-adjust:exact;print-color-adjust:exact}.calendar-grid,.day,.dow{border-color:#999}.quarter-wrap{padding:0}}

/* v0.3.5 quarterly direct observation tracker */
.observationCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}
.observationCard{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#111;color:var(--text);border-radius:10px;padding:18px;cursor:pointer}
.observationCard:hover{border-color:var(--blue);transform:translateY(-1px)}
.obsCardTop{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.obsCardTop h3{margin:7px 0 5px}.obsCardTop p{margin:0;color:var(--muted);font-size:12px}
.obsCert{display:inline-block;border:1px solid var(--blue);color:var(--blue);padding:3px 7px;border-radius:999px;font-size:11px;font-weight:800}.obsPct{font-size:30px}
.progress{height:8px;background:#242930;border-radius:999px;overflow:hidden;margin:16px 0 10px}.progress i{display:block;height:100%;background:var(--blue);border-radius:inherit}.progress.large{height:12px}
.obsCounts{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:12px}.obsCounts span:last-child{color:var(--muted)}
.emptyState{border:1px dashed var(--line);border-radius:10px;padding:42px;text-align:center;color:var(--muted)}.emptyState h3{color:var(--text)}
.obsDetailHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.obsActions{display:flex;gap:8px;flex-wrap:wrap}
.observationReport{border:1px solid var(--line);background:#111;border-radius:10px;padding:22px}.reportHeader{display:flex;justify-content:space-between;gap:20px}.reportHeader h2{margin:5px 0}.reportHeader p{margin:0;color:var(--muted)}.eyebrow{color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.08em}.reportPercent{text-align:right}.reportPercent b{display:block;font-size:28px}.reportPercent span{color:var(--muted);font-size:12px}
.summaryStrip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.summaryStrip>div{border:1px solid var(--line);border-radius:8px;padding:12px}.summaryStrip b{display:block;font-size:22px}.summaryStrip span{color:var(--muted);font-size:11px}
.obsTableWrap{overflow:auto}.obsTable{width:100%;border-collapse:collapse;font-size:12px}.obsTable th,.obsTable td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}.obsTable th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.obsTable tr.status-completed{background:rgba(52,168,83,.08)}.obsTable tr.status-excused,.obsTable tr.status-no_longer_employed{opacity:.75}.compact{padding:6px 9px;font-size:11px}.reportFooter{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px;margin-top:18px}.checkLine{display:flex!important;align-items:center;gap:9px;font-weight:400!important;margin:9px 0!important}.checkLine input{width:auto!important}
@media(max-width:800px){.reportHeader,.obsDetailHead{display:block}.obsActions{margin-top:10px}.reportPercent{text-align:left;margin-top:12px}.summaryStrip{grid-template-columns:1fr 1fr}.obsCounts,.reportFooter{display:block}.obsCounts span{display:block;margin-top:4px}}
@media print{
  body.printingObservation{background:#fff;color:#000}
  body.printingObservation .topbar,body.printingObservation aside,body.printingObservation .fab,body.printingObservation #calendarPage,body.printingObservation #tasksPage,body.printingObservation #peoplePage,body.printingObservation #observationOverview,body.printingObservation .obsDetailHead,body.printingObservation .noPrint{display:none!important}
  body.printingObservation #observationsPage,body.printingObservation #observationDetail{display:block!important;padding:0!important}
  body.printingObservation .observationReport{border:0;background:#fff;color:#000;padding:0}
  body.printingObservation .reportHeader p,body.printingObservation .reportFooter,body.printingObservation .obsTable th{color:#444}
  body.printingObservation .progress{border:1px solid #777;background:#eee;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.printingObservation .progress i{background:#333;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.printingObservation .summaryStrip>div,body.printingObservation .obsTable th,body.printingObservation .obsTable td{border-color:#999}
  body.printingObservation .obsTable tr.status-completed{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}


/* v0.3.6 compliance manager, monthly training, history, and clean reports */
.complianceTabs{display:flex;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:10px}.complianceTabs button{background:transparent;border:1px solid var(--line);color:var(--muted);padding:9px 13px;border-radius:6px;cursor:pointer}.complianceTabs button.active{background:#20242a;color:#fff;border-color:var(--blue)}
.reportBrand{font-size:18px;font-weight:900;letter-spacing:.12em;margin-bottom:18px;color:var(--text)}.reportFooterClean{margin-top:34px;font-size:11px;color:var(--muted)}.supervisorNotes{margin-top:34px}.supervisorNotes>b{display:block;margin-bottom:12px}.supervisorNotes>div{height:30px;border-bottom:1px solid currentColor}.attendanceList{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:430px;overflow:auto;border:1px solid var(--line);padding:12px;border-radius:8px}.attendanceList label{display:flex;align-items:center;gap:8px}.attendanceList input{width:auto}.historyPicker{max-width:420px}.historyBlock{border:1px solid var(--line);border-radius:9px;padding:16px;margin-bottom:14px;background:#111}.historyBlock h3{margin-top:0}.historyRow{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,.6fr);gap:8px;border-top:1px solid var(--line);padding:10px 0}.historyRow small{grid-column:1/-1;color:var(--muted)}.outstandingGroup{margin:24px 0}.outstandingGroup h3{display:flex;justify-content:space-between}.outstandingGroup h3 span{font-size:12px;color:var(--muted);font-weight:400}
@media(max-width:700px){.complianceTabs{overflow:auto}.attendanceList{grid-template-columns:1fr}.historyRow{grid-template-columns:1fr}}
@media print{.reportBrand{color:#000}.reportFooterClean{color:#444}.supervisorNotes>div{border-color:#777}}

.combinedReportTitle{margin:8px 0 22px;border-bottom:2px solid #18233a;padding-bottom:14px}.combinedReportTitle h1{margin:3px 0 0;font-size:24px}.combinedTrainingSection{margin-top:24px}.combinedTrainingSection+.combinedTrainingSection{page-break-before:always;border-top:0;padding-top:0}
@media print{.combinedTrainingSection{break-inside:auto}.combinedTrainingSection+.combinedTrainingSection{break-before:page;page-break-before:always}.combinedReportTitle{break-after:avoid}}

.trainingSectionTitle{margin:6px 0 0;font-size:1.05rem;font-weight:700}
.combinedReportTitle{text-align:center;margin-bottom:24px}
.combinedReportTitle .eyebrow{font-size:1rem;letter-spacing:.12em}
.combinedReportTitle h1{margin:8px 0 0;font-size:1.8rem}

/* v0.4.2 employee search, certification summary, transfers, and live PTO */
.employeeSearchBar{display:flex;align-items:center;gap:12px;margin:0 0 18px}.employeeSearchBar input{flex:1;max-width:720px;background:#0d1014;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:12px 14px;font-size:14px}.employeeSearchBar input:focus{outline:1px solid var(--blue);border-color:var(--blue)}#employeeSearchCount{color:var(--muted);font-size:12px}.employeeCertSummary{font-size:11px;color:var(--blue);margin:4px 0}.employeeCertSummary span{color:var(--muted)}.transferBadge{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding:9px 11px;border:1px solid #8b6a1f;background:rgba(251,188,4,.08);border-radius:7px;font-size:12px}.transferBadge span{color:#f4cf67}.compactCertList{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:8px;border:1px solid var(--line);border-radius:8px;padding:12px}.compactCert{margin:0!important;padding:3px 0}.sectionLabelRow{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sectionLabelRow label{margin:0}.linkButton{border:0;background:transparent;color:var(--blue);cursor:pointer}.livePto{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}.livePto>div{border:1px solid var(--line);border-radius:8px;background:#0d1014;padding:12px}.livePto small,.livePto span{display:block;color:var(--muted)}.livePto b{display:block;font-size:20px;margin:4px 0}.transferPanel{border:1px solid var(--line);border-radius:8px;padding:11px;margin:14px 0}.transferPanel summary{cursor:pointer;font-weight:700;color:var(--blue)}.transferPanel[open] summary{margin-bottom:14px}.certDateRow{display:grid;grid-template-columns:minmax(150px,1.2fr) repeat(3,1fr);gap:10px;align-items:end;border-bottom:1px solid var(--line);padding:12px 0}.certDateRow small{display:block;color:var(--muted);margin-bottom:4px}.certDateRow input{width:100%}@media(max-width:700px){.employeeSearchBar{align-items:stretch;flex-direction:column}.transferBadge{display:block}.transferBadge span{display:block;margin-top:4px}.compactCertList,.livePto{grid-template-columns:1fr}.certDateRow{grid-template-columns:1fr}}

/* v0.4.3 central dashboard, employee longevity, and independent supervisor task completion */
.dashboardGrid{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:14px;margin-bottom:18px}.dashCard{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--line);background:#111;color:var(--text);border-radius:10px;padding:18px;cursor:pointer;min-height:132px}.dashCard:hover{border-color:var(--blue);transform:translateY(-1px)}.dashCard.attention{border-color:#8b6a1f;background:rgba(251,188,4,.06)}.dashCard span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.dashCard b{font-size:34px;margin:8px 0}.dashCard small{color:var(--muted);line-height:1.4}.dashboardPanels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashPanel{border:1px solid var(--line);background:#111;border-radius:10px;padding:18px;min-height:210px}.dashPanelHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.dashPanelHead h3{margin:5px 0 0}.alertList{display:grid;gap:9px}.alertList>div{border-left:3px solid #fbbc04;background:rgba(251,188,4,.06);padding:10px 12px;border-radius:4px}.dashboardRows{display:grid}.dashboardRows>div{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:10px 0}.dashboardRows>div:first-child{border-top:0}.dashboardRows span{color:var(--muted);text-align:right}.supervisorSummary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.supervisorSummary>div{border:1px solid var(--line);border-radius:8px;padding:14px}.supervisorSummary b{display:block;font-size:25px}.supervisorSummary span{color:var(--muted);font-size:11px}.compactEmpty{padding:25px}.taskSupervisorChips{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.taskSupervisorChips span{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:4px 8px}.taskSupervisorChips .done{color:#78d895;border-color:#356f47;background:rgba(52,168,83,.08)}.taskSupervisorChips .pending{color:#f4cf67;border-color:#8b6a1f;background:rgba(251,188,4,.07)}.taskCompletionEditor{display:grid;gap:12px}.supervisorCompletion{border:1px solid var(--line);border-radius:9px;padding:14px;background:#0d1014}.supervisorCompletion>div:first-child{display:flex;justify-content:space-between;gap:12px}.supervisorTaskRow{align-items:center}
@media(max-width:1100px){.dashboardGrid{grid-template-columns:1fr 1fr}.dashboardPanels{grid-template-columns:1fr}}
@media(max-width:650px){.dashboardGrid{grid-template-columns:1fr}.supervisorSummary{grid-template-columns:1fr}.dashboardRows>div{display:block}.dashboardRows span{display:block;text-align:left;margin-top:4px}}
@media print{#dashboardPage{display:none!important}}

/* v0.5.0 configurable skills matrix, coverage, and transfer readiness */
.skillPageActions{display:flex;gap:8px}.skillsMetrics{margin-top:4px}.skillGroupSection{margin:18px 0 26px}.skillGroupHead,.setupIntro,.setupGroupHead,.employeeSkillHeader,.transferReadinessHead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.skillGroupHead h3,.employeeSkillHeader h3,.transferReadinessHead h3{margin:4px 0}.coverageGrid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:12px}.coverageCard{border:1px solid var(--line);background:#111;color:var(--text);border-radius:9px;padding:14px;text-align:left;cursor:pointer}.coverageCard:hover{border-color:var(--blue)}.coverageCard>div{display:flex;justify-content:space-between;gap:8px}.coverageCard strong{display:block;font-size:28px;margin:12px 0 3px}.coverageCard span,.coverageCard small{display:block;color:var(--muted);font-size:11px}.coverageCard small{margin-top:7px}.coverageCard.riskHigh{border-color:#a63f45;background:rgba(218,73,80,.06)}.coverageCard.riskWarn{border-color:#8b6a1f;background:rgba(251,188,4,.05)}.coverageCard.riskGood{border-color:#356f47}.criticalBadge{display:inline!important;color:#f4cf67!important;border:1px solid #8b6a1f;border-radius:999px;padding:2px 6px}.matrixToolbar{display:flex;align-items:end;gap:14px;margin-bottom:16px}.matrixToolbar label{min-width:260px}.skillEditorGroup,.setupGroup,.transferReadinessCard{border:1px solid var(--line);background:#111;border-radius:10px;padding:15px;margin-bottom:13px}.skillEditorGroup h3{margin:0 0 8px}.skillAssignRow,.setupSkillRow,.transferSkillRow{display:grid;grid-template-columns:minmax(230px,1fr) minmax(150px,.45fr) auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:10px 0}.skillAssignRow:first-of-type,.setupSkillRow:first-of-type{border-top:0}.skillAssignRow select,.transferSkillRow select{width:100%}.setupIntro{border:1px solid var(--line);border-radius:9px;padding:15px;margin-bottom:14px}.setupIntro h3{margin:0 0 5px}.setupIntro>div:last-child{display:flex;gap:8px}.setupGroupHead span,.setupSkillRow span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.setupGroupHead>div:last-child,.setupSkillRow>div:last-child{display:flex;align-items:center;gap:8px}.setupEmpty{padding:10px 0}.viz-badge{border:1px solid var(--line);border-radius:999px;padding:4px 8px;color:var(--blue)!important}.skillDetailStats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.skillDetailStats>div{border:1px solid var(--line);border-radius:8px;padding:12px}.skillDetailStats b,.skillDetailStats span{display:block}.skillDetailStats b{font-size:24px}.skillDetailStats span{color:var(--muted);font-size:11px}.skillRoster h3{margin-top:18px}.skillRoster>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:9px 0}.skillRoster span{color:var(--muted)}.transferReadinessHead p{color:var(--muted);margin:4px 0}.readinessScore{text-align:right;border:1px solid var(--line);border-radius:8px;padding:10px 14px;min-width:110px}.readinessScore b,.readinessScore span{display:block}.readinessScore span{color:var(--muted);font-size:11px}.readinessScore.ready{border-color:#356f47}.readinessScore.blocked{border-color:#8b6a1f}.transferActions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.transferSkillRow{grid-template-columns:minmax(260px,1.2fr) minmax(170px,.6fr) minmax(170px,.6fr)}.transferSkillRow small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:900px){.coverageGrid{grid-template-columns:1fr 1fr}.skillAssignRow,.transferSkillRow{grid-template-columns:1fr}.skillAssignRow button{justify-self:start}.skillPageActions,.setupIntro,.setupGroupHead,.transferReadinessHead{flex-direction:column}.setupIntro>div:last-child{width:100%}}
@media(max-width:560px){.coverageGrid{grid-template-columns:1fr}.matrixToolbar{display:block}.matrixToolbar span{display:block;margin-top:8px}.skillDetailStats{grid-template-columns:1fr}.transferActions{justify-content:flex-start;flex-wrap:wrap}}

/* v0.5.1 dashboard monthly training visibility */
.monthlyTrainingPanel{grid-column:span 2}
.dashboardTrainingGroup+.dashboardTrainingGroup{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.dashboardTrainingTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.dashboardTrainingTitle span{font-size:.82rem;color:var(--muted)}
.dashboardTrainingEmployee{width:100%;border:0;background:transparent;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;color:inherit;cursor:pointer}
.dashboardTrainingEmployee:hover b{text-decoration:underline}
.dashboardTrainingEmployee span{font-size:.85rem;color:var(--muted);text-align:right}
@media (max-width:900px){.monthlyTrainingPanel{grid-column:auto}}

/* v0.5.3 monthly training method reporting */
.trainingMethodBreakdown{margin:18px 0 14px}
.methodSummaryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:8px}
.methodSummaryGrid>div{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--panel-soft)}
.methodSummaryGrid b{display:block;font-size:1.15rem;margin-bottom:2px}
.methodSummaryGrid span{font-size:.85rem;color:var(--muted)}
@media print{.trainingMethodBreakdown{break-inside:avoid}.methodSummaryGrid>div{background:#fff!important;border-color:#999!important}.methodSummaryGrid span{color:#444!important}}
.workdaySummary{margin:-2px 0 14px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2,#f8fafc);font-size:.9rem}.workdaySummary span{color:var(--muted)}

.employeeAbsenceSummary{margin:4px 0 14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel-soft,#f8fafc)}
.employeeAbsenceSummary:empty{display:none}
.absenceEmployeeHeading{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:10px}
.absenceEmployeeHeading span{color:var(--muted);font-size:.86rem}
.absenceBalanceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}
.absenceBalanceGrid>div{padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--panel,#fff)}
.absenceBalanceGrid small,.scheduledAbsences>small{display:block;color:var(--muted);margin-bottom:3px}
.absenceBalanceGrid b{display:block;font-size:1.05rem}
.scheduledAbsences{border-top:1px solid var(--border);padding-top:9px}
.scheduledAbsences>div{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:.9rem}
@media(max-width:560px){.absenceBalanceGrid{grid-template-columns:1fr}.absenceEmployeeHeading{align-items:flex-start;flex-direction:column;gap:2px}}

/* v0.5.8 intuitive black-glass event form */
.eventModal{width:min(1120px,96vw);background:linear-gradient(145deg,rgba(17,25,35,.98),rgba(7,12,18,.98));border:1px solid rgba(126,172,245,.22);border-radius:14px;box-shadow:0 28px 100px rgba(0,0,0,.72),inset 0 1px 0 rgba(255,255,255,.035)}
.eventModal .modalHead,.eventModal .modalFoot{background:rgba(5,9,14,.42);backdrop-filter:blur(18px);border-color:rgba(255,255,255,.08)}
.eventModal .modalHead{font-size:1.25rem;padding:20px 26px}.eventModal .modalBody{padding:24px 26px}.eventModal .modalFoot{padding:16px 26px}
.eventFormShell{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr);gap:24px}.eventFormMain{min-width:0}
.eventModal input,.eventModal select,.eventModal textarea{background:rgba(5,10,16,.58);border:1px solid rgba(143,160,181,.32);border-radius:8px;padding:13px 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);transition:.16s}
.eventModal input:focus,.eventModal select:focus,.eventModal textarea:focus{outline:0;border-color:#4c9aff;box-shadow:0 0 0 3px rgba(76,154,255,.12)}
.eventModal label{font-size:13px}.labelOptional{font-weight:400;color:var(--muted)}
#eventEmpSearch{margin-bottom:8px}.glassInfo,.glassStrip,.eventSummaryPanel{background:linear-gradient(135deg,rgba(14,25,38,.72),rgba(6,12,19,.72));border:1px solid rgba(126,172,245,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.035);backdrop-filter:blur(16px)}
.glassInfo{grid-template-columns:1fr;gap:4px;padding:13px 15px;border-left:3px solid #4c9aff;border-radius:8px;margin:-2px 0 18px}.glassInfo b{color:#70adff}.glassInfo span{color:#b2c0d0;font-size:.88rem}
.glassStrip{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 15px;border-radius:9px;margin:0 0 18px}.glassStrip>div{display:grid;gap:3px}.glassStrip>div span,.glassStrip>span{color:var(--muted);font-size:.86rem}
.hoursInput{position:relative}.hoursInput input{padding-right:52px}.hoursInput span{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:var(--muted)}
.eventSummaryPanel{position:sticky;top:0;align-self:start;border-radius:12px;padding:18px;min-height:180px}.summaryPlaceholder{min-height:140px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--muted);gap:7px}.summaryPlaceholder b{color:var(--text)}
.summaryTitle{padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.09);display:grid;gap:4px}.summaryTitle b{font-size:1.05rem}.summaryTitle span{color:#69d59a;font-size:.86rem}.summarySection{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.09)}.summarySection:last-child{border-bottom:0;padding-bottom:0}.summarySection h4{margin:0 0 11px;color:#8dbbff;font-size:.93rem}.summarySection.compact h4{color:#bd8cff}.summaryRow{display:flex;justify-content:space-between;gap:15px;padding:5px 0}.summaryRow span{color:#b6c1cf}.summaryRow.emphasis{margin-top:4px;padding-top:9px;border-top:1px dashed rgba(255,255,255,.1)}.summaryDivider{border-top:1px solid rgba(255,255,255,.13);margin:8px 0}.summaryNeutral{color:var(--muted);font-size:.9rem;padding:8px 0}.scheduledCard{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;margin-top:8px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:rgba(255,255,255,.025)}.scheduledCard div{display:grid;gap:3px}.scheduledCard span{color:var(--muted);font-size:.82rem}.scheduledCard strong{color:#69a9ff}.eventModal .primary{background:linear-gradient(180deg,#3286ff,#1766dc);color:#fff;border-radius:7px}.eventModal .secondary{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.1);border-radius:7px}
@media(max-width:850px){.eventFormShell{grid-template-columns:1fr}.eventSummaryPanel{position:static}.eventModal{width:min(720px,96vw)}}
@media(max-width:560px){.eventModal .modalBody{padding:18px}.glassStrip{align-items:flex-start;flex-direction:column}.row2{grid-template-columns:1fr}}

/* v0.6.0 mobile layout and username/PIN access */
.authPending{visibility:hidden}.loginScreen{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,rgba(54,118,210,.18),transparent 35%),#070b10}.loginScreen.hidden{display:none}.loginCard{width:min(390px,100%);display:grid;gap:17px;padding:28px;border:1px solid rgba(126,172,245,.2);border-radius:18px;background:linear-gradient(145deg,rgba(18,28,40,.97),rgba(7,12,18,.98));box-shadow:0 30px 100px rgba(0,0,0,.65)}.loginCard h1{margin:4px 0 3px;font-size:1.7rem}.loginCard p,.loginCard small{color:var(--muted);margin:0}.loginCard label{display:grid;gap:7px}.loginCard input{font-size:16px;padding:14px;background:rgba(2,7,12,.72);border:1px solid rgba(143,160,181,.34);border-radius:9px}.loginMark{width:50px;height:50px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#398cff,#1459bf);font-weight:800;box-shadow:0 10px 30px rgba(20,89,191,.3)}.loginButton{width:100%;padding:14px}.loginError{min-height:18px;color:#ff858b;font-size:.9rem}.userMenu{display:flex;align-items:center;gap:8px}.userMenu span{color:var(--muted);font-size:.82rem;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){body{overflow-x:hidden}.topbar{height:auto;min-height:58px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:8px 10px}.brand span,.status,.calendarTools,.userMenu span{display:none}.brand{min-width:0}.navdate{grid-column:1/-1;grid-row:2;justify-content:center;min-width:0}.navdate h1{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.views{grid-column:1/-1;grid-row:3;display:flex;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.views::-webkit-scrollbar,.calendarViews::-webkit-scrollbar{display:none}.views button{flex:0 0 auto;min-height:40px}.calendarViews{grid-column:1/-1;grid-row:4;display:flex;overflow-x:auto;justify-content:center}.calendarViews button{flex:0 0 auto;min-height:39px}.userMenu{grid-column:3;grid-row:1}.body{min-height:calc(100dvh - 150px)}#sidebar{position:fixed;left:0;top:0;bottom:0;z-index:120;width:min(86vw,330px);transform:translateX(-105%);transition:transform .2s ease;box-shadow:20px 0 60px rgba(0,0,0,.55);padding-top:16px}.body.sidebarOpen #sidebar{transform:translateX(0)}.body.sidebarOpen:after{content:"";position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.56)}main{width:100%;min-width:0}.page{padding:16px 12px 90px}.pageHead{align-items:flex-start;gap:10px;flex-direction:column}.pageHead>button,.pageHead>div+div{width:100%}.stats,.dashboardGrid,.employeeGrid{grid-template-columns:1fr!important}.calendar-grid{min-width:0}.month-grid{grid-template-columns:repeat(7,minmax(42px,1fr));font-size:.76rem}.month-grid .dow{font-size:0}.month-grid .dow::first-letter{font-size:.72rem}.day{min-height:92px;padding:4px}.event{font-size:.66rem;padding:3px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dayNum{margin-bottom:3px}.modalOverlay{padding:0;align-items:end}.modal,.eventModal{width:100%!important;max-width:none!important;max-height:94dvh;border-radius:16px 16px 0 0}.modalBody{overflow-y:auto}.modalFoot{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:8px}.modalFoot button{flex:1 1 120px;min-height:44px}.row2,.row3{grid-template-columns:1fr!important}.fab{right:16px;bottom:18px}.employeeSearchBar{display:grid;grid-template-columns:1fr}.complianceTabs{display:flex;overflow-x:auto;white-space:nowrap}.tableWrap,table{max-width:100%;overflow-x:auto}.loginCard{padding:23px}.eventFormShell{gap:14px}.eventSummaryPanel{min-height:0}.skillAssignRow,.setupSkillRow,.transferSkillRow{grid-template-columns:1fr!important}}
@media(max-width:430px){.month-grid{grid-template-columns:repeat(7,minmax(38px,1fr))}.day{min-height:82px}.event{font-size:.61rem}.navdate #todayBtn{display:none}.topAction{padding:7px 9px}.page h2{font-size:1.35rem}}


/* v0.6.1 administrator and supervisor roles */
.roleBadge{font-size:.68rem!important;text-transform:uppercase;letter-spacing:.08em;padding:4px 7px;border:1px solid rgba(105,166,255,.3);border-radius:999px;color:#9ec7ff!important}.adminGrid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}.adminPanel{border:1px solid rgba(136,161,193,.18);border-radius:14px;background:rgba(10,17,25,.78);padding:16px}.adminUserCard{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(136,161,193,.12)}.adminUserCard:last-child{border-bottom:0}.adminUserCard>div:first-child{display:grid;gap:4px}.adminUserCard span{color:var(--muted);font-size:.82rem}.adminUserActions{display:flex;gap:7px}.auditFilters{display:flex;gap:8px;margin:12px 0}.auditFilters input,.auditFilters select{min-width:150px}.auditEntry{display:grid;grid-template-columns:36px 1fr;gap:10px;padding:13px 0;border-bottom:1px solid rgba(136,161,193,.12)}.auditIcon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:rgba(63,132,231,.13);font-weight:800}.action-delete .auditIcon,.action-archive .auditIcon{background:rgba(231,83,91,.14)}.action-create .auditIcon{background:rgba(72,190,129,.14)}.auditTop{display:flex;justify-content:space-between;gap:12px}.auditTop time{color:var(--muted);font-size:.78rem;white-space:nowrap}.auditMeta{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px}.auditMeta span{font-size:.72rem;padding:3px 6px;border-radius:6px;background:rgba(255,255,255,.05);color:var(--muted)}.auditDiff{margin-top:8px}.diffGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.diffGrid pre{white-space:pre-wrap;word-break:break-word;font-size:.72rem;background:#05090e;padding:10px;border-radius:8px;max-height:220px;overflow:auto}@media(max-width:900px){.adminGrid,.diffGrid{grid-template-columns:1fr}.auditFilters{flex-wrap:wrap}.auditTop{display:grid}.adminUserCard{align-items:flex-start;flex-direction:column}.userMenu .roleBadge{display:none}}

/* v0.6.2 login visibility and usability fix */
.loginHeader{display:flex;align-items:center;gap:14px}.loginHeader>div:last-child{min-width:0}.loginField{font-weight:650;color:#dce8f8}.loginCard input,.loginCard select{width:100%;box-sizing:border-box;font-size:16px;padding:14px;background:#050b12!important;border:1px solid rgba(143,160,181,.48);border-radius:9px;color:#f4f8ff!important;-webkit-text-fill-color:#f4f8ff!important;caret-color:#7eb3ff!important;opacity:1!important}.loginCard select{appearance:auto}.loginCard input::placeholder{color:#8190a4!important;-webkit-text-fill-color:#8190a4!important;opacity:1}.loginCard input:focus,.loginCard select:focus{outline:none;border-color:#5da0ff;box-shadow:0 0 0 3px rgba(58,142,255,.18)}.pinInputWrap{position:relative}.pinInputWrap input{padding-right:72px!important;letter-spacing:.16em}.pinToggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);min-width:55px;padding:8px 10px;border:1px solid rgba(126,172,245,.28);border-radius:7px;background:rgba(31,52,77,.75);color:#dceaff;font-weight:700;cursor:pointer}.pinToggle:hover{background:rgba(45,75,111,.9)}.pinCount{color:#90a1b6;font-size:.78rem;font-weight:500}.loginError:not(:empty){padding:9px 11px;border:1px solid rgba(255,90,100,.3);border-radius:8px;background:rgba(120,20,30,.18)}
@media(max-width:480px){.loginHeader{align-items:flex-start}.loginMark{flex:0 0 50px}.loginCard{padding:20px;gap:15px}}

/* v0.6.4: keep account details on a quiet second header row */
.topbar{height:auto;display:block;padding:0;background:#080a0d}
.topbarMain{height:64px;display:flex;align-items:center;gap:18px;padding:0 18px}
.accountBar{height:30px;display:flex;align-items:center;justify-content:flex-end;padding:0 18px;border-top:1px solid rgba(143,160,181,.08);border-bottom:1px solid var(--line);background:#07090c}
.accountBar .userMenu{gap:8px;min-width:0}
.accountBar .accountLabel{font-size:.72rem;color:#66778b}
.accountBar .topAction{padding:4px 8px}
.calendar-grid{min-height:calc(100vh - 94px)}
.dayweek-wrap,.weekView{min-height:calc(100vh - 94px)}
@media(max-width:1200px){.topbarMain{gap:8px}}
@media(max-width:760px){
  .topbar{display:block;padding:0}
  .topbarMain{height:auto;min-height:58px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:8px 10px}
  .topbarMain .brand span,.topbarMain .status,.topbarMain .calendarTools{display:none}
  .topbarMain .brand{min-width:0}
  .topbarMain .navdate{grid-column:1/-1;grid-row:2;justify-content:center;min-width:0}
  .topbarMain .views{grid-column:1/-1;grid-row:3;display:flex;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .topbarMain .calendarViews{grid-column:1/-1;grid-row:4;display:flex;overflow-x:auto;justify-content:center}
  .topbarMain #searchBtn{grid-column:3;grid-row:1}
  .accountBar{height:34px;padding:0 10px}
  .accountBar .accountLabel{display:none}
  .accountBar .userMenu span{display:inline-block;max-width:none}
  .accountBar .roleBadge{display:inline-block!important}
  .body{min-height:calc(100dvh - 184px)}
  #sidebar{top:0}
}


/* v0.6.5 Manager role: approved operational pages are read-only. */
.managerHidden{display:none!important}
body.managerMode .fab,
body.managerMode #calendarPage,
body.managerMode #peoplePage,
body.managerMode #skillsPage{display:none!important}
body.managerMode #tasksPage input:disabled,
body.managerMode #tasksPage textarea:disabled,
body.managerMode #tasksPage select:disabled,
body.managerMode #observationsPage input:disabled,
body.managerMode #observationsPage textarea:disabled,
body.managerMode #observationsPage select:disabled{opacity:.78;cursor:not-allowed}


/* v0.6.9: department transfers promoted to a critical dashboard metric */
@media(min-width:1450px){.dashboardGrid{grid-template-columns:repeat(5,minmax(180px,1fr))}}
.transferDashCard{border-color:#31597f;background:linear-gradient(145deg,rgba(49,89,127,.16),rgba(17,17,17,.96))}
.transferDashCard:hover{border-color:#78b7f2}
.transferDashCard.transferWarning{border-color:#8b6a1f;background:linear-gradient(145deg,rgba(251,188,4,.11),rgba(17,17,17,.96))}
.transferDashCard.transferUrgent{border-color:#c87b1f;background:linear-gradient(145deg,rgba(245,137,31,.16),rgba(17,17,17,.96));box-shadow:inset 0 0 0 1px rgba(245,137,31,.08)}
.transferDashCard.transferOverdue{border-color:#b84c4c;background:linear-gradient(145deg,rgba(220,70,70,.18),rgba(17,17,17,.96));box-shadow:inset 0 0 0 1px rgba(220,70,70,.1)}
.transferPanel{scroll-margin-top:110px}

/* v0.6.9: transfers positioned ahead of training with deadline status breakout */
.transferStatusGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 14px}
.transferStatus{border:1px solid #30363d;border-radius:10px;padding:12px;background:#101214;display:flex;flex-direction:column;gap:3px}
.transferStatus b{font-size:1.65rem;line-height:1}
.transferStatus span{font-size:.78rem;color:#9eb2c8;text-transform:uppercase;letter-spacing:.04em}
.transferStatus.overdue{border-color:#8f3f3f;background:rgba(180,55,55,.12)}
.transferStatus.overdue b{color:#ff8585}
.transferStatus.approaching{border-color:#a26724;background:rgba(224,133,31,.11)}
.transferStatus.approaching b{color:#ffb45c}
.transferStatus.pending{border-color:#31597f;background:rgba(49,89,127,.11)}
.transferStatus.pending b{color:#78b7f2}
.transferRows .transferRow{border-left:3px solid #31597f}
.transferRows .transferRow.approaching{border-left-color:#d9842b;background:rgba(217,132,43,.06)}
.transferRows .transferRow.overdue{border-left-color:#d65353;background:rgba(214,83,83,.08)}
@media(max-width:700px){.transferStatusGrid{grid-template-columns:1fr}.transferStatus{flex-direction:row;align-items:center;justify-content:space-between}}


/* v0.7.0 dashboard redesign: dark glass, aligned primary panels, and stronger visual hierarchy */
#dashboardPage{background:radial-gradient(circle at 48% -20%,rgba(44,86,140,.10),transparent 38%),#080b0f;min-height:100%}
#dashboardPage .pageHead{margin-bottom:24px;align-items:flex-start}
#dashboardPage .pageHead h2{font-size:1.82rem;letter-spacing:-.025em;margin-bottom:7px}
#dashboardPage .pageHead p{font-size:1rem;color:#a9bbcf}
#refreshDashboardBtn{margin-left:auto;padding:11px 17px;border-radius:8px;background:rgba(7,12,18,.72);border-color:#33404f}
.dashboardGrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-bottom:20px;align-items:stretch}
.dashCard{position:relative;min-height:248px;height:100%;padding:25px 25px 20px;border-radius:14px;background:linear-gradient(150deg,rgba(15,22,31,.96),rgba(7,12,18,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 15px 42px rgba(0,0,0,.22);overflow:hidden;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.dashCard:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 16% 5%,rgba(255,255,255,.035),transparent 42%)}
.dashCard:hover{transform:translateY(-2px);box-shadow:0 18px 46px rgba(0,0,0,.34)}
.dashCardTitle{display:flex;align-items:center;gap:12px;min-height:32px;position:relative;z-index:1}
.dashCardTitle i{font-style:normal;font-size:29px;line-height:1;font-weight:800}
.dashCardTitle span{font-weight:800;font-size:.84rem;letter-spacing:.01em}
.dashCard>b{font-size:3.25rem;line-height:1;margin:24px 0 18px;position:relative;z-index:1}
.dashCard small{font-size:.88rem;color:#b8c7d8;position:relative;z-index:1}
.dashCard.employeeMetric{border-color:#356ea7}.dashCard.employeeMetric .dashCardTitle{color:#58a1ff}
.dashCard.absenceMetric{border-color:#7448a4}.dashCard.absenceMetric .dashCardTitle{color:#b161ff}
.dashCard.complianceMetric{border-color:#96631e}.dashCard.complianceMetric .dashCardTitle{color:#ff9d28}
.dashCard.taskMetric{border-color:#27776d}.dashCard.taskMetric .dashCardTitle{color:#40d7c5}
.transferDashCard{border-color:#9b7900;background:linear-gradient(150deg,rgba(34,28,7,.64),rgba(8,13,18,.98))}
.transferDashCard .dashCardTitle,.transferDashCard .transferHeadline{color:#ffd31c}
.transferDashCard strong{display:block;margin-top:0;font-size:.93rem;color:#f4f7fb;position:relative;z-index:1}
.transferDashCard em{display:block;margin-top:10px;color:#9dcaff;font-size:.9rem;font-style:normal;position:relative;z-index:1}
.transferTileDivider{height:1px;background:rgba(255,255,255,.12);margin:16px 0;position:relative;z-index:1}
.transferDashCard.transferUrgent{border-color:#c67c13}.transferDashCard.transferOverdue{border-color:#bc4149}
.dashboardPanels{gap:20px;align-items:stretch}
.primaryDashboardPanels{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);margin-bottom:20px}
.primaryDashboardPanels>.dashPanel{height:100%;min-height:500px}
.secondaryDashboardPanels{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashPanel{border-color:#34404d;background:linear-gradient(150deg,rgba(13,20,28,.96),rgba(7,12,18,.98));border-radius:14px;padding:25px;box-shadow:inset 0 1px 0 rgba(255,255,255,.02),0 16px 44px rgba(0,0,0,.18)}
.dashPanelHead{margin-bottom:22px;align-items:flex-start}
.dashPanelHead .eyebrow{color:#5aa6ff;font-weight:850;font-size:.82rem;letter-spacing:.035em}
.dashPanelHead h3{font-size:1.45rem;letter-spacing:-.02em;margin-top:9px}
.dashPanelHead .linkButton{font-size:.9rem;color:#4ea2ff;padding:4px 0}
.alertList{gap:15px}
.alertList>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:66px;padding:0 17px;border-left:4px solid #f2d000;border-radius:8px;background:linear-gradient(90deg,rgba(92,76,4,.25),rgba(50,43,8,.32));font-size:1rem}
.alertList>div>span{color:#ffdf22}.alertList>div>i{font-style:normal;color:#c5d3e1;font-size:1.8rem;font-weight:300}
.transferStatusGrid{gap:13px;margin-bottom:18px}
.transferStatus{min-height:96px;padding:15px 17px;border-radius:11px;background:rgba(8,13,18,.7)}
.transferStatus b{font-size:2.2rem;line-height:1.05}.transferStatus span{margin-top:7px;font-size:.78rem}
.transferStatus.overdue{border-color:#b7464c;background:linear-gradient(145deg,rgba(104,28,34,.30),rgba(26,16,20,.78))}
.transferStatus.approaching{border-color:#b97816;background:linear-gradient(145deg,rgba(105,65,8,.30),rgba(29,23,15,.78))}
.transferStatus.pending{border-color:#3973a6;background:linear-gradient(145deg,rgba(28,65,103,.30),rgba(14,23,31,.78))}
.transferStatus.overdue b{color:#ff666d}.transferStatus.approaching b{color:#ffad39}.transferStatus.pending b{color:#62a7ff}
.transferRows{margin-top:6px}
.transferRows>div{min-height:64px;align-items:center;padding:13px 3px 13px 8px}
.transferRows b{font-size:1rem}.transferRows span{font-size:.93rem;color:#afbecf}.transferRows .overdue{border-left-color:#dc5b62}.transferRows .approaching{border-left-color:#e89b2d}.transferRows .pending{border-left-color:#4d8ec7}
@media(max-width:1300px){.dashboardGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashCard{min-height:210px}.primaryDashboardPanels{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.dashboardGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.primaryDashboardPanels,.secondaryDashboardPanels{grid-template-columns:1fr}.primaryDashboardPanels>.dashPanel{min-height:0}}
@media(max-width:560px){.dashboardGrid{grid-template-columns:1fr}.dashCard{min-height:190px}.dashCard>b{font-size:2.7rem}.dashPanel{padding:18px}.transferStatusGrid{grid-template-columns:1fr}}


/* v0.7.1 compact dashboard scale: same v0.7.0 design with tighter proportions */
#dashboardPage{padding:20px 22px}
#dashboardPage .pageHead{margin-bottom:16px}
#dashboardPage .pageHead h2{font-size:1.48rem;margin-bottom:4px}
#dashboardPage .pageHead p{font-size:.86rem}
#refreshDashboardBtn{padding:8px 13px;font-size:.82rem}
.dashboardGrid{gap:12px;margin-bottom:14px}
.dashCard{min-height:174px;padding:17px 18px 15px;border-radius:11px}
.dashCardTitle{gap:8px;min-height:24px}
.dashCardTitle i{font-size:21px}
.dashCardTitle span{font-size:.7rem}
.dashCard>b{font-size:2.55rem;margin:16px 0 12px}
.dashCard small{font-size:.73rem;line-height:1.35}
.transferDashCard strong{font-size:.78rem}
.transferDashCard em{margin-top:6px;font-size:.75rem}
.transferTileDivider{margin:10px 0}
.dashboardPanels{gap:14px}
.primaryDashboardPanels{margin-bottom:14px}
.primaryDashboardPanels>.dashPanel{min-height:356px}
.dashPanel{padding:18px;border-radius:11px}
.dashPanelHead{margin-bottom:15px}
.dashPanelHead .eyebrow{font-size:.7rem}
.dashPanelHead h3{font-size:1.16rem;margin-top:6px}
.dashPanelHead .linkButton{font-size:.78rem}
.alertList{gap:10px}
.alertList>div{gap:9px;min-height:47px;padding:0 12px;border-left-width:3px;border-radius:6px;font-size:.84rem}
.alertList>div>i{font-size:1.35rem}
.transferStatusGrid{gap:9px;margin-bottom:12px}
.transferStatus{min-height:68px;padding:10px 12px;border-radius:8px}
.transferStatus b{font-size:1.65rem}
.transferStatus span{margin-top:4px;font-size:.64rem}
.transferRows{margin-top:2px}
.transferRows>div{min-height:44px;padding:8px 2px 8px 6px}
.transferRows b{font-size:.83rem}
.transferRows span{font-size:.78rem}
@media(max-width:1300px){.dashCard{min-height:164px}.primaryDashboardPanels>.dashPanel{min-height:330px}}
@media(max-width:900px){#dashboardPage{padding:18px}.primaryDashboardPanels>.dashPanel{min-height:0}}
@media(max-width:560px){#dashboardPage{padding:14px}.dashCard{min-height:150px}.dashCard>b{font-size:2.25rem}.dashPanel{padding:15px}}

/* v0.7.2 dashboard alignment fix: prevent employee-form transfer margins from offsetting the dashboard panel */
.primaryDashboardPanels > .transferPanel{
  margin:0;
  align-self:stretch;
}
.primaryDashboardPanels > .prioritiesPanel{
  margin:0;
  align-self:stretch;
}

/* v0.7.3 administrator user deletion */
.adminDeleteUser{padding:9px 13px}.danger:disabled{opacity:.4;cursor:not-allowed}.deleteConfirmGroup{margin-top:16px}.adminUserActions{flex-wrap:wrap}


/* v0.7.4 employee lifecycle */
.inactiveRosterPanel{margin-top:18px;border:1px solid var(--line);border-radius:12px;background:rgba(8,16,27,.62);overflow:hidden}
.inactiveRosterPanel>summary{cursor:pointer;padding:14px 16px;font-weight:700;color:#8ab4f8;list-style:none}
.inactiveRosterPanel>summary::-webkit-details-marker{display:none}
.inactiveRosterPanel[open]>summary{border-bottom:1px solid var(--line)}
#inactiveEmployeeList{padding:4px 16px 12px}
.inactiveEmployeeRow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.inactiveEmployeeRow:last-child{border-bottom:0}
.inactiveEmployeeRow>div{display:grid;gap:3px}.inactiveEmployeeRow span,.inactiveEmployeeRow small{color:var(--muted)}
@media(max-width:700px){.inactiveEmployeeRow{align-items:flex-start;flex-direction:column}.inactiveEmployeeRow button{width:100%}}

/* v0.7.5 calendar color manager */
.calendarColorAction{margin-top:8px;border-top:1px solid var(--line);padding-top:13px;color:var(--blue)}
.colorManagerModal{width:min(980px,96vw)}
.colorManagerIntro{padding:12px 14px;margin-bottom:16px;border:1px solid rgba(126,172,245,.25);background:rgba(126,172,245,.07);border-radius:8px;color:#b8cae1;font-size:13px}
.colorManagerGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.colorManagerSection{margin:0;border:1px solid var(--line);border-radius:10px;padding:14px;background:#0c1117}.colorManagerSection h3{margin:0 0 3px;font-size:16px}.colorManagerSection>p{margin:0 0 12px;color:var(--muted);font-size:12px}
.colorEditorRow{display:grid;grid-template-columns:minmax(125px,1fr) minmax(150px,1.3fr) 44px;align-items:center;gap:10px;padding:8px 0;border-top:1px solid rgba(255,255,255,.06)}.colorEditorRow:first-child{border-top:0}.colorLabel{display:grid;gap:2px}.colorLabel b{font-size:12px}.colorLabel small{font-size:10px;color:var(--muted)}.colorEventPreview{min-width:0;border-radius:4px;padding:6px 8px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;text-shadow:0 1px 2px rgba(0,0,0,.65)}.colorEventPreview b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.colorEventPreview span{font-size:8px;opacity:.85}.colorPickerInput{width:42px!important;height:34px;padding:2px!important;cursor:pointer}
.managerColorPreview{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--muted);font-size:11px}.managerColorPreview span{width:18px;height:18px;border-radius:4px;display:inline-block}
@media(max-width:760px){.colorManagerGrid{grid-template-columns:1fr}.colorEditorRow{grid-template-columns:1fr minmax(130px,1fr) 42px}}


/* v0.7.6 Employee & PTO future-schedule visibility */
.futurePtoDetails{margin-top:12px;border:1px solid rgba(126,172,245,.18);border-radius:10px;background:rgba(5,11,18,.42);overflow:hidden}
.futurePtoDetails>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;color:#91bdff;font-weight:750;user-select:none}
.futurePtoDetails>summary::-webkit-details-marker{display:none}
.futurePtoDetails>summary:after{content:'▾';color:#71859d;font-size:.8rem;transition:transform .16s ease}
.futurePtoDetails[open]>summary:after{transform:rotate(180deg)}
.futurePtoDetails>summary small{margin-left:auto;color:var(--muted);font-size:.72rem;font-weight:600}
.futurePtoBody{padding:0 12px 12px;border-top:1px solid rgba(126,172,245,.12)}
.futurePtoBalances{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:11px 0}
.futurePtoBalance{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px;padding:9px 10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.025)}
.futurePtoBalance span{font-size:.76rem;font-weight:750}.futurePtoBalance b{font-size:.9rem}.futurePtoBalance small{grid-column:1/-1;color:var(--muted);font-size:.7rem}
.futurePtoBalance.vacation span{color:#8dbbff}.futurePtoBalance.floating span{color:#bd8cff}
.futurePtoBookings{display:grid;gap:7px}.futurePtoBooking{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.02)}
.futurePtoBooking>div{display:grid;gap:2px}.futurePtoBooking b{font-size:.82rem}.futurePtoBooking span{font-size:.7rem;color:var(--muted)}.futurePtoBooking strong{color:#69a9ff;font-size:.82rem;white-space:nowrap}.futurePtoEmpty{padding:12px 4px 4px;color:var(--muted);font-size:.8rem}
.profileFuturePto{margin:14px 0}.profileFuturePto>summary{padding:12px 14px}.profileFuturePto .futurePtoBody{padding:0 14px 14px}
.searchFuturePto{margin-top:10px}.searchFuturePto>summary{padding:9px 11px;font-size:.82rem}.searchFuturePto .futurePtoBody{padding:0 10px 10px}.searchFuturePto .futurePtoBalance{padding:7px 8px}.searchFuturePto .futurePtoBooking{padding:7px 8px}
@media(max-width:600px){.futurePtoBalances{grid-template-columns:1fr}.futurePtoDetails>summary{align-items:flex-start;flex-wrap:wrap}.futurePtoDetails>summary small{margin-left:0}.futurePtoDetails>summary:after{margin-left:auto}}


/* v0.7.7 combined PTO visibility */
.combinedPtoCard{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 14px;margin:10px 0;padding:10px 12px;border:1px solid rgba(71,167,255,.38);border-radius:9px;background:linear-gradient(135deg,rgba(50,126,214,.13),rgba(167,93,255,.07))}
.combinedPtoCard>div{display:grid;gap:2px}.combinedPtoCard span{font-size:.78rem;font-weight:800;color:#9cc8ff}.combinedPtoCard small{color:var(--muted);font-size:.68rem}.combinedPtoCard>b{font-size:1.05rem}.combinedPtoCard>em{grid-column:1/-1;font-style:normal;font-size:.7rem;font-weight:700}
.combinedPtoBanner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;margin-top:11px;padding:10px 11px;border:1px solid rgba(71,167,255,.34);border-radius:8px;background:linear-gradient(135deg,rgba(50,126,214,.12),rgba(167,93,255,.06))}.combinedPtoBanner>div{display:grid;gap:1px}.combinedPtoBanner span{font-size:.77rem;font-weight:800;color:#9cc8ff}.combinedPtoBanner small{font-size:.67rem;color:var(--muted)}.combinedPtoBanner>b{font-size:1rem}.combinedPtoBanner>em{grid-column:1/-1;font-size:.69rem;font-style:normal;font-weight:700}
.combinedSummary{border-color:rgba(71,167,255,.35)!important;background:linear-gradient(135deg,rgba(50,126,214,.10),rgba(167,93,255,.05))!important}.summaryHelper{margin:-2px 0 9px;color:var(--muted);font-size:.72rem;line-height:1.35}
@media(max-width:560px){.combinedPtoCard,.combinedPtoBanner{grid-template-columns:1fr auto}}


/* v0.7.8 PTO history and printable support */
.futurePtoHeaderActions{display:flex;justify-content:flex-end;margin-bottom:8px}
.ptoHistoryColumns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.ptoHistoryColumns section{min-width:0}
.ptoHistoryColumns h4{margin:0 0 8px;color:var(--text);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}
.ptoHistoryColumns .futurePtoBookings{max-height:280px;overflow:auto;padding-right:3px}
@media(max-width:760px){.ptoHistoryColumns{grid-template-columns:1fr}}

/* QIM */
.qimSummary{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));gap:10px;margin-bottom:16px}.qimStat{background:linear-gradient(145deg,rgba(20,29,42,.94),rgba(8,13,21,.96));border:1px solid rgba(148,163,184,.16);border-radius:14px;padding:13px 14px;box-shadow:inset 0 1px rgba(255,255,255,.035)}.qimStat span,.qimStat small{display:block;color:#94a3b8}.qimStat b{display:block;font-size:25px;margin:4px 0;color:#f8fafc}.qimStat.alertStat{border-color:rgba(245,158,11,.35)}.qimToolbar{display:flex;gap:10px;margin:14px 0}.qimToolbar input{flex:1}.qimToolbar select{min-width:180px}.qimFindingCard,.qimActionCard,.qimOperatorCard,.qimAnalyticsPanel{background:rgba(9,15,24,.78);border:1px solid rgba(148,163,184,.15);border-radius:14px;padding:15px;margin-bottom:10px}.qimFindingCard{cursor:pointer;transition:.15s ease}.qimFindingCard:hover{transform:translateY(-1px);border-color:rgba(56,189,248,.45);background:rgba(12,22,34,.92)}.qimFindingTop,.qimFindingFoot,.qimFindingMeta,.qimActionCard{display:flex;align-items:center;justify-content:space-between;gap:10px}.qimFindingMeta,.qimFindingFoot{justify-content:flex-start;flex-wrap:wrap;margin-top:10px;color:#94a3b8;font-size:13px}.qimFindingMeta span,.qimFindingFoot span{padding-right:12px;border-right:1px solid rgba(148,163,184,.18)}.qimBadge{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;letter-spacing:.04em;background:#334155;color:#e2e8f0;margin-right:7px}.qim-cof{background:rgba(34,197,94,.17);color:#86efac}.qim-lvnc{background:rgba(239,68,68,.17);color:#fca5a5}.qim-lvnc-dnr-{background:rgba(168,85,247,.18);color:#d8b4fe}.qim-pre-req{background:rgba(14,165,233,.18);color:#7dd3fc}.repeatFlag{color:#fbbf24}.qimAnalyticsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.qimAnalyticsPanel h3{margin-top:0}.qimBarRow{display:grid;grid-template-columns:minmax(130px,1.2fr) 2fr 35px;align-items:center;gap:10px;margin:10px 0}.qimBarRow>div{height:8px;background:#172033;border-radius:20px;overflow:hidden}.qimBarRow i{display:block;height:100%;background:linear-gradient(90deg,#0ea5e9,#8b5cf6);border-radius:20px}.qimOperatorGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.qimOperatorCard h3{margin:0}.qimOperatorCounts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0}.qimOperatorCounts span{text-align:center;color:#94a3b8;font-size:10px}.qimOperatorCounts b{display:block;color:#f8fafc;font-size:19px}.qimActionCard.done{opacity:.66}.qimActionCard h3{margin:5px 0}.actionStatus{font-size:11px;text-transform:uppercase;font-weight:800;color:#38bdf8}.qimForm .wide,.formGrid .wide{grid-column:1/-1}.checkboxGroup{display:flex;align-items:end;padding-bottom:10px}.checkboxGroup label{display:flex!important;gap:8px;align-items:center}.qimDetailGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.qimDetailGrid span{background:rgba(15,23,42,.65);padding:10px;border-radius:10px;color:#94a3b8}.qimDetailGrid b{display:block;color:#f8fafc;margin-top:4px}.detailAction{display:flex;justify-content:space-between;background:rgba(15,23,42,.6);padding:9px 10px;border-radius:9px;margin:6px 0}
@media(max-width:1100px){.qimSummary{grid-template-columns:repeat(4,1fr)}.qimOperatorGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.qimSummary{grid-template-columns:repeat(2,1fr)}.qimAnalyticsGrid,.qimOperatorGrid{grid-template-columns:1fr}.qimToolbar,.qimActionCard{align-items:stretch;flex-direction:column}.qimFindingTop{align-items:flex-start}.qimDetailGrid{grid-template-columns:1fr}.qimFindingFoot span,.qimFindingMeta span{border-right:0}.qimBarRow{grid-template-columns:110px 1fr 25px}}
.qimSettingsIntro{margin:18px 0 14px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.025)}
.qimSettingsIntro h3{margin:0 0 5px}.qimSettingsIntro p{margin:0;color:var(--muted)}
.qimPersonnelGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.qimPersonnelRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.qimPersonnelRow:last-child{border-bottom:0}.qimPersonnelRow>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.qimPersonnelRow small{color:var(--muted)}
.qimPersonnelEdit{display:flex;align-items:center;gap:7px;flex-shrink:0}.qimPersonnelEdit input{width:92px;text-transform:uppercase}
.qimInitialBadge{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:6px 10px;border-radius:999px;background:rgba(80,160,255,.13);border:1px solid rgba(80,160,255,.25);font-weight:800;letter-spacing:.06em}
.inactiveRow{opacity:.58}.fieldWarning{display:block;color:#f6bd60;margin-top:6px}.formHint{color:var(--muted);margin:0}
@media(max-width:1050px){.qimPersonnelGrid{grid-template-columns:1fr}}
@media(max-width:620px){.qimPersonnelRow{align-items:flex-start;flex-direction:column}.qimPersonnelEdit{width:100%}.qimPersonnelEdit input{flex:1;width:auto}}

.qimPaperworkHead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 14px}.qimPaperworkHead h3{margin:0 0 4px}.qimPaperworkHead p{margin:0}.paperworkOverdue{border-color:rgba(255,92,92,.55)!important;box-shadow:0 0 0 1px rgba(255,92,92,.12) inset}.qimReturnedHistory{margin-top:20px;border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:14px;background:rgba(255,255,255,.025)}.qimReturnedHistory summary{cursor:pointer;font-weight:700;margin-bottom:12px}

/* QIM v0.8.3 — managed deficiencies and product-check workflow */
.inlineFieldAction{display:flex;gap:.55rem;align-items:center}.inlineFieldAction select{flex:1;min-width:0}.inlineFieldAction button{white-space:nowrap}.deficiencyPicker small,.productCheckBox small{display:block;margin-top:.35rem;color:var(--muted,#9ca3af)}.qimDeficiencySetup{grid-column:1/-1}.productCheckFlag{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:999px;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.38);color:#fbbf24;font-size:.78rem;letter-spacing:.02em}.qimManagerStatement{white-space:pre-wrap;padding:.8rem 1rem;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
@media(max-width:640px){.inlineFieldAction{align-items:stretch;flex-direction:column}.inlineFieldAction button{width:100%}}


/* Employees > Transfers workspace */
.employeeTabs{margin-bottom:16px}.transferSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.transferSummary button{background:#0b131c;border:1px solid #27384a;border-radius:10px;padding:13px 15px;text-align:left;color:inherit}.transferSummary button.active{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f655}.transferSummary b{display:block;font-size:22px;margin-bottom:3px}.transferSummary span{font-size:12px;color:#9fb3c8}.transferManageCard{border:1px solid #293a4b;background:#09121b;border-radius:11px;padding:15px;margin-bottom:11px}.transferManageMain{display:grid;grid-template-columns:minmax(260px,1fr) minmax(430px,1.35fr);gap:20px;align-items:center}.transferManageMain h3{margin:7px 0 4px}.transferManageMain p,.transferManageNotes{margin:0;color:#9fb3c8}.transferManageFacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.transferManageFacts span{border-left:2px solid #26394b;padding-left:10px}.transferManageFacts small,.transferManageFacts b{display:block}.transferManageFacts small{color:#86a2bd;margin-bottom:4px}.transferStatus{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#152435;color:#a8c8e8}.transferStatus.due{background:#3a2f0b;color:#f8d66d}.transferStatus.overdue{background:#3a1719;color:#ff9a9e}.transferStatus.released{background:#113126;color:#76ddb1}.transferManageNotes{border-top:1px dashed #26394b;margin-top:13px;padding-top:11px}.transferManageActions{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}@media(max-width:1000px){.transferSummary{grid-template-columns:repeat(2,1fr)}.transferManageMain{grid-template-columns:1fr}.transferManageFacts{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.transferSummary,.transferManageFacts{grid-template-columns:1fr}.transferManageActions{flex-wrap:wrap;justify-content:stretch}.transferManageActions button{flex:1}}

/* v0.8.6 — color-aware transfer countdown KPI cards */
.transferManageLead{display:flex;align-items:center;gap:16px;min-width:0}
.transferIdentity{min-width:0}
.transferIdentity h3{margin:0 0 5px}
.transferCountdown{width:118px;min-width:118px;min-height:84px;border:1px solid #3973a6;border-radius:10px;background:linear-gradient(145deg,rgba(28,65,103,.34),rgba(10,22,33,.94));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:inset 0 1px rgba(255,255,255,.04)}
.transferCountdown b{font-size:2rem;line-height:1;color:#72b5ff}
.transferCountdown span{margin-top:7px;color:#a9bfd5;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.055em}
.transferCountdown.normal{border-color:#3973a6;background:linear-gradient(145deg,rgba(28,65,103,.34),rgba(10,22,33,.94))}
.transferCountdown.normal b{color:#72b5ff}
.transferCountdown.attention{border-color:#ad741d;background:linear-gradient(145deg,rgba(115,72,12,.36),rgba(31,24,13,.94))}
.transferCountdown.attention b,.transferCountdown.attention span{color:#f4c65f}
.transferCountdown.critical{border-color:#bd4d52;background:linear-gradient(145deg,rgba(119,34,40,.40),rgba(36,16,20,.95));box-shadow:inset 0 0 0 1px rgba(255,91,98,.08)}
.transferCountdown.critical b,.transferCountdown.critical span{color:#ff858b}
.transferCountdown.overdue{border-color:#d64c54;background:linear-gradient(145deg,rgba(132,30,38,.48),rgba(40,13,18,.96));box-shadow:0 0 0 1px rgba(214,76,84,.12),inset 0 1px rgba(255,255,255,.04)}
.transferCountdown.overdue b,.transferCountdown.overdue span{color:#ff747b}
.transferCountdown.released{border-color:#2d8a67;background:linear-gradient(145deg,rgba(25,91,68,.36),rgba(10,34,27,.94))}
.transferCountdown.released b,.transferCountdown.released span{color:#75ddb2}
.transferCountdown.unset{border-color:#465464;background:linear-gradient(145deg,rgba(55,68,83,.26),rgba(18,24,31,.94))}
.transferCountdown.unset b,.transferCountdown.unset span{color:#aab6c3}
@media(max-width:640px){.transferManageLead{align-items:flex-start}.transferCountdown{width:96px;min-width:96px;min-height:76px}.transferCountdown b{font-size:1.7rem}}

/* v0.8.7 — compact transfer workspace typography and controls */
.transferManageCard{padding:13px 14px;margin-bottom:10px}
.transferManageMain{grid-template-columns:minmax(250px,1fr) minmax(410px,1.32fr);gap:17px}
.transferManageLead{gap:13px}
.transferCountdown{width:104px;min-width:104px;min-height:74px;border-radius:9px}
.transferCountdown b{font-size:1.72rem}
.transferCountdown span{margin-top:5px;font-size:.66rem;text-transform:none;letter-spacing:.025em}
.transferIdentity h3{font-size:1rem;line-height:1.25;margin:0 0 4px}
.transferIdentity p{font-size:.86rem;line-height:1.35}
.transferManageFacts{gap:8px}
.transferManageFacts span{padding-left:9px}
.transferManageFacts small{font-size:.76rem;margin-bottom:3px}
.transferManageFacts b{font-size:.9rem}
.transferManageActions{gap:7px;margin-top:11px}
.transferManageActions button{min-height:36px;padding:7px 13px;font-size:.82rem}
.transferManageNotes{margin-top:11px;padding-top:9px;font-size:.84rem}
@media(max-width:640px){.transferCountdown{width:88px;min-width:88px;min-height:68px}.transferCountdown b{font-size:1.5rem}.transferCountdown span{font-size:.62rem}}


/* v0.8.9 — upcoming vacation awareness on transfer cards */
.transferVacationCallout{display:flex;align-items:flex-start;gap:8px;margin-top:9px;padding:8px 10px;border:1px solid #31506d;border-radius:8px;background:rgba(24,55,82,.34);max-width:560px}
.transferVacationCallout.afterDeadline{border-color:#a66f23;background:rgba(107,68,16,.28)}
.transferVacationIcon{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:6px;background:#173754;color:#77b9f5;font-size:.75rem}
.transferVacationCallout.afterDeadline .transferVacationIcon{background:#503817;color:#f3c66d}
.transferVacationCallout div{min-width:0}
.transferVacationCallout small,.transferVacationCallout b,.transferVacationCallout em{display:block}
.transferVacationCallout small{color:#8eabc5;font-size:.7rem;text-transform:uppercase;letter-spacing:.045em;margin-bottom:2px}
.transferVacationCallout b{font-size:.84rem;color:#dceaf7;font-weight:700}
.transferVacationCallout em{margin-top:2px;color:#9bb1c5;font-size:.72rem;font-style:normal}
.transferVacationCallout.afterDeadline em{color:#efc16c}
@media(max-width:640px){.transferVacationCallout{max-width:none}.transferVacationCallout small{font-size:.66rem}.transferVacationCallout b{font-size:.8rem}}

.transferVacationMergeNote{display:block;margin-top:2px;color:#86a9c9;font-size:.72rem;line-height:1.2}

/* v0.9.1 — dashboard-style transfer visual anchors */
.transferIdentityTitle{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.transferIdentityTitle h3{display:flex;align-items:center;gap:7px;margin-right:auto}
.transferTitleIcon{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;border:1px solid rgba(88,166,255,.38);background:rgba(37,99,235,.13);color:#72b5ff;font-size:.85rem;flex:0 0 22px}
.transferReadinessBadge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;font-size:.66rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase;border:1px solid #35506a;background:#101d2a;color:#a9c3dc;white-space:nowrap}
.transferReadinessBadge i{font-style:normal;font-size:.72rem}
.transferReadinessBadge.ready{border-color:#277458;background:rgba(17,73,54,.48);color:#7de0b7}
.transferReadinessBadge.action{border-color:#a55b28;background:rgba(101,52,17,.46);color:#f4bd69}
.transferReadinessBadge.progress{border-color:#36668e;background:rgba(24,63,96,.42);color:#86c2f3}
.transferIdentity>p{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.transferMetaIcon{color:#6daee8;font-size:.7rem}
.transferMetaDivider{color:#496176;margin:0 1px}
.transferCountdown{position:relative;overflow:hidden}
.transferCountdown>i{position:absolute;top:7px;left:8px;font-style:normal;font-size:.72rem;line-height:1;color:#79baff;opacity:.85}
.transferCountdown.attention>i{color:#f4c65f}.transferCountdown.critical>i,.transferCountdown.overdue>i{color:#ff858b}.transferCountdown.released>i{color:#75ddb2}
.transferManageFacts small{display:flex;align-items:center;gap:6px}
.transferManageFacts small>i{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:5px;background:rgba(55,117,171,.13);color:#72b5ff;font-size:.68rem;font-style:normal;flex:0 0 18px}
.skillProgress{display:block!important;height:5px;margin-top:6px;padding:0!important;border:0!important;border-radius:999px;background:#172738;overflow:hidden}
.skillProgress>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#378fe0,#65b8ff);transition:width .2s ease}
.criticalSkillsFact>b{color:#e6f2ff}
.transferVacationIcon{font-weight:900}
@media(max-width:640px){.transferIdentityTitle{align-items:flex-start}.transferReadinessBadge{margin-left:29px}.transferManageFacts small>i{width:17px;height:17px;flex-basis:17px}}


/* v0.9.2 dashboard row spacing and configurable staffing capacity */
/* Global section margins were adding 25px beneath dashboard panels. Reset only dashboard cards/panels. */
#dashboardContent .dashboardPanels > .dashPanel{margin-bottom:0}
#dashboardContent > .dashboardPanels{margin-bottom:10px}
#dashboardContent > .dashboardPanels:last-child{margin-bottom:0}
#dashboardContent .primaryDashboardPanels{margin-bottom:10px}

.staffingTileMetric{width:100%;margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,.11);position:relative;z-index:1}
.staffingTileMetric>span{display:block;color:#8fa0b5;font-size:.66rem;text-transform:uppercase;letter-spacing:.045em}
.staffingTileMetric>strong{display:block;margin-top:4px;font-size:.82rem;color:#dceaff}
.staffingProgress{height:4px;margin-top:7px;border-radius:999px;overflow:hidden;background:rgba(126,172,245,.15)}
.staffingProgress i{display:block;height:100%;border-radius:inherit;background:#58a1ff}
.employeeMetric.staffingBelow .staffingProgress i{background:#fbbc04}
.employeeMetric.staffingAbove .staffingProgress i{background:#34a853}
.staffingAdminPanel{grid-column:1/-1}
.staffingSettingRow{display:grid;grid-template-columns:minmax(190px,1fr) 120px auto;align-items:end;gap:10px}
.staffingSettingRow label{font-size:.82rem;color:var(--muted)}
.staffingSettingRow input{width:100%;background:#0d1014;border:1px solid var(--line);border-radius:7px;color:var(--text);padding:10px 12px;font:inherit}
#staffingSettingStatus{margin-top:9px;min-height:16px}
@media(max-width:650px){.staffingSettingRow{grid-template-columns:1fr}.staffingSettingRow .primary{width:100%}}


/* v0.9.3 operational staffing detail */
.staffingAvailabilityCard{text-align:left}
.staffingAvailabilityCard.attention{border-color:rgba(251,188,4,.34)}
.availabilityMetric .staffingProgress i{background:#34a853}
.staffingAvailabilityCard.attention .availabilityMetric .staffingProgress i{background:#fbbc04}
.compactAbsenceBreakdown{display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:8px;padding-top:7px;border-top:1px solid rgba(255,255,255,.07)}
.compactAbsenceBreakdown span{display:flex;align-items:center;gap:5px;min-width:0;color:#aebbd0;font-size:.67rem}
.compactAbsenceBreakdown i{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:82px}
.compactAbsenceBreakdown b{font-size:.7rem!important;color:#eef5ff!important}
.staffingModalShell{display:grid;gap:16px}
.staffingModalSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.staffingModalSummary>div{padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(7,12,18,.55)}
.staffingModalSummary span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.045em}
.staffingModalSummary b{display:block;margin-top:6px;font-size:1.55rem}
.staffingModalSummary .availableSummary{border-color:rgba(52,168,83,.35);background:rgba(52,168,83,.08)}
.staffingCoverage{padding:15px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:#0d1218}
.staffingCoverage>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:12px}
.staffingCoverage span{color:#cbd7e7;font-weight:700}
.staffingCoverage b{font-size:1.35rem}
.staffingCoverage small{display:block;margin-top:7px;color:var(--muted)}
.staffingCoverage.coverageGood b{color:#58d68d}.staffingCoverage.coverageGood .staffingProgress i{background:#34a853}
.staffingCoverage.coverageWatch b{color:#ffd54f}.staffingCoverage.coverageWatch .staffingProgress i{background:#fbbc04}
.staffingCoverage.coverageLow b{color:#ffab70}.staffingCoverage.coverageLow .staffingProgress i{background:#ef6c00}
.staffingCoverage.coverageCritical b{color:#ff7b72}.staffingCoverage.coverageCritical .staffingProgress i{background:#ef5350}
.staffingModalSectionHead{display:flex;justify-content:space-between;align-items:center;padding-top:2px;color:#dce8f8}
.staffingModalSectionHead span{font-weight:800}.staffingModalSectionHead b{color:var(--muted);font-size:.78rem}
.staffingBreakdownGroup{margin:0!important;border:1px solid rgba(255,255,255,.09);border-radius:10px;overflow:hidden;background:rgba(7,12,18,.45)}
.staffingBreakdownHead{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;border-bottom:1px solid rgba(255,255,255,.07)}
.staffingBreakdownHead span{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;padding:0 8px;border-radius:999px;background:rgba(126,172,245,.13);color:#dceaff;font-size:.75rem;font-weight:800}
.staffingEmployeeList>div{display:flex;justify-content:space-between;gap:14px;padding:10px 13px;border-bottom:1px solid rgba(255,255,255,.055)}
.staffingEmployeeList>div:last-child{border-bottom:0}
.staffingEmployeeList span{color:var(--muted);font-size:.76rem;text-align:right}
@media(max-width:680px){.staffingModalSummary{grid-template-columns:1fr 1fr}.compactAbsenceBreakdown{display:none}.staffingEmployeeList>div{align-items:flex-start;flex-direction:column;gap:3px}.staffingEmployeeList span{text-align:left}}


/* v0.9.4 calendar visibility and employee celebrations */
.calendarDisplayFilter{margin:16px 4px 4px;padding:12px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:rgba(15,23,42,.42)}
.calendarDisplayFilter>span{display:block;font-size:10px;letter-spacing:.12em;margin-bottom:8px}
.calendarDisplayFilter label{display:flex;align-items:center;gap:9px;font-weight:700;cursor:pointer}
.calendarDisplayFilter input{width:16px;height:16px}
.calendarDisplayFilter small{display:block;margin-top:7px;color:var(--muted);line-height:1.35}
.mini-day{position:relative}
.mini-day.hasCelebration i{position:absolute;width:5px;height:5px;border-radius:50%;background:#fbbf24;bottom:3px;left:50%;transform:translateX(-50%);box-shadow:0 0 7px rgba(251,191,36,.75)}
.celebrationRows{display:grid;gap:7px}
.celebrationRows button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border:1px solid rgba(148,163,184,.14);border-radius:10px;background:rgba(15,23,42,.34)}
.celebrationRows button:hover{border-color:rgba(251,191,36,.5);background:rgba(251,191,36,.07)}
.celebrationRows button>span{font-size:20px}
.celebrationRows button div{display:flex;flex-direction:column;gap:2px}
.celebrationRows small{color:var(--muted)}


/* v0.9.4.1 celebration card polish */
.celebrationRows button{color:var(--text);padding:11px 12px;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.celebrationRows button:hover{transform:translateY(-1px)}
.celebrationRows .celebrationIcon{font-size:21px;line-height:1;flex:0 0 auto}
.celebrationRows .celebrationCopy{display:flex;flex-direction:column;gap:1px;min-width:0}
.celebrationRows .celebrationName{color:#f8fafc!important;font-size:.96rem;font-weight:750;line-height:1.2}
.celebrationRows .celebrationReason{color:#9fc4ff;font-size:.78rem;font-weight:650;line-height:1.25}
.celebrationRows .celebrationDate{color:var(--muted);font-size:.75rem;line-height:1.25}

/* v0.9.4.2 invisible sidebar scrollbar — scrolling remains fully functional */
#sidebar{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
#sidebar::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}


/* v0.9.5 dashboard compliance progress */
.complianceProgressPanel{grid-column:span 2}
.complianceProgressList{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:12px}
.complianceProgressRow{display:block;width:100%;text-align:left;color:var(--text);background:#0d1014;border:1px solid var(--line);border-radius:10px;padding:14px;cursor:pointer}
.complianceProgressRow:hover{border-color:var(--blue);transform:translateY(-1px)}
.complianceProgressRow.hasOutstanding{border-color:#6e5a22;background:rgba(251,188,4,.035)}
.complianceProgressRow.overdue{border-color:#9b3e45;background:rgba(218,73,80,.055)}
.complianceProgressRow.complete{border-color:#285d3a;background:rgba(52,168,83,.035)}
.complianceProgressHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.complianceProgressHead b{display:block;font-size:.98rem}
.complianceProgressHead span{display:block;color:var(--muted);font-size:.76rem;margin-top:4px}
.complianceProgressHead strong{font-size:1.25rem;white-space:nowrap}
.complianceProgressBar{height:8px;background:#242930;border-radius:999px;overflow:hidden;margin:12px 0 9px}
.complianceProgressBar i{display:block;height:100%;background:var(--blue);border-radius:inherit}
.complianceProgressRow.complete .complianceProgressBar i{background:#34a853}
.complianceProgressRow.overdue .complianceProgressBar i{background:#da4950}
.complianceProgressCounts{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.78rem}
.complianceProgressCounts span:last-child{text-align:right}
@media(max-width:900px){.complianceProgressPanel{grid-column:auto}.complianceProgressList{grid-template-columns:1fr}}


/* v0.9.9 Talent Development */
.talentToolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:18px 0}.talentToolbar>label{display:flex;flex-direction:column;gap:6px;min-width:170px;margin-left:auto}.talentViewToggle{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.talentViewToggle button{border:0;border-right:1px solid var(--line);background:#111;color:var(--muted);padding:10px 14px;cursor:pointer}.talentViewToggle button:last-child{border-right:0}.talentViewToggle button.active{background:#20344b;color:#fff}.talentGroup{border:1px solid var(--line);background:#101316;border-radius:10px;margin:0 0 14px;overflow:hidden}.talentGroupHead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line)}.talentGroupHead h3{margin:3px 0}.talentGroupHead p{margin:0;color:var(--muted);font-size:12px}.talentCoverageBadge{border:1px solid #356f47;border-radius:999px;padding:5px 10px;color:#8fe0a8;font-size:12px}.talentRow{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 17px;border-top:1px solid var(--line)}.talentRow:first-child{border-top:0}.talentRowMain{min-width:0}.talentTitleLine{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.talentMeta,.talentRow small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.talentRow p{margin:7px 0 0}.talentPriority,.talentStatus{font-size:10px;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:3px 7px;border:1px solid var(--line)}.talentPriority.high{color:#ff9b94;border-color:#923b3f;background:rgba(218,73,80,.08)}.talentPriority.medium{color:#ffe082;border-color:#8b6a1f}.talentPriority.low{color:#9dc7eb;border-color:#355f83}.talentStatus.in_training,.talentStatus.scheduled{color:#8ecbff;border-color:#356f9d}.talentStatus.completed{color:#8fe0a8;border-color:#356f47}.talentStatus.deferred{color:#b7bec8;border-color:#59616b}.talentActions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.talentCompletedDate{font-size:11px;color:#8fe0a8}.talentCompleteCheck{margin:14px 0}.talentMetrics .dashboardCard{min-height:112px}
@media(max-width:760px){.talentToolbar{align-items:stretch;flex-direction:column}.talentToolbar>label{margin-left:0;min-width:0}.talentViewToggle button{flex:1}.talentRow{align-items:flex-start;flex-direction:column}.talentActions{width:100%;justify-content:flex-end}.talentGroupHead{align-items:flex-start}}


/* v0.9.11 - Employee Seniority staffing view */
.seniorityToolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:14px 0 12px}.senioritySearchWrap{display:flex;align-items:center;gap:12px;flex:1;min-width:280px}.senioritySearchWrap input{min-width:280px;max-width:620px;flex:1}.senioritySearchWrap span{color:var(--muted);white-space:nowrap}.seniorityActions{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap}.seniorityFilterLabel{display:grid;gap:4px;color:var(--muted);font-size:12px}.seniorityFilterLabel select{min-width:190px}.compactCheck{padding-bottom:9px;white-space:nowrap}.senioritySummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 12px}.senioritySummary>div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 13px}.senioritySummary span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.senioritySummary b{display:block;margin-top:4px;font-size:20px}.seniorityTableWrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.seniorityTable{width:100%;border-collapse:collapse;min-width:1050px}.seniorityTable th{position:sticky;top:0;z-index:1;background:#0c151f;color:#9fc7ff;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.055em;padding:11px 12px;border-bottom:1px solid var(--line)}.seniorityTable td{padding:11px 12px;border-bottom:1px solid rgba(126,153,184,.18);vertical-align:top}.seniorityTable tbody tr:last-child td{border-bottom:0}.seniorityTable tbody tr:hover{background:rgba(91,155,255,.045)}.seniorityRank{font-weight:800;color:#76a9ff}.seniorityTags{display:flex;flex-wrap:wrap;gap:5px}.seniorityTag{display:inline-flex;align-items:center;border:1px solid rgba(102,170,255,.35);background:rgba(48,116,197,.12);color:#b9d7ff;border-radius:999px;padding:2px 7px;font-size:11px;line-height:1.35}.seniorityGeneral{color:var(--muted);font-size:12px}.seniorityTransfer{color:#f7c95c;font-weight:700}.seniorityEmpty{text-align:center;color:var(--muted);padding:28px!important}@media(max-width:1050px){.seniorityToolbar{align-items:stretch;flex-direction:column}.seniorityActions{align-items:center}.senioritySummary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{#employeeSeniorityView .seniorityToolbar,#employeeSeniorityView .senioritySummary{display:none}.seniorityTableWrap{border:0;overflow:visible}.seniorityTable{min-width:0}.seniorityTable th{position:static;color:#000;background:#eee}.seniorityTable td,.seniorityTable th{color:#000;border:1px solid #bbb}}

/* v0.9.12 monthly compliance closeout and history */
.lockedTrainingCard{border-color:#596573;background:linear-gradient(150deg,rgba(24,31,40,.96),rgba(8,12,18,.98))}.lockedBadge{display:inline-flex;align-items:center;width:max-content;margin-left:7px;padding:3px 7px;border:1px solid #667485;border-radius:999px;color:#b9c6d5;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.lockedNotice{display:inline-flex;align-items:center;padding:8px 11px;border:1px solid #667485;border-radius:7px;color:#cbd5e1;background:rgba(100,116,139,.12);font-size:.8rem;font-weight:700}.monthlyHistoryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px;margin-top:14px}.monthlyHistoryCard{border:1px solid var(--line);border-radius:10px;padding:14px;background:#0d1117}.monthlyHistoryCard h3{margin:8px 0 12px}.historyCycleRow{width:100%;display:grid;grid-template-columns:1fr auto;gap:4px 12px;text-align:left;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);padding:10px 0;cursor:pointer}.historyCycleRow span{font-weight:700}.historyCycleRow b{font-size:.85rem}.historyCycleRow em{grid-column:1/-1;color:var(--muted);font-size:.78rem;font-style:normal}.historyCycleRow:hover span{color:var(--blue)}.previousMonthSummary{margin-top:26px;padding-top:20px;border-top:2px solid var(--line)}.previousMonthSummary h3{margin:6px 0 12px}.previousMonthGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.previousMonthGrid>div{display:grid;gap:4px;border:1px solid var(--line);border-radius:9px;padding:12px;background:#0d1117}.previousMonthGrid span,.previousMonthGrid em{font-size:.82rem}.previousMonthGrid span{color:var(--muted)}.previousMonthGrid em{color:#f4cf67;font-style:normal}@media(max-width:650px){.previousMonthGrid{grid-template-columns:1fr}}


/* v0.9.13 weekend staffing */
.weekendToolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.weekendToolbar h3{margin:0 0 5px}.weekendSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.weekendSummary>div{border:1px solid var(--line);background:#0d1014;border-radius:9px;padding:12px}.weekendSummary span,.weekendSummary b{display:block}.weekendSummary span{font-size:.72rem;text-transform:uppercase;color:var(--muted)}.weekendSummary b{font-size:1.35rem;margin-top:5px}.weekendShiftCard{border:1px solid var(--line);background:linear-gradient(150deg,rgba(13,20,28,.96),rgba(7,12,18,.98));border-radius:12px;padding:17px;margin-bottom:12px}.weekendShiftHead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.weekendShiftHead h3{margin:5px 0}.weekendShiftHead p{margin:0;color:var(--muted);font-size:.84rem}.weekendShiftActions{display:flex;gap:7px;align-items:center}.weekendMetrics{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.weekendMetrics span{border:1px solid var(--line);border-radius:999px;padding:5px 9px;color:var(--muted);font-size:.75rem}.weekendMetrics b{color:var(--text)}.weekendPersonRow{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,.35fr) auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:10px 0}.weekendPersonRow:first-child{border-top:0}.weekendPersonRow>div{display:grid;gap:3px}.weekendPersonRow small{color:var(--muted)}.weekendEligibilityWarn{color:#f4cf67!important}.weekendPersonRow select{background:#111820;border:1px solid var(--line);color:var(--text);border-radius:7px;padding:8px}.weekendMetric{border-color:#4b6f8f}.weekendMetric .dashCardTitle{color:#70b7ff}.miniTabs{margin-bottom:14px}@media(min-width:1550px){#dashboardPage .dashboardGrid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:800px){.weekendToolbar,.weekendShiftHead{flex-direction:column}.weekendSummary{grid-template-columns:1fr 1fr}.weekendPersonRow{grid-template-columns:1fr}.weekendShiftActions{width:100%;flex-wrap:wrap}}@media(max-width:520px){.weekendSummary{grid-template-columns:1fr}}

/* v0.9.13.1 bulk weekend roster selection */
.weekendBulkTools{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;gap:10px;align-items:center;margin-bottom:10px}
.weekendBulkTools input[type=search]{width:100%;background:#0d1014;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px}
.weekendEmployeeChecklist{max-height:430px;overflow:auto;border:1px solid var(--line);border-radius:9px;background:#0b0f14;padding:6px}
.weekendEmployeeChoice{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:7px;cursor:pointer}
.weekendEmployeeChoice:hover{background:rgba(126,172,245,.08)}
.weekendEmployeeChoice input{width:auto!important;margin-top:2px}
.weekendEmployeeChoice span{display:grid;gap:3px}.weekendEmployeeChoice small{display:block;color:var(--muted)}
@media(max-width:650px){.weekendBulkTools{grid-template-columns:1fr}.weekendEmployeeChecklist{max-height:50vh}}

/* v0.9.14 — timekeeping-style PTO balances */
.ptoNums{flex-wrap:wrap;row-gap:10px}
.ptoNums>div{min-width:120px}
.ptoBalanceExplanation{margin:9px 0 2px;padding:8px 10px;border-left:3px solid rgba(126,172,245,.6);background:rgba(126,172,245,.06);color:var(--muted);font-size:.72rem;line-height:1.4;border-radius:0 6px 6px 0}
.futurePtoBalance small+small{color:var(--text);opacity:.82}

/* v0.9.14.1 — scheduled transfer countdown */
.transferDeadlineReference{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:7px;padding:7px 10px;border:1px solid rgba(76,126,169,.34);border-radius:8px;background:rgba(12,29,44,.58);font-size:.72rem;color:#9fc1df;width:max-content;max-width:100%}
.transferDeadlineReference span{display:inline-flex;align-items:center;gap:5px}
.transferDeadlineReference i{font-style:normal;color:#72b5ff}
.transferDeadlineReference b{color:#78d9b0;font-size:.72rem}
.transferDeadlineReference.late{border-color:rgba(193,72,78,.55);background:rgba(85,25,30,.35)}
.transferDeadlineReference.late b{color:#ff858b}

/* v0.9.15 Weekend staffing workflow */
.weekendHeadingMeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.weekendLifecycle{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;border:1px solid #334155;background:#0b1220;color:#9fb3c8;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.weekendLifecycle.planning{border-color:#9a6700;color:#ffd35c;background:#221b08}
.weekendLifecycle.locked{border-color:#2563a8;color:#78b7ff;background:#0b1929}
.weekendLifecycle.live{border-color:#14865d;color:#55e6a7;background:#0b2018}
.weekendLifecycle.review{border-color:#6b4da8;color:#c4a5ff;background:#171124}
.weekendLifecycle.history{opacity:.66}
.weekendWorkflowEditor{display:grid;gap:10px;padding:12px;border:1px solid #2a3542;border-radius:10px;background:#0b1118}
.weekendPersonBadges{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0}
.weekendPersonBadges span{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;border:1px solid #324154;color:#a9bad0;background:#101923}
.weekendPersonBadges .volunteer{border-color:#2b6b9f;color:#7fc1ff;background:#0b1a29}
.weekendPersonBadges .assigned{border-color:#9a6700;color:#ffd35c;background:#221b08}
.weekendPersonBadges .verified{border-color:#14865d;color:#55e6a7;background:#0b2018}
.weekendPersonBadges .unverified{border-color:#a33a45;color:#ff8b95;background:#251014}
.weekendUnavailableReason{color:#ffca65!important}
.weekendMetrics .warn{color:#ffd35c}
.inlineAdd{padding:0 0 0 6px!important;vertical-align:baseline}

.weekendLifecycle.archived{border-color:#326a4c;color:#76e3a8;background:#0b2018}
.weekendShiftCard.archived{opacity:.92;border-color:#294638;background:linear-gradient(150deg,rgba(10,20,17,.96),rgba(7,13,11,.98))}
.weekendFinalStatus{display:inline-flex;justify-content:center;min-width:145px;border:1px solid var(--line);border-radius:7px;padding:8px;color:var(--text);background:#0d1514;font-weight:700}
.weekendFinalizeNotice{margin:0 0 12px;padding:10px 12px;border:1px solid #8c6416;border-radius:8px;background:#211a09;color:#ffd35c;font-size:.84rem}
.weekendHistory{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.weekendHistory>summary{cursor:pointer;font-weight:800;color:var(--text);margin-bottom:12px}.weekendHistoryList{display:grid;gap:10px}
.weekendFinalizeSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.weekendFinalizeSummary span{display:grid;text-align:center;border:1px solid var(--line);border-radius:9px;padding:12px;background:#0c1117;font-size:1.4rem;font-weight:800}.weekendFinalizeSummary small{font-size:.68rem;color:var(--muted);text-transform:uppercase;margin-top:4px}
@media(max-width:650px){.weekendFinalizeSummary{grid-template-columns:1fr 1fr}}

/* v0.9.17 — Weekend planned lines and staffing */
.weekendLinePlan{margin:14px 0;padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.025)}
.weekendLinePlanHead,.weekendLineSummaryHead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.weekendLinePlanHead small{display:block;margin-top:3px;color:var(--muted)}
.weekendLinePlanLabels,.weekendLinePlanRow{display:grid;grid-template-columns:minmax(100px,1fr) 90px 90px minmax(150px,2fr) 34px;gap:8px;align-items:center}
.weekendLinePlanLabels{padding:0 3px 5px;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.04em}
.weekendLinePlanRow{margin-bottom:8px}
.weekendLinePlanRow input{min-width:0}
.weekendLineTotals{display:flex;flex-wrap:wrap;gap:18px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);color:var(--muted)}
.weekendLineTotals b{color:var(--text)}
.weekendLineSummary{margin:12px 0 14px;padding:12px 14px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.02)}
.weekendLineSummaryHead span{color:var(--muted);font-size:.85rem}
.weekendLineSummaryRow{display:grid;grid-template-columns:minmax(110px,1fr) auto minmax(140px,2fr);gap:12px;align-items:center;padding:7px 0;border-top:1px solid rgba(255,255,255,.06)}
.weekendLineSummaryRow small{color:var(--muted);text-align:right}
.weekendLineSummaryRow.contingency{color:#f7ca72}
.weekendRosterVariance{display:flex;justify-content:space-between;gap:16px;margin-top:8px;padding-top:9px;border-top:1px solid rgba(255,255,255,.09);color:var(--muted)}
.weekendRosterVariance b{color:var(--text)}
.weekendRosterVariance.good b{color:#8fe3b0}.weekendRosterVariance.bad b{color:#ff9b9b}
@media(max-width:760px){.weekendLinePlanLabels{display:none}.weekendLinePlanRow{grid-template-columns:1fr 1fr}.weekendLinePlanRow .weekendLineNotes{grid-column:1/-1}.weekendLinePlanRow .weekendRemoveLine{grid-column:2;justify-self:end}.weekendLineSummaryRow{grid-template-columns:1fr auto}.weekendLineSummaryRow small{grid-column:1/-1;text-align:left}.weekendLinePlanHead,.weekendLineSummaryHead,.weekendRosterVariance{align-items:flex-start;flex-direction:column}}

/* v0.9.18 PTO planning */
.employeeNameLine{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ptoPlanningBadge{display:inline-flex;align-items:center;gap:6px;border:1px solid;border-radius:999px;padding:4px 9px;font-size:.69rem;font-weight:800;letter-spacing:.04em;line-height:1;text-transform:uppercase}
.ptoPlanningBadge i{display:grid;place-items:center;width:15px;height:15px;border-radius:50%;font-style:normal;font-size:.66rem}
.ptoPlanningBadge.complete{color:#62f0a6;background:rgba(25,125,79,.18);border-color:rgba(58,209,132,.48)}
.ptoPlanningBadge.complete i{background:rgba(58,209,132,.2)}
.ptoPlanningBadge.ontrack{color:#8fc0ff;background:rgba(43,100,181,.16);border-color:rgba(88,151,240,.42)}
.ptoPlanningBadge.planning{color:#ffd45c;background:rgba(153,104,8,.18);border-color:rgba(230,165,28,.5)}
.ptoPlanningBadge.critical{color:#ff7777;background:rgba(152,34,45,.22);border-color:rgba(240,75,87,.55)}
.ptoPlanningPanel{grid-column:1/-1}
.ptoPlanningMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 14px}
.ptoPlanningMetrics button{min-height:72px;text-align:left;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.018);padding:12px;color:var(--text)}
.ptoPlanningMetrics button b{display:block;font-size:1.55rem;line-height:1.05}.ptoPlanningMetrics button span{display:block;margin-top:6px;font-size:.76rem;text-transform:uppercase;letter-spacing:.055em;color:var(--muted)}
.ptoPlanningMetrics .complete{border-color:rgba(58,209,132,.38)}.ptoPlanningMetrics .ontrack{border-color:rgba(88,151,240,.38)}.ptoPlanningMetrics .planning{border-color:rgba(230,165,28,.44)}.ptoPlanningMetrics .critical{border-color:rgba(240,75,87,.5)}
.ptoPlanningRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ptoPlanningRows button{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;border:1px solid var(--border);border-left-width:3px;border-radius:9px;background:rgba(255,255,255,.015);padding:10px 12px;color:var(--text)}
.ptoPlanningRows button div{min-width:0}.ptoPlanningRows button b,.ptoPlanningRows button small{display:block}.ptoPlanningRows button small{margin-top:3px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ptoPlanningRows button>span{font-weight:700;white-space:nowrap;color:var(--muted)}
.ptoPlanningRows button.planning{border-left-color:#dba51e}.ptoPlanningRows button.critical{border-left-color:#ef4b57}.ptoPlanningRows button:hover{background:rgba(255,255,255,.035)}
@media(max-width:850px){.ptoPlanningMetrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ptoPlanningRows{grid-template-columns:1fr}}


/* PTO Planning workspace */
.ptoPlannerToolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px}.ptoPlannerToolbar h3{margin:0 0 4px}.ptoPlannerFilters{display:flex;gap:10px;flex-wrap:wrap}.ptoPlannerFilters select,.ptoPlannerFilters input{min-width:220px}.ptoPlannerSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.ptoPlannerSummary>div{background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:12px;padding:14px}.ptoPlannerSummary b{display:block;font-size:1.55rem}.ptoPlannerSummary span{color:var(--muted);text-transform:uppercase;font-size:.76rem;letter-spacing:.08em}.ptoPlannerCard{border:1px solid var(--line);background:rgba(7,16,27,.72);border-radius:14px;padding:16px;margin-bottom:12px}.ptoPlannerCard.critical{border-color:rgba(248,113,113,.55);box-shadow:inset 3px 0 rgba(248,113,113,.85)}.ptoPlannerCard.planning{border-color:rgba(251,191,36,.5);box-shadow:inset 3px 0 rgba(251,191,36,.85)}.ptoPlannerIdentity{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.ptoPlannerIdentity h3{margin:8px 0 3px}.ptoPlannerIdentity p{margin:0;color:var(--muted)}.ptoPlannerBalance{text-align:right}.ptoPlannerBalance b{display:block;font-size:1.55rem;color:#fff}.ptoPlannerBalance span,.ptoPlannerBalance small{display:block;color:var(--muted)}.ptoPlannerProgress{display:flex;gap:18px;flex-wrap:wrap;margin:14px 0;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted)}.ptoPlannerProgress b{color:#fff}.ptoPlannerActions{display:flex;justify-content:flex-end;gap:10px}.ptoSuggestionList{display:grid;gap:10px}.ptoSuggestionOption{display:flex;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;cursor:pointer}.ptoSuggestionOption input{margin-top:4px}.ptoSuggestionOption b,.ptoSuggestionOption span,.ptoSuggestionOption small{display:block}.ptoSuggestionOption small{color:var(--muted);margin-top:3px}.goodText{color:#4ade80}.warnText{color:#fbbf24}@media(max-width:900px){.ptoPlannerToolbar,.ptoPlannerIdentity{align-items:stretch;flex-direction:column}.ptoPlannerBalance{text-align:left}.ptoPlannerSummary{grid-template-columns:repeat(2,1fr)}}

/* v0.9.20 PTO planning rules, print actions, and overrides */
.ptoPlannerSummary{grid-template-columns:repeat(5,minmax(0,1fr))}.ptoRuleSummary{position:relative}.ptoRuleSummary .linkButton{padding:3px 0;margin-top:5px;font-size:.75rem}.ptoSuggestionOption.over{border-color:rgba(248,113,113,.65)}.ptoSuggestionOption.at{border-color:rgba(251,191,36,.6)}.ptoSuggestionOption.under{border-color:rgba(74,222,128,.45)}.badText{color:#f87171}.ptoWindowEvaluation{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:10px;padding:11px;margin-bottom:14px}.ptoWindowEvaluation.over{border-color:rgba(248,113,113,.65);background:rgba(248,113,113,.08)}.ptoWindowEvaluation.at{border-color:rgba(251,191,36,.6);background:rgba(251,191,36,.07)}.ptoWindowEvaluation.under{border-color:rgba(74,222,128,.45);background:rgba(74,222,128,.06)}
@media(max-width:900px){.ptoPlannerSummary{grid-template-columns:repeat(2,1fr)}}

/* v0.9.20.1 PTO suggestion selection */
.ptoSuggestionOption{position:relative;width:100%;text-align:left;color:inherit;background:rgba(255,255,255,.018);font:inherit;align-items:flex-start;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}
.ptoSuggestionOption:hover{background:rgba(96,165,250,.055);border-color:rgba(96,165,250,.6);transform:translateY(-1px)}
.ptoSuggestionOption.selected{border-color:#22c55e!important;background:rgba(34,197,94,.07);box-shadow:0 0 0 1px rgba(34,197,94,.2),inset 3px 0 #22c55e}
.ptoSuggestionOption>div{padding-right:34px}
.ptoSuggestionCheck{position:absolute;right:13px;top:12px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#22c55e;color:#04110a;font-weight:900;opacity:0;transform:scale(.7);transition:opacity .16s ease,transform .16s ease}
.ptoSuggestionOption.selected .ptoSuggestionCheck{opacity:1;transform:scale(1)}

/* v0.9.20.2 — calendar PTO capacity indicators */
.dayNum{display:flex;align-items:center;justify-content:space-between;gap:5px}
.ptoCapacityBadge{appearance:none;border:1px solid rgba(251,188,4,.65);background:rgba(251,188,4,.13);color:#ffe082;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800;line-height:1.25;cursor:pointer;box-shadow:none}
.ptoCapacityBadge:hover{filter:brightness(1.18)}
.ptoCapacityBadge.over{border-color:rgba(239,83,80,.78);background:rgba(239,83,80,.18);color:#ff9b98}
.ptoCapacityBadge.compact{padding:1px 5px;font-size:9px}
.weekHead{position:relative}
.weekHead .ptoCapacityBadge{position:absolute;right:4px;top:4px}
.quarterDay .ptoCapacityBadge{position:absolute;left:2px;bottom:2px;z-index:2}
.dayPtoCapacity{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid rgba(251,188,4,.45);background:rgba(251,188,4,.10);color:#ffe082;cursor:pointer}
.dayPtoCapacity.over{border-color:rgba(239,83,80,.55);background:rgba(239,83,80,.13);color:#ff9b98}
.dayPtoCapacity span{font-size:12px}
.ptoCapacitySummary{display:flex;align-items:center;justify-content:space-between;padding:14px;border:1px solid rgba(251,188,4,.55);background:rgba(251,188,4,.09);border-radius:10px;margin-bottom:14px}
.ptoCapacitySummary b{font-size:1.35rem}.ptoCapacitySummary span{color:#ffe082}
.ptoCapacitySummary.over{border-color:rgba(239,83,80,.6);background:rgba(239,83,80,.12)}
.ptoCapacitySummary.over span{color:#ff9b98}
@media(max-width:760px){.ptoCapacityBadge{padding:1px 4px;font-size:8px}.weekHead .ptoCapacityBadge{position:static;margin-top:2px}.dayPtoCapacity{align-items:flex-start;flex-direction:column;gap:2px}}


/* v0.9.20.3 — compact Weekend Staffing Current / History views */
.weekendViewTabs{display:flex;gap:8px;margin:0 0 16px;padding:4px;background:rgba(7,11,16,.72);border:1px solid var(--line);border-radius:11px;width:max-content;max-width:100%}
.weekendViewTabs button{border:0;background:transparent;color:var(--muted);padding:8px 14px;border-radius:8px;font-weight:800;cursor:pointer}
.weekendViewTabs button:hover{color:var(--text);background:rgba(255,255,255,.04)}
.weekendViewTabs button.active{color:#eaf8ff;background:linear-gradient(145deg,rgba(34,92,127,.42),rgba(18,47,67,.55));box-shadow:inset 0 0 0 1px rgba(89,178,235,.28)}
.weekendViewTabs button span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:5px;border-radius:999px;background:rgba(255,255,255,.08);font-size:.72rem}
.weekendViewPane{display:none}.weekendViewPane.active{display:block}
.weekendHistoryMonth{margin:0 0 20px}.weekendHistoryMonthHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 8px;border-bottom:1px solid var(--line)}
.weekendHistoryMonthHead h3{margin:0;font-size:1rem}.weekendHistoryMonthHead span{color:var(--muted);font-size:.78rem}
.weekendHistoryList{display:grid;gap:8px;margin-top:10px}
.weekendArchiveItem{border:1px solid #294638;background:linear-gradient(150deg,rgba(10,20,17,.88),rgba(7,13,11,.94));border-radius:11px;overflow:hidden}
.weekendArchiveItem>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;user-select:none}
.weekendArchiveItem>summary::-webkit-details-marker{display:none}.weekendArchiveItem>summary:hover{background:rgba(85,185,130,.05)}
.weekendArchiveSummaryMain{display:flex;align-items:center;gap:10px;min-width:0}.weekendArchiveSummaryMain>div{display:grid;gap:2px;min-width:0}.weekendArchiveSummaryMain b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weekendArchiveSummaryMain small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.weekendArchiveChevron{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid rgba(111,197,151,.3);color:#7ad7a4;font-size:1.3rem;line-height:1;transition:transform .16s ease;flex:0 0 auto}.weekendArchiveItem[open] .weekendArchiveChevron{transform:rotate(90deg)}
.weekendArchiveStats{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.weekendArchiveStats span{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);border-radius:999px;padding:4px 8px;color:var(--muted);font-size:.72rem}.weekendArchiveStats b{color:var(--text)}.weekendArchiveStats .bad,.weekendArchiveStats span.bad b{color:#ff8e8e}
.weekendArchiveBody{padding:0 10px 10px;border-top:1px solid rgba(255,255,255,.05)}.weekendArchiveBody>.weekendShiftCard{margin:10px 0 0;border-color:rgba(72,121,94,.55);box-shadow:none}
@media(max-width:800px){.weekendArchiveItem>summary{align-items:flex-start;flex-direction:column}.weekendArchiveStats{justify-content:flex-start;padding-left:32px}.weekendViewTabs{width:100%}.weekendViewTabs button{flex:1}}


/* Performance review tracker */
.reviewToolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:10px 0 16px}.reviewToolbar h3{margin:0 0 4px}.reviewFilters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.reviewFilters input{min-width:240px}.performanceReviewSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.performanceReviewSummary>div{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px}.performanceReviewSummary b{display:block;font-size:22px}.performanceReviewSummary span{font-size:12px;color:var(--muted)}.performanceReviewList{display:grid;gap:10px}.performanceReviewCard{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);border-radius:14px;padding:14px}.performanceReviewCard.overdue{border-color:rgba(239,68,68,.45)}.performanceReviewCard.due_soon{border-color:rgba(245,158,11,.45)}.performanceReviewCard.complete{border-color:rgba(34,197,94,.28)}.performanceReviewHead{display:flex;justify-content:space-between;gap:14px}.performanceReviewHead h3{margin:5px 0 2px}.performanceReviewHead p{margin:0;color:var(--muted)}.reviewStatusPill{font-size:10px;font-weight:800;letter-spacing:.08em;padding:4px 7px;border-radius:999px}.reviewStatusPill.overdue{background:rgba(239,68,68,.15);color:#fca5a5}.reviewStatusPill.due_soon{background:rgba(245,158,11,.15);color:#fcd34d}.reviewStatusPill.upcoming{background:rgba(59,130,246,.14);color:#93c5fd}.reviewStatusPill.complete{background:rgba(34,197,94,.14);color:#86efac}.reviewCountdown{text-align:right;min-width:90px}.reviewCountdown b{display:block;font-size:28px;line-height:1}.reviewCountdown span{font-size:11px;color:var(--muted)}.reviewCompletion{margin-top:10px;padding:9px 10px;border-radius:10px;background:rgba(34,197,94,.07);display:flex;justify-content:space-between;gap:8px;font-size:12px}.performanceReviewActions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.reviewModalDue{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px;border-radius:12px;background:rgba(255,255,255,.04);margin-bottom:14px}.reviewModalDue span,.reviewModalDue em{color:var(--muted);font-style:normal}.reviewModalDue b{font-size:20px}.reviewModalSection{margin:14px 0}.reviewModalSection h4{margin:0 0 2px}.reviewAttendanceRows{display:grid;gap:6px;margin-top:8px}.reviewAttendanceRows>div{display:flex;justify-content:space-between;gap:12px;padding:7px 9px;border-radius:8px;background:rgba(255,255,255,.035)}.employeeAttendanceDetails{margin-top:10px;border-top:1px solid rgba(255,255,255,.06);padding-top:8px}.employeeAttendanceDetails summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px}.employeeAttendanceDetails summary small{color:var(--muted)}.employeeAttendanceBody{padding-top:10px}.attendanceHistoryHead{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.reviewAttentionRows{display:grid;gap:6px}.reviewAttentionRows button{border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);border-radius:10px;padding:9px 10px;text-align:left;color:inherit}.reviewAttentionRows button.overdue{border-left:3px solid #ef4444}.reviewAttentionRows button.due_soon{border-left:3px solid #f59e0b}.reviewAttentionRows b{display:block}.reviewAttentionRows span{font-size:12px;color:var(--muted)}.reviewTileMeta{font-size:11px;color:var(--muted);margin-top:4px}@media(max-width:900px){.performanceReviewSummary{grid-template-columns:repeat(2,1fr)}.reviewToolbar{flex-direction:column}.reviewFilters{width:100%}.reviewFilters input{min-width:0;flex:1}}

/* v0.9.22.1 attendance ranges + performance evaluation dashboard */
.attendanceRangeToolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.attendanceRangeToolbar label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.attendanceCustomRange{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.attendanceCustomRange input{width:auto;min-width:145px}.fullWidthReviewPanel{grid-column:1/-1}.performanceReviewMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0 14px}.performanceReviewMetrics button{border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.03);border-radius:12px;padding:12px;text-align:left;color:inherit}.performanceReviewMetrics b{display:block;font-size:24px;line-height:1;margin-bottom:6px}.performanceReviewMetrics span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.performanceReviewMetrics .overdue{border-color:rgba(239,68,68,.35)}.performanceReviewMetrics .dueSoon{border-color:rgba(245,158,11,.35)}.performanceReviewMetrics .upcoming{border-color:rgba(59,130,246,.3)}.performanceReviewMetrics .complete{border-color:rgba(34,197,94,.28)}.reviewAttentionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:900px){.performanceReviewMetrics,.reviewAttentionGrid{grid-template-columns:repeat(2,1fr)}}

/* Ham Season Production */
.productionHeadActions{display:flex;gap:10px;flex-wrap:wrap}.hamHero,.hamPanel{border:1px solid rgba(148,163,184,.18);background:linear-gradient(145deg,rgba(15,23,42,.86),rgba(2,6,23,.72));border-radius:20px;padding:20px;margin-bottom:18px;box-shadow:0 18px 45px rgba(0,0,0,.18)}.hamHero>div:first-child{margin-bottom:16px}.hamHero h3,.hamPanel h3{margin:3px 0}.hamHero p{margin:4px 0;color:#94a3b8}.hamHeroGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.hamShiftSummary{border:1px solid rgba(245,158,11,.35);border-radius:16px;padding:16px;background:rgba(15,23,42,.65)}.hamShiftSummary.good{border-color:rgba(34,197,94,.45)}.hamCombinedSummary{grid-column:1/-1;border-color:rgba(96,165,250,.5);background:linear-gradient(135deg,rgba(30,64,175,.10),rgba(15,23,42,.72))}.hamCombinedSummary>span{color:#60a5fa}.hamShiftSummary.risk{border-color:rgba(239,68,68,.4)}.hamShiftSummary>span{font-size:12px;font-weight:800;letter-spacing:.12em;color:#94a3b8}.hamShiftSummary>b{display:block;font-size:28px;margin:7px 0}.hamShiftSummary>b small{font-size:14px;color:#94a3b8}.hamShiftSummary>em{display:block;font-style:normal;color:#cbd5e1;margin-bottom:12px}.hamShiftSummary>div{display:flex;justify-content:space-between;border-top:1px solid rgba(148,163,184,.12);padding:8px 0;color:#94a3b8}.hamShiftSummary>div strong{color:#e2e8f0}.hamWeekTableWrap{overflow:auto}.hamWeekTable{width:100%;border-collapse:separate;border-spacing:8px}.hamWeekTable th{color:#94a3b8;font-size:12px;text-align:left}.hamWeekTable thead th:not(:first-child){text-align:center}.hamWeekTable th small{display:block;font-weight:400}.hamWeekTable td{min-width:130px;padding:14px;border:1px solid rgba(148,163,184,.18);border-radius:13px;text-align:center;cursor:pointer;background:rgba(15,23,42,.55)}.hamWeekTable td:hover{transform:translateY(-1px);border-color:rgba(96,165,250,.55)}.hamWeekTable td b{display:block;font-size:20px}.hamWeekTable td small,.hamWeekTable td i{display:block;margin-top:4px;font-style:normal;color:#94a3b8}.hamWeekTable td.hamMet{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.06)}.hamWeekTable td.hamMiss{border-color:rgba(239,68,68,.42);background:rgba(239,68,68,.06)}.hamWeekTable td.hamEmpty{color:#64748b}.hamScore table{width:100%;border-collapse:collapse}.hamScore th,.hamScore td{padding:11px;border-bottom:1px solid rgba(148,163,184,.12);text-align:right}.hamScore th:first-child,.hamScore td:first-child{text-align:left}.hamConstraintRow{display:grid;grid-template-columns:160px 1fr 180px 38px;gap:8px;margin-bottom:8px}.hamConstraintRow input,.hamConstraintRow select{min-width:0}@media(max-width:800px){.hamHeroGrid{grid-template-columns:1fr}.hamConstraintRow{grid-template-columns:1fr}.hamWeekTable{min-width:760px}}

.hamReworkTag{color:#fbbf24!important}.hamReworkBox{border:1px solid rgba(245,158,11,.25);border-radius:16px;padding:14px;margin:14px 0;background:rgba(120,53,15,.08)}.hamReworkBox .dashPanelHead{margin-bottom:10px}.hamReworkRow{border:1px solid rgba(148,163,184,.16);border-radius:13px;padding:10px;margin-bottom:10px;background:rgba(15,23,42,.52)}.hamRwTop{display:grid;grid-template-columns:150px 1fr 38px;gap:8px;margin-bottom:8px}.hamRwMetrics{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px;margin-bottom:8px}.hamRwMetrics label{font-size:11px;color:#94a3b8}.hamRwMetrics input{margin-top:4px;width:100%}.hamRwNotes{width:100%}.hamReworkSummary{display:flex;gap:14px;flex-wrap:wrap;padding-top:8px;color:#cbd5e1}.hamReworkSummary strong{color:#fbbf24}@media(max-width:900px){.hamRwMetrics{grid-template-columns:repeat(2,minmax(0,1fr))}.hamRwTop{grid-template-columns:1fr}}
.hamWeekTable th.hamSaturdayHead{color:#f59e0b}.hamWeekTable th.hamSaturdayHead em{display:block;margin-top:3px;font-size:10px;font-style:normal;letter-spacing:.12em;color:#f59e0b}.hamWeekTable td.hamRecovery{border-color:rgba(245,158,11,.58);background:rgba(245,158,11,.09)}.hamWeekTable td.hamNa{cursor:default;opacity:.68}.hamRecoveryLine.warning{color:#fbbf24}.hamRecoveryCallout{border:1px solid rgba(245,158,11,.45);background:rgba(245,158,11,.08);border-radius:14px;padding:14px;margin-bottom:14px}.hamRecoveryCallout span,.hamRecoveryCallout small{display:block}.hamRecoveryCallout span{font-size:11px;font-weight:900;letter-spacing:.12em;color:#f59e0b}.hamRecoveryCallout b{display:block;font-size:20px;margin:4px 0}.hamRecoveryCallout small{color:#94a3b8}

/* v0.9.25 — Ham Season Analytics */
.hamTagLine{color:#fbbf24!important;font-weight:700}.hamAnalyticsIntro{border:1px solid rgba(96,165,250,.24);background:linear-gradient(135deg,rgba(30,41,59,.9),rgba(2,6,23,.78));border-radius:20px;padding:20px;margin-bottom:16px}.hamAnalyticsIntro h3{margin:4px 0 6px;font-size:24px}.hamAnalyticsIntro p{margin:0;color:#94a3b8}.hamAnalyticsKpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.hamAnalyticsKpis>div{border:1px solid rgba(148,163,184,.18);background:rgba(15,23,42,.68);border-radius:16px;padding:15px}.hamAnalyticsKpis span{display:block;color:#94a3b8;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.hamAnalyticsKpis b{display:block;font-size:25px;margin:6px 0}.hamAnalyticsKpis small{color:#94a3b8}.hamChartWrap{overflow-x:auto}.hamChart{width:100%;min-width:720px;display:block}.hamChartGrid{stroke:rgba(148,163,184,.15);stroke-width:1}.hamChartAxis{fill:#94a3b8;font-size:12px}.hamTargetLine{stroke:#f59e0b;stroke-width:2;stroke-dasharray:8 6}.hamTargetLabel{fill:#fbbf24;font-size:12px;font-weight:800}.hamChartLine{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.hamChartLine.days{stroke:#60a5fa}.hamChartLine.nights{stroke:#34d399}.hamChartDot.days{fill:#60a5fa;stroke:#0f172a;stroke-width:2}.hamChartDot.nights{fill:#34d399;stroke:#0f172a;stroke-width:2}.hamBar.days{fill:#60a5fa;opacity:.82}.hamBar.nights{fill:#34d399;opacity:.82}.hamChartLegend{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;color:#cbd5e1;font-size:12px;margin-top:-6px}.hamChartLegend span{display:flex;align-items:center;gap:7px}.hamChartLegend i{width:22px;height:4px;border-radius:999px;display:inline-block}.hamChartLegend i.days{background:#60a5fa}.hamChartLegend i.nights{background:#34d399}.hamChartLegend i.target{height:0;border-top:2px dashed #f59e0b;border-radius:0}.hamAnalyticsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.hamAnalyticsCard{border:1px solid rgba(148,163,184,.18);background:rgba(15,23,42,.68);border-radius:18px;padding:18px}.hamRankRow{display:grid;grid-template-columns:minmax(0,1fr) auto 70px;gap:12px;align-items:center;padding:11px 0;border-top:1px solid rgba(148,163,184,.1)}.hamRankRow:first-of-type{border-top:0}.hamRankRow div b,.hamRankRow div small{display:block}.hamRankRow div small{color:#94a3b8;margin-top:3px}.hamRankRow>strong{text-align:right}.hamRankRow>span{text-align:right;font-weight:900}.hamRankRow.good>span{color:#4ade80}.hamRankRow.risk>span{color:#f87171}.hamAnalyticsTableWrap{overflow:auto}.hamAnalyticsTable{width:100%;border-collapse:collapse;min-width:760px}.hamAnalyticsTable th,.hamAnalyticsTable td{padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.12);text-align:right}.hamAnalyticsTable th:first-child,.hamAnalyticsTable td:first-child{text-align:left}.hamAnalyticsTable th{color:#94a3b8;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.hamAnalyticsTable td small{color:#94a3b8;margin-left:5px}.hamConstraintSummary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;color:#94a3b8}.hamConstraintSummary span{border:1px solid rgba(148,163,184,.18);background:rgba(2,6,23,.4);border-radius:999px;padding:6px 10px}.hamConstraintSummary b{color:#e2e8f0;margin-left:4px}@media(max-width:1000px){.hamAnalyticsKpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.hamAnalyticsGrid{grid-template-columns:1fr}.hamAnalyticsKpis{grid-template-columns:1fr}.hamRankRow{grid-template-columns:minmax(0,1fr) auto}.hamRankRow>span{grid-column:2}.hamChart{min-width:650px}}
.hamQuickTags{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}

/* v0.9.25.3 — Friday Night #2 Product Packout tracking */
.hamFridayPackoutBox{margin:14px 0;padding:14px 16px;border:1px solid rgba(245,158,11,.28);border-radius:16px;background:linear-gradient(145deg,rgba(245,158,11,.07),rgba(255,255,255,.018))}
.hamFridayPackoutBox .dashPanelHead{margin-bottom:10px}
.hamFridayPackoutBox .checkboxLine{display:flex;align-items:center;gap:10px;margin:8px 0 12px;font-weight:650;color:var(--text)}
.hamFridayPackoutBox .checkboxLine input{width:18px;height:18px;accent-color:#f59e0b}
.hamFridayKpis{margin-top:10px}
@media(max-width:760px){.hamFridayKpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.9.26 production and monthly training reports */
.hamReportControls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hamReportButtonGroup{justify-content:flex-end}.hamReportIssues{margin-top:10px}.hamReportIssues ul{margin:6px 0 0 20px;padding:0}.hamReportIssues li{margin:3px 0}@media(max-width:850px){.hamReportControls{grid-template-columns:1fr}}

/* v0.9.27 line deficiencies / shift notes */
.productionSetupList{display:grid;gap:12px;max-height:55vh;overflow:auto}.prodSetupLine{border:1px solid rgba(148,163,184,.18);border-radius:14px;padding:14px;background:rgba(15,23,42,.55)}.prodEquipChips{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.prodEquipChips span{border:1px solid rgba(96,165,250,.28);background:rgba(59,130,246,.08);padding:5px 9px;border-radius:999px;font-size:12px}.shiftNotesToolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:16px 0}.shiftNoteLine{border-top:1px solid #aaa;padding:10px 0;page-break-inside:avoid}.shiftNoteItem{margin:7px 0}.shiftNoteItem small{display:block;margin:3px 0 0 16px}.miniBtn{padding:5px 8px!important;font-size:11px!important}.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:800px){.row3{grid-template-columns:1fr}}

/* v0.9.27.3 - explicit Inside / Outside equipment grouping */
.prodEquipAreaGroups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.prodEquipAreaGroup{border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:10px;background:rgba(255,255,255,.025);min-width:0}
.prodEquipAreaTitle{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}
.prodEquipAreaGroup .prodEquipChips{display:flex;flex-direction:column;align-items:stretch;gap:7px}
.prodEquipAreaGroup .prodEquipManageChip{display:flex;align-items:center;gap:6px;justify-content:space-between}
.prodEquipAreaGroup .prodEquipManageChip>span{flex:1;min-width:0}
@media(max-width:900px){.prodEquipAreaGroups{grid-template-columns:1fr}}

/* v0.9.27.4 - force-visible Inside/Outside equipment setup */
.prodEquipAreaTitle{display:flex;align-items:center;justify-content:space-between;padding:7px 9px;border-radius:8px;background:rgba(88,166,255,.08);border:1px solid rgba(88,166,255,.16);color:#9ecbff}
.prodEquipAreaCount{display:inline-flex;min-width:22px;height:22px;align-items:center;justify-content:center;border-radius:999px;background:rgba(88,166,255,.14);font-size:.68rem}
.prodEquipAddRow{display:grid;grid-template-columns:190px minmax(220px,1fr) auto;gap:10px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.prodEquipAddRow .formGroup{margin:0}
.prodEquipAddRow button{height:42px}
@media(max-width:760px){.prodEquipAddRow{grid-template-columns:1fr}.prodEquipAddRow button{width:100%}}

/* v0.9.27.7 - Non-PTO attendance history spacing polish */
.attendanceHistoryHead>div{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.attendanceHistoryHead>div small{display:inline-block;color:var(--muted)}
.attendanceEventList{display:grid;gap:8px;margin-top:10px}
.attendanceEventRow{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(140px,.8fr);gap:14px;align-items:start;padding:10px 12px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.025)}
.attendanceEventRow>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.attendanceEventRow>div:first-child{display:grid;grid-template-columns:minmax(130px,auto) 1fr;column-gap:12px;row-gap:3px;align-items:baseline}
.attendanceEventRow>div:first-child b{white-space:nowrap}
.attendanceEventRow>div:first-child span{color:#c9d8ea;white-space:nowrap}
.attendanceEventRow>div:last-child{align-items:flex-end;text-align:right}
.attendanceEventRow small{color:var(--muted);line-height:1.35}
@media(max-width:700px){.attendanceEventRow{grid-template-columns:1fr}.attendanceEventRow>div:first-child{grid-template-columns:1fr}.attendanceEventRow>div:last-child{align-items:flex-start;text-align:left}}

/* v0.9.27.9 — full-width Ham Season combined weekly pace dashboard panel */
.hamDashboardRisk{width:100%;display:block;text-align:left;border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin:0 0 14px;color:var(--text);cursor:pointer;overflow:hidden;position:relative;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;background:linear-gradient(120deg,rgba(15,25,36,.98),rgba(9,14,20,.98))}
.hamDashboardRisk:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,0,0,.22)}
.hamDashboardRisk.good{border-color:rgba(45,174,109,.55);background:linear-gradient(115deg,rgba(14,43,35,.72),rgba(10,19,26,.98) 56%,rgba(12,37,31,.74))}
.hamDashboardRisk.watch{border-color:rgba(211,169,54,.62);background:linear-gradient(115deg,rgba(51,43,14,.76),rgba(10,19,26,.98) 56%,rgba(44,37,14,.72))}
.hamDashboardRisk.elevated{border-color:rgba(222,122,48,.68);background:linear-gradient(115deg,rgba(57,31,14,.78),rgba(10,19,26,.98) 56%,rgba(48,28,15,.72))}
.hamDashboardRisk.high{border-color:rgba(207,68,78,.72);background:linear-gradient(115deg,rgba(62,20,27,.82),rgba(10,19,26,.98) 56%,rgba(53,20,25,.78))}
.hamDashboardRiskHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.hamDashboardRiskHead h3{margin:4px 0 0;font-size:1.12rem}.hamRiskBadge{flex:0 0 auto;border:1px solid currentColor;border-radius:999px;padding:6px 10px;font-size:.69rem;font-weight:800;letter-spacing:.055em}.good .hamRiskBadge{color:#6ce3a2;background:rgba(31,135,82,.14)}.watch .hamRiskBadge{color:#f5d267;background:rgba(179,136,30,.13)}.elevated .hamRiskBadge{color:#ffad66;background:rgba(196,92,25,.13)}.high .hamRiskBadge{color:#ff8d96;background:rgba(190,51,61,.15)}
.hamDashboardRiskMain{display:grid;grid-template-columns:1.25fr .9fr 1.15fr .9fr;gap:0;border-top:1px solid rgba(143,169,194,.14);border-bottom:1px solid rgba(143,169,194,.14)}.hamDashHero,.hamDashMetric{padding:14px 18px 14px 0;min-width:0}.hamDashMetric{padding-left:18px;border-left:1px solid rgba(143,169,194,.14)}.hamDashHero strong{font-size:2rem;line-height:1;font-weight:850;letter-spacing:-.025em}.hamDashHero>span{font-size:.8rem;color:var(--muted);margin-left:5px}.hamDashHero small,.hamDashMetric small{display:block;margin-top:7px;color:#9fb5ca;font-size:.74rem}.hamDashMetric>span{display:block;text-transform:uppercase;letter-spacing:.06em;color:#8fa9c2;font-size:.66rem;margin-bottom:6px}.hamDashMetric b{font-size:1.22rem}.hamDashMetric.required b{font-size:1.35rem}.good .hamDashMetric.required b{color:#69e19f}.watch .hamDashMetric.required b{color:#f1cf62}.elevated .hamDashMetric.required b{color:#ffa85f}.high .hamDashMetric.required b{color:#ff8b94}
.hamDashboardProgress{height:5px;border-radius:999px;background:rgba(132,154,174,.16);overflow:hidden;margin:14px 0 12px}.hamDashboardProgress i{display:block;height:100%;border-radius:inherit;background:currentColor}.good .hamDashboardProgress{color:#39c47a}.watch .hamDashboardProgress{color:#d7b442}.elevated .hamDashboardProgress{color:#e17e37}.high .hamDashboardProgress{color:#d84e58}
.hamDashboardRiskFoot{display:flex;align-items:center;gap:18px;min-width:0;font-size:.76rem;color:#9fb5ca}.hamDashboardRiskFoot>span{white-space:nowrap}.hamDashboardRiskFoot b{color:var(--text)}.hamRiskExplanation{flex:1;white-space:normal!important}.hamDashOpen{color:#6ab6ff!important;font-weight:700}
@media(max-width:1000px){.hamDashboardRiskMain{grid-template-columns:1fr 1fr}.hamDashMetric:nth-child(3){border-left:0;border-top:1px solid rgba(143,169,194,.14);padding-left:0}.hamDashMetric:nth-child(4){border-top:1px solid rgba(143,169,194,.14)}.hamDashboardRiskFoot{flex-wrap:wrap}.hamRiskExplanation{flex-basis:100%;order:3}}
@media(max-width:620px){.hamDashboardRisk{padding:15px}.hamDashboardRiskHead{flex-direction:column}.hamDashboardRiskMain{grid-template-columns:1fr}.hamDashHero,.hamDashMetric{padding:12px 0;border-left:0!important;border-top:1px solid rgba(143,169,194,.14)}.hamDashHero{border-top:0}.hamDashboardRiskFoot{gap:10px 14px}.hamDashOpen{margin-left:auto}}

/* v0.9.28.0 Ham Season analytics visual rebuild */
.hamTargetPaceLine{fill:none;stroke:#f7a600;stroke-width:3;stroke-dasharray:8 7;opacity:.9}.hamCombinedLine{fill:none;stroke:#a78bfa;stroke-width:4;stroke-linejoin:round;stroke-linecap:round}.hamCombinedDot{fill:#c4b5fd;stroke:#111827;stroke-width:2}.hamChartLegend i.pace{background:#f7a600}.hamChartLegend i.combined{background:#a78bfa}.hamChartSubAxis{font-size:10px;fill:#7184a3}.hamContextGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.hamContextDay{border:1px solid #26354d;background:rgba(9,16,28,.55);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:5px}.hamContextDay b{font-size:13px}.hamContextDay span{font-size:12px;color:#9fb7d8;line-height:1.4}@media(max-width:900px){.hamContextGrid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.hamContextGrid{grid-template-columns:1fr}}
