#field-assignments { margin: 16px 0; }
.field-progress { margin: 12px 0 16px; padding: 16px; border: 1px solid #b9d9d4; border-radius: 12px; background: #eef8f5; }
.field-progress-line { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px 16px; font-size: 16px; }
.field-progress-left { color: #285c53; font-weight: 700; white-space: nowrap; }
.field-progress progress { display: block; width: 100%; height: 8px; margin: 12px 0 0; accent-color: #0e948b; border: 0; border-radius: 4px; overflow: hidden; }
.field-progress progress::-webkit-progress-bar { background: #d3e6e0; }
.field-progress progress::-webkit-progress-value { background: #0e948b; }
.field-progress-detail { margin: 8px 0 0; font-size: 14px; color: #375b53; }
.field-route-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; margin: 28px 0 8px; }
.field-route-progress { font-size: 14px; font-weight: 500; color: #46645f; white-space: nowrap; }
.field-route-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; padding: 0 14px 12px; }
.field-route-actions .field-status { flex: 1 1 260px; margin: 0; }
.field-route-actions .field-status .btn { margin: 6px 6px 0 0; }
@media (max-width: 560px) { .field-route-actions > .btn { width: 100%; } }
.field-case-search { display: block; width: 100%; box-sizing: border-box; min-height: 44px; margin-top: 12px; padding: 10px 12px; border: 1px solid #c9d8d5; border-radius: 10px; background: #fff; color: inherit; font: inherit; }
#field-assignments [hidden],.field-only-view #cases-add-section,.field-only-view #cases-manual-list { display: none !important; }
.field-case-card { margin: 12px 0; padding: 0; border-left: 4px solid #0e948b; }
.field-case-card.field-tier-high { background: #F4F0FF; border-left: 5px solid #7B5CD6; }
.field-case-card.field-tier-mid { background: #EEF6FF; border-left: 5px solid #3B82C4; }
.field-case-card.field-tier-commercial { background: #FFF6E8; border-left: 5px solid #C98A1B; }
/* Label matches as one-tap buttons under the search box, so a label is picked without opening the dropdown. */
.field-label-picks { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.field-label-pick { min-height: 44px; padding: 8px 14px; border: 1px solid #0e948b; border-radius: 10px; background: #e7f6f4; color: #0b4f4a; font: inherit; font-weight: 600; text-align: left; touch-action: manipulation; }
.field-label-pick:active { background: #bfe8e2; }
/* Bryan 2026-09-24: "make it exactly like mine". The folded case reads like his own stop: fold mark, stop number,
   address, tier and photo facts and status pill on one line, then the one work chip, then the stepper (dots only). */
.field-case-summary { cursor: pointer; list-style: none; padding: 10px 16px; min-height: 48px; box-sizing: border-box; }
.field-case-summary::-webkit-details-marker { display: none; }
.field-case-summary:focus-visible { outline: 3px solid #0e948b; outline-offset: 3px; border-radius: 8px; }
.field-case-title { overflow-wrap: anywhere; }
.field-case-head .board-fold-toggle { padding: 0 2px; min-width: 20px; min-height: 0; }
.field-case-head .done-pill { white-space: nowrap; flex-shrink: 0; }
.field-case-pill:empty { display: none; }
.field-case-card.field-tier-high .board-case-facts { color: #5B3FB0; }
.field-case-card.field-tier-mid .board-case-facts { color: #245F96; }
.field-case-card.field-tier-commercial .board-case-facts { color: #8A5C0C; }
.field-case-summary .board-stop-work-slot[hidden] { display: none; }
.field-case-summary .board-stop-supplement-slot { margin-top: 4px; }
.field-case-steps .stepper { margin: 6px 0 0; }
.field-case-card:not([open]) .field-case-steps .stepper-label { display: none; }
.field-case-card[open] > summary .field-case-steps { display: none; }
.field-case-offline { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: .8rem; font-weight: 600; background: #fffbeb; color: #594315; border: 1px solid #d6b764; }
.field-case-offline[hidden] { display: none; }
.field-case-offline.is-failed { background: #fdecea; color: #8a1c12; border-color: #d9534f; }
.field-case-body { padding: 0 16px 16px; }
.field-case-body > .board-carrier { margin: 0 0 6px; }
.field-case-buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.field-case-card .field-case-buttons .btn { margin: 0; }
.field-case-steps-full .stepper { margin: 12px 0 4px; }
/* Six 52px steps are wider than an open card on a 375px phone, so the steps give up width instead of spilling out. */
.field-case-card .stepper-node { flex: 0 1 52px; min-width: 0; }
.field-card-add-photos-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 4px; }
.field-case-card .field-card-add-photos-row .btn { margin: 0; }
.field-case-card h3 { font-size: 1.12rem; margin: 0 0 8px; overflow-wrap: anywhere; }
.field-case-card h4 { margin: 20px 0 10px; }
.field-case-body > label { display: block; margin: 16px 0 8px; }
.field-case-card textarea { width: 100%; min-height: 90px; resize: vertical; box-sizing: border-box; }
.field-case-card .btn { margin: 5px 6px 5px 0; min-height: 44px; }
.field-case-card input[type=file] { display: block; max-width: 100%; margin: 12px 0; }
.field-case-card details { margin: 16px 0; }
.field-case-card details img { max-width: 100%; display: block; margin-top: 12px; }
.field-photo-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.field-photo-grid-head { grid-column: 1 / -1; }
.field-photo-grid-title { grid-column: 1 / -1; margin: 8px 0 0; }
.field-saved-photo img { width: 100%; height: 130px; object-fit: cover; border-radius: 10px; }
.field-saved-photo strong,.field-saved-photo small { display: block; font-size: .85rem; overflow-wrap: anywhere; margin-top: 4px; }
.field-pending-photo { border: 1px solid #d8e6e3; border-radius: 12px; padding: 12px; margin: 12px 0; }
.field-pending-photo img { width: 100%; max-height: 220px; object-fit: contain; border-radius: 8px; }
.field-pending-photo label { display: block; margin: 10px 0; }
.field-pending-photo select,.field-pending-photo input { display: block; width: 100%; min-height: 44px; margin-top: 4px; }
.field-status { min-height: 1.2em; font-size: .9rem; overflow-wrap: anywhere; }
.field-checklist { border-top: 1px solid #d8e6e3; margin: 18px 0; }
.field-photo-category-grid,.field-required-photo-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 12px 0; }
.field-photo-category,.field-photo-bucket-main { position: relative; width: 100%; min-height: 88px; border: 1px solid #bdd7d3; border-radius: 10px; background: #f7fbfa; color: inherit; overflow: hidden; padding: 0; text-align: left; }
.field-photo-category { display: grid; place-items: center; align-content: center; gap: 7px; padding: 14px; text-align: center; }
.field-photo-category.is-active,.field-photo-bucket-main.is-active { outline: 3px solid #168f82; outline-offset: 1px; }
.field-photo-bucket-main strong { display: block; background: #17222d; color: white; padding: 6px 8px; font-size: .78rem; text-align: center; }
.field-slot-progress { display: block; padding: 4px 7px; color: #4b5c58; background: #eef5f3; font-size: .7rem; }
.field-photo-bucket-main img,.field-photo-placeholder { width: 100%; height: 112px; object-fit: cover; display: grid; place-items: center; background: #e8efed; color: #5e6b68; }
.field-photo-count { position: absolute; right: 7px; bottom: 7px; min-width: 25px; height: 25px; border-radius: 999px; display: grid; place-items: center; padding: 0 6px; background: #10261f; color: white; font-weight: 700; font-size: .78rem; }
.field-checklist-row { display: flex; min-width: 0; flex-direction: column; gap: 7px; padding: 0; font-size: .9rem; }
.field-checklist-row .btn { font-size: .76rem; padding: 7px 9px; flex: 1 1 auto; }
.field-photo-bucket-actions { display: flex; gap: 6px; align-items: stretch; flex-wrap: wrap; }
.field-photo-bucket-actions .field-unavailable-entry { flex: 1 1 100%; }
.field-saved-photo { border: 1px solid #d8e6e3; border-radius: 10px; background: transparent; text-align: left; padding: 7px; cursor: pointer; color: inherit; }
.field-review,.field-unavailable-editor,.field-closeout-editor { border: 1px solid #a9ceca; border-radius: 12px; padding: 14px; margin: 14px 0; background: #f5fbf9; }
.field-review-image { display: block; width: 100%; max-height: 55vh; object-fit: contain; background: #e4edeb; border-radius: 8px; }
.field-review [data-full-size] { margin: 10px 0 0; }
/* Full-size original over the review screen. Scrolls in place; "Actual size" shows the real pixels and pans. */
.field-lightbox { position: fixed; inset: 0; z-index: 60; overflow: auto; background: #0b1512; -webkit-overflow-scrolling: touch; }
.field-lightbox-bar { position: sticky; top: 0; z-index: 1; display: flex; gap: 10px; padding: 10px 12px; background: rgba(11,21,18,.94); }
.field-lightbox-bar .btn { flex: 1 1 0; min-height: 44px; color: #f1f5f4; border-color: rgba(241,245,244,.55); background: rgba(255,255,255,.06); }
.field-lightbox .field-status,.field-lightbox .field-error { margin: 0; padding: 8px 12px; color: #f1f5f4; }
.field-lightbox-image { display: block; width: 100%; height: auto; margin: 0 auto; }
/* Fit to screen: the original is letterboxed in the space under the bar. Actual size: the page scrolls across the pixels. */
.field-lightbox:not(.is-actual) { display: flex; flex-direction: column; }
.field-lightbox:not(.is-actual) .field-lightbox-image { flex: 1 1 auto; min-height: 0; object-fit: contain; }
.field-lightbox.is-actual .field-lightbox-image { width: auto; max-width: none; }
/* Photos page actions: the same prominent Add photos button as the case card, beside the camera. */
.field-photo-actions { display: flex; gap: 10px; margin: 10px 0; }
.field-photo-actions .btn { flex: 1 1 0; min-height: 48px; font-size: 1rem; }
/* Interview check: the room counts Bryan answered against the rooms the labeled photos show. */
.field-interview-audit { border: 1px solid #a9ceca; border-radius: 12px; padding: 10px 14px; margin: 12px 0; background: #f5fbf9; }
.field-interview-audit h4 { margin: 0 0 6px; }
.field-interview-line { margin: 4px 0; font-size: .92rem; }
.field-interview-match { color: #146c5f; }
.field-interview-audit .field-error { font-weight: 600; }
.field-review > label { display: block; margin: 12px 0; }
.field-review select,.field-review input[type=number] { display: block; width: 100%; min-height: 46px; margin-top: 4px; }
.field-review input[data-photo-label-search] { display:block; width:100%; min-height:46px; box-sizing:border-box; margin:6px 0; padding:10px 12px; border:1px solid #c9d8d5; border-radius:8px; font:inherit; background:#fff; color:inherit; }
.field-review textarea[data-photo-comment] { display:block; width:100%; min-height:90px; box-sizing:border-box; margin-top:4px; padding:10px 12px; border:1px solid #c9d8d5; border-radius:8px; resize:vertical; font:inherit; background:#fff; color:inherit; }
.field-review .field-hazard { display: flex; align-items: center; min-height: 48px; gap: 10px; }
.field-hazard input { width: 24px; height: 24px; accent-color: #b74232; }
/* Structure is required for this label and is empty, or was pre-picked as Main and not yet confirmed. */
.field-structure-needed { color: #9b2929; font-weight: 700; }
.field-structure-needed select { border: 2px solid #d33a2c; background: #fff0ee; color: #7a1f16; font-weight: 700; box-shadow: 0 0 0 4px rgba(211,58,44,.28), 0 0 14px rgba(211,58,44,.55); animation: field-structure-glow 1.6s ease-in-out infinite; }
@keyframes field-structure-glow { 50% { box-shadow: 0 0 0 2px rgba(211,58,44,.18), 0 0 6px rgba(211,58,44,.3); } }
@media (prefers-reduced-motion: reduce) { .field-structure-needed select { animation: none; } }
/* Save and next rides along the bottom of the screen while a photo is open. */
.field-review-actions { position: sticky; bottom: calc(var(--tabbar-h, 0px) + env(safe-area-inset-bottom)); z-index: 5; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px -14px; padding: 10px 14px; background: #f5fbf9; border-top: 1px solid #a9ceca; box-shadow: 0 -6px 14px rgba(16,38,31,.08); }
.field-photos-dialog .field-review-actions { bottom: 0; }
/* Bryan 2026-09-22: the board's notes box rides onto the Photos page, and its "+ Add photos/files"
   sat right above the real Millennium uploader. On this page only the uploader below adds photos. */
.field-photos-dialog .note-block .note-row:not(.note-row-files),
.field-photos-dialog .note-block .note-hint { display: none; }
/* Bryan 2026-09-23: Add file (sketches, PDFs, documents) shows under the case's files on the Photos page; styles.css
   also shows it on the case card. Everywhere else the row above already offers it. */
.note-block .note-row.note-row-files { display: none; }
.field-photos-dialog .note-block .note-row.note-row-files { display: flex; }
.field-review-actions .btn-primary { flex: 1 1 110px; min-height: 48px; font-size: 1rem; }
.field-review-actions .btn:not(.btn-primary) { flex: 0 0 auto; padding-left: 12px; padding-right: 12px; }
.field-review-actions .field-status { flex: 1 1 100%; margin: 0; }
.field-review-actions .field-status:empty { display: none; }
.field-error { color: #9b2929; }
@media(max-width: 480px) { .field-case-summary { padding: 10px 12px; } .field-case-body { padding: 0 12px 14px; } }
.field-transfer-pending{padding:12px;border:1px solid #d6b764;border-radius:10px;background:#fffbeb;color:#594315}
.field-unavailable-entry{padding:8px 12px;margin:0 0 8px;border-left:3px solid #d6b764;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.field-closeout-status:not(:empty){margin-top:20px;padding:12px;border:1px solid #d6b764;border-radius:10px;background:#fffbeb;overflow-wrap:anywhere}
.field-closeout-status h4{margin-top:0}
.field-closeout-editor > label{display:block;margin:12px 0}
.field-reminder{padding:10px 12px;border-left:3px solid #0e948b;background:#f5fbf9;overflow-wrap:anywhere}
.field-wood-stove{margin:8px 0;padding:10px 12px;border-left:3px solid #0e948b;background:#f5fbf9}
.field-wood-stove h4{margin:0 0 4px}
.field-ws-head{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:40px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.field-ws-title{font-weight:700;font-size:15px}
.field-ws-title::before{content:"\25BE";display:inline-block;margin-right:6px;transition:transform .15s}
.field-wood-stove.is-collapsed .field-ws-title::before{transform:rotate(-90deg)}
.field-ws-summary{font-size:13px;color:var(--color-text-muted)}
.field-ws-body[hidden]{display:none}
.field-ws-row{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.field-ws-label{font-weight:700;font-size:14px}
.field-ws-section{margin:14px 0 2px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;opacity:.75}
.field-ws-row[hidden]{display:none}
.field-ws-chips{display:flex;flex-wrap:wrap;gap:6px}
.field-ws-chip{min-height:40px;padding:6px 12px;border:1px solid #9cc9c3;border-radius:999px;background:#fff;color:inherit;font:inherit;font-size:14px;cursor:pointer}
.field-ws-chip.is-on{background:#0e948b;border-color:#0e948b;color:var(--color-text-on-accent);font-weight:700}
.field-ws-none{margin-top:6px}
.field-ws-row input{min-height:40px;padding:6px 10px;border:1px solid #9cc9c3;border-radius:8px;font:inherit;font-size:16px;width:100%;box-sizing:border-box}
.field-offline-banner,.field-offline-note{padding:10px 12px;border-left:3px solid #d6b764;background:#fffbeb;color:#594315;overflow-wrap:anywhere}
.field-offline-changes{margin:8px 0}
/* A photo still on this phone is labeled on the same review page as an uploaded one (labelForm); only this line differs. */
.field-label-review-state{margin:8px 0 0}
.field-instructions{margin:8px 0;padding:8px 12px;border:1px solid #d7e3e1;border-radius:8px;background:#fff}
.field-instructions summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}
.field-instructions-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}
.field-order-dialog{box-sizing:border-box;width:min(640px,100%);height:100dvh;max-height:100dvh;max-width:100%;margin:0 auto;padding:16px 20px 32px;border:0;background:#fbfcfb;color:#203d37;overflow:auto;touch-action:manipulation}
/* Bryan 2026-09-28: stop double-tap zoom on all interactive elements in the dialog; the camera view keeps none so pinch still works. */
.field-order-dialog button,.field-order-dialog input,.field-order-dialog select,.field-order-dialog textarea,.field-order-dialog label,.field-order-dialog summary,.field-order-dialog a,.field-order-dialog [role=button]{touch-action:manipulation}
/* Bryan 2026-09-28: prevent iOS focus zoom on text inputs and selects by keeping font-size at 16px minimum. */
.field-order-dialog input:not([type=checkbox]):not([type=radio]),.field-order-dialog select,.field-order-dialog textarea{font-size:max(16px,1em)}
/* Bryan 2026-09-28: full-screen while the camera is open so iOS position:fixed children fill the viewport. */
.field-order-dialog.field-camera-host{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0;overflow:hidden}
.field-order-dialog::backdrop{background:#143b3566}
.field-order-header{display:flex;align-items:center;gap:16px;position:sticky;top:-16px;background:#fbfcfb;padding:12px 0;z-index:1;border-bottom:1px solid #d7e3e1}
.field-order-header h2{font-size:1.15rem;margin:0}
.field-order-header .btn{min-height:44px}
.field-order-dialog h3,.field-order-dialog p{overflow-wrap:anywhere}
.field-order-dialog .field-instructions summary{min-height:44px}
.field-context-unknown{padding:10px;border-left:3px solid #c8891a;background:#fdf7ec;font-size:.9rem}
.field-order-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px}
.field-order-facts dt{font-weight:600}.field-order-facts dd{margin:0}
.field-pay-toggle{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.field-pay-toggle .btn{min-height:44px}
.field-pay-card{margin:12px 0;padding:0;border-left:4px solid #0e948b}
.field-pay-summary{cursor:pointer;padding:16px 20px;min-height:48px;box-sizing:border-box}
.field-pay-title{display:block;font-weight:700;overflow-wrap:anywhere}
.field-pay-counts{display:block;padding-top:6px;font-size:.85rem;color:#46645f;overflow-wrap:anywhere}
.field-pay-body{padding:0 20px 16px;border-top:1px solid #d8e6e3}
.field-pay-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;padding:8px 0;border-bottom:1px solid #eef4f2;font-size:.92rem;overflow-wrap:anywhere}
.field-pay-sent{margin:10px 0 0;font-weight:600;color:#1d6b4d}
.field-insurance-brand{margin:8px 0}
.field-insurance-brand > label{display:block;margin:8px 0}
.field-insurance-brand input{display:block;width:100%;max-width:320px;min-height:44px;box-sizing:border-box;margin-top:4px;padding:8px 10px;border:1px solid #c9d8d5;border-radius:8px}
.field-brand-known{font-weight:600}
.field-brand-missing{border-left-color:#c8891a;background:#fdf7ec}
.field-submit{margin:12px 0 16px;display:flex;flex-direction:column;gap:8px}
.field-submit .btn{min-height:48px;align-self:flex-start}
.field-submission-transferred{border-left-color:#1d6b4d;background:#eef8f2;font-weight:600}
.field-submission-failed{border-left-color:#b74232;background:#fdf1ef}
.field-submission-transferring,.field-submission-queued,.field-submission-pending{border-left-color:#c8891a;background:#fdf7ec}
.field-photo-removed{opacity:.55;border-style:dashed}
.field-photo-remove{margin-top:12px;padding-top:10px;border-top:1px solid #d8e6e3}
/* Photos still on this phone sit in the grid with the saved ones, marked as not uploaded yet. */
.field-queued-photos{display:contents}
.field-queued-photo{border-style:dashed}
.field-queued-photo small{color:#7a5412}
/* Bryan 2026-09-24: the portal camera. Keeps shooting until Done; the phone can be held either way. */
.field-camera{position:fixed;inset:0;z-index:62;display:flex;flex-direction:column;background:#000;color:#f1f5f4;touch-action:manipulation}
.field-camera button{touch-action:manipulation}
.field-camera-view{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:#000;touch-action:none}
.field-camera-video{display:block;width:100%;height:100%;object-fit:contain;background:#000;transform-origin:center}
/* Bryan 2026-10-14: the camera says whether the phone's location is going on each photo, just above the zoom buttons. */
.field-camera-gps{position:absolute;left:calc(14px + env(safe-area-inset-left));bottom:72px;max-width:calc(100% - 28px);padding:4px 10px;border-radius:14px;background:rgba(0,0,0,.6);color:#f1f5f4;font-size:.85rem;font-weight:700;pointer-events:none}
.field-camera-gps[data-camera-gps="ready"]{color:#7ee2a8}
.field-camera-gps[data-camera-gps="off"],.field-camera-gps[data-camera-gps="weak"]{color:#ffd24a}
.field-photo-gps-flag{color:var(--color-danger);font-weight:700}
.field-camera-zoom{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:10px;padding:0 14px;pointer-events:none}
.field-camera-zoom[hidden]{display:none}
.field-camera-zoom button{pointer-events:auto;min-width:52px;min-height:48px;padding:0 10px;border-radius:24px;border:1px solid rgba(241,245,244,.45);background:rgba(0,0,0,.6);color:#f1f5f4;font:inherit;font-weight:700;cursor:pointer}
.field-camera-zoom button[aria-pressed="true"]{color:#ffd24a;border-color:#ffd24a}
/* Bryan 2026-09-28: safe-area insets on left/right for notched iPhones in both portrait and landscape. */
.field-camera-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:calc(10px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 14px calc(14px + env(safe-area-inset-left));background:linear-gradient(rgba(0,0,0,.7),transparent);overflow-wrap:anywhere}
.field-camera-top strong{color:inherit}
.field-camera-count{flex:0 0 auto;font-weight:600}
/* Bryan 2026-09-29: the iPhone clicker button, top right over the picture; yellow while the clicker is on. */
.field-camera-top strong{flex:1 1 auto}
.field-camera .field-camera-clicker{flex:0 0 auto;position:relative;align-self:center;min-height:36px;padding:0 12px;border-radius:18px;color:#f1f5f4;border-color:rgba(241,245,244,.55);background:rgba(0,0,0,.55);font-weight:700;white-space:nowrap}
.field-camera .field-camera-clicker::before{content:'';position:absolute;inset:-4px}
.field-camera .field-camera-clicker[aria-pressed="true"]{color:#ffd24a;border-color:#ffd24a}
/* With the clicker button, the title and the count stack on the left so a narrow phone never wraps them under the message. */
.field-camera-top.field-camera-top-clicker{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center}
.field-camera-top-clicker strong{grid-column:1;grid-row:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.field-camera-top-clicker .field-camera-count{grid-column:1;grid-row:2}
.field-camera-top-clicker .field-camera-clicker{grid-column:2;grid-row:1 / span 2}
.field-camera-message{position:absolute;top:calc(56px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));right:calc(14px + env(safe-area-inset-right));margin:0;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.75);overflow-wrap:anywhere}
.field-camera-top-clicker~.field-camera-message{top:calc(76px + env(safe-area-inset-top))}
.field-camera-warning{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px calc(14px + env(safe-area-inset-right)) 10px calc(14px + env(safe-area-inset-left));background:#8f1d1d;color:#fff;font-weight:600;overflow-wrap:anywhere}
.field-camera-warning[hidden]{display:none}
.field-camera-warning p{flex:1 1 220px;margin:0}
.field-camera-warning .btn{min-height:44px;color:#fff;border-color:#fff;background:rgba(255,255,255,.12)}
.field-camera-warning .btn[hidden]{display:none}
.field-camera-strip{display:flex;gap:6px;overflow-x:auto;padding:6px calc(14px + env(safe-area-inset-right)) 0 calc(14px + env(safe-area-inset-left));background:#000}
.field-camera-strip:empty{display:none}
/* Bryan 2026-09-28: each shot gets a wrapper holding the thumb and the X remove button at the corner. */
.field-camera-shot{position:relative;flex:0 0 auto;min-width:44px;min-height:44px;display:flex;align-items:flex-end}
.field-camera-thumb{display:block;height:56px;width:auto;border-radius:6px}
.field-camera-shot p{color:#f1f5f4;font-size:.75rem;margin:0 0 4px 4px}
.field-camera-removed-tag{position:absolute;bottom:2px;left:2px;font-size:.65rem;font-weight:700;background:rgba(0,0,0,.75);color:#f87171;border-radius:3px;padding:1px 4px;pointer-events:none}
.field-camera-shot-remove{position:absolute;top:0;right:0;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border:none;border-radius:0 6px 0 6px;background:rgba(0,0,0,.6);color:#fff;font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}
.field-camera-shot-remove::before{content:'';position:absolute;inset:-8px;min-width:44px;min-height:44px}
.field-camera-voice{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px calc(14px + env(safe-area-inset-right)) 0 calc(14px + env(safe-area-inset-left));background:#000}
.field-camera-voice .btn{min-height:44px;color:#f1f5f4;border-color:rgba(241,245,244,.55);background:rgba(255,255,255,.08)}
.field-camera-voice .btn[hidden],.field-camera-voice-mode[hidden],.field-camera-voice-line[hidden]{display:none}
.field-camera-voice-mode{min-height:44px;max-width:100%;padding:0 10px;border:1px solid rgba(241,245,244,.55);border-radius:8px;background:#171717;color:#f1f5f4;font:inherit}
.field-camera-talk.is-listening{color:#fff;border-color:#ff6b6b;background:#c62828}
.field-camera-talk.is-listening::before{content:'';display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:50%;background:#fff;vertical-align:middle}
.field-camera-voice-line{flex:1 1 100%;margin:0;overflow-wrap:anywhere}
.field-camera-tools{display:flex;flex-wrap:wrap;gap:8px;justify-self:start}
.field-camera-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px calc(14px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));background:#000}
.field-camera-controls .btn{min-height:48px}
.field-camera-controls .btn:not(.btn-primary){justify-self:start;color:#f1f5f4;border-color:rgba(241,245,244,.55);background:rgba(255,255,255,.08)}
.field-camera-done{justify-self:end;min-width:96px;font-size:1.05rem}
/* Bryan 2026-09-29: on an iPhone Tap to talk stands where Phone camera was. An invisible copy of Phone camera gives the
   slot exactly Phone camera's size and Tap to talk lies over it, so the shutter stays put while it hides, shows or says
   Listening. */
.field-camera-talk-slot{position:relative;display:flex}
.field-camera-talk-ghost{flex:1 1 auto;visibility:hidden;pointer-events:none}
.field-camera-controls .field-camera-talk-slot .field-camera-talk{position:absolute;inset:0;justify-self:stretch;align-self:stretch;min-width:0;min-height:0;overflow:hidden;text-align:center}
.field-camera-controls .field-camera-talk.is-listening{color:#fff;border-color:#ff6b6b;background:#c62828;padding-top:2px;padding-bottom:2px;font-size:.8rem;line-height:1.15}
.field-camera-shutter{width:76px;height:76px;padding:0;border-radius:50%;border:5px solid #fff;background:#f1f5f4;box-shadow:inset 0 0 0 3px #000;cursor:pointer}
.field-camera-shutter:active{background:#cfd8d6;transform:scale(.96)}
.field-camera-shutter:disabled{opacity:.45}
/* Bryan 2026-09-29: a photo tapped in the strip opens big over the camera. Pinch or double-tap zooms, swipe or the
   arrows go through the others, and Remove, Undo and Change label work right there. */
.field-camera-thumb,.field-camera-shot p{cursor:pointer;-webkit-tap-highlight-color:transparent}
.field-camera-viewer{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;background:#000;color:#f1f5f4}
.field-camera-viewer .btn{min-height:48px;color:#f1f5f4;border-color:rgba(241,245,244,.55);background:rgba(255,255,255,.08)}
.field-camera-viewer .btn:disabled{opacity:.4}
.field-camera-viewer .btn[hidden],.field-camera-viewer [hidden]{display:none}
.field-camera-viewer-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(8px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 8px calc(14px + env(safe-area-inset-left))}
.field-camera-viewer-count{color:inherit;font-weight:700;white-space:nowrap}
.field-camera-viewer-stage{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;touch-action:none;background:#000}
.field-camera-viewer-image{display:block;width:100%;height:100%;object-fit:contain;transform-origin:0 0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.field-camera-viewer-image.is-removed{opacity:.45;filter:grayscale(1)}
.field-camera-viewer-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;padding:24px;text-align:center}
.field-camera-viewer-panel{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:8px calc(14px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left))}
.field-camera-viewer-status{margin:0;overflow-wrap:anywhere;font-size:.9rem;color:#cfd8d6}
.field-camera-viewer-label{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.field-camera-viewer-label p{flex:1 1 180px;margin:0;font-weight:600;overflow-wrap:anywhere}
.field-camera-viewer-move{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;border:1px solid #ffd24a;border-radius:8px}
.field-camera-viewer-move p{flex:1 1 100%;margin:0;overflow-wrap:anywhere}
.field-camera-viewer .field-camera-viewer-move .btn:first-of-type{color:#000;border-color:#ffd24a;background:#ffd24a}
.field-camera-viewer-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:8px}
.field-camera-viewer-prev{justify-self:start}
.field-camera-viewer-next{justify-self:end}
.field-camera-viewer .field-camera-viewer-remove[aria-pressed="true"]{color:#ffd24a;border-color:#ffd24a}
.field-camera-picker{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;gap:8px;padding:calc(10px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));background:#0b0f0e}
.field-camera-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.field-camera-picker-head strong{color:inherit;overflow-wrap:anywhere}
.field-camera-picker input{width:100%;box-sizing:border-box;min-height:48px;padding:10px 12px;border:1px solid rgba(241,245,244,.55);border-radius:8px;background:#141a19;color:#f1f5f4;font:inherit;font-size:16px}
.field-camera-picker-list{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;display:flex;flex-direction:column;gap:6px}
.field-camera-picker-list .btn{flex:0 0 auto;width:100%;text-align:left;justify-content:flex-start;white-space:normal;overflow-wrap:anywhere}
.field-camera-picker-list .btn[aria-pressed="true"]{color:#ffd24a;border-color:#ffd24a}
.field-camera-picker-more{margin:0;font-size:.9rem;color:#cfd8d6}
/* Bryan 2026-09-28: landscape on a phone. The picture takes the left side with the photo strip and the voice button
   under it, and the camera buttons stand in a column on the right, so the strip of photos taken stays in view.
   The title bar and message stop before that column. */
@media (orientation:landscape) and (max-height:540px){
  .field-camera{display:grid;grid-template-columns:minmax(0,1fr) calc(124px + env(safe-area-inset-right));grid-template-rows:minmax(0,1fr) auto auto auto}
  .field-camera-view{grid-column:1;grid-row:1;min-height:0}
  .field-camera-strip{grid-column:1;grid-row:2;min-height:0;overflow-y:hidden;padding-top:4px;padding-bottom:4px}
  .field-camera-shot{min-height:44px}
  .field-camera-thumb{height:44px}
  .field-camera-voice{grid-column:1;grid-row:3;flex-wrap:nowrap;padding-top:4px;padding-bottom:calc(4px + env(safe-area-inset-bottom))}
  .field-camera-voice-line{flex:1 1 auto;min-width:0}
  .field-camera-warning{grid-column:1;grid-row:4}
  .field-camera-controls{grid-column:2;grid-row:1/-1;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:8px;min-height:0;overflow-y:auto;padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) 8px}
  .field-camera-tools{flex-direction:column;flex-wrap:nowrap}
  .field-camera-controls .btn{min-height:44px;padding-left:6px;padding-right:6px;font-size:.9rem}
  .field-camera-shutter{align-self:center;flex:0 0 auto}
  .field-camera-done{min-width:0}
  .field-camera-top{right:calc(124px + env(safe-area-inset-right))}
  .field-camera-message{right:calc(132px + env(safe-area-inset-right))}
  /* The photo on the left, its buttons in a column on the right. */
  .field-camera-viewer{display:grid;grid-template-columns:minmax(0,1fr) calc(220px + env(safe-area-inset-right));grid-template-rows:auto minmax(0,1fr);grid-template-areas:"stage bar" "stage panel"}
  .field-camera-viewer-stage{grid-area:stage}
  .field-camera-viewer-bar{grid-area:bar;padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) 4px 8px}
  .field-camera-viewer-panel{grid-area:panel;min-height:0;overflow-y:auto;padding:4px calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) 8px}
  .field-camera-viewer .btn{min-height:44px;padding-left:8px;padding-right:8px;font-size:.9rem}
  .field-camera-viewer-nav{grid-template-columns:1fr 1fr;grid-template-areas:"prev next" "remove remove"}
  .field-camera-viewer-prev{grid-area:prev;justify-self:stretch}
  .field-camera-viewer-next{grid-area:next;justify-self:stretch}
  .field-camera-viewer-remove{grid-area:remove}
  .field-camera-viewer-label p{flex-basis:100%}
  /* The move question's two answers sit side by side so they stay on screen without scrolling. */
  .field-camera-viewer-move{padding:8px 10px}
  .field-camera-viewer-move .btn{flex:1 1 0}
}
.field-call-field{display:block;margin-top:12px;font-weight:600}
.field-call-field select,.field-call-field textarea{display:block;width:100%;box-sizing:border-box;margin-top:4px;font:inherit;font-size:max(16px,1em);font-weight:400}
.field-call-field select{min-height:46px}
.field-call-field textarea{min-height:90px;padding:10px 12px;border:1px solid #c9d8d5;border-radius:8px;resize:vertical;background:#fff;color:inherit}
.field-call-held{margin-top:12px;padding:12px;border:1px solid #e0b252;border-radius:8px;background:#fff8e6}
.field-call-held .btn{margin:8px 8px 0 0}
/* JFA-45 phone MillInfo gallery controls (switch OFF until tested). */
.field-gallery-tools{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.field-gallery-tools p{flex-basis:100%;margin:0}
.field-saved-photo[aria-pressed="true"]{outline:3px solid #0f766e;outline-offset:-3px;background:#e6f4f1}

/* Shared Photos & fieldwork — approved navy / teal phone workspace. */
.field-photos-dialog { --fw-bg:#0d1b27; --fw-card:#1b2c3a; --fw-line:#52616c; --fw-teal:#62f3df; box-sizing:border-box; width:min(100%,560px); max-width:560px; height:100dvh; max-height:100dvh; margin:0 auto; padding:16px 14px 0; border:0; border-radius:0; background:linear-gradient(155deg,#15232e,#091a29); color:#f4f7fa; overflow-y:auto; font-family:Inter,system-ui,sans-serif; }
.field-photos-dialog::backdrop { background:#040b13b3; }
.field-photos-dialog [hidden] { display:none!important; }
.field-photos-dialog > .field-order-header { position:sticky; top:-16px; z-index:4; display:flex; gap:12px; align-items:center; padding:12px 0; background:#14232e; border-bottom:1px solid #30404c; }
.field-photos-dialog > .field-order-header h2 { color:#f9fbff; margin:0; font-size:21px; letter-spacing:-.5px; }
.field-photos-dialog > .field-order-header button { font-size:0; padding:8px; min-width:32px; background:none; border:0; color:#fff; }
.field-photos-dialog > .field-order-header button::before { content:'‹'; font-size:32px; line-height:20px; }
.field-photos-dialog .field-photo-workspace { display:flex; flex-direction:column; gap:10px; }
.fieldwork-identity { padding:0 8px 4px; }
.fieldwork-identity h3 { font-size:22px; color:#fff; margin:10px 0 3px; letter-spacing:-.4px; }
.fieldwork-identity p { margin:3px 0; font-size:14px; color:#e4eaf0; }
.fieldwork-card,.fieldwork-order { position:relative; padding:11px 12px; border:1px solid var(--fw-line); border-radius:10px; background:linear-gradient(130deg,#20313f,#172836); color:#f4f7fa; box-shadow:0 2px 5px #0002; margin:0; min-width:0; }
.fieldwork-card h3,.fieldwork-card > summary { font-size:17px; font-weight:750; line-height:1.3; margin:0 0 5px; color:#f5f8fb; }
.fieldwork-card > summary { cursor:pointer; list-style:none; }
.fieldwork-card > summary::-webkit-details-marker { display:none; }
.fieldwork-card p,.fieldwork-card small { font-size:13px; line-height:1.45; margin:3px 0; color:#e8eef3; }
.fieldwork-card[data-workspace-card=instruction] { border-color:#49bdb6; background:linear-gradient(100deg,#14333d,#06454b); }
.fieldwork-card[data-workspace-card=instruction] h3 { text-transform:uppercase; font-size:12px; color:#78f4e3; letter-spacing:.3px; }
.fieldwork-card[data-workspace-card=instruction] p { font-size:16px; }
.fieldwork-order { width:100%; text-align:left; font-size:18px; font-weight:750; cursor:pointer; }
.fieldwork-order small { display:block; font-size:13px; font-weight:400; margin-top:3px; }
.fieldwork-edit { float:right; color:var(--fw-teal); font-size:13px; font-weight:650; }
.fieldwork-note-summary { display:block; }
.fieldwork-card[data-workspace-card=notes]:not([open]) > .fieldwork-note-summary { display:block; }
.fieldwork-card[data-workspace-card=notes]:not([open]) > :not(summary):not(.fieldwork-note-summary) { display:none; }
.fieldwork-card[data-workspace-card=readiness]:not([open]) > p { display:block; }
.fieldwork-card[data-workspace-card=readiness]:not([open]) > :not(summary):not(p) { display:none; }
.fieldwork-add { position:absolute; top:9px; right:11px; width:28px; height:28px; min-height:28px; padding:0; background:#102731; border:1px solid #6dfff0; color:#6dfff0; border-radius:7px; font-size:25px; line-height:24px; }
.fieldwork-previews { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:12px; }
.fieldwork-preview { background:none; color:#fff; border:0; padding:0; min-width:0; font:inherit; }
.fieldwork-preview img { width:100%; height:100px; object-fit:cover; border-radius:7px; display:block; background:#293f4f; }
.fieldwork-preview span { display:block; margin-top:4px; font-size:12px; }
.fieldwork-capability { font-size:11px; line-height:1.4; margin:0 4px; color:#bac9d4; }
.fieldwork-actions { position:sticky; bottom:0; z-index:5; display:grid; grid-template-columns:1fr 1fr 1.15fr; gap:7px; margin:0 -3px; padding:10px 0 max(12px,env(safe-area-inset-bottom)); background:linear-gradient(0deg,#0b1c29 85%,#0b1c2900); }
.fieldwork-actions button { min-height:45px; padding:8px 3px; border:1px solid #b4d5df; border-radius:9px; background:#172b38; color:#f4fafb; font-size:13px; white-space:nowrap; }
.fieldwork-actions button:first-child { background:#009e96; border-color:#20c5b3; }
.fieldwork-actions button:disabled { opacity:.55; cursor:not-allowed; }
.field-photos-dialog .fieldwork-card input,.field-photos-dialog .fieldwork-card textarea,.field-photos-dialog .fieldwork-card select { background:#fff; color:#132536; }
.field-photos-dialog .fieldwork-card .field-board-notes { background:transparent; border:0; padding:0; color:inherit; }
.field-photos-dialog .fieldwork-card .muted,.field-photos-dialog .fieldwork-card .field-reminder,.field-photos-dialog .fieldwork-card .field-status { color:#d9e8ef; }
.fieldwork-sheet { border-radius:18px; max-width:540px; width:calc(100% - 24px); }
@media(min-width:700px) { .field-photos-dialog { height:calc(100dvh - 40px); margin:20px auto; border-radius:22px; border:1px solid #52616c; } }
@media(max-width:360px) { .field-photos-dialog { padding-left:10px; padding-right:10px; } .fieldwork-actions button { font-size:12px; } .fieldwork-preview img { height:84px; } }
.fieldwork-card > summary .fieldwork-note-summary,.fieldwork-card > summary p { font-size:13px; font-weight:400; color:#e8eef3; margin-top:4px; }
.field-photos-dialog .fieldwork-card :focus-visible { outline:2px solid #62f3df; outline-offset:3px; }
.fieldwork-sheet { box-sizing:border-box; position:fixed; inset:auto 0 0; margin:0 auto; max-height:88dvh; padding:18px; background:#fff; color:#132536; border:1px solid #c9d4dc; border-radius:22px 22px 0 0; overflow:auto; }
.fieldwork-sheet::backdrop { background:#030b15a6; }
.fieldwork-sheet .field-order-header { display:flex; align-items:center; gap:12px; }
.fieldwork-sheet .field-order-header h2 { margin:0; color:#11212e; background:#fff; }
.fieldwork-sheet .field-instructions { margin-top:12px; }
.fieldwork-sheet > .field-order-header { justify-content:space-between; flex-direction:row-reverse; background:#fff; border:0; margin-bottom:10px; }
.fieldwork-sheet > .field-order-header button { font-size:0; min-width:36px; padding:6px; border:0; background:transparent; }
.fieldwork-sheet > .field-order-header button::before { content:'×'; font-size:30px; }
.fieldwork-sheet > h3 { display:none; }
.fieldwork-sheet [data-field-log-call] { padding:0; border:0; }
.fieldwork-sheet [data-field-log-call] > summary { display:none; }
.fieldwork-sheet .field-call-field { display:block; margin:14px 0; }
.fieldwork-sheet .field-call-field span { display:block; margin-bottom:5px; font-size:14px; }
.fieldwork-sheet .field-call-field select,.fieldwork-sheet .field-call-field textarea { width:100%; box-sizing:border-box; min-height:42px; padding:8px; font:inherit; border:1px solid #788897; border-radius:6px; }
.fieldwork-sheet [data-log-call-save] { width:100%; background:#009d93; color:white; border:0; min-height:46px; border-radius:9px; }
.fieldwork-actions button { display:inline-flex; align-items:center; justify-content:center; gap:5px; }
.fieldwork-actions svg { width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.fieldwork-status:not(:has(> :not([hidden]):not(:empty))) { display:none; }
.field-photos-dialog .fieldwork-card .note-block { box-sizing:border-box; background:#fff; color:#142534; padding:10px; border-radius:8px; }
.field-photos-dialog .fieldwork-card .note-block strong { background:#fff; color:#334d5f; }
.field-photos-dialog .fieldwork-card .note-block textarea { width:100%; box-sizing:border-box; min-height:96px; font:inherit; }
.field-photos-dialog { scroll-padding-bottom:88px; }
.field-photos-dialog .fieldwork-status .field-error { color:#ffb4b4; }
/* Shared linked call sheet: one form, explicit Phoenix event times and separate audit time. */
.linked-call-sheet form { margin:0; }
.linked-call-sheet .linked-call-case { margin:0 0 16px; font-weight:650; }
.linked-call-sheet h3 { font-size:18px; color:#142534; background:#fff; margin:18px 0 10px; }
.linked-call-dates { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }
.linked-call-dates .field-call-field { margin:0; min-width:0; }
.linked-call-sheet input { width:100%; min-width:0; box-sizing:border-box; min-height:42px; padding:8px; border:1px solid #788897; border-radius:6px; font:inherit; background:#fff; color:#142534; }
.linked-call-sheet fieldset { margin:18px 0 0; padding:12px; border:1px solid #b6cbce; border-radius:9px; }
.linked-call-sheet legend { font-weight:700; padding:0 5px; }
.linked-call-sheet .linked-call-help,.linked-call-recorded { font-size:12px; line-height:1.45; color:#425464; background:#fff; }
.linked-call-sheet [data-call-entry-save] { width:100%; background:#007f78; color:#fff; border:0; min-height:46px; border-radius:9px; }
.linked-call-sheet [data-call-entry-retry],.linked-call-sheet [data-call-entry-new] { width:100%; margin:8px 0; }
.linked-call-sheet [hidden] { display:none!important; }
.linked-call-sheet [data-call-entry-status] { font-size:14px; line-height:1.5; color:#172b38; background:#fff; margin-top:12px; }
@media(max-width:480px) { .linked-call-dates { grid-template-columns:minmax(0,1fr); } }
/* Practice uses shared workspace cards/actions, never production case controls. */
.field-practice-host { --fw-teal:#62f3df; --fw-line:#52636d; color:#eef5fa; background:#12232e; padding:14px; min-height:100vh; box-sizing:border-box; }
.field-practice-workspace { display:flex; flex-direction:column; gap:10px; max-width:760px; margin:auto; padding-bottom:80px; }
.field-practice-banner { padding:8px; margin:0; font-size:12px; border:1px solid #60e8dc; border-radius:10px; color:#c6fff8; background:#103c44; font-weight:700; }
.field-practice-grid { align-items:start; grid-template-columns:repeat(3,minmax(0,1fr)); }
.field-practice-heading { border-bottom:1px solid #30404c; padding:8px; }
.field-practice-heading h2 { margin:0; color:#f9fbff; font-size:21px; letter-spacing:-.5px; }
.field-practice-illustration { margin:8px 0; padding:8px; border:1px solid #52616c; border-radius:8px; }
.field-practice-illustration { min-width:0; }
.field-practice-illustration img { width:100%; border-radius:7px; }
.field-practice-illustration label,.field-practice-illustration small { display:block; margin-top:7px; }
.field-practice-illustration select { width:100%; min-height:42px; margin-top:8px; color:#142534; background:#fff; }
.field-practice-actions { left:0; right:0; grid-template-columns:repeat(3,minmax(0,1fr)); }
.field-practice-actions button { flex:1; min-height:46px; }
.field-practice-status { line-height:1.5; }


.field-practice-host label { color:#eef5fa; }

.field-practice-host strong { color:#eef5fa; }
.field-practice-host .field-interview-label,.field-practice-host .inline-interview-summary strong { color:#e8eef3; }
.field-practice-host .field-interview-status { color:#d4e1e9; }
.field-practice-host .pw-history-viewer { padding:8px 0; color:#e8eef3; }
.field-practice-host .pw-history-viewer h3,.field-practice-host .pw-history-viewer h4 { color:#f5f8fb; }
.field-practice-host .pw-history-viewer .pwh-error { color:#ffb4b4; }

.field-practice-review-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.field-practice-review-actions button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:46px; padding:10px 12px; border:1px solid #a1c9d3; border-radius:8px; background:#15303e; color:#f4f7fa; font:inherit; }
.field-practice-review-actions svg { width:20px; height:20px; flex:0 0 20px; fill:none; stroke:currentColor; stroke-width:1.8; }
