/* SimVillage Stadtportal v0.3 – visuelle Umsetzung der freigegebenen Dashboard-Vorlage */
:root {
  --sv-sidebar: 250px;
  --sv-topbar: 48px;
  --sv-gold: #d3a65b;
  --sv-gold-soft: #9b6b31;
  --sv-cream: #f0dfbf;
  --sv-muted: #a99d89;
  --sv-panel: rgba(26, 24, 19, .94);
  --sv-panel-2: rgba(18, 18, 15, .96);
  --sv-border: rgba(178, 125, 55, .52);
  --sv-blue: #1f6178;
  --sv-green: #4d812c;
}

.simvillage-ui {
  min-width: 320px;
  background:
    radial-gradient(circle at 75% 0%, rgba(92, 62, 28, .16), transparent 32rem),
    repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0 1px, transparent 1px 4px),
    #0d0b08;
  color: #eee3cf;
  font-family: "Segoe UI", Inter, Arial, sans-serif;
  font-size: 14px;
}

.simvillage-ui h1,
.simvillage-ui h2,
.simvillage-ui h3 { overflow-wrap: normal; }

.simvillage-ui .site-shell {
  grid-template-columns: var(--sv-sidebar) minmax(0,1fr);
  min-height: 100vh;
}

.simvillage-ui .sidebar {
  width: var(--sv-sidebar);
  height: 100vh;
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  background:
    linear-gradient(90deg, rgba(0,0,0,.05), transparent 14%, transparent 84%, rgba(0,0,0,.46)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.012) 0 1px, transparent 1px 4px),
    linear-gradient(180deg, #21150d 0%, #150e09 48%, #0f0c08 100%);
  border-right: 1px solid rgba(186,128,56,.58);
  box-shadow: 12px 0 30px rgba(0,0,0,.42);
  scrollbar-width: thin;
  scrollbar-color: #6c4824 transparent;
}

.simvillage-ui .brand {
  min-height: 96px;
  height: 96px;
  padding: 7px 15px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 0%, rgba(226,180,102,.13), transparent 65%),
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.18));
  border-bottom: 1px solid rgba(196,143,70,.5);
}

.simvillage-ui .brand img {
  width: 210px;
  height: 84px;
  max-height: 84px;
  object-fit: contain;
  filter: drop-shadow(0 5px 5px rgba(0,0,0,.58));
}

.simvillage-ui .main-nav,
.simvillage-ui .quick-actions {
  padding: 15px 18px 0;
}

.simvillage-ui .nav-label {
  margin: 0 9px 6px;
  color: #c28e49;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .13em;
}

.simvillage-ui .main-nav a {
  min-height: 31px;
  padding: 5px 8px;
  gap: 9px;
  border-radius: 5px;
  border-color: transparent;
  color: #e3d4bc;
  font-size: 13px;
}

.simvillage-ui .main-nav a > svg:first-child {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: #d4a258;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.simvillage-ui .main-nav a > span { flex: 1; }
.simvillage-ui .main-nav .nav-arrow {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: #8f6733;
  stroke-width: 2;
}

.simvillage-ui .main-nav a:hover,
.simvillage-ui .main-nav a[aria-current="page"] {
  background: linear-gradient(90deg, rgba(104,69,31,.84), rgba(55,37,21,.65));
  border-color: rgba(194,142,73,.58);
  box-shadow: inset 0 1px rgba(255,255,255,.04);
}

.simvillage-ui .quick-actions {
  margin-top: 10px;
  padding-top: 15px;
  border-top: 1px solid rgba(180,124,52,.46);
}

.simvillage-ui .quick {
  min-height: 33px;
  margin: 1px 0;
  padding: 3px 8px;
  gap: 9px;
  color: #e1d1b8;
  font-size: 12px;
}

.simvillage-ui .quick strong { font-weight: 500; }
.simvillage-ui .quick > span:first-child {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: rgba(139,87,27,.36);
  border-color: rgba(205,151,70,.42);
}
.simvillage-ui .quick.world-link > span:first-child { background: rgba(65,115,36,.62); border-color: #6da54a; }
.simvillage-ui .quick svg { width: 14px; height: 14px; fill: none; stroke: #e2bc76; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.simvillage-ui .citizen-card {
  margin: auto 14px 14px;
  padding: 15px;
  border: 1px solid rgba(179,123,53,.57);
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(40,31,21,.87), rgba(18,16,12,.94));
  box-shadow: inset 0 1px rgba(255,255,255,.04), 0 8px 24px rgba(0,0,0,.3);
}

.citizen-head { display: flex; align-items: center; gap: 11px; padding-bottom: 13px; border-bottom: 1px solid rgba(255,255,255,.1); }
.avatar {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(217,174,104,.58);
  border-radius: 50%;
  color: #fff0d5;
  font-weight: 700;
  background: linear-gradient(145deg, #3f5962, #17232a);
  box-shadow: 0 2px 8px rgba(0,0,0,.45);
}
.avatar-joerg { width: 54px; height: 54px; font-size: 20px; background: radial-gradient(circle at 50% 30%, #a57b5c 0 10%, #513d33 11% 25%, #1c252a 26% 60%, #0d1114 61%); }
.citizen-head > div:last-child { display: grid; gap: 2px; }
.citizen-head strong { font-family: Georgia, serif; font-size: 17px; font-weight: 500; }
.citizen-head span { color: #c9bda9; font-size: 11px; }
.citizen-head span i { display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 50%; background: #58ae3a; box-shadow: 0 0 7px rgba(88,174,58,.65); }
.citizen-head small { font-size: 11px; color: #a89c89; }
.citizen-number { padding: 12px 0 11px; display: grid; gap: 3px; }
.citizen-number span { color: #b6a890; font-size: 11px; }
.citizen-number strong { color: #ece1ce; font-size: 12px; font-weight: 500; }
.citizen-card > a { display: block; padding: 9px; border: 1px solid #875820; border-radius: 5px; background: linear-gradient(#694719,#4d3215); color: #f2e5cf; text-align: center; text-decoration: none; font-size: 12px; }

.simvillage-ui .site-main { min-width: 0; background: rgba(12,10,7,.68); }
.simvillage-ui .topbar {
  height: var(--sv-topbar);
  min-height: var(--sv-topbar);
  padding: 0 18px;
  background:
    linear-gradient(180deg, rgba(22,15,10,.98), rgba(12,10,7,.97)),
    repeating-linear-gradient(90deg, transparent 0 3px, rgba(255,255,255,.012) 3px 4px);
  border-bottom: 1px solid rgba(160,106,43,.34);
  box-shadow: 0 3px 12px rgba(0,0,0,.36);
}

.datetime-line { display: flex; align-items: center; gap: 20px; color: #d7bf94; font-size: 12px; white-space: nowrap; }
.datetime-line > span { display: flex; align-items: center; gap: 7px; }
.datetime-line svg { width: 17px; height: 17px; fill: none; stroke: #d5a45b; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.simvillage-ui .topbar-actions { gap: 13px; margin-left: auto; }
.top-search { position: relative; display: block; width: min(230px, 23vw); }
.top-search input { width: 100%; height: 32px; padding: 0 36px 0 15px; border: 1px solid rgba(175,119,48,.52); border-radius: 17px; background: rgba(8,7,5,.65); color: #eaddc7; outline: 0; font-size: 12px; }
.top-search input:focus { border-color: #d3a65b; box-shadow: 0 0 0 2px rgba(211,166,91,.12); }
.top-search svg { position: absolute; right: 12px; top: 8px; width: 15px; height: 15px; fill: none; stroke: #d4a056; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.icon-button { display: grid; place-items: center; width: 30px; height: 30px; color: #d8a758; text-decoration: none; }
.icon-button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.profile-menu { display: flex; align-items: center; gap: 7px; color: #e4d3b8; text-decoration: none; font-size: 12px; }
.avatar-small { width: 29px; height: 29px; font-size: 11px; }

.village-hero {
  position: relative;
  height: 292px;
  min-height: 292px;
  overflow: hidden;
  isolation: isolate;
  border-bottom: 1px solid rgba(163,109,44,.35);
}
.hero-scene { position: absolute; inset: -5px; z-index: -3; background: url('/static/assets/dashboard/hero-village.webp') center center / cover no-repeat; transform: scale(1.015); }
.hero-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(15,10,7,.22), rgba(10,8,6,.08) 45%, rgba(13,9,6,.3)), linear-gradient(180deg, rgba(5,4,3,.08), rgba(5,4,3,.04) 54%, rgba(8,7,5,.58)); }
.hero-copy { width: min(660px, 65%); margin: 0 auto; padding-top: 54px; text-align: center; text-shadow: 0 2px 10px rgba(0,0,0,.96); }
.hero-copy h1 { margin: 0; color: #fff2de; font-family: Georgia, "Times New Roman", serif; font-size: clamp(30px, 3vw, 39px); font-weight: 600; line-height: 1.05; }
.hero-ornament { display: flex; align-items: center; justify-content: center; gap: 9px; margin: 11px auto 12px; color: #d8ac65; }
.hero-ornament span { width: 88px; height: 1px; background: linear-gradient(90deg, transparent, #d8ac65); }
.hero-ornament span:last-child { background: linear-gradient(90deg, #d8ac65, transparent); }
.hero-ornament b { font-size: 18px; font-weight: 400; }
.hero-copy p { margin: 0 0 19px; color: #fff4e5; font-size: 14px; line-height: 1.45; }
.hero-actions { display: flex; justify-content: center; gap: 12px; }
.hero-button { min-width: 130px; height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 18px; border: 1px solid; border-radius: 5px; color: white; text-decoration: none; font-weight: 600; box-shadow: inset 0 1px rgba(255,255,255,.12), 0 5px 10px rgba(0,0,0,.28); }
.hero-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-button-green { border-color: #6b9f47; background: linear-gradient(#4f812e,#376220); }
.hero-button-gold { border-color: #9b6d31; background: linear-gradient(#7b5728,#5a3a18); }
.hero-button-blue { border-color: #447a8a; background: linear-gradient(#315f70,#234856); }
.hero-button:hover { color: white; filter: brightness(1.1); transform: translateY(-1px); }

.weather-card {
  position: absolute;
  top: 26px;
  right: 26px;
  width: 205px;
  padding: 16px 16px 12px;
  border: 1px solid rgba(167,113,48,.52);
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(39,26,17,.95), rgba(18,15,11,.94));
  box-shadow: 0 8px 25px rgba(0,0,0,.52), inset 0 1px rgba(255,255,255,.04);
  backdrop-filter: blur(8px);
}
.weather-card h2 { margin: 0 0 12px; font-family: inherit; font-size: 13px; font-weight: 500; text-transform: none; }
.weather-main { display: flex; align-items: center; gap: 13px; }
.weather-main strong { font-family: inherit; font-size: 31px; font-weight: 400; white-space: nowrap; }
.sun-icon { position: relative; width: 44px; height: 44px; flex: 0 0 44px; }
.sun-icon::before { content: ""; position: absolute; inset: 10px; border: 3px solid #e6aa4a; border-radius: 50%; }
.sun-icon::after { content: ""; position: absolute; inset: 0; background: repeating-conic-gradient(from 0deg, #e6aa4a 0 4deg, transparent 4deg 43deg); -webkit-mask: radial-gradient(circle, transparent 0 20px, #000 21px); mask: radial-gradient(circle, transparent 0 20px, #000 21px); }
.weather-state { margin: -3px 0 11px 58px; color: #f2ddbc; font-size: 12px; }
.weather-wind { margin: 0; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); color: #c4b7a2; font-size: 11px; }
.weather-card a { display: flex; justify-content: space-between; padding-top: 11px; color: #63a9c3; text-decoration: none; font-size: 11px; }

.dashboard-wrap {
  display: grid;
  grid-template-columns: minmax(0, 2.15fr) minmax(285px, 1fr);
  gap: 13px;
  padding: 11px 18px 16px;
  background:
    radial-gradient(circle at 52% 0, rgba(81,61,31,.11), transparent 35rem),
    linear-gradient(180deg, rgba(9,8,6,.74), rgba(11,10,7,.94));
}
.dashboard-main, .dashboard-side { display: grid; align-content: start; gap: 10px; min-width: 0; }
.dashboard-two { display: grid; grid-template-columns: 1.08fr .92fr; gap: 10px; }
.dashboard-three { display: grid; grid-template-columns: 1.06fr 1fr 1.08fr; gap: 10px; }

.sv-panel {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--sv-border);
  border-radius: 7px;
  background: linear-gradient(145deg, rgba(31,29,23,.96), rgba(17,17,14,.97));
  box-shadow: inset 0 1px rgba(255,255,255,.035), 0 6px 15px rgba(0,0,0,.22);
}
.sv-panel > header { height: 37px; display: flex; align-items: center; padding: 0 13px; border-bottom: 1px solid rgba(255,255,255,.09); }
.sv-panel > header h2 { margin: 0; color: #e9dfcf; font-family: inherit; font-size: 12px; font-weight: 500; letter-spacing: .025em; text-transform: uppercase; }
.panel-link { display: block; padding: 7px 12px 8px; color: #66a5be; text-align: center; text-decoration: none; font-size: 11px; }

.news-items { padding: 4px 10px 0; }
.news-items article { min-height: 70px; display: grid; grid-template-columns: 76px 1fr; gap: 10px; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.075); }
.news-items article:last-child { border-bottom: 0; }
.news-items img { width: 76px; height: 61px; object-fit: cover; border-radius: 4px; border: 1px solid rgba(190,139,70,.28); }
.news-items h3 { margin: 0 0 2px; color: #f0dfbd; font-family: inherit; font-size: 12px; font-weight: 600; }
.news-items p { display: -webkit-box; margin: 0; overflow: hidden; color: #beb3a1; font-size: 10px; line-height: 1.35; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.news-items time { color: #978c7b; font-size: 9px; }

.event-list { padding: 2px 13px 0; }
.event-list article { min-height: 50px; display: grid; grid-template-columns: 47px 1fr auto; align-items: center; gap: 7px; border-bottom: 1px solid rgba(255,255,255,.08); }
.event-list article:last-child { border-bottom: 0; }
.event-list time { color: #f0cf94; font-size: 12px; }
.event-list h3 { margin: 0 0 1px; color: #eadabd; font-family: inherit; font-size: 12px; font-weight: 500; }
.event-list p { margin: 0; color: #9f9585; font-size: 10px; }
.attendees { display: inline-flex; align-items: center; gap: 4px; color: #afa594; font-size: 9px; }
.attendees svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.7; }

.map-panel > header { height: 32px; }
.map-body { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(210px,.9fr); min-height: 143px; }
.map-image { position: relative; overflow: hidden; }
.map-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 76%, rgba(19,20,17,.75)); pointer-events: none; }
.map-image img { width: 100%; height: 100%; min-height: 143px; display: block; object-fit: cover; }
.map-copy { display: flex; flex-direction: column; justify-content: center; padding: 14px 16px; background: linear-gradient(135deg, rgba(28,27,21,.96), rgba(16,31,34,.96)); }
.map-copy h3 { margin: 0 0 8px; font-family: inherit; font-size: 12px; }
.map-copy p { margin: 0 0 12px; color: #b3aa9a; font-size: 10px; line-height: 1.45; }
.map-pin { position: absolute; z-index: 2; display: grid; place-items: center; width: 28px; height: 28px; border: 2px solid rgba(255,255,255,.72); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 3px 7px rgba(0,0,0,.48); }
.map-pin svg { width: 14px; height: 14px; transform: rotate(45deg); fill: none; stroke: white; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pin-green { left: 37%; top: 23%; background: #54943a; }.pin-blue { right: 17%; top: 29%; background: #2582a2; }.pin-purple { left: 42%; bottom: 18%; background: #774095; }.pin-orange { left: 58%; bottom: 22%; background: #d37820; }
.small-button { display: inline-flex; width: max-content; min-width: 92px; height: 30px; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid; border-radius: 4px; color: #f4e9d8; text-decoration: none; font-size: 10px; }
.small-button.blue { border-color: #376d7d; background: linear-gradient(#2c5c6c,#204552); }.small-button.gold { border-color: #8d6028; background: linear-gradient(#765020,#543517); }

.screenshot-panel img { width: 100%; height: 126px; display: block; object-fit: cover; }
.screenshot-panel footer { height: 34px; display: flex; align-items: center; justify-content: space-between; padding: 0 11px; color: #b7aa96; font-size: 9px; }
.screenshot-panel footer strong { color: #d8b270; font-size: 10px; }
.quote-panel { padding-bottom: 12px; text-align: center; }
.quote-panel blockquote { margin: 24px 12px 10px; color: #eee1c9; font-family: Georgia, serif; font-size: 13px; font-style: italic; line-height: 1.55; }
.quote-panel blockquote::before { content: "“"; color: #b69668; font-size: 38px; line-height: 0; vertical-align: -11px; margin-right: 7px; }
.quote-panel cite { color: #9b9182; font-size: 9px; }
.countdown-panel { text-align: center; }
.countdown { display: grid; grid-template-columns: repeat(4,1fr); padding: 21px 10px 17px; }
.countdown span { display: grid; gap: 3px; }
.countdown strong { color: #e5bc7a; font-family: Georgia, serif; font-size: 22px; font-weight: 500; }
.countdown small { color: #c1ae8e; font-size: 9px; }
.countdown-panel > a { margin-bottom: 10px; }

.livestream-panel .stream-image { position: relative; margin: 10px 12px 0; overflow: hidden; border-radius: 5px; border: 1px solid rgba(181,128,55,.35); }
.stream-image img { width: 100%; height: 169px; display: block; object-fit: cover; }
.stream-image > span { position: absolute; top: 8px; right: 8px; padding: 4px 7px; border-radius: 3px; background: #cf332b; color: white; font-size: 9px; font-weight: 700; }
.livestream-panel > footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 12px; }
.livestream-panel footer > div { min-width: 0; display: grid; gap: 4px; }
.livestream-panel footer strong { overflow: hidden; color: #eadabc; font-size: 10px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.livestream-panel footer small { display: inline-flex; align-items: center; gap: 4px; color: #b1a592; font-size: 9px; }
.livestream-panel footer small svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.livestream-panel footer > a { flex: 0 0 auto; padding: 6px 8px; border: 1px solid #3a6978; border-radius: 4px; background: #244b58; color: #e5edf0; text-decoration: none; font-size: 9px; }

.residents-panel ul, .friends-panel ul { margin: 0; padding: 5px 12px 0; list-style: none; }
.residents-panel li { min-height: 41px; display: grid; grid-template-columns: 29px 1fr auto; align-items: center; gap: 8px; border-bottom: 1px solid rgba(255,255,255,.075); }
.residents-panel li:last-child { border-bottom: 0; }
.residents-panel .avatar, .friends-panel .avatar { width: 27px; height: 27px; border-width: 1px; font-size: 8px; }
.residents-panel strong { color: #e7d8bd; font-size: 11px; font-weight: 500; }
.residents-panel small { color: #968c7d; font-size: 8px; white-space: nowrap; }
.person-a { background: linear-gradient(145deg,#c28648,#6a3822); }.person-b { background: linear-gradient(145deg,#52646c,#29363c); }.person-c { background: linear-gradient(145deg,#a78876,#54463d); }.person-d { background: linear-gradient(145deg,#775b48,#302720); }

.friends-panel li { min-height: 42px; display: grid; grid-template-columns: 28px minmax(65px,1fr) 8px 34px minmax(76px,auto); align-items: center; gap: 7px; border-bottom: 1px solid rgba(255,255,255,.075); }
.friends-panel li:last-child { border-bottom: 0; }
.friends-panel strong { color: #dfd2bb; font-size: 10px; font-weight: 500; }
.friends-panel li > i { width: 8px; height: 8px; border-radius: 50%; background: #4ca63a; box-shadow: 0 0 5px rgba(76,166,58,.45); }
.friends-panel small { color: #aea38f; font-size: 8px; }
.friends-panel em { color: #8f8679; font-size: 8px; font-style: normal; text-align: right; white-space: nowrap; }
.friend-a { background: #356a86; }.friend-b { background: #a6694e; }.friend-c { background: #74478c; }

.simvillage-ui .site-footer {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  padding: 12px 22px;
  border-top: 1px solid rgba(153,99,37,.34);
  background: #0b0907;
}
.simvillage-ui .site-footer nav { justify-self: auto; display: flex; gap: 20px; }
.simvillage-ui .site-footer a, .simvillage-ui .site-footer small { color: #a99d8b; font-size: 10px; }

/* Bestehende Unterseiten übernehmen die neue Portalhülle, bleiben aber lesbar. */
.simvillage-ui main > .page-hero,
.simvillage-ui main > .content-width,
.simvillage-ui main > .auth-page,
.simvillage-ui main > .editor-header,
.simvillage-ui main > .editor-content { position: relative; z-index: 1; }
.simvillage-ui .page-hero { background-color: #19130d; }

@media (min-width: 1500px) {
  :root { --sv-sidebar: 250px; }
  .dashboard-wrap { grid-template-columns: minmax(0, 2.17fr) minmax(330px, .98fr); }
  .village-hero { height: 292px; }
}

@media (max-width: 1180px) {
  .dashboard-wrap { grid-template-columns: 1fr; }
  .dashboard-side { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .stream-image img { height: 145px; }
  .friends-panel li { grid-template-columns: 28px 1fr 8px 34px; }
  .friends-panel em { display: none; }
  .weather-card { right: 16px; }
}

@media (max-width: 900px) {
  .simvillage-ui .site-shell { grid-template-columns: 1fr; }
  .simvillage-ui .sidebar { position: fixed; width: min(280px,88vw); z-index: 60; transform: translateX(-105%); }
  .simvillage-ui.menu-open .sidebar { transform: translateX(0); }
  .simvillage-ui .topbar { z-index: 55; }
  .menu-toggle { display: inline-grid; place-items: center; margin-right: 9px; }
  .datetime-line { gap: 10px; }
  .top-search { width: min(210px,30vw); }
  .profile-menu > span:not(.avatar) { display: none; }
  .village-hero { height: 330px; }
  .hero-copy { width: 72%; margin-left: 5%; padding-top: 55px; }
  .weather-card { top: 20px; right: 15px; width: 185px; }
  .dashboard-two, .dashboard-three { grid-template-columns: 1fr; }
  .dashboard-side { grid-template-columns: 1fr 1fr; }
  .livestream-panel { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .simvillage-ui .topbar { padding: 0 10px; }
  .datetime-line > span:first-child { display: none; }
  .top-search { display: none; }
  .icon-button:first-of-type { display: none; }
  .village-hero { height: auto; min-height: 490px; }
  .hero-copy { width: calc(100% - 24px); margin: 0 auto; padding-top: 48px; }
  .hero-copy h1 { font-size: 29px; }
  .hero-actions { flex-direction: column; width: min(280px,100%); margin: auto; }
  .hero-button { width: 100%; }
  .weather-card { position: absolute; left: 12px; right: 12px; top: auto; bottom: 14px; width: auto; display: grid; grid-template-columns: 1fr auto; gap: 0 12px; }
  .weather-card h2 { grid-column: 1 / -1; }
  .weather-main { grid-row: 2 / 4; }
  .weather-state { margin: 4px 0 0; align-self: end; }
  .weather-wind { padding: 5px 0; border-top: 0; }
  .weather-card a { grid-column: 1 / -1; }
  .dashboard-wrap { padding: 9px; }
  .dashboard-side { grid-template-columns: 1fr; }
  .map-body { grid-template-columns: 1fr; }
  .map-image::after { background: linear-gradient(180deg, transparent 65%, rgba(19,20,17,.7)); }
  .map-copy { padding: 15px; }
  .simvillage-ui .site-footer { flex-direction: column; gap: 7px; }
  .simvillage-ui .site-footer nav { flex-wrap: wrap; justify-content: center; gap: 10px 16px; }
}
