:root{--red:#ec0928;--black:#050505;--white:#fff;--muted:#626262}*{box-sizing:border-box}body{margin:0;background:#f5f5f3;color:#111;font:16px Arial,sans-serif}body:has(.viewer),body:has(.original-preview){overflow:hidden}header{height:76px;background:#000;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:4px solid var(--red)}header b,h1,h2{font-family:Impact,"Arial Black",sans-serif}header a{color:#fff}main>section{max-width:1120px;margin:auto;padding:48px 5vw}h1{font-size:clamp(44px,8vw,82px);line-height:.88;margin:.25em 0}h2{margin-top:0}button,.actionbar a{font:inherit;font-weight:700;cursor:pointer;border:2px solid #111;background:#111;color:#fff;padding:11px 14px;text-decoration:none}button:hover,.actionbar a:hover{background:var(--red);border-color:var(--red)}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:3px}button:disabled{opacity:.35;cursor:not-allowed}.secondary,.text-button{background:#fff;color:#111}.text-button{border:0;padding-left:0}.notice{color:var(--muted)}.error{color:#a40019;font-weight:700}.success{color:#166534;font-weight:700}.loading,.viewer-loading{color:var(--muted)}.match-context{color:var(--muted)}.match-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}.match-card{text-align:left;background:#fff;color:#111;min-height:130px;display:flex;flex-direction:column;justify-content:end;gap:7px}.match-card strong{font-size:20px}.match-card span{color:var(--muted);font-weight:400}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:26px}.photo-tile{padding:0;aspect-ratio:1;background:#1a1a1a;overflow:hidden;display:grid;place-items:center}.photo-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .18s ease}.photo-tile:hover img{transform:scale(1.03)}.photo-tile-error{font-size:13px;padding:12px;color:#fff}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0}.team-access-card,.team-code-form,.team-revoke{max-width:650px;background:#fff;padding:26px;margin-top:22px;border-top:4px solid var(--red)}.season-name{font-size:28px;font-weight:700;margin:.35rem 0}.team-code-form{display:grid;gap:16px}.team-code-form label{display:grid;gap:7px;font-weight:700}.team-code-form input{width:100%;padding:12px;border:2px solid #111;background:#fff;font:inherit}.form-actions{display:flex;gap:12px;flex-wrap:wrap}.drop-zone{width:100%;min-height:180px;margin:22px 0;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;background:#fff;color:#111;border:2px dashed #777}.drop-zone.dragging{border-color:var(--red);background:#fff4f5}.viewer{position:fixed;inset:0;z-index:10000;background:#000;color:#fff;display:grid;grid-template-columns:76px minmax(0,1fr) 76px;align-items:center;padding:72px 20px 24px;overflow-y:auto}.viewer figure{margin:0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.viewer figure img{max-width:100%;max-height:calc(100vh - 230px);object-fit:contain;display:block}.viewer-close{position:fixed;z-index:2;right:22px;top:18px;background:#fff;color:#111}.viewer-nav{align-self:center;width:58px;height:72px;font-size:52px;line-height:1;padding:0;background:#000;border-color:#fff}.viewer-nav:hover{background:var(--red);border-color:var(--red)}.viewer-status{margin:0;color:#d0d0d0;font-size:14px}.actionbar{width:100%;display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.actionbar .danger,.modal .danger{background:var(--red);border-color:var(--red);color:#fff}.actionbar .error{flex-basis:100%;margin:0;text-align:center}.original-preview{position:fixed;inset:0;z-index:10002;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:#000;color:#fff}.original-preview-back{justify-self:end;background:#fff;color:#111}.original-preview figure{min-height:0;overflow:auto}.original-preview figure img{width:auto;height:auto;max-width:100%;max-height:none;object-fit:contain}.original-preview .error{color:#fff;text-align:center}.modal{position:fixed;inset:0;z-index:10001;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.72)}.modal>div{width:min(430px,100%);background:#fff;color:#111;padding:28px;box-shadow:0 16px 48px #000}.modal-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:24px}@media(max-width:720px){main>section{padding:34px 5vw}.match-list{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.viewer{grid-template-columns:48px minmax(0,1fr) 48px;padding:68px 6px 18px}.viewer-close{right:10px;top:12px}.viewer-nav{width:42px;height:64px;font-size:42px}.viewer figure img{max-height:calc(100vh - 270px)}.actionbar{padding:0 8px}.actionbar>*{width:100%;text-align:center}.original-preview{padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left))}.original-preview figure img{max-width:100%}.modal-actions>*,.form-actions>*{width:100%}}@media(min-width:721px) and (max-width:960px){.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.match-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:Impact,"Arial Black",sans-serif;letter-spacing:.06em}.brand img{display:block;width:auto;height:43px;max-width:160px;object-fit:contain}.brand span{font-size:20px}header nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.nav-button{padding:6px 8px;border-color:transparent;background:transparent;color:#fff;font-size:13px}.nav-button:hover{border-color:var(--red)}.login-card,.match-form{max-width:560px;background:#fff;border-top:5px solid var(--red);padding:30px;display:grid;gap:17px;margin:3vh auto}.login-card label,.match-form label{display:grid;gap:7px;font-weight:700}.login-card input,.match-form input,.match-form select{width:100%;padding:12px;border:2px solid #111;background:#fff;font:inherit}.dashboard-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}.dashboard-cards section{background:#fff;border-top:4px solid var(--red);padding:22px;display:grid;gap:8px}.dashboard-cards strong{font-size:28px}.dashboard-cards span{color:var(--muted)}@media(max-width:720px){header{height:auto;min-height:76px;padding:10px 5vw;gap:10px;align-items:flex-start}.brand img{height:34px;max-width:125px}.brand span{font-size:16px}header nav{gap:1px}.nav-button{padding:5px;font-size:12px}.dashboard-cards{grid-template-columns:1fr}.login-card,.match-form{padding:22px;margin:0}.match-form{margin-top:22px}}

/* Chronological gallery controls; compact on touch devices. */
.gallery-sort{display:inline-flex;align-items:center;gap:8px;margin-top:4px;font-weight:700}.gallery-sort select{min-height:40px;padding:7px;border:2px solid #111;background:#fff;font:inherit}.photo-tile{position:relative}.photo-date{position:absolute;right:7px;bottom:7px;background:rgba(0,0,0,.78);color:#fff;padding:3px 5px;font-size:12px}@media(max-width:720px){.gallery-sort{font-size:14px}.gallery-sort select{min-height:36px;padding:5px;font-size:14px}}

.refresh-status{font-size:12px;color:#d8d8d8;max-width:150px}.refresh-status.success{color:#b7f7c2}@media(max-width:720px){.refresh-status{display:none}}

/* Administration UX */
header{position:sticky;top:0;z-index:1000}.match-admin-card{display:grid;gap:0;background:#fff;border-top:4px solid var(--red)}.match-admin-card .match-card{border:0;min-height:0}.match-delete{width:100%;background:#7b1020;border-color:#7b1020}.trash-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto auto;gap:12px;align-items:center;background:#fff;padding:12px;margin:10px 0;border-left:4px solid #888}.trash-row .notice{margin:0}.trash-thumb{width:72px;height:54px;object-fit:cover;background:#ddd}.gallery-back,.gallery-top{position:fixed;z-index:20;bottom:16px;box-shadow:0 4px 16px rgba(0,0,0,.25)}.gallery-back{left:16px}.gallery-top{right:16px;border-radius:50%;width:48px;height:48px;padding:0}@media(max-width:720px){.trash-row{grid-template-columns:56px minmax(0,1fr);}.trash-thumb{width:56px;height:48px}.trash-row button{width:100%}.match-admin-card{margin-bottom:12px}}

/* Landscape phone viewer: controls overlay black space instead of reserving photo height. */
@media(max-width:900px) and (orientation:landscape){.viewer{display:block;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:hidden}.viewer figure{position:relative;width:100%;height:100%;gap:0}.viewer figure img{max-width:100%;max-height:100%}.viewer-close{position:absolute;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));padding:6px 8px;font-size:12px}.viewer-nav{position:absolute;z-index:2;top:50%;width:38px;height:46px;transform:translateY(-50%);font-size:38px;background:rgba(0,0,0,.72)}.viewer-previous{left:max(4px,env(safe-area-inset-left))}.viewer-next{right:max(4px,env(safe-area-inset-right))}.viewer-status{position:absolute;z-index:2;top:max(8px,env(safe-area-inset-top));left:50%;margin:0;padding:4px 7px;transform:translateX(-50%);border-radius:3px;background:rgba(0,0,0,.72);font-size:12px}.actionbar{position:absolute;z-index:2;right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));width:auto;max-width:calc(100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right));padding:0;gap:6px;justify-content:flex-end}.actionbar>*{width:auto;padding:7px 9px;font-size:12px}.actionbar .error{max-width:210px;font-size:12px}}

/* Privacy-friendly administrator statistics. */
.statistics-intro{max-width:760px;color:var(--muted)}.statistics-filters{display:flex;gap:14px;flex-wrap:wrap;margin:24px 0}.statistics-filters label{display:grid;gap:6px;font-weight:700}.statistics-filters select{min-width:190px;padding:10px;border:2px solid #111;background:#fff;font:inherit}.statistics-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.statistics-cards strong{overflow-wrap:anywhere}.statistics-section{margin-top:38px}.table-scroll{overflow-x:auto;background:#fff}.statistics-section table{width:100%;border-collapse:collapse;min-width:700px}.statistics-section th,.statistics-section td{text-align:left;padding:12px 14px;border-bottom:1px solid #ddd;vertical-align:top}.statistics-section th{background:#111;color:#fff;white-space:nowrap}.statistics-section tbody tr:hover{background:#fff4f5}.statistics-section a{color:#a40019;font-weight:700}.activity-chart{height:230px;background:#fff;border-left:2px solid #111;border-bottom:2px solid #111;padding:16px 12px 0;display:flex;align-items:flex-end;gap:5px;overflow-x:auto}.activity-column{height:100%;min-width:24px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.activity-column span{display:block;width:100%;min-height:0;background:var(--red)}.activity-column small{font-size:10px;writing-mode:vertical-rl;transform:rotate(180deg);height:38px;color:var(--muted)}.storage-summary{margin:36px 0 0;padding:18px;background:#fff;border-left:4px solid var(--red);font-weight:700}@media(max-width:720px){.statistics-filters{display:grid}.statistics-filters select{width:100%}.statistics-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.statistics-cards strong{font-size:22px}.activity-chart{height:200px}.statistics-section{margin-top:30px}}

/* Person recognition administration. All image analysis remains behind admin auth. */
.recognition-intro{max-width:760px;font-size:18px}.recognition-dashboard{grid-template-columns:repeat(4,minmax(0,1fr))}.recognition-summary-card{display:grid;gap:8px;text-align:left;background:#fff;color:#111;border:0;border-top:4px solid var(--red);padding:22px}.recognition-summary-card strong{font-size:28px}.recognition-summary-card span{color:var(--muted)}.recognition-summary-card:hover,.recognition-summary-card:focus-visible{color:#fff}.recognition-summary-card:hover span,.recognition-summary-card:focus-visible span{color:#fff}.recognition-panel,.person-form{background:#fff;border-top:4px solid var(--red);padding:24px;margin:22px 0}.person-form{display:grid;grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) auto auto auto;gap:14px;align-items:end}.person-form label,.recognition-panel>label,.review-controls>label,.recognition-modal label,.review-filter{display:grid;gap:7px;font-weight:700}.person-form input:not([type=checkbox]),.person-form select,.recognition-panel select,.review-controls select,.recognition-modal select,.review-filter select{width:100%;min-height:44px;padding:9px;border:2px solid #111;background:#fff;font:inherit}.check-field{display:flex!important;align-items:center;min-height:44px}.check-field input{width:20px;height:20px}.person-list{display:grid;gap:10px;margin-top:24px}.person-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;gap:12px;align-items:center;background:#fff;padding:18px;border-left:4px solid var(--red)}.person-row.inactive{border-color:#888;opacity:.72}.person-row h2,.person-row p{margin:.2rem 0}.scan-current-status,.scan-session-status{font-weight:700}.scan-workspace{margin-top:22px}.scan-photo-wrap{position:relative;width:fit-content;max-width:100%;background:#111;line-height:0;touch-action:none;user-select:none}.scan-photo-wrap[hidden]{display:none}.scan-photo-wrap.read-only .region-overlay{pointer-events:none}.scan-photo-wrap>img{display:block;max-width:100%;max-height:68vh;object-fit:contain}.scan-preview-toggle{margin-top:8px}.region-overlay{position:absolute;inset:0;cursor:crosshair}.detection-region{position:absolute;z-index:2;border:3px solid #ffdf00;background:rgba(255,223,0,.13);color:#000;padding:2px;min-width:0;min-height:0;text-align:left;font-size:12px;line-height:1}.detection-region.automatic{border-color:#28a9ff;background:rgba(40,169,255,.16)}.detection-region.manual{border-color:#ffdf00;background:rgba(255,223,0,.16)}.detection-region.face-fallback{border-color:#c084fc;background:rgba(192,132,252,.16)}.detection-region.face-detected{box-shadow:0 0 0 2px #35e67a inset}.detection-region.draft{pointer-events:none;border-style:dashed}.scan-save-actions{margin-top:16px}.review-filter{max-width:600px}.review-workspace{display:grid;gap:18px}.review-images{display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,2fr);gap:18px;align-items:start}.review-full-image{position:relative;line-height:0;background:#111}.review-full-image img{display:block;width:100%;height:auto}.review-region{position:absolute;border:3px solid #ffdf00;background:rgba(255,223,0,.12)}.review-crops{display:grid;gap:8px}.review-crops p{margin:4px 0;font-weight:700}.review-crops canvas{display:block;max-width:100%;height:auto;background:#ddd;border:2px solid #111}.review-controls{display:grid;gap:14px}.review-decisions{padding-top:8px;border-top:1px solid #ccc}.review-controls details{color:var(--muted)}.review-new-person{grid-template-columns:1fr 1fr auto auto}.recognition-modal>div{width:min(580px,100%)}.tag-list{display:grid;gap:8px;margin:16px 0}.tag-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #ddd;padding:7px 0}.person-photo-grid{margin-bottom:70px}.person-photo-card{display:grid;gap:0;background:#fff;min-width:0}.person-photo-card .photo-tile{width:100%}.person-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px}.person-photo-actions button{min-width:0;padding:9px 7px;font-size:13px}.person-photo-actions .danger{background:#7b1020;border-color:#7b1020}.tag-correction-person-form{grid-template-columns:1fr;margin:14px 0 0;padding:16px}.tag-correction-modal .modal-actions{align-items:center}

/* Phase 2E-A combined processing: one clear, server-authoritative progress surface. */
.processing-status{white-space:pre-line;font-size:1.05rem;line-height:1.65;padding:14px 16px;border:1px solid #d8e1dc;border-radius:12px;background:#f8fbf9}.new-photo-processing-panel>.form-actions{align-items:stretch}.new-photo-processing-panel>.form-actions button{min-height:46px}.new-photo-processing-workspace{margin-top:18px}

/* Phase 2E-B Lite manual non-face linking; no automated body identity. */
.person-form{grid-template-columns:minmax(210px,2fr) minmax(150px,1fr) minmax(110px,.65fr) auto auto auto}.other-person-filters{display:flex;align-items:end;gap:18px;flex-wrap:wrap;margin:20px 0}.other-person-filters label{display:grid;gap:7px;font-weight:700}.other-person-filters select,.other-person-decisions input[type=search],.other-person-decisions input[type=text]{min-height:44px;padding:9px;border:2px solid #111;background:#fff;font:inherit}.other-person-unlinked{display:flex!important;align-items:center;min-height:44px}.other-person-unlinked input{width:24px;height:24px}.other-person-workflow-status{margin:12px 0}.other-person-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(370px,.8fr);gap:24px;align-items:start}.other-person-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.other-person-card{display:grid;align-content:start;gap:9px;min-width:0;padding:10px;background:#f3f3f1;border:1px solid #c5c5c0;border-top:4px solid #888;opacity:.8}.other-person-card.selected{background:#fff4f5;border-color:var(--red);border-top-color:var(--red);opacity:1}.other-person-visuals{display:grid;gap:8px;min-width:0}.other-person-visuals>.identity-crop{height:230px;min-height:230px;max-height:230px}.other-person-visuals>.identity-crop canvas{max-height:230px}.identity-context-preview{display:grid;gap:4px;min-width:0}.identity-context-preview>strong{font-size:.8rem}.identity-context-frame{position:relative;display:block;min-height:72px;overflow:hidden;background:#111}.identity-context-frame.loaded{min-height:0}.identity-context-frame img{display:block;width:100%;height:auto;background:#111}.identity-context-box{position:absolute;box-sizing:border-box;border:3px solid #ffed00;outline:2px solid rgba(0,0,0,.85);pointer-events:none}.identity-context-status{position:absolute;inset:0;display:grid;place-items:center;padding:8px;color:#fff;background:#333;text-align:center;font-size:.8rem}.other-person-card p{margin:.1rem 0;font-size:.86rem}.other-person-card>button{width:100%}.other-person-choice{display:flex;align-items:center;gap:8px;min-height:40px;font-weight:700}.other-person-choice input{width:25px;height:25px}.other-person-selection-status{font-size:1.05rem;font-weight:700}.other-person-next{width:100%;min-height:48px;margin-top:10px;white-space:normal}.other-person-decisions{position:sticky;top:92px;display:grid;padding:20px;background:#fff;border-top:4px solid var(--red)}.other-person-action-section{display:grid;gap:9px;padding:14px 0;border-bottom:1px solid #ddd}.other-person-action-section:first-child{padding-top:0}.other-person-action-section h3{margin:0}.other-person-action-section label{display:grid;gap:7px;font-weight:700}.other-person-action-section>button,.other-person-action-section input{width:100%}.other-person-recent,.other-person-name-matches,.other-person-number-matches{display:flex;gap:7px;flex-wrap:wrap}.other-person-name-matches{display:grid}.other-person-name-matches .text-button{text-align:left}.other-person-number-matches button{min-height:42px}.other-person-other-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.other-person-other-actions>*{width:100%;min-width:0;min-height:48px;padding:10px 8px;white-space:nowrap;overflow-wrap:normal;word-break:normal}.other-person-action-section .person-form{grid-template-columns:1fr;margin:4px 0;padding:14px}
@media(max-width:1050px){.other-person-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.other-person-layout{grid-template-columns:minmax(0,1fr) minmax(340px,.8fr)}}
@media(max-width:820px){.other-person-layout{grid-template-columns:1fr}.other-person-decisions{position:static}.other-person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.other-person-grid{grid-template-columns:1fr}.other-person-other-actions{grid-template-columns:1fr}.other-person-visuals>.identity-crop{height:320px;min-height:320px;max-height:320px}}

/* Phase 2B identity recognition: conservative, touch-friendly review surfaces. */
.person-photo-actions button{min-height:44px}
.person-tag-visibility{display:block;margin:8px 0 0;padding:5px 8px;border-radius:999px;background:#ececea;color:#333;font-size:.82rem;font-weight:700;text-align:center}.person-tag-visibility.visibility-recognizable{background:#dff3e5;color:#174c2c}.person-tag-visibility.visibility-side_back{background:#fff0d7;color:#684000}
.identity-scan-workspace{display:grid;gap:12px;margin-top:22px}.identity-scan-preview{display:block;max-width:100%;max-height:58vh;object-fit:contain;background:#111}.identity-reference-grid,.identity-proposal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.identity-reference-card,.identity-proposal-card{display:grid;align-content:start;gap:10px;background:#fff;border-top:4px solid var(--red);padding:14px;min-width:0}.identity-reference-card.excluded{border-color:#777;opacity:.68}.identity-reference-card>button,.identity-proposal-card>button{width:100%}.identity-crop{position:relative;width:100%;min-height:150px;max-height:420px;overflow:hidden;background:#111;display:grid;place-items:center}.identity-crop canvas{display:block;width:auto;height:auto;max-width:100%;max-height:420px;object-fit:contain}.identity-crop canvas[hidden]{display:none}.identity-crop-status{color:#fff;padding:18px;text-align:center}.identity-crop-error{color:#fff;padding:18px}.identity-group-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.identity-group-card{display:grid;gap:8px;text-align:left;background:#fff;color:#111;border-color:#111;border-top:4px solid var(--red);min-height:130px}.identity-group-card h2,.identity-group-card p{margin:.15rem 0}.identity-group-card:hover p{color:#fff}.identity-selection-actions{position:sticky;top:80px;z-index:5;background:#f5f5f3;padding:10px 0}.identity-proposal-select{display:flex;align-items:center;gap:7px;min-height:44px;font-weight:700}.identity-proposal-select input{width:22px;height:22px}.identity-proposal-card details{color:var(--muted)}
.identity-live-preview{display:grid;grid-template-columns:minmax(200px,1fr) minmax(320px,2fr);gap:14px;align-items:start}.identity-live-full{position:relative;width:fit-content;max-width:100%;line-height:0;background:#111}.identity-live-full img{width:100%;height:auto}.identity-live-box{position:absolute;display:block;border:3px solid #ffdf00;background:rgba(255,223,0,.10)}.identity-live-box.face{border-color:#35e67a;background:rgba(53,230,122,.12)}.identity-session-summary,.identity-diagnostic-output{margin-top:18px}.identity-diagnostic-summary,.identity-reference-diagnostics{background:#fff;border-left:4px solid var(--red);padding:18px}.identity-diagnostic-summary h3,.identity-reference-diagnostics h3{margin-top:20px}.identity-session-results,.identity-persisted-results,.identity-reference-pairs,.identity-reference-leave-one-out{display:grid;gap:7px;padding-left:24px}.identity-reference-diagnostics{overflow-wrap:anywhere}
.identity-learning-person-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.identity-learning-person-card{display:grid;gap:7px;min-height:150px;text-align:left;background:#fff;color:#111;border-color:#111;border-top:4px solid var(--red)}.identity-learning-person-card h2,.identity-learning-person-card p{margin:.15rem 0}.identity-learning-person-card:hover p{color:#fff}.identity-learning-actions{position:sticky;top:80px;z-index:6;padding:10px 0;background:#f5f5f3}.identity-learning-actions .danger{background:#7b1020;border-color:#7b1020}.identity-learning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.identity-learning-card{display:grid;align-content:start;gap:10px;min-width:0;padding:12px;background:#fff;border:1px solid #d4d4d0;border-top:4px solid var(--red)}.identity-learning-card p{margin:.2rem 0}.identity-learning-card>button{width:100%}.identity-learning-select{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px;cursor:pointer}.identity-learning-select input{width:27px;height:27px}.identity-learning-select .identity-crop{grid-column:1/-1;min-height:220px;border:3px solid transparent}.identity-learning-select:has(input:checked) .identity-crop{border-color:var(--red)}.identity-learning-card details{color:var(--muted)}
.identity-seed-workspace{display:grid;gap:14px;max-width:860px}.identity-seed-workspace>.identity-crop{min-height:360px}.identity-seed-actions{position:sticky;bottom:0;z-index:6;padding:12px;background:#f5f5f3;border-top:1px solid #d4d4d0}.identity-seed-actions .danger{background:#7b1020;border-color:#7b1020}.identity-seed-feature-workspace{display:grid;gap:14px}
.face-group-filters{display:flex;align-items:end;gap:18px;flex-wrap:wrap;margin:20px 0}.face-group-filters label{display:grid;gap:7px;font-weight:700}.face-group-filters select,.face-group-decisions input[type=search]{min-height:44px;padding:9px;border:2px solid #111;background:#fff;font:inherit}.face-group-unlinked{display:flex!important;align-items:center;min-height:44px}.face-group-unlinked input{width:24px;height:24px}.face-group-workspace{margin-top:18px}.face-group-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(390px,1.1fr);gap:24px;align-items:start}.face-group-review,.face-group-decisions{min-width:0}.face-group-member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.face-group-member{display:grid;align-content:start;gap:8px;min-width:0;padding:10px;background:#f3f3f1;border:1px solid #c5c5c0;border-top:4px solid #888;opacity:.72;transition:border-color .15s,background .15s,opacity .15s}.face-group-member.selected{background:#fff4f5;border-color:var(--red);border-top-color:var(--red);opacity:1}.face-group-member p{margin:.15rem 0;font-size:.88rem}.face-group-member>.identity-crop{height:220px;min-height:220px;max-height:220px}.face-group-member>.identity-crop canvas{max-height:220px}.face-group-member-choice{display:flex;align-items:center;gap:8px;min-height:38px}.face-group-member-choice input{width:25px;height:25px}.face-group-decisions{position:sticky;top:92px;display:grid;gap:0;padding:20px;background:#fff;border-top:4px solid var(--red)}.face-group-action-section{display:grid;gap:9px;padding:14px 0;border-bottom:1px solid #ddd}.face-group-action-section:first-child{padding-top:0}.face-group-action-section h3{margin:0}.face-group-action-section label{display:grid;gap:7px;font-weight:700}.face-group-suggestions,.face-group-name-matches{display:grid;gap:8px}.face-group-suggestion{display:grid;gap:5px}.face-group-suggestion>button{width:100%;text-align:left}.face-group-suggestion>span{color:var(--muted);font-size:.9rem}.face-group-name-matches .text-button{text-align:left}.face-group-decisions input[type=search],.face-group-action-section>button,.face-group-new-person>button,.face-group-skip{width:100%}.face-group-new-person .person-form{grid-template-columns:1fr;margin:4px 0;padding:14px}.face-group-other-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.face-group-other-actions>*{width:100%;min-width:0;min-height:48px;padding:10px 12px;white-space:nowrap;overflow-wrap:normal;word-break:normal}.face-group-skip{margin:14px 0;min-height:48px;white-space:normal;overflow-wrap:normal;word-break:normal}.face-group-workspace>h2{overflow-wrap:anywhere}
.identity-diagnostics-browser{display:grid;gap:16px;background:#fff;border-left:4px solid var(--red);padding:18px}.identity-diagnostic-categories{display:flex;flex-wrap:wrap;gap:9px}.identity-diagnostic-category{background:#eee;color:#111;border-color:#bbb;text-align:left}.identity-diagnostic-category:hover,.identity-diagnostic-category.active{background:#111;color:#fff;border-color:#111}.identity-diagnostic-category.success{border-color:#168447}.identity-diagnostic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.identity-diagnostic-card{display:grid;align-content:start;gap:9px;min-width:0;border:1px solid #d5d5d2;border-top:4px solid var(--red);padding:12px;background:#fafaf8}.identity-diagnostic-card h3,.identity-diagnostic-card p,.identity-diagnostic-card figure{margin:0}.identity-diagnostic-context-stage{position:relative;line-height:0;background:#111}.identity-diagnostic-context-stage img{display:block;width:100%;height:auto}.identity-diagnostic-context figcaption,.identity-diagnostic-image-label{font-size:.84rem;color:var(--muted);padding-top:5px}.identity-diagnostic-metrics{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1.6fr);gap:4px 9px;margin:3px 0;font-size:.88rem;overflow-wrap:anywhere}.identity-diagnostic-metrics dt{font-weight:700}.identity-diagnostic-metrics dd{margin:0}.identity-pilot-candidate-details{display:grid;gap:9px;padding:10px;background:#f2f2ef;border-left:3px solid #333}.identity-pilot-candidate-details .identity-diagnostic-context{margin:0}.identity-diagnostic-technical{font-size:.88rem;overflow-wrap:anywhere}.identity-diagnostic-pager{display:flex;align-items:center;justify-content:center;gap:12px}.identity-diagnostic-pager span{font-weight:700}.identity-diagnostic-card>.identity-crop{min-height:120px;max-height:220px}
.visibility-backfill-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:24px 0}.visibility-backfill-stat{display:grid;gap:7px;min-width:0;padding:18px;background:#fff;border-top:4px solid var(--red)}.visibility-backfill-stat strong{font-size:26px}.visibility-backfill-stat span{color:var(--muted);overflow-wrap:anywhere}.visibility-backfill-rule{max-width:900px;padding:14px 18px;background:#fff}.visibility-backfill-rule summary{cursor:pointer;font-weight:700}.visibility-backfill-people{max-width:900px}.visibility-backfill-person-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.visibility-backfill-person-list p{margin:.35rem 0;overflow-wrap:anywhere}.visibility-backfill-execute{max-width:900px}.visibility-backfill-execute .form-actions{align-items:center}.visibility-backfill-execute .form-actions p{flex-basis:100%;margin:.2rem 0}.visibility-backfill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.visibility-backfill-card{display:grid;align-content:start;gap:10px;min-width:0;padding:13px;background:#fff;border:1px solid #d4d4d0;border-top:4px solid var(--red)}.visibility-backfill-card h3,.visibility-backfill-card p{margin:.15rem 0;overflow-wrap:anywhere}.visibility-backfill-card>.identity-crop{height:240px;min-height:240px;max-height:240px}.visibility-backfill-card>.identity-crop canvas{max-height:240px}.visibility-backfill-filename{font-weight:700}.visibility-backfill-reason{padding:10px;background:#f4f4f1;color:#333}.visibility-backfill-card>button{width:100%}.visibility-backfill-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:24px 0}.visibility-backfill-pager strong{min-width:130px;text-align:center}
@media(max-width:960px){.recognition-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.person-form{grid-template-columns:1fr 1fr}.review-images,.identity-live-preview,.face-group-layout{grid-template-columns:1fr}.review-new-person{grid-template-columns:1fr 1fr}.identity-reference-grid,.identity-proposal-grid,.identity-group-list,.identity-diagnostic-grid,.identity-learning-person-list,.identity-learning-grid,.face-group-member-grid,.visibility-backfill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visibility-backfill-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.face-group-decisions{position:static}}
@media(max-width:720px){.recognition-tabs>*{flex:1 1 42%}.recognition-dashboard{grid-template-columns:1fr}.person-form,.review-new-person{grid-template-columns:1fr;padding:18px}.person-row{grid-template-columns:1fr}.person-row button{width:100%}.recognition-panel{padding:18px}.scan-photo-wrap>img{max-height:58vh}.review-crops{grid-template-columns:1fr}.tag-row{align-items:flex-start}.tag-row button{width:auto}.recognition-summary-card{width:100%}.identity-reference-grid,.identity-proposal-grid,.identity-group-list,.identity-diagnostic-grid,.identity-learning-person-list,.identity-learning-grid,.face-group-member-grid,.visibility-backfill-grid,.visibility-backfill-stats,.visibility-backfill-person-list{grid-template-columns:1fr}.identity-selection-actions,.identity-learning-actions,.identity-seed-actions{position:static}.identity-selection-actions>*,.identity-learning-actions>*,.identity-seed-actions>*{width:100%}.identity-crop{min-height:180px}.identity-learning-select{grid-template-columns:38px minmax(0,1fr);min-height:54px}.identity-learning-select input{width:34px;height:34px}.identity-learning-select .identity-crop,.identity-seed-workspace>.identity-crop{min-height:240px}.identity-diagnostic-pager,.visibility-backfill-pager{flex-wrap:wrap}.identity-diagnostic-pager button,.visibility-backfill-pager button{flex:1}.identity-diagnostic-metrics{grid-template-columns:1fr}.identity-diagnostic-metrics dd{margin-bottom:5px}.face-group-filters{display:grid}.face-group-filters select{width:100%}.face-group-other-actions{grid-template-columns:1fr}.face-group-member>.identity-crop{height:240px;min-height:240px;max-height:240px}.face-group-member>.identity-crop canvas{max-height:240px}.face-group-decisions{padding:16px}}

/* Phase 3A: player-facing personal photo filter within existing team access. */
.my-photos-picker,.my-photos-empty{max-width:680px;background:#fff;border-top:4px solid var(--red);padding:26px;margin:24px 0}.my-photos-person-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;margin-top:20px}.my-photos-person-form label,.my-photos-filters label{display:grid;gap:7px;min-width:0;font-weight:700}.my-photos-person-form select,.my-photos-filters select{width:100%;min-height:44px;padding:9px;border:2px solid #111;background:#fff;font:inherit}.my-photos-person-form p{grid-column:1/-1;margin:0}.my-photos-profile{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap}.my-photos-profile h1{flex-basis:100%;margin-bottom:.08em}.my-photos-person{flex-basis:100%;margin:.1em 0;font-size:clamp(22px,4vw,34px);font-weight:800}.my-photos-profile>.notice{flex-basis:100%;margin:.2em 0 .6em}.my-photos-filters{display:grid;grid-template-columns:minmax(240px,2fr) minmax(170px,1fr) minmax(160px,1fr);gap:14px;margin:26px 0;padding:18px;background:#fff;border-left:4px solid var(--red)}.my-photos-match{margin-top:38px;min-width:0}.my-photos-match h2{margin-bottom:3px}.my-photos-match .match-context{margin-top:0}.my-photos-match .photo-grid{margin-top:14px}
@media(max-width:720px){.my-photos-picker,.my-photos-empty{padding:20px;margin-top:18px}.my-photos-person-form,.my-photos-filters{grid-template-columns:1fr}.my-photos-person-form button,.my-photos-profile button{width:100%}.my-photos-filters{padding:15px;margin:20px 0}.my-photos-match{margin-top:30px}.my-photos-profile{display:grid;grid-template-columns:1fr}.my-photos-profile h1,.my-photos-profile>.notice,.my-photos-person{min-width:0;overflow-wrap:anywhere}}

/* Phase 3B presentation-only triage and card hardening. */
.recognition-concepts{display:grid;gap:6px}.recognition-concepts p{margin:.2rem 0}
.other-person-layout{grid-template-columns:minmax(0,1.65fr) minmax(390px,.9fr)}
.other-person-grid{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:16px}
.other-person-card,.other-person-card *{min-width:0;overflow-wrap:normal;word-break:normal}
.other-person-choice{white-space:normal}.triage-badge{padding:7px 8px;border-left:4px solid #777;background:#fff;font-weight:600;line-height:1.35}
.triage-high{border-color:#166534}.triage-normal{border-color:#2563eb}.triage-low{border-color:#a16207}.triage-technical{border-color:#6b7280;color:#4b5563}
@media(max-width:1050px){.other-person-layout{grid-template-columns:minmax(0,1fr) minmax(350px,.85fr)}}
@media(max-width:820px){.other-person-layout{grid-template-columns:1fr}.other-person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.other-person-grid{grid-template-columns:1fr}}
.recognition-navigation{margin:24px 0}.recognition-navigation .recognition-tabs{margin:0 0 12px}.recognition-navigation .recognition-tabs button{min-height:48px;white-space:normal;word-break:normal;overflow-wrap:break-word}.recognition-home-section{margin:30px 0}.recognition-home-section>h2{margin-bottom:14px}.recognition-workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.recognition-workflow-card{min-width:0;min-height:196px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;background:#fff;color:#111;border:0;border-top:5px solid var(--red);padding:22px;white-space:normal;word-break:normal;overflow-wrap:break-word}.recognition-workflow-card strong{font-size:21px;line-height:1.2}.recognition-workflow-step{color:#a40019;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.recognition-workflow-description{color:var(--muted);font-weight:400;line-height:1.45}.recognition-workflow-status{display:inline-flex;min-height:28px;align-items:center;margin-top:auto;padding:5px 9px;background:#ececec;color:#111;font-weight:700}.recognition-workflow-status.is-complete{background:#e7f6eb;color:#166534}.recognition-workflow-card:hover .recognition-workflow-step,.recognition-workflow-card:hover .recognition-workflow-description,.recognition-workflow-card:focus-visible .recognition-workflow-step,.recognition-workflow-card:focus-visible .recognition-workflow-description{color:#fff}.recognition-daily-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.recognition-daily-stat{min-width:0;min-height:132px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:7px;text-align:left;background:#fff;color:#111;border:0;border-top:4px solid var(--red);padding:20px;white-space:normal;word-break:normal;overflow-wrap:break-word}.recognition-daily-stat strong{font-size:34px}.recognition-daily-stat span{color:var(--muted)}.recognition-daily-stat.is-featured{background:#111;color:#fff;border-top-color:var(--red)}.recognition-daily-stat.is-featured span{color:#fff}.recognition-daily-stat.is-complete{border-top-color:#258b44;background:#f1faf3}.recognition-daily-stat:hover span,.recognition-daily-stat:focus-visible span{color:#fff}.recognition-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recognition-management-card{min-width:0;min-height:104px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-align:left;white-space:normal;word-break:normal;overflow-wrap:break-word}.recognition-management-card strong{font-size:18px}.recognition-management-card span{color:var(--muted);font-weight:400;line-height:1.4}.recognition-management-card:hover span,.recognition-management-card:focus-visible span{color:#fff}.recognition-disclosure{margin:18px 0;background:#fff;border-left:4px solid #111}.recognition-disclosure>summary{display:flex;align-items:center;min-height:52px;padding:13px 16px;font-weight:700;cursor:pointer;list-style-position:inside;word-break:normal}.recognition-disclosure[open]>summary{border-bottom:1px solid #ddd}.recognition-disclosure-body{padding:16px}.recognition-disclosure-body>p:first-child{margin-top:0}.recognition-maintenance-actions{display:flex;gap:10px;flex-wrap:wrap}.recognition-maintenance-actions button{min-height:46px;white-space:normal;word-break:normal}.recognition-maintenance-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.recognition-compact-stat{min-width:0;min-height:58px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;white-space:normal;word-break:normal;overflow-wrap:break-word}.recognition-compact-stat strong{font-size:22px}.recognition-compact-stat span{color:var(--muted);font-weight:400}.recognition-compact-stat:hover span,.recognition-compact-stat:focus-visible span{color:#fff}.recognition-technical-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.recognition-technical-grid .recognition-daily-stat{min-height:104px;padding:16px}.recognition-technical-grid .recognition-daily-stat strong{font-size:28px}@media(max-width:820px){.recognition-workflow-grid,.recognition-daily-grid{grid-template-columns:1fr}.recognition-workflow-card{min-height:168px}.recognition-maintenance-stats,.recognition-technical-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.recognition-navigation .recognition-tabs{display:grid;grid-template-columns:1fr}.recognition-navigation .recognition-tabs>*{width:100%;min-width:0}.recognition-management-grid,.recognition-maintenance-stats,.recognition-technical-grid{grid-template-columns:1fr}.recognition-maintenance-actions{display:grid;grid-template-columns:1fr}.recognition-maintenance-actions>*{width:100%;min-width:0}.recognition-workflow-card{min-height:0}.recognition-daily-stat{min-height:112px}.recognition-disclosure-body{padding:14px}}
.other-person-candidate-section input[type=search]{min-height:50px;font-size:17px}.other-person-candidate-matches{display:grid;gap:10px}.other-person-candidate{display:flex;flex-wrap:wrap;gap:10px;align-items:center;min-width:0;max-width:100%;padding:10px;border:1px solid #d1d1cc;background:#f7f7f5}.other-person-candidate-identity{flex:1 1 220px;min-width:0;max-width:100%;white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.35}.other-person-candidate-number{display:inline-block;min-width:2.5em;color:#a40019;font-size:1.35rem}.other-person-candidate button{flex:0 1 auto;max-width:100%;min-height:46px;white-space:normal;overflow-wrap:break-word;word-break:normal}@media(max-width:480px){.other-person-candidate{flex-direction:column;align-items:stretch}.other-person-candidate-identity{flex:0 1 auto;width:100%}.other-person-candidate button{width:100%}}
