/*
  TownPost Silverton Professional Polish Layer

  Scope: public-facing theme polish only.
  This layer deliberately avoids Admin behavior, data logic, routes, Rooms behavior,
  weather logic, roads logic, and source ingestion.
*/

:root{
  --tp-polish-shadow:0 14px 34px rgba(21,50,74,.075);
  --tp-polish-soft-shadow:0 7px 18px rgba(21,50,74,.045);
  --tp-polish-border:rgba(199,149,59,.24);
  --tp-polish-line:rgba(217,226,210,.98);
}

body{
  background:
    linear-gradient(90deg,rgba(49,92,47,.028) 0 1px,transparent 1px 100%),
    radial-gradient(circle at 5% 0%,rgba(49,92,47,.105),transparent 24%),
    radial-gradient(circle at 92% 7%,rgba(45,98,140,.075),transparent 28%),
    linear-gradient(180deg,#efe7d5 0%,#fffdf6 31%,#f8f8f0 68%,#edf5ea 100%)!important;
}

.topbar{
  border-radius:0 0 14px 14px!important;
  border-bottom:1px solid rgba(199,149,59,.22)!important;
  box-shadow:0 8px 22px rgba(21,50,74,.055)!important;
}
.main-nav button,.account-chip{
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.main-nav button:hover,.account-chip:hover{
  transform:translateY(-1px);
}

/* Hero: make the generated art feel like an editorial masthead, not a pasted block. */
.hero.tp-hero-with-weather{
  min-height:174px!important;
  border-radius:15px!important;
  border:1px solid var(--tp-polish-border)!important;
  box-shadow:var(--tp-polish-shadow)!important;
  background:
    linear-gradient(90deg,rgba(255,253,246,.05) 0%,rgba(255,253,246,.16) 31%,rgba(255,253,246,.82) 49%,rgba(255,253,246,1) 100%),
    linear-gradient(135deg,#dbe8d4 0%,#fff5df 74%)!important;
}
.hero.tp-hero-with-weather:before{
  width:42%!important;
  min-width:300px!important;
  background-position:left center!important;
  background-size:cover!important;
  filter:saturate(.92) contrast(.98) brightness(.98);
}
.hero.tp-hero-with-weather:after{
  width:58%!important;
  min-width:500px!important;
  background:linear-gradient(90deg,rgba(255,253,246,0) 0%,rgba(255,253,246,.10) 34%,rgba(255,253,246,.54) 58%,rgba(255,253,246,.92) 80%,#fffdf6 100%)!important;
}
.hero.tp-hero-with-weather h1{
  letter-spacing:-.045em!important;
  text-shadow:0 1px 0 rgba(255,253,246,.8);
}
.hero.tp-hero-with-weather .eyebrow{
  color:#536f55!important;
  letter-spacing:.16em!important;
}
.tp-hero-weather{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0 4px 0 12px!important;
}
.tp-hero-weather strong{
  text-shadow:0 1px 0 rgba(255,253,246,.75);
}

/* Cards: make the stream feel like a local magazine, not a beige app feed. */
.tp-card,.post,.card,.panel,.tp-calendar-card,.tp-roads-card,.tp-community-strip{
  border-color:var(--tp-polish-line)!important;
  box-shadow:var(--tp-polish-soft-shadow)!important;
}
.tp-row-card{
  background:
    linear-gradient(90deg,rgba(255,253,246,.98),rgba(255,253,246,.94)),
    linear-gradient(135deg,rgba(49,92,47,.05),rgba(199,149,59,.035))!important;
  border-radius:13px!important;
}
.tp-row-card .tp-card-image,
.tp-card-image.real.tp-card-art{
  border-radius:10px!important;
  margin:10px 14px 10px 10px!important;
  box-shadow:inset 0 0 0 1px rgba(255,253,246,.46),0 8px 18px rgba(21,50,74,.045);
  filter:saturate(.96) contrast(.99) brightness(1.01)!important;
}
.tp-card-image.real.tp-card-art img,
.tp-card-image.real img{
  filter:saturate(.98) contrast(.99) brightness(1.02)!important;
}
.tp-card-art:after{
  background:
    linear-gradient(180deg,rgba(255,253,246,.04),rgba(21,50,74,.055)),
    radial-gradient(circle at 20% 15%,rgba(255,253,246,.18),transparent 30%)!important;
}
.tp-card-head{
  align-items:flex-start!important;
}
.tp-card-label{
  color:#315c2f!important;
  letter-spacing:.08em!important;
}
.tp-card-label b{
  box-shadow:inset 0 0 0 1px rgba(49,92,47,.08);
}
.tp-card-date{
  color:#2d5d3a!important;
  letter-spacing:.075em!important;
}
.tp-card h3{
  color:#17324a!important;
  letter-spacing:-.028em!important;
}
.tp-card-summary{
  color:#344a5f!important;
}
.tp-card-details{
  border-top-color:rgba(199,149,59,.20)!important;
}
.tp-card-details summary{
  color:#17446b!important;
}
.tp-card-actions a,.tp-card-actions button,.buttonlike{
  background:#fffef9!important;
  border-color:rgba(165,184,153,.9)!important;
  box-shadow:0 2px 0 rgba(21,50,74,.035);
}
.tp-card-actions a:hover,.tp-card-actions button:hover,.buttonlike:hover{
  background:#f4f8ef!important;
}

/* Sidebar: cleaner sponsor rail that does not fight the content cards. */
.sidebar .card,.sidebar .ad,.ad{
  background:linear-gradient(180deg,#f8f1df,#f4eedf)!important;
  border:1px solid rgba(199,149,59,.24)!important;
  border-radius:13px!important;
}
.sidebar h3,.ad h3{
  color:#17324a!important;
}
.sidebar .buttonlike,.sidebar button,.ad .buttonlike,.ad button{
  background:#fffdf6!important;
}

/* Calendar and section blocks should read as editorial modules. */
.tp-section-title h3{
  letter-spacing:.045em!important;
}
.tp-calendar-card,.tp-roads-card{
  border-left:6px solid rgba(49,92,47,.78)!important;
}
.tp-calendar-row>div:first-child{
  background:#e4ecd7!important;
  color:#315c2f!important;
}

/* Inputs/composer polish. */
input,textarea,select{
  background:#fffef9!important;
  border:1px solid #cfdcca!important;
  border-radius:10px!important;
}
button.primary,.pill.active,.game-tabs .pill.active{
  box-shadow:0 3px 0 rgba(21,50,74,.12)!important;
}

/* Defensive Admin isolation. */
.admin-route-canonical,
.admin-route-canonical *{
  box-shadow:revert;
  border-radius:revert;
}

@media (max-width:900px){
  .hero.tp-hero-with-weather:before{width:44%!important;min-width:250px!important}
  .hero.tp-hero-with-weather:after{width:72%!important;min-width:420px!important}
}

@media (max-width:640px){
  .hero.tp-hero-with-weather:before{width:100%!important;min-width:0!important}
  .hero.tp-hero-with-weather:after{width:100%!important;min-width:0!important}
  .tp-row-card .tp-card-image,.tp-card-image.real.tp-card-art{margin:10px!important;border-radius:10px!important}
}
