/* Role-private body styling; shared template owns page chrome, fonts and theme. */
.vi-app{--vi-ink:var(--v-text,#edf3f8);--vi-muted:var(--v-muted,#9eafbf);--vi-surface:var(--v-surface,#111823);--vi-raised:var(--v-surface-raised,#151d2a);--vi-input:var(--v-surface-input,#111a27);--vi-line:var(--v-line,#ffffff16);--vi-line-strong:var(--v-line-strong,#ffffff29);--vi-accent:var(--v-info-text,#92d8da);--vi-brand:var(--v-brand,#d9839d);box-sizing:border-box;max-width:1160px;margin:auto;padding:34px 20px 72px;color:var(--vi-ink);min-width:0}
.vi-app *{box-sizing:border-box}.vi-app [hidden]{display:none!important}.vi-app h1{font-size:clamp(2.1rem,5vw,3.5rem);letter-spacing:-.05em;line-height:1.08;margin:0 0 16px;max-width:760px}.vi-app h2{font-size:1.16rem;line-height:1.3;margin:0 0 10px;letter-spacing:-.025em}.vi-app h3{font-size:1.03rem;line-height:1.4;margin:0 0 10px}.vi-app p{margin:0 0 16px;overflow-wrap:anywhere}.vi-app a{color:var(--vi-accent);text-underline-offset:3px}.vi-app :focus-visible{outline:3px solid var(--v-focus,#9fd2ff);outline-offset:3px}.vi-app .vi-intro{max-width:780px;margin-bottom:28px}.vi-app .vi-intro>p:last-child{color:var(--vi-muted);max-width:650px}.vi-app .vi-eyebrow{font-size:.72rem;font-weight:750;letter-spacing:.1em;color:var(--vi-accent);margin:0 0 10px;text-transform:uppercase}.vi-app .vi-muted{color:var(--vi-muted)}.vi-app .vi-card{background:linear-gradient(180deg,#ffffff08,#ffffff03),var(--vi-surface);border:1px solid var(--vi-line);border-radius:22px;padding:26px;margin-bottom:18px;min-width:0}.vi-app .vi-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.vi-app .vi-label-row .vi-eyebrow{margin:0}.vi-app .vi-badge{flex-shrink:0;background:var(--vi-raised);color:var(--vi-muted);border:1px solid var(--vi-line);border-radius:50px;padding:5px 10px;font-size:.68rem;font-weight:650}.vi-app .vi-badge[data-vi-status=verified]{background:var(--v-success-bg,#163129);color:var(--v-success-text,#a7e7ca)}.vi-app .vi-badge[data-vi-status=in_review]{background:var(--v-warning-bg,#332b1c);color:var(--v-warning-text,#f1d394)}.vi-app .vi-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;align-items:end}.vi-app .vi-filters label{display:grid;gap:8px;color:var(--vi-muted);font-size:.8rem;min-width:0}.vi-app .vi-filters input,.vi-app .vi-filters select{font:inherit;font-size:16px;background:var(--vi-input);border:1px solid var(--vi-line-strong);border-radius:12px;min-height:48px;width:100%;min-width:0;color:var(--vi-ink);padding:11px 12px}.vi-app .vi-filters select{appearance:none;padding-right:46px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%239eafbf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px 16px}.vi-app .vi-button{font:inherit;font-size:.88rem;font-weight:650;min-height:46px;border:1px solid var(--vi-line-strong);border-radius:14px;padding:11px 17px;background:var(--vi-raised);color:var(--vi-ink);cursor:pointer;text-align:center;text-decoration:none;display:inline-block}.vi-app .vi-button:hover{border-color:var(--vi-brand)}.vi-app .vi-filters>.vi-button{grid-column:1/-1;justify-self:start}.vi-app .vi-results-head{display:flex;justify-content:space-between;gap:16px;margin:32px 0 18px;align-items:center}.vi-app .vi-results-head h2,.vi-app .vi-results-head p{margin:0}.vi-app .vi-results-head p{font-size:.85rem;color:var(--vi-muted)}.vi-app .vi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;padding:0;margin:0}.vi-app .vi-grid>li{min-width:0}.vi-app .vi-tile{height:100%;display:flex;flex-direction:column;margin:0;padding:24px}.vi-app .vi-tile h3{font-size:1.2rem}.vi-app .vi-tile .vi-eyebrow{font-size:.65rem}.vi-app .vi-place{font-size:.85rem;color:var(--vi-accent)}.vi-app .vi-tile .vi-muted{font-size:.85rem}.vi-app .vi-detail-link{display:block;margin-top:auto}.vi-app .vi-empty{text-align:center}.vi-app .vi-error{color:var(--v-danger-text,#ffc0cd)}.vi-app .vi-back{display:inline-block;margin-bottom:20px;text-decoration:none;font-size:.85rem}.vi-app .vi-details{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:0 0 20px}.vi-app .vi-detail{padding:13px 0;border-bottom:1px solid var(--vi-line);min-width:0}.vi-app .vi-wide{grid-column:1/-1}.vi-app dt{font-size:.73rem;color:var(--vi-muted);margin-bottom:4px}.vi-app dd{margin:0;overflow-wrap:anywhere;font-size:.88rem;font-weight:550;white-space:pre-line}.vi-app .vi-media{margin-top:20px}.vi-app .vi-photo{display:block;max-width:100%;max-height:420px;object-fit:contain;border-radius:14px}.vi-app[aria-busy=true] .vi-results-head{opacity:.7}
@media(max-width:1000px){.vi-app .vi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vi-app .vi-details{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){.vi-app{padding:28px 16px 48px}.vi-app .vi-filters,.vi-app .vi-grid{grid-template-columns:minmax(0,1fr)}.vi-app .vi-results-head{align-items:flex-start;flex-direction:column;gap:6px}.vi-app .vi-card{padding:22px}.vi-app .vi-button{width:100%}}
@media(forced-colors:active){.vi-app .vi-filters select{appearance:auto;background-image:none;padding-right:12px}}

/* Compact image cards and source/contact actions; shared chrome remains untouched. */
.vi-app .vi-tile{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;align-items:center;padding:20px}.vi-app .vi-card-link{margin:0;color:var(--vi-ink);text-decoration:none}.vi-app .vi-card-link:hover{border-color:var(--vi-brand)}.vi-app .vi-tile-copy{min-width:0}.vi-app .vi-tile .vi-label-row{margin:0 0 8px;gap:6px}.vi-app .vi-tile h3{font-size:1.05rem;margin:0 0 6px;overflow-wrap:anywhere}.vi-app .vi-tile .vi-place{margin:0;font-size:.8rem}.vi-app .vi-thumb{display:block;width:88px;height:88px;border-radius:14px;overflow:hidden;background:var(--vi-input);flex-shrink:0}.vi-app .vi-thumbnail{display:block;width:100%;height:100%;object-fit:cover}.vi-app .vi-generic-image{object-fit:contain;background:var(--vi-input);padding:10px}.vi-app .vi-photo-frame{margin:0}.vi-app .vi-photo-caption{font-size:.78rem;color:var(--vi-muted);margin:8px 0 0}.vi-app .vi-photo-caption a{color:inherit}.vi-app .vi-change-request{display:inline-block;margin-top:18px;font-size:.8rem;color:var(--vi-muted)}.vi-app .vi-contact-list{display:grid;gap:5px;justify-items:start}.vi-app .vi-image-status{font-size:.78rem;margin:8px 0 0}.vi-app .vi-photo.vi-generic-image{width:128px;height:128px}
@media(max-width:650px){.vi-app .vi-tile{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:20px}.vi-app .vi-thumb{width:72px;height:72px}.vi-app .vi-tile .vi-badge{font-size:.62rem;padding:3px 7px}}

/* One shared row for the change action and image credit. */
.vi-app .vi-photo-actions{display:flex;align-items:baseline;gap:12px;min-width:0;margin-top:12px}
.vi-app .vi-photo-actions .vi-change-request{flex:0 0 auto;margin:0;white-space:nowrap}
.vi-app .vi-photo-actions .vi-photo-caption{flex:1 1 0;min-width:0;margin:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vi-app .vi-photo-actions .vi-photo-caption a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Directory-only: identical photo/symbol framing and one-line names. */
.vi-app[data-vi-view=directory] .vi-tile .vi-thumbnail.vi-generic-image{object-fit:cover;padding:0}
.vi-app[data-vi-view=directory] .vi-tile h3{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
