:root {
  --brand:#103044;
  --action:#078d98;
  --contributor-action:#1f5fae;
  --light:#f4f6f5;
  --pale:#e9f2f1;
  --ink:#14283f;
  --muted:#64717d;
  --divider:#d5dddf;
  --white:#fff;
  --max:1240px;
  --radius:8px;
  --shadow:0 8px 24px rgb(20 40 63 / .08)
}
* {
  box-sizing:border-box
}
html {
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--white);
  scroll-behavior:smooth
}
body {
  margin:0;
  line-height:1.5
}
a {
  color:var(--action);
  text-decoration:none
}
a:hover {
  text-decoration:underline
}
button,input {
  font:inherit
}
.skip {
  position:absolute;
  left:-9999px;
  top:.5rem;
  background:var(--white);
  padding:.7rem 1rem;
  z-index:100
}
.skip:focus {
  left:.5rem
}
.site-header {
  height:72px;
  display:flex;
  align-items:center;
  gap:2rem;
  padding:0 max(20px,calc((100vw - var(--max))/2));
  position:sticky;
  top:0;
  z-index:40;
  background:rgb(255 255 255 / .96);
  border-bottom:1px solid var(--divider);
  backdrop-filter:blur(12px)
}
.brand {
  display:flex;
  align-items:baseline;
  gap:.55rem;
  color:var(--brand);
  text-decoration:none;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.65rem;
  font-weight:700;
  white-space:nowrap
}
.brand small {
  font:500 .78rem/1.2 Inter,ui-sans-serif,system-ui;
  color:var(--muted)
}
.desktop-nav {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:1.35rem
}
.desktop-nav>a {
  color:var(--ink);
  font-weight:650
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.7rem 1.05rem;
  border:1px solid var(--action);
  background:var(--action);
  color:#fff;
  border-radius:5px;
  font-weight:700;
  text-decoration:none;
  cursor:pointer
}
.button:hover {
  text-decoration:none;
  filter:brightness(.95)
}
.button.contributor-primary-action {
  background:var(--contributor-action);
  border-color:var(--contributor-action);
  color:#fff
}
a.button[href="/upload"]:not(.button-ghost) {
  background:var(--contributor-action);
  border-color:var(--contributor-action);
  color:#fff
}
.button-small {
  min-height:38px;
  padding:.45rem .8rem
}
.button-ghost {
  background:rgb(16 48 68 / .64);
  border-color:#fff
}
.mobile-actions,.mobile-menu,.menu-scrim {
  display:none
}
.hero {
  min-height:min(620px,62vw);
  display:flex;
  align-items:end;
  background-image:linear-gradient(180deg,transparent 45%,rgb(4 20 29 / .76)),var(--hero);
  background-position:center;
  background-size:cover;
  color:#fff
}
.hero-empty {
  min-height:360px;
  background-image:linear-gradient(180deg,rgb(4 20 29 / .3),rgb(4 20 29 / .9));
  background-color:var(--brand)
}
.hero-overlay {
  width:min(var(--max),calc(100% - 40px));
  margin:0 auto;
  padding:4rem 0 3.5rem
}
.hero h1 {
  font:700 clamp(2.25rem,5vw,4.7rem)/1.03 Georgia,"Times New Roman",serif;
  max-width:900px;
  margin:.6rem 0 1.4rem;
  letter-spacing:-.025em
}
.hero-credit {
  font-size:.88rem;
  margin:0;
  color:rgb(255 255 255 / .9)
}
.actions {
  display:flex;
  gap:.8rem;
  flex-wrap:wrap
}
.section,.page-intro,.photo-record,.simple-page {
  width:min(var(--max),calc(100% - 40px));
  margin-inline:auto
}
.section {
  padding:4.5rem 0
}
.muted-section {
  width:100%;
  max-width:none;
  background:var(--light);
  padding-inline:max(20px,calc((100vw - var(--max))/2))
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:1rem;
  margin-bottom:1.5rem
}
.section-heading h2,.day>h2,.related h2 {
  font:700 clamp(1.65rem,2.4vw,2.25rem)/1.1 Georgia,"Times New Roman",serif;
  margin:0
}
.event-grid {
  display:grid;
  grid-template-columns:2fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:16px;
  min-height:520px
}
.event-card {
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--brand);
  position:relative;
  min-height:245px
}
.event-card-featured {
  grid-row:1/3
}
.event-card a {
  display:block;
  height:100%;
  color:#fff;
  text-decoration:none;
  position:relative
}
.event-image {
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  inset:0
}
.event-card a:after,.place-tile:after {
  content:"";
  position:absolute;
  inset:30% 0 0;
  background:linear-gradient(transparent,rgb(7 26 38 / .88))
}
.event-copy {
  position:absolute;
  left:1.25rem;
  right:1.25rem;
  bottom:1.25rem;
  z-index:2
}
.event-copy h3 {
  font:700 1.45rem/1.1 Georgia,"Times New Roman",serif;
  margin:.25rem 0
}
.event-copy p,.event-copy span {
  margin:.15rem 0;
  color:rgb(255 255 255 / .9);
  font-size:.88rem
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:800;
  font-size:.72rem!important
}
.photo-grid {
  display:grid;
  gap:18px
}
.latest-grid,.archive-grid {
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.current-grid {
  grid-template-columns:repeat(5,minmax(0,1fr))
}
.related-grid {
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.photo-tile a {
  display:block;
  color:var(--ink);
  text-decoration:none
}
.tile-image {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:4px;
  background:var(--light)
}
.tile-meta {
  padding:.5rem .1rem 0;
  display:flex;
  flex-direction:column;
  gap:.08rem
}
.tile-meta strong {
  font-size:.9rem
}
.tile-meta span {
  font-size:.8rem;
  color:var(--muted)
}
.place-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px
}
.place-tile {
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:var(--radius);
  color:#fff
}
.place-tile img {
  width:100%;
  height:100%;
  object-fit:cover
}
.place-tile strong {
  position:absolute;
  left:1rem;
  bottom:.85rem;
  z-index:2;
  font:700 1.3rem Georgia,"Times New Roman",serif
}
.community-cta {
  background-image:linear-gradient(rgb(4 22 31 / .54),rgb(4 22 31 / .72)),var(--cta);
  background-size:cover;
  background-position:center;
  color:#fff;
  padding:6rem 20px
}
.community-cta-empty {
  background-image:none;
  background-color:var(--brand)
}
.community-cta>div {
  width:min(760px,100%);
  margin:auto;
  text-align:center
}
.community-cta h2 {
  font:700 clamp(2.2rem,4.4vw,4rem)/1.05 Georgia,"Times New Roman",serif;
  margin:0
}
.community-cta p {
  font-size:1.15rem;
  margin:1rem auto 1.6rem;
  max-width:650px
}
.site-footer {
  background:var(--brand);
  color:#fff;
  padding:3.5rem max(20px,calc((100vw - var(--max))/2));
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2rem
}
.site-footer h2 {
  font:700 1rem Georgia,"Times New Roman",serif;
  margin:0 0 .8rem
}
.site-footer a {
  display:block;
  color:rgb(255 255 255 / .9);
  padding:.25rem 0
}
.page-intro {
  padding:3.5rem 0 1rem
}
.page-intro h1,.simple-page h1,.photo-record>h1 {
  font:700 clamp(2.4rem,5vw,4rem)/1.05 Georgia,"Times New Roman",serif;
  margin:0
}
.page-intro>p {
  font-size:1.15rem;
  color:var(--muted);
  margin:.6rem 0 1.6rem
}
.date-picker {
  display:flex;
  gap:.6rem;
  align-items:end;
  flex-wrap:wrap
}
.date-picker label {
  width:100%;
  font-weight:650
}
.date-picker input,.date-picker button {
  min-height:42px;
  border:1px solid var(--divider);
  border-radius:4px;
  padding:.55rem .7rem;
  background:#fff
}
.date-picker button {
  background:var(--brand);
  color:#fff;
  border-color:var(--brand)
}
.day {
  padding-top:2.5rem
}
.day>h2 {
  margin-bottom:1.2rem
}
.archive-continuation {
  text-align:center;
  padding:1rem 20px 4rem;
  font-weight:700
}
.timeline,.yearline {
  display:flex;
  overflow:auto;
  gap:.4rem;
  padding:.5rem 0;
  scrollbar-width:thin
}
.timeline a,.yearline a {
  white-space:nowrap;
  color:var(--ink);
  border:1px solid var(--divider);
  border-radius:999px;
  padding:.45rem .75rem
}
.timeline a.selected,.yearline a.selected {
  background:var(--pale);
  border-color:var(--action);
  font-weight:700
}
.approx-heading {
  margin-top:3rem
}
.photo-record {
  max-width:1000px;
  padding:2.5rem 0 5rem
}
.prev-next {
  display:flex;
  justify-content:space-between;
  margin-bottom:.55rem;
  font-size:.9rem
}
.photo-open {
  border:0;
  padding:0;
  background:transparent;
  width:100%;
  cursor:zoom-in
}
.record-image {
  display:block;
  max-width:100%;
  max-height:78vh;
  width:auto;
  height:auto;
  margin:auto;
  object-fit:contain
}
.photo-actions {
  display:flex;
  gap:.65rem;
  padding:1rem 0;
  border-bottom:1px solid var(--divider)
}
.photo-actions button {
  border:1px solid var(--divider);
  background:#fff;
  border-radius:999px;
  padding:.45rem .8rem;
  cursor:pointer
}
.photo-actions button[aria-pressed=true] {
  color:#8a1733
}
.photo-record>h1 {
  font-size:clamp(2rem,4vw,3.25rem);
  margin:1.5rem 0
}
.facts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin:0 0 2rem;
  padding-bottom:1.4rem;
  border-bottom:1px solid var(--divider)
}
.facts div {
  min-width:0
}
.facts dt {
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  font-weight:800
}
.facts dd {
  margin:.2rem 0 0
}
.caption {
  font:400 1.15rem/1.7 Georgia,"Times New Roman",serif;
  max-width:760px
}
.provenance {
  color:var(--muted);
  max-width:760px
}
.map-placeholder {
  margin:2rem 0;
  background:var(--light);
  min-height:180px;
  padding:1.5rem;
  border-radius:var(--radius)
}
.secondary-link {
  display:inline-block;
  margin:1rem 0 3rem;
  font-size:.9rem
}
.related {
  border-top:1px solid var(--divider);
  padding-top:2rem
}
.viewer {
  width:100vw;
  height:100vh;
  max-width:none;
  max-height:none;
  border:0;
  margin:0;
  background:#070b0e;
  color:#fff;
  padding:1rem
}
.viewer::backdrop {
  background:#070b0e
}
.viewer>button {
  position:absolute;
  right:1rem;
  top:1rem;
  z-index:2
}
.viewer-nav {
  position:absolute;
  left:1rem;
  right:1rem;
  top:50%;
  display:flex;
  justify-content:space-between;
  z-index:2
}
.viewer-nav a {
  color:#fff;
  background:rgb(0 0 0 / .55);
  padding:.6rem
}
.viewer-image {
  width:100%;
  height:100%;
  object-fit:contain
}
.simple-page {
  min-height:55vh;
  padding:5rem 0
}
.simple-page p {
  font-size:1.1rem;
  max-width:700px
}
.menu-open {
  overflow:hidden
}
:focus-visible {
  outline:3px solid #0aa7b2;
  outline-offset:3px
}
@media(max-width:850px) {
  .site-header {
    height:64px;
    padding-inline:16px
  }
  .desktop-nav {
    display:none
  }
  .mobile-actions {
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:.6rem
  }
  .mobile-actions>a:not(.button) {
    font-size:1.4rem
  }
  .menu-button {
    border:0;
    background:transparent;
    font-weight:700
  }
  .menu-scrim {
    display:block;
    position:fixed;
    inset:64px 0 0;
    background:rgb(0 0 0 / .55);
    z-index:45
  }
  .mobile-menu {
    display:flex;
    position:fixed;
    z-index:50;
    right:0;
    top:64px;
    bottom:0;
    width:min(80vw,360px);
    background:#fff;
    padding:1.25rem;
    flex-direction:column;
    gap:.2rem;
    box-shadow:-10px 0 30px rgb(0 0 0 / .18)
  }
  .mobile-menu[hidden],.menu-scrim[hidden] {
    display:none
  }
  .mobile-menu a,.menu-close {
    padding:.9rem;
    color:var(--ink);
    font-weight:700
  }
  .menu-close {
    align-self:end;
    border:0;
    background:transparent
  }
  .hero {
    min-height:82vw
  }
  .hero-empty {
  background-image:linear-gradient(180deg,rgb(4 20 29 / .3),rgb(4 20 29 / .9));
  background-color:var(--brand)
}
.hero-overlay {
    padding-bottom:2rem
  }
  .event-grid {
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto;
    min-height:0
  }
  .event-card,.event-card-featured {
    grid-row:auto;
    min-height:270px
  }
  .latest-grid,.archive-grid,.current-grid,.related-grid,.place-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
  }
  .section {
    padding:3rem 0
  }
  .muted-section {
    padding-inline:20px
  }
  .site-footer {
    grid-template-columns:1fr;
    padding-block:2.4rem
  }
  .facts {
    grid-template-columns:1fr;
    gap:.8rem
  }
  .record-image {
    max-height:72vh
  }
  .photo-record {
    padding-top:1.5rem
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column
  }
  .community-cta {
    padding-block:4rem
  }
}
@media(max-width:430px) {
  .brand small {
    display:none
  }
  .hero {
    min-height:105vw
  }
  .hero h1 {
    font-size:2.35rem
  }
  .button {
    width:100%
  }
  .actions {
    width:100%
  }
  .photo-grid {
    gap:10px
  }
  .tile-meta strong {
    font-size:.82rem
  }
  .tile-meta span {
    font-size:.74rem
  }
}

/* Post-Stage-8 application routes */
.places-layout {
  width:min(1180px,calc(100% - 40px));
  margin:2rem auto 5rem;
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(280px,1fr);
  gap:1.5rem;
  align-items:start;
}
.map-panel {
  position:sticky;
  top:88px;
  min-height:620px;
  border-radius:18px;
  overflow:hidden;
  background:var(--pale-teal,#e9f2f1);
}
.map-placeholder-large {
  min-height:620px;
  display:grid;
  place-content:center;
  gap:.5rem;
  text-align:center;
  padding:2rem;
  color:var(--deep-teal,#103044);
  background:
    linear-gradient(45deg,transparent 48%,rgb(16 48 68 / .08) 49% 51%,transparent 52%) 0 0/44px 44px,
    linear-gradient(-45deg,transparent 48%,rgb(16 48 68 / .06) 49% 51%,transparent 52%) 0 0/44px 44px;
}
.map-placeholder-large strong {
  font-size:1.25rem;
}
.map-placeholder-large span {
  max-width:34rem;
  color:var(--muted,#64717d);
}
.places-panel {
  display:grid;
  gap:.75rem;
  max-height:720px;
  overflow:auto;
  padding-right:.25rem;
}
.place-row {
  display:grid;
  grid-template-columns:96px 1fr;
  gap:.9rem;
  padding:.7rem;
  color:inherit;
  text-decoration:none;
  border:1px solid var(--divider,#d5dddf);
  border-radius:14px;
  background:#fff;
}
.place-row:hover,
.place-row:focus-visible,
.place-row.selected {
  border-color:var(--interactive,#078d98);
  outline:0;
}
.place-row-image {
  width:96px;
  height:72px;
  object-fit:cover;
  border-radius:10px;
}
.place-row span {
  display:grid;
  align-content:center;
  gap:.25rem;
}
.place-row small {
  color:var(--muted,#64717d);
}
.place-hero,
.event-lead {
  width:min(1180px,calc(100% - 40px));
  margin:2rem auto 0;
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);
  gap:2rem;
  align-items:center;
}
.place-hero-image,
.event-lead-image {
  width:100%;
  max-height:620px;
  object-fit:cover;
  border-radius:18px;
}
.place-hero h1,
.event-lead h1 {
  margin:.25rem 0 .75rem;
  font-size:clamp(2.4rem,5vw,4.8rem);
  line-height:.98;
}
.event-page,
.profile-head,
.search-page,
.form-page,
.content-page,
.receipt {
  width:min(920px,calc(100% - 40px));
  margin:0 auto;
}
.event-page {
  width:100%;
}
.profile-head {
  display:flex;
  align-items:center;
  gap:1.25rem;
  padding:4rem 0 1rem;
}
.profile-avatar {
  width:84px;
  height:84px;
  flex:0 0 84px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--deep-teal,#103044);
  color:#fff;
  font-size:2rem;
  font-weight:800;
}
.search-page,
.form-page,
.content-page,
.receipt {
  padding:4rem 0 6rem;
}
.search-page>h1,
.form-page>h1,
.content-page>h1,
.receipt>h1 {
  margin-top:0;
  font-size:clamp(2.4rem,6vw,4rem);
}
.search-form,
.stack-form {
  display:grid;
  gap:1.25rem;
  margin:2rem 0;
}
.search-form>div {
  display:grid;
  grid-template-columns:1fr auto;
  gap:.6rem;
}
.search-form input[type="text"],
.search-form input[name="q"],
.stack-form input,
.stack-form textarea,
.stack-form select {
  width:100%;
  box-sizing:border-box;
  border:1px solid #9aa8ad;
  border-radius:10px;
  padding:.8rem .9rem;
  font:inherit;
  background:#fff;
  color:var(--ink,#14283f);
}
.search-form input:focus,
.stack-form input:focus,
.stack-form textarea:focus,
.stack-form select:focus {
  outline:3px solid rgb(7 141 152 / .22);
  border-color:var(--interactive,#078d98);
}
.search-form fieldset,
.stack-form fieldset {
  border:1px solid var(--divider,#d5dddf);
  border-radius:12px;
  padding:1rem;
}
.search-form fieldset label,
.stack-form fieldset label {
  margin-right:1rem;
}
.home-place-discovery {
  padding-top:3rem;
  padding-bottom:3rem;
}
.home-place-discovery h2 {
  font:700 clamp(1.65rem,2.4vw,2.25rem)/1.1 Georgia,"Times New Roman",serif;
  margin:0;
}
.home-place-discovery .search-form {
  max-width:760px;
  margin-bottom:0;
}
.search-empty {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  padding:1rem 0 3rem;
}
.chip {
  display:inline-block;
  margin:.25rem .35rem .25rem 0;
  padding:.5rem .75rem;
  border-radius:999px;
  background:var(--pale-teal,#e9f2f1);
  color:var(--deep-teal,#103044);
  text-decoration:none;
}
.search-group {
  padding:2rem 0;
  border-top:1px solid var(--divider,#d5dddf);
}
.search-hits {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
}
.search-hit {
  display:grid;
  grid-template-columns:96px 1fr;
  gap:.8rem;
  align-items:center;
  padding:.7rem;
  color:inherit;
  text-decoration:none;
  border:1px solid var(--divider,#d5dddf);
  border-radius:12px;
}
.search-hit small,
.search-hit strong {
  display:block;
}
.search-hit small {
  color:var(--muted,#64717d);
  margin-top:.2rem;
}
.search-thumb {
  width:96px;
  height:72px;
  object-fit:cover;
  border-radius:8px;
}
.no-results {
  padding:2rem;
  border-radius:16px;
  background:var(--light-neutral,#f4f6f5);
}
.field {
  display:grid;
  gap:.4rem;
}
.field label,
.stack-form legend {
  font-weight:750;
}
.field small,
.form-note {
  color:var(--muted,#64717d);
}
.check {
  display:flex;
  gap:.65rem;
  align-items:flex-start;
}
.check input {
  width:auto;
  margin-top:.3rem;
}
.form-errors {
  padding:1rem 1.25rem;
  border-left:4px solid #a94442;
  background:#fff2f0;
  border-radius:8px;
}
.form-errors h2 {
  margin:.1rem 0 .5rem;
  font-size:1.1rem;
}
.receipt dl {
  display:grid;
  grid-template-columns:max-content 1fr;
  gap:.5rem 1rem;
  margin:2rem 0;
}
.receipt dt {
  font-weight:750;
}
.receipt .secondary-link {
  display:block;
  margin-top:1rem;
}
.policy-toc {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1rem;
  padding:1rem;
  margin:2rem 0 3rem;
  border-radius:12px;
  background:var(--light-neutral,#f4f6f5);
}
.policy-toc strong {
  width:100%;
}
.content-page section {
  scroll-margin-top:90px;
  padding:1.25rem 0;
  border-top:1px solid var(--divider,#d5dddf);
}
.content-page section:first-of-type {
  border-top:0;
}
.updated {
  color:var(--muted,#64717d);
}
.guidelines {
  display:grid;
  gap:.8rem;
  margin:2rem 0 2.5rem;
  padding-left:1.5rem;
}
@media(max-width:760px) {
  .places-layout,
  .place-hero,
  .event-lead {
    grid-template-columns:1fr;
  }
  .map-panel {
    position:static;
    min-height:360px;
  }
  .map-placeholder-large {
    min-height:360px;
  }
  .places-panel {
    max-height:none;
  }
  .search-empty,
  .search-hits {
    grid-template-columns:1fr;
  }
  .search-form>div {
    grid-template-columns:1fr;
  }
  .search-form fieldset label,
  .stack-form fieldset label {
    display:block;
    margin:.55rem 0;
  }
}
@media(max-width:430px) {
  .place-row,
  .search-hit {
    grid-template-columns:76px 1fr;
  }
  .place-row-image,
  .search-thumb {
    width:76px;
    height:64px;
  }
  .profile-avatar {
    width:64px;
    height:64px;
    flex-basis:64px;
  }
}

/* Production Admin staff shell. Staff authentication is intentionally visually distinct from public participation. */
.admin-auth{max-width:42rem}.admin-shell{max-width:90rem;margin:0 auto;padding:2rem clamp(1rem,3vw,3rem) 5rem}.admin-heading{display:flex;gap:2rem;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--divider,#d5dddf);padding-bottom:1rem;margin-bottom:1.5rem}.admin-heading h1{margin:.15rem 0}.admin-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.admin-kpis article{background:#f4f6f5;border:1px solid #d5dddf;border-radius:.6rem;padding:1rem}.admin-kpis strong{display:block;font-size:2rem;color:#103044}.admin-kpis span{color:#64717d}.table-scroll{overflow:auto;border:1px solid #d5dddf;border-radius:.5rem;background:white}.admin-shell table{width:100%;border-collapse:collapse;min-width:48rem}.admin-shell th,.admin-shell td{text-align:left;padding:.75rem;border-bottom:1px solid #e6ebec;vertical-align:top}.admin-shell th{background:#f4f6f5;color:#103044}.admin-shell .muted{color:#64717d}@media(max-width:650px){.admin-heading{display:block}.admin-heading form{margin-top:1rem}.admin-kpis{grid-template-columns:1fr}.admin-shell{padding-top:1rem}}

/* Account profile and contributor-owned picture management. */
.field-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.profile-public{display:flex;align-items:center;gap:.5rem;margin-top:.45rem;font-size:.9rem;color:var(--muted,#64717d)}.profile-public input{width:auto}.wide-account{max-width:64rem}.owned-photo-list{display:grid;gap:1rem;margin:1.5rem 0 2rem}.owned-photo{display:grid;grid-template-columns:180px 1fr;gap:1rem;padding:1rem;border:1px solid var(--divider,#d5dddf);border-radius:12px;background:#fff}.owned-photo-image{width:180px;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.owned-photo h2{margin:.1rem 0 .35rem;font-size:1.15rem}.owned-photo p{color:var(--muted,#64717d)}.button-danger{background:#8b2d2d;border-color:#8b2d2d}.inline-danger-form{margin:.75rem 0}.privacy-banner{padding:.85rem 1rem;background:#eef6f6;border-left:4px solid #078d98;border-radius:6px}.admin-case-detail{max-width:72rem}.admin-case-detail .admin-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.case-state{font-weight:750;text-transform:uppercase;letter-spacing:.05em}.evidence-list{display:grid;grid-template-columns:minmax(10rem,14rem) 1fr;gap:.45rem 1rem}.evidence-list dt{font-weight:750}.evidence-list dd{margin:0;overflow-wrap:anywhere}.admin-action-panel{padding:1rem 1.25rem;background:#f4f6f5;border-radius:12px;margin:1.5rem 0}.admin-notes{display:grid;gap:.6rem;padding-left:1.25rem}.inline-form{display:inline-block;margin-bottom:1rem}

/* Provider-neutral map surface. Public list remains authoritative if the map is unavailable. */
.map-panel{overflow:hidden}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem;background:#f4f6f5;border-bottom:1px solid #d5dddf}.map-toolbar button{width:2.5rem;height:2.5rem;border:1px solid #b8c5c8;background:white;border-radius:50%;font-size:1.25rem}.map-surface{position:relative;min-height:480px;background:linear-gradient(145deg,#e9f2f1,#f4f6f5);overflow:hidden}.map-surface::before,.map-surface::after{content:"";position:absolute;inset:0;pointer-events:none}.map-surface::before{background-image:linear-gradient(rgba(16,48,68,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(16,48,68,.08) 1px,transparent 1px);background-size:12.5% 12.5%}.map-marker{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:2rem;height:2rem;padding:0 .45rem;border:2px solid white;border-radius:999px;background:#078d98;color:white;box-shadow:0 2px 8px rgba(16,48,68,.25);text-decoration:none;font-weight:800;z-index:2}.map-marker:focus-visible{outline:3px solid #14283f;outline-offset:2px}.map-cluster{background:#103044;cursor:pointer}.place-row.selected{outline:2px solid #078d98;outline-offset:-2px;background:#e9f2f1}
@media(max-width:760px){.field-grid.two,.owned-photo{grid-template-columns:1fr}.owned-photo-image{width:100%;max-width:360px}.admin-case-detail .admin-kpis{grid-template-columns:1fr}.map-surface{min-height:360px}}

/* Ask NIPNews is a policy-grounded rules surface, not a general-purpose chatbot. */
.ask-page{max-width:54rem}.ask-form{margin:1.5rem 0}.ask-answer{margin:1.5rem 0;padding:1rem 1.25rem;border-left:4px solid var(--interactive-teal,#078d98);background:#eef6f6;border-radius:8px}.ask-answer h2{margin-top:0}.ask-answer-muted{border-left-color:#64717d;background:#f4f6f5}.ask-source{color:#52636d;font-size:.94rem}.ask-related,.ask-suggestions>div{display:flex;gap:.6rem;flex-wrap:wrap}.ask-related button,.ask-suggestions button{border:1px solid #b8c5c8;background:#fff;border-radius:999px;padding:.55rem .8rem;color:#103044}.ask-suggestions{margin-top:2rem;padding-top:1rem;border-top:1px solid #d5dddf}.ask-suggestions h2{font-size:1.1rem}

/* Admin Statistics: fixed six-tab Phase 1 dashboard, aggregate data only. */
.admin-heading-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.admin-tabs{display:flex;gap:.35rem;overflow:auto;border-bottom:1px solid #d5dddf;margin:0 0 1rem}.admin-tabs a{white-space:nowrap;padding:.75rem .9rem;text-decoration:none;color:#44545e;border-bottom:3px solid transparent}.admin-tabs a.selected{color:#103044;border-bottom-color:#078d98;font-weight:750}.statistics-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;align-items:end;padding:1rem;background:#f4f6f5;border-radius:10px;margin:1rem 0 1.5rem}.statistics-controls label{display:grid;gap:.35rem;font-size:.9rem}.statistics-controls select,.statistics-controls input{width:100%;padding:.55rem;border:1px solid #b8c5c8;border-radius:6px;background:white}.admin-stat-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1rem 0 2rem}.admin-stat-cards article{padding:1rem;border:1px solid #d5dddf;border-radius:10px;background:#fff}.admin-stat-cards strong{display:block;font-size:1.65rem;color:#103044}.admin-stat-cards span{display:block;margin-top:.25rem;color:#64717d;font-size:.9rem}.stat-breakdown{margin:2rem 0}.stat-trend{display:flex;align-items:end;gap:.35rem;height:180px;padding:1rem;border:1px solid #d5dddf;border-radius:10px;background:#fff;overflow-x:auto}.stat-bar-wrap{height:100%;min-width:22px;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:.35rem}.stat-bar{display:block;width:14px;height:var(--bar);min-height:2px;background:#078d98;border-radius:3px 3px 0 0}.stat-bar-wrap small{font-size:.65rem;color:#64717d;writing-mode:vertical-rl}.admin-thumb{width:72px;height:54px;object-fit:cover;border-radius:4px}
@media(max-width:900px){.statistics-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.statistics-controls,.admin-stat-cards{grid-template-columns:1fr}.admin-tabs{margin-inline:-1rem;padding-inline:1rem}.stat-trend{height:150px}}

/* Search overlay and discovery */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.search-dialog{width:min(760px,calc(100vw - 2rem));max-height:min(760px,calc(100vh - 2rem));border:0;border-radius:14px;padding:0;box-shadow:0 28px 80px rgba(20,40,63,.28);color:var(--ink,#14283f)}
.search-dialog::backdrop{background:rgba(10,27,38,.62)}
.search-dialog-inner{padding:1.35rem 1.4rem 1.6rem;overflow:auto;max-height:calc(100vh - 3rem)}
.search-dialog-close-form{position:absolute;right:.6rem;top:.45rem;z-index:2}
.search-dialog-close{border:0;background:transparent;font-size:2rem;line-height:1;width:44px;height:44px;cursor:pointer}
.search-dialog [data-search-form]{display:grid;grid-template-columns:1fr auto;gap:.65rem;margin:1rem 0}
.search-dialog [data-search-form] input{min-width:0;padding:.85rem 1rem;border:1px solid var(--divider,#d5dddf);border-radius:8px;font:inherit}
.search-dialog [data-search-form] button{padding:.75rem 1rem;border:0;border-radius:8px;background:var(--interactive,#078d98);color:#fff;font-weight:700}
.search-dialog-status{min-height:1.5rem;color:var(--muted,#64717d);font-size:.9rem}
.search-chip-row{display:flex;flex-wrap:wrap;gap:.55rem;margin:.5rem 0 1rem}
.link-button{appearance:none;background:none;border:0;color:var(--interactive,#078d98);padding:.25rem;text-decoration:underline;cursor:pointer;font:inherit}
.search-live-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;border-top:1px solid var(--divider,#d5dddf);padding-top:.8rem}
.search-live-group h3{font-size:1rem;margin:.45rem 0}
.search-live-hit{display:flex;gap:.6rem;padding:.45rem 0;color:inherit;text-decoration:none;border-bottom:1px solid #edf0f0}
.search-live-hit img{width:68px;height:51px;object-fit:cover;border-radius:5px}
.search-live-hit span{min-width:0;display:grid;align-content:center}
.search-live-hit strong,.search-live-hit small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-live-hit small{color:var(--muted,#64717d)}
.search-tabs{display:flex;gap:.45rem;overflow:auto;margin:1rem 0 1.4rem;padding-bottom:.25rem}
.search-tabs a{padding:.55rem .8rem;border-radius:999px;border:1px solid var(--divider,#d5dddf);text-decoration:none;white-space:nowrap;color:inherit}
.search-tabs a.selected{background:var(--brand,#103044);border-color:var(--brand,#103044);color:#fff}
.search-pagination{display:flex;gap:.75rem;justify-content:center;margin:2rem 0}

/* Events and sports foundation */
.event-grid-all{grid-template-columns:repeat(3,minmax(0,1fr))}
.empty-state{max-width:880px;margin:1rem auto 0;padding:2rem;border:1px solid var(--divider,#d5dddf);border-radius:10px;background:#f8faf9}
.event-additional{font-size:.95rem;color:var(--muted,#64717d)}
.event-year-links{display:flex;flex-wrap:wrap;gap:.5rem}
.compact-section{padding-top:1rem;padding-bottom:1rem}
.team-hero,.game-lead{display:grid;grid-template-columns:minmax(260px,44%) 1fr;gap:2rem;align-items:center;max-width:1180px;margin:2rem auto;padding:0 1rem}
.team-hero-image,.game-image{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#eef1f0}
.game-list{display:grid;gap:1rem}
.game-card{display:grid;grid-template-columns:180px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--divider,#d5dddf);align-items:center}
.game-card:last-child{border-bottom:0}
.game-card h3{margin:.15rem 0 .45rem;font-size:1.1rem}
.game-card p{margin:.2rem 0;color:var(--muted,#64717d)}
.game-image-link{display:block}
.game-page{max-width:1180px;margin:0 auto}

@media (max-width:760px){
  .search-live-results{grid-template-columns:1fr}
  .event-grid-all{grid-template-columns:1fr}
  .team-hero,.game-lead{grid-template-columns:1fr;gap:1rem}
  .game-card{grid-template-columns:110px 1fr}
}

/* Phase 1 accessibility hardening. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #065d65;outline-offset:3px}
:where(a,button,input,select,textarea,[tabindex])[aria-invalid="true"]{outline:3px solid #8b2d2d;outline-offset:2px}
[aria-current="page"]:not(.button){font-weight:800;text-decoration-thickness:2px;text-underline-offset:.3em}
.desktop-nav [aria-current="page"]:not(.button),.mobile-menu [aria-current="page"]:not(.button){text-decoration:underline}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip:focus{left:.5rem;top:.5rem;width:auto;height:auto;clip:auto;overflow:visible;white-space:normal;outline:3px solid #065d65}
.search-icon{display:inline-block;margin-right:.25rem}
button:disabled,[aria-disabled="true"]{cursor:not-allowed;opacity:.65}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
html.reduce-motion{scroll-behavior:auto!important}
@media(forced-colors:active){.button,.map-marker,.event-card,.place-tile{border:1px solid ButtonText}.button{forced-color-adjust:auto}.selected,[aria-current="page"]{outline:2px solid Highlight}}
@media(max-width:760px){.mobile-actions>a,.mobile-actions>button,.mobile-menu>a,.mobile-menu>button{min-width:44px;min-height:44px}.mobile-menu>a,.mobile-menu>button{display:flex;align-items:center}.search-dialog-close{min-width:44px;min-height:44px}}

/* Decision 832 approved empty-homepage hero treatment */
.hero-empty {
  min-height:260px;
  background-image:none;
  background-color:var(--pale);
  color:var(--brand);
  align-items:center;
}

.hero-empty .hero-overlay {
  text-align:center;
  padding:2.5rem 0;
}

.hero-empty .hero-credit {
  display:none;
}

.hero-empty h1 {
  max-width:760px;
  margin:0 auto 1.25rem;
  font-size:clamp(2rem,3.6vw,3.25rem);
  line-height:1.08;
  color:var(--brand);
}

.hero-empty .actions {
  justify-content:center;
}

.hero-empty .button-ghost {
  background:#fff;
  color:var(--action);
  border-color:var(--action);
}

.upload-session-page { max-width: 860px; margin: 0 auto; }
.upload-dropzone { border: 2px dashed var(--line); border-radius: 16px; padding: 2rem; background: var(--pale); display:grid; gap:.75rem; }
.upload-dropzone input { min-height: 3rem; }
.session-thumbnails { display:grid; grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); gap:.75rem; margin:1rem 0; }
.session-thumbnails img,.session-review-image { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:10px; background:var(--pale); }
.submission-detail-preview { display:block; width:min(180px,100%); max-width:180px; height:auto; border-radius:10px; background:var(--pale); margin:0 0 .75rem; }
.posting-options { margin:1.25rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:.85rem 0; }
.posting-options summary { cursor:pointer; font-weight:700; }
.posting-options-body { display:grid; gap:.65rem; padding-top:1rem; max-width:30rem; }
.upload-stage[hidden] { display:none; }
.analysis-steps { display:grid; gap:.55rem; padding-left:1.4rem; }
.analysis-steps li { color:var(--muted); }
.analysis-steps li.is-active { color:var(--ink); font-weight:700; }
.analysis-steps li.is-done { color:var(--accent); }
.session-photo-card { display:grid; grid-template-columns:minmax(160px, .8fr) minmax(0,1.2fr); gap:1.25rem; border-top:1px solid var(--line); padding:1.5rem 0; scroll-margin-top:1rem; }
.session-thumbnails:has(.session-photo-card) { display:grid; grid-template-columns:1fr; gap:1rem; }
.submission-workspace { max-width:1040px; }
.submission-workspace .session-photo-card { margin:1.25rem 0; padding:1.25rem; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.submission-workspace .session-review-image { min-height:240px; max-height:460px; object-fit:contain; background:var(--pale); }
.submission-workspace textarea { width:100%; min-height:7.5rem; resize:vertical; }
.batch-summary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem 1rem; margin:1rem 0; padding:.9rem 1rem; border:1px solid var(--line); border-radius:10px; background:var(--pale); }
.batch-summary-live { position:sticky; top:.75rem; z-index:4; align-items:center; box-shadow:0 6px 18px rgb(16 48 68 / .08); }
.batch-summary-live h2,.batch-summary-live p { margin:.2rem 0; }
.batch-problem-links { display:flex; flex-wrap:wrap; gap:.5rem 1rem; }
.batch-next-actions { align-items:center; margin:0; }
.selected-files { display:block; }
.selected-file-list { display:grid; gap:.45rem; margin:.75rem 0 0; padding:0; list-style:none; counter-reset:selected-photo; }
.selected-file-list li { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem .8rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); counter-increment:selected-photo; }
.selected-file-list span { min-width:0; overflow-wrap:anywhere; }
.caption-suggestion { margin:.75rem 0; padding:.8rem; border-left:4px solid var(--accent); background:var(--pale); }
.caption-suggestion p { margin:.25rem 0 .6rem; }
[data-sequential-photo][hidden] { display:none!important; }
.session-photo-fields { display:grid; gap:.6rem; }
.session-photo-fields label { font-weight:700; }
.session-photo-fields textarea,.session-photo-fields input { width:100%; }
.session-location { font-weight:700; margin:0; }
.session-photo-state { color:var(--muted); }
.session-photo-card [data-required-location="true"] { border-color:#a33427; box-shadow:0 0 0 2px rgba(163,52,39,.14); }
.notice.error { border-color:#a33427; color:#7e2118; }
@media (max-width:700px) { .session-photo-card { grid-template-columns:1fr; gap:.75rem; } .upload-dropzone { padding:1.25rem; } .upload-session-page .button { min-height:48px; } .batch-summary-live { top:.35rem; } .selected-file-list li { align-items:flex-start; } }

/* Approved upload journey */
.approved-upload,.approved-review,.approved-upload-success,.my-submissions-page { --accent:var(--contributor-action); --line:var(--divider); --surface:var(--white); }
.approved-upload,.approved-review,.my-submissions-page { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.approved-upload { max-width:1120px; }
.upload-page-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; margin-bottom:1.5rem; }
.upload-page-heading h1,.upload-processing-screen h1,.review-summary h1 { margin:.15rem 0 .35rem; }
.upload-page-heading p,.upload-processing-screen>p,.review-summary>p { margin:.2rem 0; color:var(--muted); }
.approved-upload .upload-dropzone { width:100%; min-height:235px; padding:2.5rem 1.5rem; place-content:center; place-items:center; text-align:center; border:2px dashed color-mix(in srgb,var(--accent) 55%,var(--divider)); background:linear-gradient(145deg,var(--white),var(--pale)); cursor:pointer; }
.approved-upload .upload-dropzone.is-dragging { border-color:var(--accent); background:var(--pale); box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent); }
.approved-upload .upload-dropzone strong { color:var(--accent); font-size:1.25rem; }
.upload-drop-icon { color:var(--brand); font-size:2.6rem; line-height:1; }
.selected-photo-previews { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:1rem; margin:1.25rem 0; }
.selected-photo-summary { grid-column:1/-1; margin:0; }
.selected-preview-card { position:relative; min-width:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--surface); }
.selected-preview-card img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--pale); }
.selected-preview-card p { max-width:100%; margin:.55rem .7rem .7rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.88rem; }
.selected-preview-card .remove-selected { position:absolute; top:.45rem; right:.45rem; width:2rem; height:2rem; border:0; border-radius:50%; background:#102a4d; color:#fff; cursor:pointer; }
.add-more-photos { display:grid; min-height:145px; place-content:center; gap:.35rem; border:1px solid var(--line); border-radius:12px; background:var(--pale); color:var(--ink); text-align:center; cursor:pointer; }
.add-more-photos span:first-child { font-size:2rem; }
.approved-upload .posting-options,.review-posting-options { padding:0; border:1px solid var(--line); border-radius:12px; background:var(--pale); }
.approved-upload .posting-options summary,.review-posting-options summary { padding:1rem 1.15rem; }
.posting-options summary span { display:inline-grid; gap:.2rem; }
.posting-options summary small { color:var(--muted); font-weight:400; }
.approved-upload .posting-options-body,.review-posting-options .posting-options-body { padding:0 1.15rem 1.15rem; }
.posting-options-body .check span { display:grid; gap:.15rem; }
.posting-options-body .check small { display:block; }
.upload-primary { width:100%; min-height:58px; font-size:1.15rem; }
.upload-agreement { text-align:center; color:var(--muted); font-size:.9rem; }
.upload-processing-screen { max-width:760px; margin:2rem auto; padding:2.5rem; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:0 14px 38px rgb(16 48 68 / .08); }
.approved-progress,.submission-progress { position:relative; height:12px; overflow:hidden; margin:1.5rem 0 .65rem; border-radius:999px; background:color-mix(in srgb,var(--line) 72%,transparent); }
.approved-progress span { position:absolute; inset:0 auto 0 0; width:0; border-radius:inherit; background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,var(--white))); transition:width .35s ease; }
.submission-progress span { position:absolute; inset:0 auto 0 -35%; width:35%; border-radius:inherit; background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,var(--white))); animation:approved-progress 1.25s ease-in-out infinite; }
.processing-count { font-weight:700; color:var(--ink)!important; }
.analysis-steps { list-style:none; padding:0; margin:1.5rem 0; }
.analysis-steps li { position:relative; padding:.45rem 0 .45rem 2rem; }
.analysis-steps li::before { content:''; position:absolute; left:.2rem; top:.6rem; width:.85rem; height:.85rem; border:2px solid #9aaabd; border-radius:50%; }
.analysis-steps li.is-active::before { border-color:var(--accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent); }
.analysis-steps li.is-done::before { content:'✓'; display:grid; place-content:center; border-color:#27a96c; background:#27a96c; color:#fff; font-size:.65rem; }
.processing-photo-strip { display:flex; gap:.6rem; overflow-x:auto; margin:1rem 0; }
.processing-photo { flex:0 0 88px; }
.processing-photo img { width:88px; height:66px; object-fit:cover; border-radius:8px; }
.processing-photo figcaption { margin-top:.25rem; color:var(--muted); font-size:.75rem; line-height:1.3; }
.processing-photo .button { width:100%; margin-top:.35rem; padding:.35rem; font-size:.72rem; }
.processing-reassurance { padding:1rem; border-radius:10px; background:var(--pale); color:var(--ink)!important; }

.approved-review { max-width:1180px; margin:0 auto; }
.review-topline,.reference-line { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; }
.reference-line { justify-content:flex-end; color:var(--muted); font-size:.9rem; }
.review-summary { margin:0 0 1.5rem; }
.review-summary .eyebrow { color:var(--accent); }
.review-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,340px); align-items:start; gap:1.5rem; }
.single-photo-review .review-layout { grid-template-columns:1fr; }
.single-photo-review .review-sidebar { display:none; }
.review-photo-list { display:grid; gap:1rem; }
.review-photo-card { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1.35fr); gap:1.25rem; padding:1rem; border:1px solid var(--line); border-radius:12px; background:var(--surface); scroll-margin-top:1rem; }
.single-photo-review .review-photo-card { grid-template-columns:minmax(300px,1fr) minmax(0,1.15fr); padding:0; border:0; }
.review-photo-card:focus { outline:3px solid color-mix(in srgb,var(--accent) 40%,transparent); outline-offset:3px; }
.review-photo-visual { position:relative; min-width:0; }
.review-photo-visual .session-review-image { display:block; width:100%; min-height:220px; max-height:520px; object-fit:cover; border-radius:10px; background:var(--pale); }
.photo-number { position:absolute; z-index:1; top:.65rem; left:.65rem; display:grid; width:2.2rem; height:2.2rem; place-content:center; border-radius:50%; background:var(--accent); color:#fff; font-weight:800; }
.photo-reference { margin:.55rem 0 0; color:var(--muted); font-size:.78rem; overflow-wrap:anywhere; }
.session-photo-fields { align-content:start; }
.session-photo-state { width:max-content; margin:0; padding:.25rem .55rem; border-radius:999px; background:var(--pale); font-weight:700; font-size:.85rem; }
.location-found { border:1px solid #9fdac0; border-radius:10px; background:#f2fbf7; }
.location-found p { display:flex; align-items:center; gap:.65rem; margin:0; padding:.8rem; }
.location-found p>span:first-child { display:grid; width:1.65rem; height:1.65rem; place-content:center; border-radius:50%; background:#22aa6b; color:#fff; }
.location-found .link-button { margin-left:auto; }
[data-manual-location] { display:grid; gap:.45rem; }
[data-manual-location][hidden] { display:none; }
.manual-locality-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem .75rem; margin:0; padding:.8rem; border:1px solid var(--line); border-radius:10px; }
.manual-locality-fields legend,.manual-locality-fields .form-note,.manual-locality-fields [data-locality-country],.manual-locality-fields label[for$="-country"],.manual-locality-fields .button,.manual-locality-fields [data-location-message] { grid-column:1/-1; }
.manual-locality-fields legend { padding:0 .25rem; font-weight:800; }
.manual-locality-fields label { align-self:end; }
.manual-locality-fields .form-note { margin:.1rem 0; }
.location-working { margin:.4rem 0; padding:.8rem; border-radius:10px; background:var(--pale); font-weight:700; }
.location-suggestion { margin:.4rem 0; padding:.8rem; border:1px solid var(--line); border-radius:10px; background:var(--pale); }
.location-suggestion p { margin:0 0 .55rem; }
.location-suggestion .actions { display:flex; align-items:center; gap:.75rem; }
.caption-field { display:grid; gap:.45rem; margin-top:.45rem; }
.caption-field label { font-size:1.05rem; }
.caption-field label span { font-weight:400; }
.caption-meta { display:flex; justify-content:space-between; gap:1rem; color:var(--muted); }
.caption-meta p { margin:0; }
.submission-processing { display:grid; gap:.45rem; margin:.35rem 0; padding:.85rem; border-radius:10px; background:var(--pale); }
.submission-processing h3,.submission-processing p { margin:0; }
.submission-progress { height:8px; margin:.25rem 0; }
.review-sidebar { position:sticky; top:1rem; display:grid; gap:1rem; }
.review-actions { display:grid; gap:.7rem; padding:1.15rem; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.review-actions p { margin:0; }
.review-actions { margin-top:1.25rem; text-align:center; }
.review-actions .button { width:100%; min-height:54px; }
.review-actions [disabled] { opacity:.5; cursor:not-allowed; }
.add-more-link { display:block; padding:1rem; border:1px solid var(--divider); border-radius:10px; background:var(--pale); font-weight:700; }
@media(max-width:620px){.manual-locality-fields{grid-template-columns:1fr}.manual-locality-fields>*{grid-column:1!important}}
.approved-upload-success { width:min(920px,calc(100% - 40px)); margin:2.5rem auto 5rem; padding:1.5rem; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:0 14px 38px rgb(16 48 68 / .08); }
.upload-success-heading { display:flex; align-items:flex-start; gap:1rem; margin-bottom:1rem; }
.upload-success-heading h1,.upload-success-heading p { margin:0; }
.upload-success-heading p { margin-top:.35rem; color:var(--muted); }
.upload-success-check { display:grid; flex:0 0 2.6rem; width:2.6rem; height:2.6rem; place-content:center; border-radius:50%; background:#22aa6b; color:#fff; font-size:1.5rem; font-weight:800; }
.upload-success-reference { margin:0 0 .75rem; color:var(--muted); font-size:.9rem; }
.upload-success-list { border-top:1px solid var(--line); }
.upload-success-photo { display:grid; grid-template-columns:120px minmax(0,1fr) auto; align-items:center; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.upload-success-photo-visual img { display:block; width:120px; height:88px; object-fit:cover; border-radius:8px; background:var(--pale); }
.upload-success-photo-result p { margin:.2rem 0; }
.upload-success-location { display:flex; align-items:center; gap:.55rem; }
.upload-success-location span { color:var(--accent); }
.upload-success-caption { color:var(--muted); }
.upload-success-edit { min-width:72px; text-align:center; }
.upload-success-photo-actions { display:grid; gap:.5rem; min-width:180px; }
.upload-success-actions { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-top:1.5rem; }
.upload-success-actions .button { min-height:54px; text-align:center; font-size:1.05rem; }
.upload-success-attention { display:block; margin:.75rem 0; text-align:center; }
.approved-upload .button,.approved-review .button,.approved-upload-success .button,.my-submissions-page .button { background:var(--contributor-action); border-color:var(--contributor-action); }
.approved-upload .button-ghost,.approved-review .button-ghost,.approved-upload-success .button-ghost,.my-submissions-page .button-ghost { background:#fff; border-color:var(--contributor-action); color:var(--contributor-action); }
.approved-upload :where(a,button,input,select,textarea,[tabindex]):focus-visible,.approved-review :where(a,button,input,select,textarea,[tabindex]):focus-visible,.approved-upload-success :where(a,button,input,select,textarea,[tabindex]):focus-visible,.my-submissions-page :where(a,button,input,select,textarea,[tabindex]):focus-visible { outline-color:var(--contributor-action); }
.profile-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.profile-heading h1 { margin-block:.2rem; }
.review-photo-needs-information { border-color:#805513; box-shadow:0 0 0 2px rgb(128 85 19 / .12); }
.review-attention-link { display:inline-flex; margin:.5rem 0; }
.capture-date-control { margin:1rem 0; padding:.9rem 0; border-block:1px solid var(--line); }
.capture-date-control > p { margin:0; }
.capture-date-editor { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.55rem 1rem; margin-top:.8rem; }
.capture-date-editor label,.capture-date-editor .actions,.capture-date-editor .form-note { grid-column:1/-1; }
.capture-date-editor select,.capture-date-editor input { width:100%; }
.duplicate-review-notice { margin-block:1rem; }
.my-submissions-page { padding:3.5rem 0 5rem; }
.my-submissions-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:2rem; }
.my-submissions-heading h1 { margin:0; font-size:clamp(2.25rem,5vw,3.6rem); }
.my-submissions-heading p { margin:.4rem 0 0; color:var(--muted); font-size:1.05rem; }
.submission-history-section-title { margin:0 0 .75rem; font-size:1.15rem; }
.submission-history-previous { margin-top:2rem; scroll-margin-top:1rem; }
.submission-history { display:grid; gap:1rem; }
.submission-history-card { display:grid; grid-template-columns:minmax(180px,260px) minmax(0,1fr) auto; align-items:center; gap:1.25rem; padding:1.15rem; border:1px solid var(--line); border-radius:12px; background:var(--surface,#fff); box-shadow:0 8px 24px rgb(16 48 68 / .06); }
.submission-history-card-compact { grid-template-columns:minmax(0,1fr) auto; padding:.9rem 1rem; box-shadow:none; }
.submission-history-card-compact .submission-history-copy { display:grid; grid-template-columns:auto minmax(6rem,.35fr) minmax(13rem,1fr) auto; align-items:center; gap:.5rem 1rem; }
.submission-history-card-compact .submission-history-copy h2,.submission-history-card-compact .submission-reference,.submission-history-card-compact .submission-date { margin:0; }
.submission-history-previews { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem; min-height:100px; }
.submission-history-previews:empty { min-height:0; }
.submission-history-previews img,.submission-history-more { width:100%; height:78px; border-radius:7px; background:var(--pale); object-fit:cover; }
.submission-history-more { display:grid; place-content:center; color:var(--action); font-weight:800; }
.submission-history-copy h2 { margin:.45rem 0 .35rem; font-size:1.35rem; }
.submission-reference,.submission-date { margin:.25rem 0; color:var(--muted); }
.submission-reference strong { color:var(--ink); }
.submission-status { display:inline-flex; padding:.25rem .65rem; border-radius:999px; background:var(--pale); color:var(--brand); font-size:.82rem; font-weight:800; }
.submission-status[data-status-kind="published"] { background:#e8f5ee; color:#216a45; }
.submission-status[data-status-kind="needs"] { background:#fff3dd; color:#805513; }
.submission-view { min-width:145px; }
.submission-history-more-form { margin-top:1rem; }
.my-submissions-empty { padding:3rem; border:1px solid var(--line); border-radius:12px; background:var(--pale); text-align:center; }
.my-submissions-empty h2 { margin-top:0; }
@keyframes approved-progress { to { left:100%; } }
@media (prefers-reduced-motion:reduce) { .approved-progress span { transition:none; } .submission-progress span { animation:none; left:32.5%; } }
@media (max-width:760px) {
  .upload-page-heading { display:block; }
  .selected-photo-previews { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .upload-processing-screen { padding:1.25rem; }
  .review-layout,.review-photo-card,.single-photo-review .review-photo-card { grid-template-columns:1fr; }
  .review-sidebar { position:static; }
  .review-photo-visual .session-review-image { min-height:0; max-height:none; aspect-ratio:4/3; }
  .review-topline,.reference-line { align-items:flex-start; }
  .reference-line { justify-content:flex-start; flex-wrap:wrap; }
  .approved-upload-success { margin-top:1.25rem; padding:1.1rem; }
  .upload-success-photo { grid-template-columns:88px minmax(0,1fr); }
  .upload-success-photo-visual img { width:88px; height:72px; }
  .upload-success-edit { grid-column:1/-1; width:100%; }
  .upload-success-photo-actions { grid-column:1/-1; width:100%; }
  .upload-success-actions { grid-template-columns:1fr; }
  .profile-heading { align-items:stretch; flex-direction:column; }
  .approved-upload,.approved-review,.my-submissions-page { width:min(100% - 24px,1180px); }
  .approved-upload-success { width:calc(100% - 24px); }
  .my-submissions-heading { align-items:stretch; flex-direction:column; }
  .submission-history-card { grid-template-columns:96px minmax(0,1fr); gap:.85rem; padding:.85rem; }
  .submission-history-card-compact { grid-template-columns:1fr; }
  .submission-history-card-compact .submission-history-copy { display:block; }
  .submission-history-card-compact .submission-history-copy > * { margin:.3rem 0; }
  .submission-history-previews { grid-template-columns:1fr; }
  .submission-history-previews img,.submission-history-more { height:72px; }
  .submission-history-previews img:nth-of-type(n+2) { display:none; }
  .submission-view { grid-column:1/-1; width:100%; }
  .my-submissions-empty { padding:2rem 1rem; }
  .capture-date-editor { grid-template-columns:1fr; }
}
