@charset "UTF-8";
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17363d;background:#f4f7f8;font-synthesis:none;line-height:1.5;--ink:#17363d;--muted:#586c72;--line:#d8e3e5;--teal:#103c45;--accent:#c9f166;--warn:#805116}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,label.file-picker,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button,input,select,summary,a{outline-offset:5px}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #19768a}a{color:#145969}[hidden]{display:none!important}.skip-link{position:absolute;top:-100px;left:16px;background:white;padding:12px;z-index:10}.skip-link:focus{top:12px}.masthead{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:26px 36px;gap:16px}.brand{display:flex;align-items:center;gap:12px;font-size:1.125rem;font-weight:730;letter-spacing:-.025em}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--teal);color:var(--accent);border-radius:11px;font-size:.875rem;letter-spacing:-.04em}.privacy-label{font-size:.875rem;color:var(--muted)}main{max-width:1128px;margin:auto;padding:22px 0 0}.intro{padding:0 0 26px}.eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.13em;margin:0 0 12px;color:#416069}h1{font-size:clamp(2.15rem,4vw,3.25rem);line-height:1.1;letter-spacing:-.055em;margin:0}h1 br{display:none}h1 span{color:#527078}h2{font-size:1.125rem;letter-spacing:-.025em;margin:0}h3{margin:0;font-size:1.125rem}.intro-copy{color:var(--muted);margin:15px 0 0;max-width:560px}.workspace{display:grid;grid-template-columns:1fr 1.15fr;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 5px 25px #103c4505;overflow:hidden}.file-panel,.search-panel{padding:26px 30px}.file-panel{border-right:1px solid var(--line);background:#fafdfe}.file-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.step{display:grid;place-items:center;width:28px;height:28px;border:1px solid #c9dadd;border-radius:50%;font-size:.75rem;color:#48656b;font-weight:650}.muted{color:var(--muted)}#file-summary p{font-size:.875rem;margin:0 0 16px;overflow-wrap:anywhere}.file-picker{display:inline-flex;align-items:center;justify-content:center;min-height:46px;background:var(--teal);color:white;border-radius:8px;padding:10px 20px;position:relative;cursor:pointer;font-size:.9375rem;font-weight:650}.file-picker:hover{background:#1a505b}.file-picker:focus-within{outline:3px solid #19768a;outline-offset:4px}.file-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.search-panel label{display:block;font-size:.875rem;font-weight:650;margin:6px 0 8px}.search-box{display:flex;gap:12px;align-items:center;background:white;border:1px solid #afc4c9;border-radius:9px;padding:0 14px}.search-box:focus-within{outline:3px solid #19768a;outline-offset:3px}.search-box svg{width:21px;height:21px;fill:none;stroke:#668087;stroke-width:1.7;flex-shrink:0}.search-box input{width:100%;min-width:0;border:0;outline:none;min-height:52px;background:transparent;color:var(--ink);font-size:1rem}.search-box input:disabled{opacity:.6}.search-hint{font-size:.875rem;color:var(--muted);margin:12px 0 0}.file-actions{display:flex;gap:18px;margin-top:12px;flex-wrap:wrap}.text-button{padding:4px 0;border:0;background:none;color:#175c6b;text-decoration:underline;text-underline-offset:3px;font-size:.875rem;min-height:36px}.status{font-size:.875rem;margin:10px 0 0}.status:empty{display:none}progress{width:100%;height:7px;accent-color:#247789;margin-top:18px}.schedule-date{font-size:1rem!important;font-weight:700;margin-bottom:4px!important}.file-name{font-size:.75rem!important;color:var(--muted)}.notice{background:#fff5df;color:#754c16;border:1px solid #ebd4a9;border-radius:10px;padding:15px 20px;font-size:.875rem;margin-top:20px}.notice p{margin:0 0 7px}.notice p:last-child{margin:0}.notice button{color:#71480f}.results-region{margin-top:30px}.results-bar{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line)}.results-bar p{font-size:.875rem;color:var(--muted);margin:0}.empty-state{padding:42px 20px;text-align:center;color:var(--muted)}.empty-state h3{color:#34565e;letter-spacing:-.025em}.empty-state p{font-size:.9375rem;margin:9px 0}.empty-mark{display:block;font-size:2.2rem;line-height:1;color:#68919b;margin-bottom:15px}.person{background:#fff;border:1px solid var(--line);border-radius:14px;margin-top:20px;overflow:hidden}.person-heading{padding:20px 24px;display:flex;justify-content:space-between;align-items:start;gap:16px;background:#edf4f5;border-bottom:1px solid var(--line)}.person-heading h3{font-size:1.3rem;letter-spacing:-.035em}.person-heading p{font-size:.875rem;color:var(--muted);margin:4px 0 0}.badge{white-space:nowrap;border:1px solid #c6d9dd;border-radius:6px;padding:4px 9px;font-size:.8125rem;font-variant-numeric:tabular-nums}.section-title{padding:16px 24px 9px;font-size:.8125rem;font-weight:750;text-transform:uppercase;letter-spacing:.075em;color:#4a6c75;margin:0}.assignment{margin:0 24px;padding:15px 0 17px;border-bottom:1px solid #e3ebed}.assignment:last-child{border-bottom:0}.assignment-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.assignment-index{font-size:.75rem;color:var(--muted)}.source-link{border:0;background:none;color:#145f70;text-decoration:underline;text-underline-offset:3px;padding:4px 0;min-height:32px;font-size:.8125rem}.fields{display:grid;grid-template-columns:.7fr 1.25fr 1fr 1fr 1fr 1.1fr;gap:16px;margin:0}.fields dt{font-size:.75rem;font-weight:650;color:var(--muted);margin-bottom:4px}.fields dd{margin:0;font-size:1rem;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.fields dd strong{font-weight:650}.field-empty{color:#697d83;font-size:.8125rem!important}.time-help{display:block;color:#54717a;font-size:.75rem;margin-top:3px}.warning-tag{color:var(--warn);font-size:.8125rem;font-weight:650}.row-warning{font-size:.8125rem;color:var(--warn);background:#fff6e7;border-left:3px solid #dbb568;padding:10px 12px;margin:12px 0 0}.row-warning p{margin:0}.row-warning p+p{margin-top:4px}.row-source{margin-top:12px;background:#f5f7f7;border:1px solid var(--line);border-radius:8px;padding:10px}.row-source summary{font-size:.8125rem;cursor:pointer;font-weight:600;min-height:28px}.crop-scroll{overflow:auto;background:white;margin-top:8px;max-height:340px}.crop-scroll canvas{display:block;width:100%;min-width:690px;height:auto}.source-instruction{font-size:.75rem;color:var(--muted);margin:8px 0 0}.section-notes{font-size:.8125rem;color:var(--muted);margin:12px 24px 20px;padding:12px;border-left:2px solid #b4cdd2}.absence-label{font-size:.875rem;font-weight:600;color:#486975;margin:0 0 12px}.alias-note{font-size:.8125rem;color:var(--muted);margin:8px 24px}.neutral-tip{color:var(--muted);font-size:.8125rem;padding:14px 0 0}.neutral-tip p{margin:0}footer{border-top:1px solid var(--line);margin-top:24px;padding:22px 0 28px;display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:.75rem}footer p{margin:0}dialog{width:min(1120px,95vw);max-height:93vh;border:1px solid #bfd1d4;border-radius:14px;padding:22px;color:var(--ink)}dialog::backdrop{background:#06252ccc;backdrop-filter:blur(2px)}.dialog-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.dialog-heading .eyebrow{margin-bottom:4px}.secondary-button,select{background:white;border:1px solid #b8ccd1;border-radius:7px;min-height:42px;padding:8px 14px;color:var(--ink);font-size:.875rem}.secondary-button:hover{background:#edf5f6}.viewer-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0 8px;font-size:.875rem}.viewer-controls label{margin-left:auto}#viewer-status{font-size:.875rem;color:var(--muted);margin:8px 0}.page-surface{overflow:auto;max-height:65vh;background:#dae3e6;min-height:120px}.page-surface canvas{display:block;margin:auto}.error{color:#934231}
@media(min-width:1000px){.intro{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.intro .eyebrow{grid-column:1/-1}.intro-copy{align-self:center;margin:0;max-width:350px}}
@media(max-width:1199px){main{padding:22px 36px 0}.masthead{padding:24px 36px}}
@media(max-width:740px){.masthead{padding:19px 20px}.privacy-label{display:none}main{padding:16px 20px 0}h1 br{display:block}.intro{padding-bottom:24px}.intro-copy{font-size:.9375rem;max-width:340px}.workspace{grid-template-columns:1fr}.file-panel,.search-panel{padding:22px}.file-panel{border-right:0;border-bottom:1px solid var(--line)}.file-heading{margin-bottom:14px}.search-panel label{margin-top:0}.file-picker{width:100%}.results-bar{align-items:start}.results-bar h2{font-size:1rem}.results-bar p{font-size:.8125rem;text-align:right}.fields{grid-template-columns:1fr 1fr;gap:16px 20px}.fields dt{font-size:.8125rem}.fields dd{font-size:1.05rem}.fields .time-field{background:#f0f6f7;padding:12px;border-radius:7px}.time-help{font-size:.8125rem}.assignment{margin:0 18px;padding:15px 0 20px}.person-heading{padding:18px}.person-heading h3{font-size:1.2rem}.section-title{padding-left:18px}.badge{font-size:.75rem}.empty-state{padding:34px 8px}.notice{padding:14px}footer{display:block}footer p+p{margin-top:7px}.viewer-controls{gap:8px}.viewer-controls label{margin-left:0}dialog{padding:16px}.dialog-heading h2{font-size:1rem}.crop-scroll canvas{min-width:800px}}
.source-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:.8125rem;margin-top:8px}.source-toolbar select{min-height:36px;padding:4px 8px}.crop-scroll canvas{min-width:1100px}.extra-fields{display:flex;gap:30px;margin:14px 0 0}.extra-fields dt{font-size:.75rem;font-weight:600;color:var(--muted)}.extra-fields dd{font-size:.875rem;margin:3px 0 0}.person-heading>div{min-width:0}.person-heading h3{overflow-wrap:anywhere}h1 br{display:block}
@media(prefers-reduced-motion:no-preference){.person{animation:appear .18s ease-out}@keyframes appear{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}}

/* Three views share the same source records and on-demand original-row viewer. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.view-toolbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 0 0}
.view-toolbar p{font-size:.8125rem;color:var(--muted);margin:0}
.view-switch{display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:#e5edef;border:1px solid #cfdee1;border-radius:10px}
.view-switch button{min-height:44px;padding:9px 18px;border:0;border-radius:7px;color:var(--muted);background:transparent;font-size:.875rem;font-weight:650}
.view-switch button[aria-pressed=true]{background:var(--teal);color:white;box-shadow:0 2px 4px #103c451a}
.view-switch button:hover{box-shadow:inset 0 0 0 1px #75959d}
.person-heading{flex-wrap:wrap}.section-title{letter-spacing:.035em;text-transform:none;overflow-wrap:anywhere}
.compact-entry{padding:0;margin:0 24px}.compact-summary{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(100px,auto);align-items:center;gap:12px;list-style:none;cursor:pointer;padding:12px 0;min-height:60px}
.compact-summary::-webkit-details-marker{display:none}
.compact-summary:hover{background:#f7fafb}.entry-details[open]>.compact-summary{border-bottom:1px solid var(--line)}
.entry-number{display:grid;place-items:center;background:#e6eff1;color:var(--teal);width:26px;height:26px;border-radius:5px;font-size:.75rem;font-weight:750;font-variant-numeric:tabular-nums}
.compact-grid{display:grid;grid-template-columns:.55fr 1.1fr 1fr 1fr;gap:14px;min-width:0}
.compact-cell{display:block;min-width:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:.9375rem}
.compact-cell strong{font-weight:650}.compact-label{display:block;font-size:.6875rem;font-weight:600;color:var(--muted);margin-bottom:2px}
.compact-absence{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.entry-indicators{display:flex;flex-wrap:wrap;align-items:center;justify-content:end;gap:4px 7px;max-width:240px;font-size:.6875rem}
.detail-tag{border:1px solid #cbdcde;border-radius:4px;padding:1px 5px;color:#48676f;background:#f8fbfb}
.entry-indicators .warning-tag{font-size:.75rem}.expand-label{display:block;flex-basis:100%;text-align:right;color:#175c6b;font-size:.6875rem}.expand-label::after{content:' +';font-weight:800}.entry-details[open] .expand-label::after{content:' −'}
.entry-body{padding:4px 0 16px}.extra-fields{flex-wrap:wrap}.extra-fields>div{min-width:0;flex:1 1 130px}.extra-fields dd{overflow-wrap:anywhere;white-space:pre-wrap}.entry-body .assignment-index{margin-bottom:6px}
.table-scroll{max-width:100%;overflow:auto;padding:0 0 8px;outline-offset:-3px}
.schedule-table{width:100%;min-width:1100px;border-collapse:collapse;font-size:.8125rem;text-align:left;line-height:1.45}
.schedule-table.absence{min-width:660px}.schedule-table.overtime{min-width:950px}
.schedule-table th{background:#eff5f6;font-size:.6875rem;font-weight:700;color:#44636b;white-space:nowrap}
.schedule-table th,.schedule-table td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.schedule-table td{max-width:210px;white-space:pre-wrap;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.schedule-table th:first-child,.schedule-table td:first-child{padding-left:24px}.schedule-table .full-entry:nth-of-type(4n+3){background:#f9fbfb}
.schedule-table .source-link{font-size:.75rem;white-space:nowrap}.schedule-table .warning-tag{display:block;font-size:.75rem}
.schedule-table .time-help{white-space:normal;min-width:85px}.table-source>td{padding:0 24px 12px!important}.table-source .row-warning{margin-top:4px}.table-source .row-source{margin-top:6px}.category-row th{text-align:left;background:#e3edf0;font-size:.8125rem}
.timeline-day{padding-bottom:16px}.timeline-day+.timeline-day{border-top:2px solid var(--line)}
.shift-range{display:flex;gap:28px;align-items:center;padding:6px 24px 18px;font-variant-numeric:tabular-nums}.shift-range .printed-value{font-size:1.6rem;font-weight:700;letter-spacing:-.035em}.shift-range .compact-label{font-size:.75rem}.shift-range .time-help{letter-spacing:0;font-weight:500}.range-arrow{color:#7b999f;font-size:1.5rem}
.timeline-scroll{max-width:100%;overflow:auto;outline-offset:-3px;padding:4px 24px 8px}
.timeline-canvas{min-width:640px;padding:0 28px}
.timeline-axis{position:relative;height:3rem;color:#516f77;font-size:.75rem;font-variant-numeric:tabular-nums}
.axis-tick{position:absolute;transform:translateX(-50%);text-align:center;white-space:nowrap}.axis-tick small{display:block;font-size:.625rem}
.timeline-plot{position:relative;border-top:1px solid #bed1d6;border-bottom:1px solid #d6e2e5;background:#f5f9fa}
.plot-gridline{position:absolute;top:0;bottom:0;border-left:1px solid #dde7e9;pointer-events:none}
.next-day-band{position:absolute;top:0;bottom:0;background:#eaf0f7}
.timeline-block{position:absolute;height:3.2rem;display:flex;align-items:center;justify-content:center;gap:8px;overflow:hidden;border:1px solid #174e59;border-radius:6px;background:#205d68;color:white;padding:0 3px;font-size:.8125rem;font-weight:650;font-variant-numeric:tabular-nums;box-shadow:0 2px 3px #17363d12}
.timeline-block:hover{filter:brightness(1.13);z-index:1}.timeline-block:focus-visible{z-index:2;outline-offset:2px}.timeline-block.has-warning{border:2px dashed #f7cd70}.block-number{flex-shrink:0}.block-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-block.kind-standby,.swatch.kind-standby{background:#d7e8f8;color:#234b76;border-color:#6387ad}
.timeline-block.kind-unavailable,.swatch.kind-unavailable{background:repeating-linear-gradient(135deg,#f6e5cf,#f6e5cf 7px,#eed8ba 7px,#eed8ba 9px);color:#674821;border-color:#aa7d41}
.timeline-legend{display:flex;flex-wrap:wrap;gap:10px 20px;padding:9px 24px 0;font-size:.75rem;color:var(--muted)}.legend-item{display:inline-flex;gap:6px;align-items:center}.swatch{width:12px;height:12px;border:1px solid #174e59;border-radius:3px;background:#205d68}
.timeline-help,.timeline-notice{margin:12px 24px;font-size:.8125rem;color:var(--muted)}.timeline-notice{padding:10px 12px;background:#fff6e7;color:var(--warn);border-left:3px solid #dbb568}.no-timeline{padding:18px;border:1px dashed #bcd0d5;border-radius:8px}
.timeline-list-title{font-size:.9375rem;margin:20px 24px 0;letter-spacing:-.01em}.timeline-view .section-title{padding-top:12px;font-size:.75rem}.timeline-day>h4.section-title{font-size:.875rem;padding-top:18px}
.unplotted-reason{color:var(--warn);font-size:.75rem;margin:10px 0 0}.entry-number.kind-standby{background:#d7e8f8;color:#234b76}.entry-number.kind-unavailable{background:#f6e5cf;color:#674821}
.horizontal-hint{display:none;font-size:.75rem;color:#496c77;margin:0 18px 10px}
@media(max-width:740px){
  .horizontal-hint{display:block}
  .view-toolbar{gap:8px}.view-switch{width:100%}.view-switch button{flex:1;padding:9px 8px}.compact-entry{margin:0 18px}
  .compact-summary{grid-template-columns:24px minmax(0,1fr);gap:8px;padding:12px 0}.compact-grid{grid-template-columns:1fr 1fr;gap:7px 12px}.compact-absence{grid-template-columns:1fr;gap:7px}.compact-cell{font-size:.875rem}
  .entry-indicators{grid-column:2;justify-content:start;max-width:none}.expand-label{flex-basis:auto;text-align:left;margin-left:auto}.compact-label{font-size:.625rem}.entry-indicators .warning-tag{font-size:.6875rem}.entry-number{width:23px;height:23px;align-self:start;margin-top:3px}
  .shift-range{padding:6px 18px 14px;gap:18px;flex-wrap:wrap}.shift-range .printed-value{font-size:1.35rem}.timeline-scroll{padding-left:18px;padding-right:18px}.timeline-help,.timeline-notice{margin-left:18px;margin-right:18px}.timeline-legend{padding-left:18px;padding-right:18px}.timeline-list-title{margin-left:18px;margin-right:18px}
}
