*, *::before, *::after { box-sizing: border-box; } html { color-scheme: light dark; background: var(--bg); color: var(--text); } body { margin: 0; min-width: 0; background: var(--bg); color: var(--text); } #root { min-width: 0; } .review-room { width: 100%; max-width: 1200px; margin-inline: auto; padding: 32px 20px 48px; } .page-header { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin-bottom: 24px; } .page-introduction { min-width: 0; } .page-introduction h1 { margin: 0; font-size: 32px; line-height: 1.15; font-weight: 600; overflow-wrap: anywhere; } .page-introduction p { margin: 8px 0 0; color: var(--text-secondary); font-size: 16px; line-height: 1.5; } .approval-summary { margin: 0; font-size: 16px; line-height: 1.5; } .toolbar { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 24px; min-width: 0; } .search-field { width: 100%; max-width: 360px; min-width: 0; } .search-field input { width: 100%; min-width: 0; min-height: 44px; } .status-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; max-width: 100%; min-width: 0; } .status-filters button[aria-pressed="true"] { background: var(--table-alt); color: var(--text); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; } .collection { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 24px; margin: 0; padding: 0; list-style: none; } .collection > li { min-width: 0; } .work-card { display: flex; flex-direction: column; align-items: stretch; gap: 12px; min-width: 0; } .thumbnail { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--table-alt); } .work-card h2 { margin: 0; font-size: 18px; line-height: 1.35; font-weight: 600; overflow-wrap: anywhere; } .work-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; min-width: 0; font-size: 14px; line-height: 1.5; } .work-meta p { margin: 0; color: var(--text-secondary); overflow-wrap: anywhere; } .status-badge { max-width: 100%; font-size: 14px; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; text-transform: none; } .review-button { align-self: flex-start; } .empty-state { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding-block: 24px; } .empty-state h2 { margin: 0; font-size: 24px; line-height: 1.3; font-weight: 600; } .empty-state p { max-width: 48ch; margin: 0; color: var(--text-secondary); font-size: 16px; line-height: 1.5; } .review-dialog { width: min(1040px, calc(100vw - 32px)); max-width: calc(100vw - 32px); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); min-width: 0; margin: auto; padding: 24px; overflow-y: auto; overscroll-behavior: contain; background: var(--bg); color: var(--text); box-shadow: none; } .review-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 24px; min-width: 0; } .review-image-column { min-width: 0; } .review-image { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; } .review-controls { display: flex; flex-direction: column; gap: 12px; min-width: 0; } .review-title { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 600; overflow-wrap: anywhere; } .review-project { margin: 0; color: var(--text-secondary); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; } .saved-feedback { display: flex; flex-direction: column; gap: 8px; min-width: 0; } .saved-feedback h3 { margin: 0; font-size: 14px; line-height: 1.5; font-weight: 600; } .saved-feedback p { margin: 0; font-size: 14px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; } .feedback-field { min-width: 0; width: 100%; } .feedback-field textarea { display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 132px; font-size: 16px; line-height: 1.5; resize: vertical; } .review-actions { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; } .review-message { min-height: 1.5em; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; } .review-message p { margin: 0; } .review-room button, .review-dialog button { min-height: 44px; min-width: 44px; max-width: 100%; white-space: normal; text-transform: none; box-shadow: none; } .review-room :is(button, input, textarea):focus-visible, .review-dialog :is(button, input, textarea):focus-visible { outline: 2px solid var(--text); outline-offset: 3px; } @media (min-width: 640px) { .collection { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 768px) { .review-room { padding-inline: 24px; } .page-header { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; } .review-layout { grid-template-columns: minmax(0, 1fr) 320px; } } @media (min-width: 1024px) { .toolbar { flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; } .search-field { flex: 1 1 280px; } .status-filters { flex: 0 1 auto; justify-content: flex-end; } .collection { grid-template-columns: repeat(3, minmax(0, 1fr)); } }