:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}body{color:#111;background:#fff;margin:0}#root{min-height:100svh}.app{margin:0 auto;padding:1.5rem}.app--centered{flex-direction:column;justify-content:center;max-width:420px;min-height:100svh;display:flex}main{flex-direction:column;gap:1.25rem;display:flex}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}header h1{margin:0;font-size:1.25rem}nav{align-items:center;gap:.5rem;display:flex}nav a,nav button{cursor:pointer;color:inherit;background:0 0;border:1px solid;border-radius:6px;padding:.4rem .9rem;text-decoration:none}nav a.active{color:#fff;background:#4f46e5;border-color:#4f46e5}.card{border:1px solid #7f7f7f4d;border-radius:10px;padding:1.25rem 1.5rem}.field{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.field--checkbox,.field--inline{flex-direction:row;align-items:center;gap:.5rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #7f7f7f40;padding:.5rem .6rem}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{background:#7f7f7f14}.hint{opacity:.7;font-size:.9em}.error{color:#dc2626;font-size:.9em}.status{letter-spacing:.02em;border-radius:999px;padding:.15rem .55rem;font-size:.75em;font-weight:600;display:inline-block}.status--neutral{background:#7f7f7f33}.status--active{color:#1d4ed8;background:#dbeafe}.status--done{color:#15803d;background:#dcfce7}.status--warn{color:#a16207;background:#fef9c3}.status--blocked{color:#b91c1c;background:#fee2e2}.status--skipped{color:#6d28d9;background:#ede9fe}.status-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.job-list__batch-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;font-size:1.1em;font-weight:600;display:flex}.status-filter{cursor:pointer;color:inherit;background:0 0;border:1px solid #7f7f7f66;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.85em;display:inline-flex}.status-filter:hover{background:#7f7f7f1a}.status-filter--active{color:#fff;background:#4f46e5;border-color:#4f46e5}.status-filter__count{opacity:.8;font-weight:600}.status-filter--active .status-filter__count{opacity:1}.meta-grid{grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:.75rem 0;display:grid}.meta-grid dt{opacity:.7}.meta-grid dd{margin:0}.json-block{border:1px solid #7f7f7f40;border-radius:8px;margin-bottom:.75rem;padding:.5rem .75rem}.json-block summary{cursor:pointer;font-weight:600}.json-block pre{background:#7f7f7f14;border-radius:6px;margin-top:.5rem;padding:.75rem;font-size:.85em;overflow-x:auto}.review-page__header{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.review-page__header h2{align-items:center;gap:.6rem;margin:0;display:flex}.review-page__nav-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.review-page__header-main{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;display:flex}.review-page__header-info{flex-direction:column;flex:260px;gap:.4rem;min-width:260px;display:flex}.review-page__header-review{flex-direction:column;flex:320px;gap:.75rem;min-width:280px;max-width:440px;display:flex}.job-prev-next{align-items:center;gap:.75rem;font-size:.9em;display:flex}.review-page__downloads{align-items:center;gap:.5rem;font-size:.9em;display:flex}.review-page__downloads button{cursor:pointer;padding:.3rem .75rem}.review-page__downloads button:disabled{cursor:not-allowed;opacity:.5}.jump-to-job{align-items:center;gap:.5rem;font-size:.9em;display:flex}.jump-to-job label{opacity:.7}.jump-to-job input{border:1px solid #7f7f7f66;border-radius:6px;width:6rem;padding:.25rem .5rem}.jump-to-job button{cursor:pointer;padding:.25rem .75rem}.review-panes{box-sizing:border-box;gap:1rem;width:100vw;height:75vh;min-height:500px;margin-left:-50vw;padding:0 1.5rem;display:flex;position:relative;left:50%}.review-pane{border:1px solid #7f7f7f4d;border-radius:10px;flex-direction:column;flex:50%;min-width:0;display:flex;overflow:hidden}.paneHeader{letter-spacing:.01em;background:#7f7f7f14;border-bottom:1px solid #7f7f7f40;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .9rem;font-weight:600;display:flex}.paneHeader__actions{align-items:center;gap:.75rem;font-size:.85em;font-weight:400;display:flex}.review-panes--pdf-expanded .review-pane--pdf{z-index:1000;background:#fff;border-radius:0;position:fixed;inset:0}.review-panes--pdf-expanded .review-pane--grid{display:none}.review-pane--pdf iframe{border:none;flex:1;width:100%}.review-pane--pdf .hint{padding:.9rem}.review-pane--grid{padding:.9rem;overflow-y:auto}.review-section{border-bottom:1px solid #7f7f7f33;margin-bottom:1.5rem;padding-bottom:1.5rem}.review-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.review-section h3{text-transform:uppercase;letter-spacing:.03em;opacity:.7;margin:0 0 .75rem;font-size:.95em}.px-panel{flex-direction:column;gap:.5rem;display:flex}.px-row{grid-template-columns:6rem 1fr;align-items:start;gap:.75rem;display:grid}.px-label{opacity:.7;padding-top:.1rem;font-size:.9em}.px-value{font-size:.95em}.px-muted{opacity:.6;font-style:italic}.legend-chips{flex-wrap:wrap;gap:.4rem;display:flex}.legend-chip{background:#7f7f7f1f;border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .6rem .15rem .15rem;font-size:.85em;display:inline-flex}.legend-swatch{border:1px solid #7f7f7f66;border-radius:50%;flex-shrink:0;width:.9rem;height:.9rem}.legend-code{color:#000;font-size:.85em;font-weight:700}.legend-text{opacity:.85}.legend-editor{flex-direction:column;gap:.5rem;display:flex}.legend-editor__generated-badge{color:#a16207;cursor:help;background:#fef9c3;border-radius:999px;align-self:flex-start;padding:.15rem .6rem;font-size:.8em;font-weight:600;display:inline-block}.legend-editor__actions{gap:.5rem;display:flex}.batch-detail__actions{align-items:center;gap:1rem;margin:.75rem 0;display:flex}.batch-detail__add-files-form{flex-direction:column;gap:.5rem;margin-bottom:.75rem;display:flex}.batch-detail__view-jobs{margin:.75rem 0 0;font-weight:600}.legend-editor__form{flex-direction:column;gap:.5rem;margin-top:.25rem;display:flex}.legend-editor__row{align-items:center;gap:.4rem;display:flex}.legend-editor__row-remove{cursor:pointer;color:#a00;border:1px solid #7f7f7f66;border-radius:.3rem;flex-shrink:0;width:1.6rem;height:1.6rem;padding:0;font-weight:700;line-height:1}.legend-editor__row input{border:1px solid #7f7f7f66;border-radius:.3rem;padding:.25rem .5rem;font-size:.9em}.legend-editor__hex{width:5.5rem}.legend-editor__code{width:4rem}.legend-editor__text,.legend-editor__note{flex:auto;min-width:8rem}.legend-editor__add-form{border:1px dashed #7f7f7f66;border-radius:.4rem;flex-direction:column;gap:.5rem;padding:.6rem;display:flex}.legend-editor__swatch-picker{flex-wrap:wrap;gap:.4rem;display:flex}.legend-editor__swatch-button{cursor:pointer;border:2px solid #7f7f7f66;border-radius:.3rem;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.legend-editor__swatch-button--selected{border-color:#000}.legend-editor__swatch-count{color:#000;background:#ffffffbf;border-radius:999px;padding:0 .3rem;font-size:.7em;font-weight:700}.legend-editor__add-actions{gap:.5rem;display:flex}.cutoff-date-editor{flex-direction:column;gap:.5rem;display:flex}.cutoff-date-editor__actions{gap:.5rem;display:flex}.cutoff-date-editor__form{flex-direction:column;gap:.5rem;margin-top:.25rem;display:flex}.cutoff-date-editor__input{border:1px solid #7f7f7f66;border-radius:.3rem;align-self:flex-start;padding:.25rem .5rem;font-size:.9em}.cutoff-date-editor__save-row{gap:.5rem;display:flex}.gate-action-panel{background:#7f7f7f0d;border:1px solid #7f7f7f4d;border-radius:8px;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.gate-action-panel__actions{gap:.5rem;display:flex}.gate-action-panel__skip-form{flex-direction:column;gap:.4rem;display:flex}.gate-action-panel__skip-form textarea{resize:vertical;border:1px solid #7f7f7f66;border-radius:.3rem;padding:.4rem .5rem;font-family:inherit;font-size:.9em}.message-body-text{white-space:pre-wrap;flex:1;margin:0;padding:.9rem;font-size:.85em;overflow:auto}.message-attachment-list{flex-direction:column;gap:.5rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.message-attachment-list__item{border:1px solid #7f7f7f40;border-radius:8px;padding:.6rem .75rem}.message-attachment-list__name{font-weight:600}.message-attachment-list__meta{opacity:.7;margin:.15rem 0 .4rem;font-size:.85em}.message-attachment-list__actions{align-items:center;gap:.5rem;display:flex}.message-attachment-preview{border:1px solid #7f7f7f4d;border-radius:8px;flex:1;width:100%;min-height:300px;margin-top:.5rem}.ambiguous-cell-editor{flex-direction:column;gap:1rem;display:flex}.ambiguous-cell-editor__group h4{color:#0009;text-transform:uppercase;letter-spacing:.03em;margin:0 0 .4rem;font-size:.85em}.ambiguous-cell-editor__table{border-collapse:collapse;width:100%;font-size:.9em}.ambiguous-cell-editor__table td{vertical-align:middle;border-bottom:1px solid #7f7f7f33;padding:.3rem .5rem}.legend-editor__save-row{align-items:center;gap:.75rem;margin-top:.25rem;display:flex}.legend-summary{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.legend-summary__pill{background:#7f7f7f26;border-radius:999px;padding:.15rem .6rem;font-size:.8em;font-weight:600;display:inline-block}.legend-summary__pill--match{color:#15803d;background:#dcfce7}.legend-summary__pill--missing{color:#b91c1c;background:#fee2e2}.legend-summary__pill--ambiguous{color:#a16207;background:#fef9c3}.legend-summary__pill--past-date,.legend-summary__pill--future-date{color:inherit;background:#7f7f7f33}.legend-summary__pill--default-legend{color:#a16207;background:#fef9c3}.legend-summary__pill--gap-anomaly,.legend-summary__pill--mismatch{color:#b91c1c;background:#fee2e2}.legend-summary__pill--gap-anomaly-resolved{color:#15803d;background:#dcfce7}.legend-summary__pill--near-miss{color:#6d28d9;background:#ede9fe}.legend-summary__pill--past-date-overlap{color:#c2410c;background:#ffedd5}.review-panel{flex-direction:column;gap:.6rem;font-size:.9em;display:flex}.review-panel__form{border:1px solid #7f7f7f40;border-radius:8px;flex-direction:column;gap:.5rem;padding:.6rem .75rem;display:flex}.review-panel__form .field{gap:.2rem;margin-bottom:0}.review-panel__form textarea{resize:vertical}.review-panel__toggle{gap:.5rem;display:flex}.review-panel__toggle-btn{cursor:pointer;color:inherit;background:0 0;border:1px solid #7f7f7f66;border-radius:6px;padding:.3rem .9rem}.review-panel__toggle-btn--active.review-panel__toggle-btn--pass{color:#15803d;background:#dcfce7;border-color:#15803d}.review-panel__toggle-btn--active.review-panel__toggle-btn--fail{color:#b91c1c;background:#fee2e2;border-color:#b91c1c}.review-panel__new-category{gap:.5rem;margin-top:.5rem;display:flex}.review-panel__new-category input{border:1px solid #7f7f7f66;border-radius:6px;flex:1;padding:.3rem .5rem}.review-panel select,.review-panel textarea{font-family:inherit;font-size:inherit;border:1px solid #7f7f7f66;border-radius:6px;padding:.4rem .5rem}.review-panel__history{max-height:180px;overflow-y:auto}.review-panel__history-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.review-panel__history-item{border:1px solid #7f7f7f33;border-radius:8px;padding:.5rem .6rem}.review-panel__badge{letter-spacing:.02em;border-radius:999px;padding:.15rem .55rem;font-size:.75em;font-weight:600;display:inline-block}.review-panel__badge--pass{color:#15803d;background:#dcfce7}.review-panel__badge--fail{color:#b91c1c;background:#fee2e2}.review-panel__category{opacity:.8;margin-left:.5rem;font-size:.85em}.review-panel__note{margin:.5rem 0 .25rem}.calendar-grid__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.calendar-grid__header h3{margin:0}.zoom-controls{align-items:center;gap:.35rem;font-size:.85em;display:flex}.zoom-controls button{cursor:pointer;padding:.1rem .5rem;line-height:1.4}.zoom-controls span{text-align:center;opacity:.8;min-width:2.5em}.calendar-grid__block{margin-bottom:1.5rem}.calendar-grid__block h3{text-transform:none;letter-spacing:normal;opacity:1;margin:0 0 .5rem;font-size:1.05em;font-weight:700}.calendar-grid__scroll{overflow-x:auto}.calendar-grid__table{border-collapse:collapse;white-space:nowrap}.calendar-grid__table th,.calendar-grid__table td{text-align:center;border:1px solid #7f7f7f40;padding:.3rem .5rem;font-size:.85em}.calendar-grid__cell{cursor:help;position:relative}.calendar-grid__cell:after{content:"!";color:#fff;background:#c0392b;border-radius:50%;justify-content:center;align-items:center;width:11px;height:11px;font-size:9px;font-weight:700;line-height:1;display:flex;position:absolute;top:-1px;right:0}.calendar-grid__cell--match:after{content:"✓";opacity:.85;background:#2e7d32;width:9px;height:9px;font-size:7px}.calendar-grid__cell--ambiguous:after{content:"?";background:#b8860b}.calendar-grid__cell--past-date:after{content:"»";background:#90a4ae;width:9px;height:9px;font-size:7px}.calendar-grid__cell--future-date:after{content:"«";background:#00838f;width:9px;height:9px;font-size:7px}.calendar-grid__cell--near-miss:after{content:"~";background:#6d28d9;width:9px;height:9px;font-size:8px}.calendar-grid__cell--past-date-overlap:after{content:"!";background:#c2410c;width:9px;height:9px;font-size:8px}.calendar-grid__room-col{text-align:left;background:#fff;min-width:140px;position:sticky;left:0}.batch-phase-bar{flex-wrap:wrap;gap:1.5rem;display:flex}.batch-phase-action{flex-direction:column;gap:.3rem;max-width:22rem;display:flex}.phase-actions{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.link-button{color:#4f46e5;cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.manual-phase2-form{border:1px solid #7f7f7f4d;border-radius:8px;flex-direction:column;gap:.5rem;width:100%;max-width:24rem;padding:.75rem;display:flex}.manual-phase2-form label{opacity:.85;flex-direction:column;gap:.25rem;font-size:.85em;display:flex}.manual-phase2-form textarea{resize:vertical;font-family:monospace;font-size:.85em}
