:root{
  color-scheme:dark;
  --sv-bg:#111417;
  --sv-topbar:#111417;
  --sv-nav:#181c20;
  --sv-card:#191e23;
  --sv-card-alt:#20262c;
  --sv-border:#2c343b;
  --sv-border-soft:rgba(255,255,255,.08);
  --sv-text:#e8ecea;
  --sv-muted:#98a2a8;
  --sv-dim:#758087;
  --sv-accent:#7fae96;
  --sv-accent-dark:#315b47;
  --sv-danger:#b85b5b;
  --sv-radius:8px;

  --bg:var(--sv-bg);
  --panel:var(--sv-card);
  --panel2:var(--sv-card-alt);
  --text:var(--sv-text);
  --muted:var(--sv-muted);
  --line:var(--sv-border);
  --accent:var(--sv-accent);
  --danger:var(--sv-danger);
  --ok:var(--sv-accent);
  --radius:var(--sv-radius);
  --shadow:0 16px 44px rgba(0,0,0,.28);

  --bs-body-bg:var(--sv-bg);
  --bs-body-color:var(--sv-text);
  --bs-secondary-color:var(--sv-muted);
  --bs-border-color:var(--sv-border);
  --bs-card-bg:var(--sv-card);
  --bs-card-border-color:var(--sv-border);
  --bs-link-color:#a8d7c0;
  --bs-link-hover-color:#c7ead8;
}

html,body{min-height:100%}
body.sv-portal{
  margin:0;
  background:var(--sv-bg);
  color:var(--sv-text);
  font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.sv-skip-link{
  position:fixed;
  top:.5rem;
  left:.5rem;
  z-index:2000;
  padding:.5rem .75rem;
  border-radius:.375rem;
  background:#fff;
  color:#111!important;
  transform:translateY(-150%);
  transition:transform .12s ease;
}
.sv-skip-link:focus{transform:translateY(0)}

.sv-site-header{
  position:sticky;
  top:0;
  z-index:1030;
  background:var(--sv-topbar);
  box-shadow:0 8px 24px rgba(0,0,0,.22);
}
.sv-topbar{
  background:var(--sv-topbar);
  border-bottom:1px solid var(--sv-border-soft);
}
.sv-topbar-inner{
  display:flex;
  align-items:center;
  min-height:66px;
  gap:14px;
}
.sv-topbar-spacer{flex:1}

.sv-brand{
  display:inline-flex;
  flex-direction:column;
  line-height:1;
  color:#f0f3f1!important;
  letter-spacing:.055em;
  text-decoration:none!important;
}
.sv-brand-name{font-size:18px;font-weight:850}
.sv-brand-subtitle{
  margin-top:5px;
  color:#7f8c86;
  font-size:9px;
  font-weight:800;
  letter-spacing:.22em;
}

.sv-system-chip{
  align-items:center;
  gap:10px;
  padding:5px 10px;
  border:1px solid var(--sv-border-soft);
  border-radius:8px;
  background:rgba(255,255,255,.025);
}
.sv-meta-label{
  display:block;
  color:#78838a;
  font-size:8px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.sv-meta-value{
  display:block;
  margin-top:2px;
  color:#d7dde0;
  font-size:11px;
  white-space:nowrap;
}
.sv-chip-separator{
  width:1px;
  height:28px;
  background:rgba(255,255,255,.10);
}
.sv-datetime{
  min-width:190px;
  line-height:1.15;
  text-align:right;
}
.sv-datetime .sv-meta-value{color:#e8ecea;font-size:12px}

.sv-avatar{
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  flex:0 0 34px;
  border:1px solid #3a4740;
  border-radius:50%;
  background:#202822;
  color:#cfe5d8;
  font-size:11px;
  font-weight:850;
  letter-spacing:.05em;
}

.sv-account-button{
  min-height:34px;
  padding:.35rem .65rem;
  border:1px solid var(--sv-border);
  border-radius:7px;
  background:#181d21;
  color:#d9dfdc;
  font-size:12px;
  font-weight:700;
}
.sv-account-button:hover,
.sv-account-button:focus,
.sv-account-button.show{
  border-color:#3a454d;
  background:#20262b;
  color:#fff;
  box-shadow:none;
}
.sv-account-menu{
  min-width:220px;
  padding:.4rem;
  border:1px solid var(--sv-border);
  border-radius:9px;
  background:var(--sv-card);
  box-shadow:0 18px 50px rgba(0,0,0,.55);
}
.sv-account-name{font-weight:800;color:#eef1ef}
.sv-account-company{color:var(--sv-muted);font-size:11px}
.sv-account-menu .dropdown-item{
  border-radius:6px;
  color:#d7ddda;
  font-size:12px;
}
.sv-account-menu .dropdown-item:hover,
.sv-account-menu .dropdown-item:focus{
  background:#252c31;
  color:#fff;
}

.sv-nav{
  min-height:43px;
  padding:0;
  background:var(--sv-nav);
  border-bottom:1px solid var(--sv-border);
}

.sv-nav .navbar-toggler{
  margin:.45rem 0;
  border-color:var(--sv-border);
  box-shadow:none;
}

.sv-nav .navbar-toggler:focus{
  box-shadow:0 0 0 .15rem rgba(127,174,150,.18);
}

.sv-nav .nav-link{
  min-height:43px;
  display:flex;
  align-items:center;
  padding:.65rem .9rem;
  border-bottom:2px solid transparent;
  color:#aab3b0;
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
}

.sv-nav .nav-link:hover,
.sv-nav .nav-link:focus{
  color:#eef1ef;
  background:rgba(255,255,255,.025);
}

.sv-nav .nav-link.active,
.sv-nav .nav-link.show{
  color:#f2f4f3;
  border-bottom-color:var(--sv-accent);
}

.sv-admin-menu{
  min-width:260px;
  max-height:min(75vh,680px);
  overflow-y:auto;
  padding:.45rem;
  border:1px solid var(--sv-border);
  border-radius:9px;
  background:var(--sv-card);
  box-shadow:0 18px 50px rgba(0,0,0,.55);
}

.sv-admin-menu .dropdown-header{
  padding:.5rem .65rem .3rem;
  color:#728078;
  font-size:9px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.sv-admin-menu .dropdown-item{
  padding:.48rem .65rem;
  border-radius:6px;
  color:#d7ddda;
  font-size:12px;
}

.sv-admin-menu .dropdown-item:hover,
.sv-admin-menu .dropdown-item:focus{
  background:#252c31;
  color:#fff;
}

.sv-admin-menu .dropdown-item.active{
  background:#25362e;
  color:#fff;
  box-shadow:inset 2px 0 0 var(--sv-accent);
}

.sv-admin-menu .dropdown-divider{
  margin:.35rem .25rem;
  border-color:rgba(255,255,255,.08);
}

@media(max-width:991.98px){
  .sv-site-header{
    position:relative;
    top:auto;
  }
  .sv-nav>.container-fluid{align-items:stretch;flex-direction:column}
  .sv-nav .navbar-toggler{
    align-self:flex-start;
    min-width:48px;
    min-height:44px;
  }
  .sv-nav .navbar-collapse{
    max-height:calc(100dvh - 118px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .sv-nav .navbar-nav{padding:.35rem 0 .75rem}
  .sv-nav .nav-link{
    min-height:44px;
    padding:.6rem .75rem;
    border-bottom:0;
    border-left:2px solid transparent;
    border-radius:6px;
  }
  .sv-nav .nav-link.active,
  .sv-nav .nav-link.show{
    border-left-color:var(--sv-accent);
    background:#232a2f;
  }
  .sv-admin-menu{
    max-height:none;
    margin:.2rem 0 .4rem;
    box-shadow:none;
  }
  .sv-mobile-admin{margin-top:.15rem}
  .sv-mobile-admin-toggle{
    width:100%;
    justify-content:space-between;
    border:0;
    background:transparent;
    text-align:left;
  }
  .sv-mobile-admin-chevron{
    width:.55rem;
    height:.55rem;
    margin-right:.25rem;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg);
    transition:transform .15s ease;
  }
  .sv-mobile-admin-toggle[aria-expanded="true"] .sv-mobile-admin-chevron{
    transform:rotate(225deg);
  }
  .sv-mobile-admin-panel{
    display:grid;
    gap:12px;
    margin:.35rem 0 .65rem .45rem;
    padding:.7rem;
    border:1px solid var(--sv-border);
    border-radius:8px;
    background:#14191d;
  }
  .sv-mobile-admin-group{
    display:grid;
    gap:5px;
    min-width:0;
  }
  .sv-mobile-admin-group+ .sv-mobile-admin-group{
    padding-top:10px;
    border-top:1px solid var(--sv-border-soft);
  }
  .sv-mobile-admin-group h6{
    margin:0;
    padding:.15rem .35rem;
    color:#7f8c85;
    font-size:9px;
    font-weight:850;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .sv-mobile-admin-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px;
  }
  .sv-mobile-admin-link{
    display:flex;
    align-items:center;
    min-height:44px;
    padding:.55rem .65rem;
    border:1px solid transparent;
    border-radius:6px;
    color:#d7ddda;
    font-size:12px;
    font-weight:700;
    line-height:1.25;
    text-decoration:none;
    overflow-wrap:anywhere;
  }
  .sv-mobile-admin-link:hover,
  .sv-mobile-admin-link:focus{
    border-color:#39434a;
    background:#20262b;
    color:#fff;
  }
  .sv-mobile-admin-link.active{
    border-color:#3d5c4c;
    background:#25362e;
    color:#fff;
    box-shadow:inset 2px 0 0 var(--sv-accent);
  }
}

@media(max-width:575.98px){
  .sv-topbar-inner{gap:8px}
  .sv-brand-name{font-size:15px}
  .sv-brand-subtitle{font-size:8px}
  .sv-avatar{
    width:30px;
    height:30px;
    flex-basis:30px;
  }
  .sv-account-button{padding:.3rem .5rem}
  .sv-nav .navbar-collapse{max-height:calc(100dvh - 112px)}
  .sv-mobile-admin-links{grid-template-columns:1fr}
}

.sv-main{
  min-height:calc(100vh - 180px);
}
.sv-admin .sv-main{max-width:1500px}
.sv-public .sv-main{max-width:1180px}

.sv-page-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}
.sv-page-kicker{
  margin-bottom:4px;
  color:#718077;
  font-size:9px;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.sv-page-heading h1{
  margin:0;
  color:#eef1ef;
  letter-spacing:.015em;
}
.sv-page-aside,
.sv-signed-in{
  color:var(--sv-muted);
  font-size:11px;
  white-space:nowrap;
}
.sv-page-content{display:grid;gap:16px}

.sv-portal .card{
  --bs-card-bg:var(--sv-card);
  --bs-card-border-color:var(--sv-border);
  border-radius:var(--sv-radius);
  box-shadow:0 8px 24px rgba(0,0,0,.16);
}

.sv-portal .form-control,
.sv-portal .form-select{
  background-color:var(--sv-card-alt);
  border-color:#343d44;
  color:var(--sv-text);
}

.sv-portal .form-control:focus,
.sv-portal .form-select:focus{
  background-color:var(--sv-card-alt);
  border-color:#527362;
  color:var(--sv-text);
  box-shadow:0 0 0 .15rem rgba(122,184,155,.12);
}

.sv-portal .form-control::placeholder{color:#748087}
.sv-portal .form-label{color:#cfd5d2;font-weight:650}

.sv-portal .btn-primary{
  --bs-btn-bg:#315b47;
  --bs-btn-border-color:#3c7158;
  --bs-btn-hover-bg:#3b6c55;
  --bs-btn-hover-border-color:#467c63;
  --bs-btn-active-bg:#294d3c;
  --bs-btn-active-border-color:#365f4b;
  --bs-btn-disabled-bg:#315b47;
  --bs-btn-disabled-border-color:#3c7158;
}

.sv-portal .btn-outline-secondary{
  --bs-btn-color:#d9dfdc;
  --bs-btn-border-color:#465058;
  --bs-btn-hover-bg:#252c31;
  --bs-btn-hover-border-color:#566169;
  --bs-btn-hover-color:#fff;
}

.sv-portal .table{
  --bs-table-bg:transparent;
  --bs-table-color:#dfe4e2;
  --bs-table-border-color:rgba(255,255,255,.07);
  --bs-table-hover-bg:rgba(255,255,255,.025);
  --bs-table-hover-color:#eef1ef;
  margin-bottom:0;
}

.sv-portal .table thead th{
  color:#97a39d;
  font-size:10px;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
  white-space:nowrap;
}

.sv-portal .alert{border-color:var(--sv-border)}
.sv-portal .alert-success{
  --bs-alert-bg:#19231f;
  --bs-alert-color:#cfe5d8;
  --bs-alert-border-color:#365246;
}
.sv-portal .alert-danger{
  --bs-alert-bg:#2a1919;
  --bs-alert-color:#efb3b3;
  --bs-alert-border-color:#6d3030;
}

.sv-portal .page-link{
  background:var(--sv-card);
  border-color:var(--sv-border);
  color:#c5d0cb;
}
.sv-portal .page-link:hover{
  background:var(--sv-card-alt);
  border-color:#465058;
  color:#fff;
}
.sv-portal .page-item.disabled .page-link{
  background:#15191d;
  border-color:var(--sv-border);
  color:#6f797e;
}

.narrow{max-width:520px;margin:4rem auto}
.text-secondary{color:var(--sv-muted)!important}

.sv-portal .metadata{
  display:grid;
  grid-template-columns:minmax(150px,1fr) 2fr;
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:var(--sv-radius);
}
.sv-portal .metadata dt,
.sv-portal .metadata dd{
  margin:0;
  padding:8px 10px;
  border-bottom:1px solid var(--sv-border);
}
.sv-portal .metadata dt{background:#1f252a;color:#b7c0bc;font-weight:800}

.sv-footer{
  border-top:1px solid var(--sv-border);
  background:#14181b;
}
.sv-footer-inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#6f797e;
  font-size:9px;
  font-weight:800;
  letter-spacing:.09em;
}
.sv-footer-separator{color:#41494d}

.hero{padding:46px 0 28px}
.hero h1{margin:2px 0;font-size:clamp(2.3rem,7vw,5rem);font-weight:850}
.hero p,.lede{max-width:72ch;color:var(--sv-muted);font-size:1.1rem}
.feature{width:100%;max-height:75vh;object-fit:contain;background:#000;border-radius:8px}
.card .feature{aspect-ratio:4/3;max-height:none;object-fit:cover}
.card-img-top{aspect-ratio:4/3;object-fit:cover;background:#111}
.qr{width:150px;height:150px;padding:8px;background:#fff}
.sv-qr-share{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin:32px 0 10px;
  padding:20px;
  border:1px solid var(--sv-border);
  border-radius:10px;
  background:var(--sv-card);
}
.sv-qr-share-copy{max-width:620px}
.sv-qr-share-copy h2{margin:.15rem 0 .5rem}
.sv-qr-figure{
  display:grid;
  justify-items:center;
  gap:7px;
  flex:0 0 auto;
}
.sv-qr-figure figcaption{
  color:var(--sv-muted);
  font-size:.72rem;
  font-weight:700;
}
.map{height:70vh;min-height:480px;border:1px solid var(--sv-border);border-radius:8px;overflow:hidden}
.search-result{padding:1rem 0;border-bottom:1px solid var(--sv-border)}
.eyebrow{color:var(--sv-muted);font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.timeline{display:grid;gap:.75rem;padding-left:1.25rem}

.upload-dashboard{
  display:grid;
  gap:1rem;
  padding:1rem;
  border:1px solid var(--sv-border);
  border-radius:var(--sv-radius);
  background:var(--sv-card);
}
.upload-dashboard[hidden]{display:none}
.upload-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.8rem}
.upload-stats .stat{
  padding:1rem;
  border:1px solid var(--sv-border);
  border-radius:var(--sv-radius);
  background:var(--sv-card-alt);
}
.upload-stats .stat strong{display:block;font-size:1.5rem}
.upload-stats .stat span{color:var(--sv-muted);font-size:.75rem;text-transform:uppercase}
.upload-file-name{font-weight:800;overflow-wrap:anywhere}
.upload-dashboard progress{width:100%;height:1.35rem}
.upload-overall-label{display:flex;justify-content:space-between;gap:1rem}
.upload-results{display:grid;gap:.55rem}
.upload-result{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:.75rem;
  align-items:center;
  padding:.7rem .8rem;
  border:1px solid var(--sv-border);
  border-radius:7px;
  background:var(--sv-card-alt);
}
.upload-result span{overflow-wrap:anywhere}
.upload-result-failed strong{color:var(--sv-danger)}
.upload-result-ok strong{color:var(--sv-accent)}

.batch-list{display:grid;gap:1rem}
.batch-card{position:relative}
.batch-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.85rem 0}
.batch-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.batch-detail details{
  margin:.75rem 0;
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:8px;
  background:var(--sv-card-alt);
}
.batch-detail summary{cursor:pointer;padding:.8rem 1rem;font-weight:700;user-select:none}
.batch-detail details[open] summary{border-bottom:1px solid var(--sv-border)}
.batch-detail details>*:not(summary){margin-left:1rem;margin-right:1rem}

.button-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:.375rem .75rem;
  border:1px solid #3c7158;
  border-radius:.375rem;
  background:#315b47;
  color:#fff!important;
  font-weight:700;
  text-decoration:none!important;
}
.button-link:hover{background:#3b6c55}
.button-link.secondary{background:transparent;border-color:#465058;color:#d9dfdc!important}

.dashboard-stat{color:inherit;text-decoration:none;transition:border-color .12s ease,transform .12s ease}
.dashboard-stat:hover,.dashboard-stat:focus-visible{border-color:var(--sv-accent);transform:translateY(-1px)}
.dashboard-audit .clickable-row{cursor:pointer}
.dashboard-audit code{white-space:nowrap}

.inbox-selection-bar{
  padding:.6rem .75rem;
  border:1px solid var(--sv-border);
  border-radius:8px;
  background:var(--sv-card-alt);
}
.inbox-all-matching{display:flex;align-items:center;gap:.45rem;font-size:.88rem}
.inbox-action-card{min-width:0}
.inbox-action-card-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}

.inbox-table-wrap{
  overflow:auto;
  border:1px solid var(--sv-border);
  border-radius:var(--sv-radius);
}
.inbox-table{min-width:1180px}
.inbox-table thead{position:sticky;top:0;z-index:5}
.inbox-table thead tr:first-child th{padding:.55rem .5rem}
.inbox-table td{padding:.45rem .5rem}
.inbox-filter-row th{padding:.3rem .4rem;background:var(--sv-card-alt);vertical-align:top}
.inbox-date-filter{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}
.inbox-table th:first-child,.inbox-table td:first-child{width:42px;text-align:center}
.inbox-table th:nth-child(2),.inbox-table td:nth-child(2){width:104px}
.inbox-table th:nth-child(8),.inbox-table td:nth-child(8){width:110px}
.inbox-sort{display:inline-flex;align-items:center;gap:.25rem;font-weight:800;white-space:nowrap}
.inbox-file-link{display:block;font-weight:800;max-width:360px;overflow:hidden;text-overflow:ellipsis}
.inbox-ext{
  display:inline-block;
  margin:.2rem .4rem 0 0;
  padding:.08rem .35rem;
  border:1px solid var(--sv-border);
  border-radius:6px;
  background:var(--sv-card-alt);
  color:var(--sv-muted);
  font-size:.75rem;
}
.inbox-public-id{display:block;margin-top:.15rem;color:var(--sv-muted);font-size:.75rem}
.inbox-thumb{
  display:block;
  width:88px;
  height:66px;
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:7px;
  background:var(--sv-card-alt);
}
.inbox-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.inbox-thumb:hover{border-color:var(--sv-accent)}
.inbox-thumb-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--sv-muted);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
}

.artifact-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.artifact-primary-settings{display:grid;gap:1rem}
.artifact-advanced{margin-top:1rem}
.artifact-advanced summary{cursor:pointer;font-weight:800;margin-bottom:1rem}

.metadata{
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:var(--sv-radius);
}
.metadata dt,.metadata dd{padding:.5rem .75rem;margin:0;border-bottom:1px solid var(--sv-border)}
.metadata dt{background:var(--sv-card-alt);color:#b7c0bc}

@media(max-width:850px){
  .sv-system-chip{display:none!important}
  .sv-page-heading{align-items:flex-start;flex-direction:column}
  .sv-page-aside,.sv-signed-in{white-space:normal}
}
@media(max-width:720px){
  .upload-result{grid-template-columns:1fr}
  .upload-overall-label{align-items:flex-start;flex-direction:column;gap:.2rem}
  .batch-actions{display:grid;grid-template-columns:1fr}
  .artifact-settings-grid{grid-template-columns:1fr}
  .inbox-table{min-width:1050px}
  .inbox-date-filter{grid-template-columns:1fr}
}
@media(max-width:600px){
  .sv-topbar-inner{min-height:58px;gap:8px}
  .sv-brand-name{font-size:15px}
  .sv-brand-subtitle{font-size:8px}
  .sv-avatar{display:none}
  .sv-datetime{display:none!important}
  .sv-main{padding-left:12px!important;padding-right:12px!important}
  .sv-portal .metadata{grid-template-columns:1fr}
  .sv-footer-inner{flex-wrap:wrap;text-align:center}
}
@media(max-width:520px){
  .inbox-action-card-buttons{grid-template-columns:1fr}
}


/* Public archive: legacy SkyView visual language on the current application */
.sv-public{
  --sv-accent:#5dd675;
  --sv-accent-dark:#2f6b43;
}
.sv-public .sv-main{max-width:1500px}
.sv-public .sv-page-content{gap:28px}
.sv-public a{transition:color .12s ease,border-color .12s ease,opacity .12s ease}
.sv-public .eyebrow{color:#7f9388;letter-spacing:.14em}
.sv-public-section{display:grid;gap:18px;margin-top:16px}
.sv-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.sv-section-head h1,.sv-section-head h2{margin:0;color:#f0f4f1;font-weight:850;letter-spacing:-.015em}
.sv-section-head a{white-space:nowrap}
.sv-public-hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  min-height:300px;
  padding:54px 0 42px;
  border-bottom:1px solid var(--sv-border);
}
.sv-public-hero h1{
  margin:.15rem 0 .65rem;
  max-width:900px;
  font-size:clamp(3rem,8vw,7.2rem);
  line-height:.9;
  font-weight:900;
  letter-spacing:-.055em;
}
.sv-public-hero p:not(.eyebrow){max-width:720px;margin:0;color:var(--sv-muted);font-size:1.08rem}
.sv-public-hero-actions{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:4px}
.sv-public .btn-primary{
  --bs-btn-bg:#315b47;
  --bs-btn-border-color:#5dd675;
  --bs-btn-hover-bg:#397050;
  --bs-btn-hover-border-color:#74e38b;
}

.sv-adventure-card{overflow:hidden}
.sv-adventure-card .card-body{padding:18px}
.sv-adventure-card h2 a,.sv-adventure-card h3 a{color:#eef3f0;text-decoration:none}
.sv-adventure-card h2 a:hover,.sv-adventure-card h3 a:hover{color:#fff}
.sv-card-media{display:block;overflow:hidden;background:#0a0c0e}
.sv-card-media:empty{display:none}
.sv-card-media .feature{display:block;width:100%;aspect-ratio:16/10;max-height:none;border-radius:0;object-fit:cover;transition:transform .22s ease,filter .22s ease}
.sv-adventure-card:hover .sv-card-media .feature{transform:scale(1.025);filter:brightness(1.05)}

.sv-photo-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.sv-photo-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:8px;
  background:#0d1012;
}
.sv-photo-card-link{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  color:#fff!important;
  text-decoration:none!important;
}
.sv-photo-card-image,.sv-photo-card-placeholder{position:absolute;inset:0;display:block}
.sv-photo-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease,filter .25s ease}
.sv-photo-card-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#1a2024,#101316);color:#7e898e;font-size:.72rem;font-weight:850;letter-spacing:.1em}
.sv-photo-card-overlay{
  position:absolute;
  left:0;right:0;bottom:0;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:38px 12px 11px;
  background:linear-gradient(to top,rgba(0,0,0,.88),rgba(0,0,0,0));
  transform:translateY(24px);
  transition:transform .2s ease;
}
.sv-photo-card-title{font-size:.88rem;font-weight:800;text-shadow:0 1px 5px #000}
.sv-photo-card-meta{min-height:18px;color:#c0c8c4;font-size:.69rem;opacity:0;transition:opacity .2s ease}
.sv-photo-card:hover .sv-photo-card-image img,.sv-photo-card:focus-within .sv-photo-card-image img{transform:scale(1.045);filter:brightness(1.04)}
.sv-photo-card:hover .sv-photo-card-overlay,.sv-photo-card:focus-within .sv-photo-card-overlay{transform:translateY(0)}
.sv-photo-card:hover .sv-photo-card-meta,.sv-photo-card:focus-within .sv-photo-card-meta{opacity:1}

.sv-artifact-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:18px 0 8px;
}
.sv-artifact-toolbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
.sv-share-menu,.sv-navigation-menu{min-width:220px}
.sv-location-action-note{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 12px;
  color:var(--sv-muted);
  font-size:.76rem;
}
.sv-location-action-note strong{color:#b9c3be}
.sv-location-action-note span{opacity:.8}
.sv-artifact-stage{
  position:relative;
  display:grid;
  place-items:center;
  height:min(78vh,920px);
  min-height:440px;
  overflow:hidden;
  border:1px solid #343c42;
  border-radius:10px;
  background:#050607;
  cursor:grab;
  touch-action:pan-y pinch-zoom;
  user-select:none;
}
.sv-artifact-stage.is-dragging{cursor:grabbing}
.sv-artifact-image{
  display:block;
  max-width:100%;
  max-height:100%;
  transform-origin:center center;
  will-change:transform;
  pointer-events:none;
}
.sv-watermark-grid{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(3,1fr);
  pointer-events:none;
  overflow:hidden;
}
.sv-watermark-grid span{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
  color:rgba(255,255,255,.10);
  font-size:clamp(.55rem,1vw,.9rem);
  font-weight:850;
  letter-spacing:.08em;
  text-align:center;
  transform:rotate(-24deg);
}
.sv-zoom-hint{
  position:absolute;
  right:10px;
  bottom:10px;
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:6px;
  background:rgba(0,0,0,.56);
  color:#9da6a2;
  font-size:.69rem;
  pointer-events:none;
}
.sv-artifact-info{margin-top:8px}
.sv-story-block{
  max-width:900px;
  color:#d9dfdc;
  font-size:1rem;
  line-height:1.75;
}
.sv-story-block p:last-child{margin-bottom:0}
.sv-fact-card{position:sticky;top:130px}
.sv-fact{display:grid;gap:3px;padding:11px 0;border-bottom:1px solid var(--sv-border-soft)}
.sv-fact span,.sv-integrity span{color:var(--sv-muted);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.sv-fact strong{font-size:.9rem;font-weight:750;overflow-wrap:anywhere}
.sv-integrity{margin-top:10px}
.sv-integrity summary{cursor:pointer;color:#cbd4d0;font-weight:750}
.sv-integrity div{display:grid;gap:5px;margin-top:10px}
.sv-integrity code{overflow-wrap:anywhere;word-break:break-all;color:#b8c9c0;font-size:.7rem}
.sv-tag-list{display:flex;flex-wrap:wrap;gap:6px}
.sv-adventure-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:12px 0 2px}
.sv-adventure-summary .lede{margin:0}
.sv-adventure-date{margin:0;color:#a9b4af;font-size:.85rem;white-space:nowrap}
.sv-adventure-map{height:min(62vh,680px);min-height:420px}
.sv-public .timeline{
  position:relative;
  gap:0;
  padding-left:0;
  border-left:1px solid var(--sv-border);
}
.sv-public .timeline>*{padding:10px 0 10px 22px}
.sv-public .timeline>*::before{
  content:"";
  position:absolute;
  left:-4px;
  width:7px;
  height:7px;
  margin-top:7px;
  border-radius:50%;
  background:var(--sv-accent);
  box-shadow:0 0 0 4px var(--sv-bg);
}

@media(max-width:1199.98px){
  .sv-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:767.98px){
  .sv-mobile-details-jump{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:46px;
    margin-top:10px;
    font-weight:800;
  }
  .sv-public-hero{align-items:flex-start;flex-direction:column;min-height:0;padding:38px 0 30px}
  .sv-public-hero h1{font-size:clamp(2.7rem,15vw,5rem)}
  .sv-section-head{align-items:flex-start;flex-direction:column;gap:8px}
  .sv-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .sv-photo-card-overlay{transform:none;padding:34px 9px 8px}
  .sv-photo-card-meta{opacity:1}
  .sv-artifact-stage{height:62vh;min-height:320px;border-radius:7px}
  .sv-artifact-toolbar{align-items:stretch;flex-direction:column}
  .sv-artifact-toolbar>div{justify-content:space-between}
  .sv-artifact-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}
  .sv-artifact-toolbar-actions>.dropdown,.sv-artifact-toolbar-actions>.btn{width:100%}
  .sv-artifact-toolbar-actions>.dropdown>.btn{width:100%}
  .sv-artifact-toolbar-actions>.btn:last-child{grid-column:1 / -1}
  .sv-location-action-note{align-items:flex-start;flex-direction:column;gap:2px}
  .sv-qr-share{align-items:flex-start;flex-direction:column}
  .sv-qr-figure{width:100%}
  .sv-fact-card{position:static}
  .sv-adventure-summary{align-items:flex-start;flex-direction:column}
  .sv-adventure-date{white-space:normal}
}
@media(max-width:420px){
  .sv-photo-grid{grid-template-columns:1fr}
  .sv-photo-card-link{aspect-ratio:16/11}
}


/* Public archive map */
.sv-map-page{display:grid;gap:14px}
.sv-map-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  padding:18px 0 2px;
}
.sv-map-head h1{margin:0;font-size:clamp(2.2rem,5vw,4.2rem);font-weight:900;letter-spacing:-.04em}
.sv-map-head p:not(.eyebrow){max-width:760px;margin:.45rem 0 0;color:var(--sv-muted)}
.sv-map-shell{
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:10px;
  background:#0b0d0f;
}
.sv-map-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px;
  border-bottom:1px solid var(--sv-border);
  background:#14181b;
}
.sv-map-toolbar label{
  margin:0;
  color:#8d9993;
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sv-map-toolbar .form-select{width:auto;min-width:190px}
.sv-map-count{margin-left:auto;color:#8e9994;font-size:.75rem}
.sv-map-archive{
  height:calc(100vh - 235px);
  min-height:620px;
  border:0;
  border-radius:0;
}
.sv-map-popup{overflow:hidden;color:#17201b}
.sv-map-popup-image{display:block;background:#111}
.sv-map-popup-image img{display:block;width:100%;height:180px;object-fit:cover}
.sv-map-popup-body{padding:10px 11px 12px}
.sv-map-popup-id{
  margin-bottom:4px;
  color:#647269;
  font-size:.65rem;
  font-weight:850;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.sv-map-popup h2{margin:0 0 5px;font-size:1rem;line-height:1.2}
.sv-map-popup h2 a{color:#17201b;text-decoration:none}
.sv-map-popup-meta{margin-bottom:8px;color:#657168;font-size:.72rem}
.sv-map-popup-action{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:4px 8px;
  border-radius:5px;
  background:#315b47;
  color:#fff!important;
  font-size:.74rem;
  font-weight:800;
  text-decoration:none!important;
}
.maplibregl-popup-content{padding:0!important;border-radius:8px!important;overflow:hidden}
.maplibregl-popup-close-button{
  z-index:2;
  width:30px;
  height:30px;
  border-radius:0 0 0 6px;
  background:rgba(0,0,0,.58)!important;
  color:#fff!important;
  font-size:18px;
}

@media(max-width:767.98px){
  .sv-map-head{align-items:flex-start;flex-direction:column}
  .sv-map-toolbar{align-items:stretch;flex-wrap:wrap}
  .sv-map-toolbar label{width:100%}
  .sv-map-toolbar .form-select{flex:1 1 190px;width:auto;min-width:0}
  .sv-map-count{width:100%;margin-left:0}
  .sv-map-archive{height:calc(100vh - 290px);min-height:480px}
}


/* Photo-first map explorer */
.sv-map-filterbar{
  display:grid;
  grid-template-columns:repeat(6,minmax(130px,1fr));
  gap:10px;
  padding:12px;
  border:1px solid var(--sv-border);
  border-radius:10px;
  background:#14181b;
}
.sv-map-filter{display:grid;gap:5px;min-width:0}
.sv-map-filter label{
  color:#83908a;
  font-size:.66rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sv-map-filter-actions{align-content:end}
.sv-map-status{
  display:flex;
  align-items:center;
  gap:8px;
  color:#8f9a95;
  font-size:.78rem;
}
.sv-map-status strong{color:#e8eeea}
.sv-map-explorer{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:12px;
  min-height:680px;
}
.sv-map-explorer .sv-map-shell{min-width:0}
.sv-map-archive{
  height:calc(100vh - 300px);
  min-height:680px;
}
.sv-map-browser{
  display:flex;
  min-width:0;
  max-height:calc(100vh - 300px);
  min-height:680px;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:10px;
  background:#111518;
  transition:width .2s ease,opacity .2s ease;
}
.sv-map-browser.is-hidden{display:none}
.sv-map-browser-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px;
  border-bottom:1px solid var(--sv-border);
  background:#171c20;
}
.sv-map-browser-head h2{margin:0;font-size:1rem}
.sv-map-gallery{
  display:grid;
  gap:6px;
  padding:8px;
  overflow-y:auto;
}
.sv-map-gallery-card{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:9px;
  align-items:center;
  width:100%;
  padding:0;
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:8px;
  background:#181d21;
  color:var(--sv-text);
  text-align:left;
}
.sv-map-gallery-card:hover,
.sv-map-gallery-card:focus-visible{
  border-color:var(--sv-accent);
  background:#20262b;
  outline:none;
}
.sv-map-gallery-thumb{
  display:grid;
  place-items:center;
  width:88px;
  height:70px;
  overflow:hidden;
  background:#0b0d0f;
}
.sv-map-gallery-thumb img{width:100%;height:100%;object-fit:cover}
.sv-map-gallery-generic{color:#738079;font-size:.65rem;font-weight:850;letter-spacing:.08em}
.sv-map-gallery-copy{display:grid;gap:2px;min-width:0;padding:7px 8px 7px 0}
.sv-map-gallery-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}
.sv-map-gallery-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#87938d;font-size:.67rem}

.sv-photo-marker{
  position:relative;
  display:grid;
  place-items:center;
  width:58px;
  height:48px;
  padding:3px;
  overflow:hidden;
  border:2px solid #fff;
  border-radius:7px;
  background:#101315;
  box-shadow:0 3px 12px rgba(0,0,0,.55);
  cursor:pointer;
  transition:transform .12s ease,width .12s ease,height .12s ease,border-radius .12s ease;
}
.sv-photo-marker::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-8px;
  width:12px;
  height:12px;
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
  background:#101315;
  transform:translateX(-50%) rotate(45deg);
  z-index:-1;
}
.sv-photo-marker:hover,
.sv-photo-marker:focus-visible{transform:translateY(-2px) scale(1.06);z-index:3;outline:none;border-color:var(--sv-accent)}
.sv-photo-marker img{display:block;width:100%;height:100%;border-radius:4px;object-fit:cover}
.sv-photo-marker span{font-size:.68rem;font-weight:900;color:#c9d2ce}
.sv-photo-marker-pin{
  width:22px;
  height:22px;
  padding:0;
  border-width:2px;
  border-radius:50%;
  background:var(--sv-accent-dark);
}
.sv-photo-marker-pin img,
.sv-photo-marker-pin span{display:none}
.sv-photo-marker-pin::after{
  bottom:-5px;
  width:8px;
  height:8px;
  border-color:#fff;
  background:var(--sv-accent-dark);
}
.sv-map-popup-facts{display:grid;gap:4px;margin:8px 0 10px}
.sv-map-popup-facts>div{display:grid;grid-template-columns:68px 1fr;gap:7px}
.sv-map-popup-facts dt{
  color:#718078;
  font-size:.66rem;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.sv-map-popup-facts dd{margin:0;color:#26312b;font-size:.72rem;overflow-wrap:anywhere}

@media(max-width:1199.98px){
  .sv-map-filterbar{grid-template-columns:repeat(4,minmax(130px,1fr))}
  .sv-map-explorer{grid-template-columns:minmax(0,1fr) 320px}
}
@media(max-width:991.98px){
  .sv-map-page{gap:12px}
  .sv-map-head{
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
    padding-top:8px;
  }
  .sv-map-head h1{font-size:clamp(2rem,9vw,3.4rem)}
  .sv-map-head p:not(.eyebrow){margin-top:.3rem;font-size:.92rem}
  .sv-map-actions{
    display:flex;
    width:100%;
    flex-wrap:wrap;
    gap:6px;
  }
  .sv-map-actions .btn{min-height:40px}
  .sv-map-filterbar{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    padding:10px;
  }
  .sv-map-filter .form-control,
  .sv-map-filter .form-select,
  .sv-map-filter .btn{min-height:42px}
  .sv-map-filter-actions .btn-group,
  .sv-map-filter-actions .d-flex{width:100%}
  .sv-map-filter-actions .btn{flex:1 1 0}
  .sv-map-status{
    align-items:flex-start;
    flex-wrap:wrap;
    padding:2px 2px 0;
  }
  .sv-map-explorer{grid-template-columns:1fr;gap:10px}
  .sv-map-browser{
    order:2;
    max-height:50dvh;
    min-height:260px;
  }
  .sv-map-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .sv-map-archive{
    height:58dvh;
    min-height:420px;
  }
}
@media(max-width:767.98px){
  .sv-main{padding-top:1rem!important}
  .sv-map-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sv-map-gallery{grid-template-columns:1fr}
  .sv-map-archive{
    height:56dvh;
    min-height:380px;
  }
}
@media(max-width:479.98px){
  .sv-map-filterbar{grid-template-columns:1fr}
  .sv-map-filter-actions{grid-template-columns:1fr}
  .sv-map-browser{max-height:48dvh}
  .sv-map-archive{
    height:54dvh;
    min-height:340px;
  }
  .sv-map-gallery-card{grid-template-columns:78px minmax(0,1fr)}
  .sv-map-gallery-thumb{width:78px;height:64px}
}


/* Gallery-first public artifact viewer */
.sv-gallery-viewer{margin-top:10px}
.sv-mobile-details-jump{display:none}
#artifact-details{scroll-margin-top:96px}
.sv-artifact-editorial{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,360px);
  gap:36px;
  align-items:start;
  padding:34px 0 12px;
  border-bottom:1px solid var(--sv-border);
}
.sv-artifact-editorial-main{max-width:900px}
.sv-artifact-editorial-main h2{
  margin:.15rem 0 1rem;
  color:#f0f4f1;
  font-size:clamp(1.8rem,3vw,2.8rem);
  font-weight:850;
  letter-spacing:-.025em;
}
.sv-artifact-description{
  color:#d7dfda;
  font-size:1.06rem;
  line-height:1.78;
}
.sv-artifact-description p:last-child{margin-bottom:0}
.sv-artifact-description-empty{
  margin:0;
  color:#78847e;
  font-style:italic;
}
.sv-artifact-caption{
  display:grid;
  gap:0;
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:9px;
  background:#151a1d;
}
.sv-caption-fact{
  display:grid;
  gap:3px;
  padding:11px 13px;
  border-bottom:1px solid var(--sv-border-soft);
}
.sv-caption-fact:last-of-type{border-bottom:0}
.sv-caption-fact span{
  color:#7f8c85;
  font-size:.64rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sv-caption-fact strong{
  color:#e3e9e6;
  font-size:.84rem;
  font-weight:750;
  overflow-wrap:anywhere;
}
.sv-caption-fact a{color:#dce8e1;text-decoration:none}
.sv-caption-fact a:hover{color:#fff}
.sv-caption-tags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  padding:11px 13px;
  border-top:1px solid var(--sv-border-soft);
}

.sv-technical-section{margin-top:24px}
.sv-technical-details{
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:10px;
  background:#121619;
}
.sv-technical-details>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:16px 18px;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
.sv-technical-details>summary::-webkit-details-marker{display:none}
.sv-technical-details>summary>span:first-child{display:grid;gap:3px}
.sv-technical-details>summary strong{
  color:#dfe6e2;
  font-size:.96rem;
  font-weight:800;
}
.sv-details-hint{
  color:#839088;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.sv-technical-details[open] .sv-details-hint::after{content:"ed"}
.sv-technical-details[open]>summary{border-bottom:1px solid var(--sv-border)}
.sv-technical-content{display:grid;gap:22px;padding:18px}
.sv-technical-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.sv-technical-summary-grid>div{
  display:grid;
  gap:4px;
  min-width:0;
  padding:10px 12px;
  border:1px solid var(--sv-border-soft);
  border-radius:7px;
  background:#181d21;
}
.sv-technical-summary-grid span,
.sv-integrity-block span{
  color:#7f8a84;
  font-size:.63rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sv-technical-summary-grid strong{
  overflow-wrap:anywhere;
  color:#dce4e0;
  font-size:.78rem;
}
.sv-technical-content h3{
  margin:0 0 10px;
  color:#dfe6e2;
  font-size:.9rem;
  font-weight:850;
}
.sv-technical-metadata{margin:0}
.sv-integrity-block{
  display:grid;
  gap:8px;
  padding-top:4px;
}
.sv-integrity-block>div{display:grid;gap:5px}
.sv-integrity-block code{
  overflow-wrap:anywhere;
  word-break:break-all;
  color:#b9c8c0;
  font-size:.72rem;
}

@media(max-width:991.98px){
  .sv-artifact-editorial{grid-template-columns:1fr}
  .sv-artifact-caption{max-width:none}
  .sv-technical-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:575.98px){
  .sv-artifact-editorial{gap:22px;padding-top:24px}
  .sv-technical-summary-grid{grid-template-columns:1fr}
  .sv-technical-details>summary{align-items:flex-start}
}


.sv-map-tag-menu {
  min-width: 18rem;
  max-height: 22rem;
  overflow-y: auto;
}

.sv-map-tag-menu .dropdown-item {
  cursor: pointer;
}

[data-sv-selected-tags] .badge {
  cursor: pointer;
}


/* Time integrity clock and audit panel */
.sv-datetime{
  appearance:none;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.sv-datetime:hover .sv-meta-value,
.sv-datetime:focus-visible .sv-meta-value{color:#fff}
.sv-datetime:focus-visible{outline:2px solid var(--sv-accent);outline-offset:5px;border-radius:4px}
.sv-time-health{
  margin-top:1px;
  color:#8f9a95;
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.08em;
}
.sv-time-health.is-good{color:#86c59f}
.sv-time-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.sv-time-grid>div{
  display:grid;
  gap:4px;
  padding:12px;
  border:1px solid var(--sv-border);
  border-radius:8px;
  background:#14191c;
}
.sv-time-grid span{
  color:#839089;
  font-size:.66rem;
  font-weight:850;
  letter-spacing:.08em;
}
.sv-time-grid strong{font-size:.92rem;overflow-wrap:anywhere}
.sv-time-grid small{color:#859089}
.sv-time-history{
  display:grid;
  gap:1px;
  overflow:hidden;
  border:1px solid var(--sv-border);
  border-radius:8px;
}
.sv-time-history-row{
  display:grid;
  grid-template-columns:minmax(170px,.8fr) minmax(0,1.2fr);
  gap:12px;
  padding:9px 11px;
  background:#14191c;
  border-bottom:1px solid var(--sv-border-soft);
  font-size:.76rem;
}
.sv-time-history-row:last-child{border-bottom:0}
.sv-time-history-row time{color:#dfe6e2}
.sv-time-history-row span{color:#8d9993;overflow-wrap:anywhere}
@media(max-width:575.98px){
  .sv-time-grid{grid-template-columns:1fr}
  .sv-time-history-row{grid-template-columns:1fr;gap:2px}
}


/* Keep lengthy import diagnostics inside the batch detail viewport. */
.batch-detail{min-width:0;max-width:100%;overflow:hidden}
.batch-detail>details{min-width:0;max-width:100%}
.batch-detail>details>summary{overflow-wrap:anywhere}
.batch-log-table{width:100%;max-width:100%;table-layout:fixed}
.batch-log-table th,.batch-log-table td{min-width:0;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}
.batch-log-table th:first-child,.batch-log-table td:first-child{width:165px}
.batch-log-table th:nth-child(2),.batch-log-table td:nth-child(2){width:105px}
.batch-log-table th:nth-child(3),.batch-log-table td:nth-child(3){width:145px}
.batch-log-json{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%;margin:0;font-size:.74rem}
.batch-detail>details>pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
@media(max-width:767.98px){
  .batch-detail .batch-log-table{min-width:700px}
  .batch-detail{overflow-x:auto}
}


/* Places directory: consistent thumbnails and compact shared-photo groups. */
.sv-places-grid .sv-place-card{overflow:hidden;transition:border-color .18s ease,transform .18s ease}
.sv-places-grid .sv-place-card:hover{transform:translateY(-2px);border-color:var(--sv-accent)}
.sv-place-card-media{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:#11181c}
.sv-place-card-media img.feature{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .2s ease,filter .2s ease}
.sv-place-card-media:hover img.feature{transform:scale(1.025);filter:brightness(1.05)}
.sv-place-card-placeholder{display:grid;place-items:center;height:100%;color:var(--bs-secondary-color);font-size:.8rem}
.sv-place-card-body{min-width:0}
.sv-place-card-body .h5{overflow-wrap:anywhere}
.sv-place-card-more{margin-top:12px;padding-top:10px;border-top:1px solid var(--sv-border-soft)}
.sv-place-card-more summary{cursor:pointer;color:var(--sv-accent);font-size:.82rem;font-weight:650}
.sv-place-card-more summary:hover{text-decoration:underline}
.sv-place-card-extra{padding-top:10px}
.sv-place-card-extra-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:3px 12px;padding:7px 0;border-bottom:1px solid var(--sv-border-soft)}
.sv-place-card-extra-row:last-child{border-bottom:0}
.sv-place-card-extra-row a{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){
  .sv-place-card,.sv-place-card-media img.feature{transition:none!important}
  .sv-places-grid .sv-place-card:hover,.sv-place-card-media:hover img.feature{transform:none}
}

/* Places grid: avoid stretching cards to the height of a shared-photo group. */
.sv-places-grid{align-items:start}
.sv-places-grid>div{align-self:start}
.sv-places-grid .sv-place-card{height:auto}
.sv-place-card-media img.feature{object-position:center 45%}

/* Places use the existing Artifact gallery's lightweight thumbnail component. */
.sv-places-grid .sv-place-card-media{aspect-ratio:4/3}
.sv-places-grid .sv-place-card-media .sv-photo-card-image{inset:0}
.sv-places-grid .sv-place-card-media .sv-photo-card-image img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}

/* Places: reuse the Artifacts four-column photographic gallery. */
.sv-places-gallery{align-items:start}
.sv-place-gallery-card{min-width:0}
.sv-place-gallery-group{border-top:1px solid var(--sv-border-soft);background:#171d20}
.sv-place-gallery-group>summary{padding:8px 10px;cursor:pointer;color:var(--sv-accent);font-size:.75rem;font-weight:700;list-style-position:inside}
.sv-place-gallery-group>summary:hover{text-decoration:underline}
.sv-place-gallery-links{padding:0 10px 8px;max-height:300px;overflow-y:auto}
.sv-place-gallery-links>a{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--sv-border-soft);font-size:.77rem;overflow-wrap:anywhere}
.sv-place-gallery-links small{flex-shrink:0;color:var(--bs-secondary-color);font-size:.66rem}
.sv-places-gallery .sv-photo-card-meta{opacity:1}
.sv-places-gallery .sv-photo-card-overlay{transform:none}

/* Recent Places: visually identify cards added within the last seven days. */
.sv-places-gallery .sv-place-gallery-new{border:2px solid #35b86d}
.sv-places-gallery .sv-place-gallery-new:hover,
.sv-places-gallery .sv-place-gallery-new:focus-within{border-color:#62d793}

/* Keep New Place / New Artifacts flags above gallery images without altering card height. */
.sv-place-gallery-badges{position:absolute;top:8px;left:8px;right:8px;z-index:2;display:flex;justify-content:space-between;gap:5px;pointer-events:none}
.sv-place-gallery-badges .badge{font-size:.63rem;white-space:nowrap}
