.critique-page {
    min-width: 0;
    padding-bottom: 4.5rem;
    color: var(--text);
}

.critique-heading > div { min-width: 0; }
.critique-heading.today-heading h1 {
    margin-bottom: 0.5rem;
    line-height: 1.2;
}
.critique-heading:not(.today-heading) {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.25rem;
}
.critique-heading-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.critique-heading > a { flex: 0 0 auto; }

.critique-section-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1.25rem 0;
}

.critique-location-content { min-width: 0; }
/* Keep tab titles aligned with the billing heading's refresh control. */
.critique-tab-heading { min-height: 2.5rem; }
.critique-section-heading h2 { font-size: 1.28rem; margin: 0; }
.critique-section-heading p { margin: 0.45rem 0 0; color: var(--muted); }

.critique-heading .critique-locations-back,
.assessment-heading .critique-reports-back {
    display: flex;
    width: fit-content;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
}

.critique-locations-back .back-link-icon,
.critique-reports-back .back-link-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask: url('/assets/back.svg') center / contain no-repeat;
    mask: url('/assets/back.svg') center / contain no-repeat;
}

.critique-card {
    border: var(--card-border);
    border-radius: var(--card-radius);
    background: var(--card-fill);
    padding: 1.5rem;
    margin: 1.25rem 0;
    box-shadow: var(--surface-shadow);
}
.critique-card h2 { font-size: 1.28rem; margin: 0 0 0.875rem; }
.critique-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.25rem;
}
.critique-location-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
}
.critique-location {
    display: block;
    min-width: 0;
    padding: 1rem 1.1rem;
    border: var(--card-border);
    border-radius: 0.95rem;
    background: var(--card-fill);
    color: inherit;
    font-weight: 600;
    overflow-wrap: anywhere;
    text-decoration: none;
}
.critique-location-empty p { margin: 0; }
.critique-location:hover {
    border-color: var(--accent);
    background: var(--accent-hover-background);
}
.critique-page a:where(:not(.critique-primary, .critique-location, .critique-tabs a)) { color: var(--accent); }

.critique-upload-preview { margin: 0; min-width: 0; }
.critique-upload-preview figcaption { margin-top: 0.625rem; }
.critique-page progress { width: 100%; accent-color: var(--accent); }
.critique-page #check-plate { scroll-margin-top: 1.5rem; }

.critique-page label {
    display: flex;
    flex-direction: column;
    gap: 0.4375rem;
    margin: 0.875rem 0;
    font-weight: 600;
}
.critique-page input,
.critique-page select,
.critique-page textarea {
    font: inherit;
    font-weight: 400;
    border: 1px solid var(--line-strong);
    border-radius: 0.5rem;
    padding: 0.6875rem 0.75rem;
    background: var(--panel-strong);
    color: var(--text);
    max-width: 100%;
    width: 100%;
}
.critique-page input[type=checkbox] { width: auto; margin-right: 0.5rem; accent-color: var(--accent); }
.critique-page label:has(input[type=checkbox]) { display: block; }
.critique-page textarea { min-height: 5rem; }
.critique-page button { cursor: pointer; }
.critique-page .auth-button,
.critique-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border: 1px solid rgba(31, 91, 169, 0.2);
    padding: 0.625rem 1rem;
    border-radius: 0.55rem;
    background: rgba(31, 91, 169, 0.06);
    color: var(--accent);
    font: inherit;
    text-decoration: none;
    cursor: pointer;
}
.critique-page .critique-primary,
.critique-page .auth-button {
    background: var(--text);
    color: #fff;
    border-color: var(--text);
}
.critique-page .critique-primary { margin-top: 0.875rem; }
.critique-page .critique-primary:hover:not(:disabled),
.critique-page .auth-button:hover:not(:disabled) {
    background: #2b2b2b;
    border-color: #2b2b2b;
}
.critique-page button:disabled { opacity: 0.5; cursor: default; }
.critique-page button:focus-visible,
.critique-page a:focus-visible,
.critique-page input:focus-visible,
.critique-page select:focus-visible,
.critique-page textarea:focus-visible {
    outline: 3px solid var(--accent);
    outline-offset: 3px;
}

.critique-hint { font-size: 0.88rem; color: var(--muted); line-height: 1.6; }
.critique-page .settings-toast-positive {
    background: #eef4fb;
    color: var(--accent);
}
.critique-notice {
    border-left: 4px solid var(--warning-accent);
    background: var(--warning-background);
    padding: 0.9375rem 1.125rem;
    border-radius: 0.375rem;
    margin: 1rem 0;
}
.critique-notice.critique-notice-info {
    border-left-color: var(--accent);
    background: var(--accent-soft);
}
.critique-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
    margin: 1.25rem 0;
}
.critique-tabs {
    flex-wrap: wrap;
    max-width: 100%;
    margin: 1.25rem 0;
}
.critique-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}
.critique-tabs a:hover:not([aria-current="page"]) {
    background: rgba(20, 20, 20, 0.06);
    color: var(--text);
}
.critique-page table { width: 100%; border-collapse: collapse; font-size: 0.94rem; }
.critique-page th,
.critique-page td {
    text-align: left;
    padding: 0.875rem 0.75rem;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.critique-page th {
    font-size: 0.79rem;
    letter-spacing: 0.03em;
    color: #000;
    background: transparent;
    border-bottom-color: #000;
}
.critique-table-wrap { overflow: auto; }
.critique-photo {
    width: 100%;
    max-height: 380px;
    object-fit: contain;
    background: rgba(31, 91, 169, 0.06);
    border-radius: 0.625rem;
}
.critique-score { font-size: 2.1rem; font-weight: 650; color: var(--accent); }
.critique-status { font-weight: 600; }
.critique-page details { margin: 1rem 0; }
.critique-page summary { cursor: pointer; }
.critique-allowance { display: flex; flex-wrap: wrap; align-items: center; gap: 0.875rem; }
.critique-page .critique-criterion { border-top: 1px solid var(--line); padding: 1.125rem 0; }
.critique-page .critique-criterion:first-of-type { border-top: 0; }
.critique-billing > .credits-card { margin: 1.25rem 0; }

@media (max-width: 640px) {
    .critique-card { padding: 1.125rem 0.9375rem; }
    .critique-heading:not(.today-heading) { flex-direction: column; gap: 0.625rem; }
    .critique-page th,
    .critique-page td { padding: 0.625rem 0.5rem; }
    .critique-grid { grid-template-columns: 1fr; }
}
/* Staffing follows the shared People cards and modal controls. */
.settings-card .user-card button.staffing-card-open { display:flex; flex:1; min-width:0; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:.35rem; border:0; background:transparent; color:inherit; padding:1rem; text-align:left; cursor:pointer; font:inherit; overflow-wrap:anywhere; }
.critique-location-content .settings-card button.camera-add-trigger { gap:var(--add-link-gap); padding:0; border:0; background:transparent; color:var(--link-button-color); font-size:var(--add-link-font-size); font-weight:700; }
.critique-location-content .settings-card button.camera-add-trigger:hover:not(:disabled) { background:transparent; color:var(--link-button-color); }
.staffing-card-open:hover { background:rgba(0,0,0,.035); }
.staffing-card-open:focus-visible, .worker-chart circle:focus-visible { outline:3px solid #236aab; outline-offset:3px; }
.staffing-row, .settings-card:has(#kitchen-sections-title) .user-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.85rem; padding-right:1rem; border:var(--card-border); background:var(--card-fill); border-radius:.95rem; }
.settings-card:has(#kitchen-sections-title) .user-card:first-of-type { margin-top:0; }
.staffing-heading { display:flex; justify-content:space-between; gap:1rem; align-items:center; flex-wrap:wrap; }
.staffing-heading h2 { margin-bottom:.25rem; }
.staffing-heading > div:last-child { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.staffing-upload { position:relative; overflow:hidden; cursor:pointer; }
.staffing-upload input { position:absolute; inset:0; opacity:0; width:100%; cursor:pointer; }
.staffing-dialog { width:min(680px,calc(100vw - 2rem)); max-height:85dvh; overflow:auto; border:1px solid #d8dce1; border-radius:18px; padding:1.5rem; }
.staffing-dialog::backdrop { background:rgba(15,23,42,.45); }
.staffing-dialog fieldset, .staffing-import-row > fieldset { border:0; padding:0; margin:0; }
.staffing-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.staffing-fields label, .staffing-dialog form > label { display:flex; flex-direction:column; gap:.4rem; }
.staffing-fields input, .staffing-fields select, .staffing-dialog form > label input { width:100%; min-height:42px; padding:.5rem .65rem; border:1px solid #cbd2d9; border-radius:8px; background:#fff; font:inherit; }
.staffing-people { display:grid; gap:.5rem; max-height:240px; overflow:auto; margin:1rem 0 !important; }
.staffing-people label { display:flex; align-items:center; gap:.5rem; padding:.25rem; }
.staffing-import-row { border-top:1px solid #d8dce1; padding:1rem 0; }
.staffing-import-row summary { cursor:pointer; margin-bottom:1rem; font-weight:600; }
.worker-chart { padding:1.5rem; min-width:0; }
.worker-chart .report-table-wrap { min-width:0; max-width:100%; overflow-x:auto; }
.worker-chart table { min-width:36rem; }
.worker-chart-summary, .worker-chart-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,250px); gap:1.5rem; }
.worker-chart-summary { align-items:baseline; margin:.5rem 0 1rem; }
.worker-chart-summary > p { margin:0; }
.worker-chart-summary > p:only-child { grid-column:1 / -1; }
.worker-chart-scroll { overflow-x:auto; }
.worker-chart svg text { font:12px sans-serif; fill:#44515c; }
.worker-series { pointer-events:none; }
.worker-chart circle { cursor:pointer; }
.worker-legend { border:0; margin:0; padding:calc(var(--worker-plot-top) - .8em) 0 0; display:flex; flex-direction:column; gap:.65rem; min-width:0; }
.worker-people-list { display:grid; gap:.65rem; max-height:240px; overflow:auto; }
.worker-chart .worker-legend label:has(input[type=checkbox]) { display:flex; flex-direction:row; justify-content:flex-start; align-items:center; text-align:left; gap:.5rem; margin:0; font-weight:400; line-height:1.6; }
.worker-legend label { display:flex; align-items:center; gap:.5rem; }
.worker-selection-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.worker-chart button.worker-selection-link { min-height:0; padding:0; margin:0; border:0; border-radius:0; background:transparent; color:var(--link-button-color); font:inherit; text-decoration:underline; text-underline-offset:.15em; box-shadow:none; cursor:pointer; }
.worker-chart button.worker-selection-link:hover:not(:disabled) { border:0; background:transparent; color:var(--link-button-color); box-shadow:none; }
.worker-swatch { display:inline-block; width:24px; height:4px; flex-shrink:0; overflow:visible; }
.worker-point-detail { min-height:3em; font-size:.9rem; }
@media(max-width:700px) { .staffing-fields, .worker-chart-summary, .worker-chart-layout { grid-template-columns:1fr; } .worker-chart-summary { gap:.5rem; } .worker-legend { padding-top:0; } .staffing-dialog { padding:1rem; } }
