:root{
  --bg:#07090d;--bg2:#0c111b;--panel:#121826;--panel2:#192235;--glass:rgba(18,24,38,.78);
  --text:#f4f7fb;--muted:#95a0b4;--soft:#c7cfdd;--accent:#d6a84f;--accent2:#f2d181;
  --danger:#ff5f6d;--ok:#6fe3a1;--info:#65b7ff;--border:rgba(255,255,255,.09);
  --shadow:0 22px 70px rgba(0,0,0,.42);--radius:22px;--side:282px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at top left,rgba(214,168,79,.15),transparent 28%),radial-gradient(circle at 85% 10%,rgba(101,183,255,.12),transparent 24%),linear-gradient(135deg,var(--bg),#0c1018 45%,#090b10);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;min-height:100vh}.bg-noise{position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(#000,transparent 88%)}
a{color:inherit}.app-shell{padding-left:var(--side)}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--side);padding:18px;background:linear-gradient(180deg,rgba(13,17,27,.96),rgba(9,11,17,.98));border-right:1px solid var(--border);box-shadow:var(--shadow);z-index:20;overflow-y:auto}.brand-block{display:flex;align-items:center;gap:12px;text-decoration:none;margin-bottom:18px;padding:12px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid var(--border)}.brand-mark{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#8f6420);color:#160f05;font-weight:1000;font-size:26px;box-shadow:0 12px 26px rgba(214,168,79,.18)}.brand-block strong{display:block;color:var(--accent2);font-size:20px;letter-spacing:.3px}.brand-block small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.nav-section{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#687286;margin:18px 10px 8px}.nav-link{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--soft);padding:10px 12px;border-radius:14px;margin:3px 0;border:1px solid transparent;transition:.18s ease}.nav-link span{font-size:18px;width:23px;text-align:center}.nav-link em{font-style:normal;font-weight:700;font-size:14px}.nav-link:hover,.nav-link.active{background:rgba(214,168,79,.12);border-color:rgba(214,168,79,.22);color:#fff;transform:translateX(3px)}.mobile-menu{display:none;position:fixed;top:12px;left:12px;z-index:40;background:var(--accent);color:#140f07;border:0;border-radius:12px;padding:10px 13px;font-weight:900}.page-wrap{min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 28px;background:rgba(8,11,17,.72);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}.eyebrow{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.14em}.top-title{font-size:24px;font-weight:950}.top-title span{font-size:13px;color:#18120a;background:var(--accent);padding:4px 9px;border-radius:999px;margin-left:8px;vertical-align:middle}.top-stats{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.mini-stat{background:rgba(255,255,255,.055);border:1px solid var(--border);border-radius:16px;padding:10px 12px;min-width:124px}.mini-stat span{display:block;color:var(--muted);font-size:11px}.mini-stat strong{display:block;font-size:15px;color:#fff}.mini-bars{min-width:170px}.mini-bars label{display:flex;justify-content:space-between;margin:2px 0 4px;color:var(--muted);font-size:11px}.mini-bars i{display:block;height:7px;border-radius:999px;background:#0c111a;overflow:hidden;border:1px solid var(--border);margin-bottom:5px}.mini-bars u{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:999px}.mini-bars i.danger u{background:linear-gradient(90deg,#ffb55f,var(--danger))}.logout-link,.guest-topbar nav a{border:1px solid var(--border);border-radius:14px;text-decoration:none;padding:10px 12px;color:var(--soft);background:rgba(255,255,255,.045);font-weight:800}.logout-link:hover,.guest-topbar nav a:hover{background:rgba(214,168,79,.14);color:#fff}.container{max-width:1220px;margin:0 auto;padding:28px}.guest-container{max-width:1050px}.guest-topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 28px}.brand{font-size:26px;color:var(--accent2);font-weight:1000;text-decoration:none}.guest-topbar nav{display:flex;gap:10px}h1{font-size:clamp(32px,4vw,54px);line-height:1;margin:0 0 20px;letter-spacing:-.04em}h2,h3{letter-spacing:-.02em}p{color:var(--soft);line-height:1.65}.hero-card{position:relative;overflow:hidden;border-radius:30px;background:linear-gradient(135deg,rgba(214,168,79,.18),rgba(25,34,53,.88)),url('../img/oslo-night.svg') center/cover;border:1px solid var(--border);box-shadow:var(--shadow);padding:34px;margin-bottom:22px}.hero-card:after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;background:radial-gradient(circle,rgba(242,209,129,.28),transparent 68%)}.hero-card>*{position:relative;z-index:1}.hero-card .lead{max-width:720px;font-size:17px;color:#e8edf6}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.card{background:linear-gradient(180deg,rgba(25,34,53,.86),rgba(16,22,35,.92));border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:0 16px 42px rgba(0,0,0,.24);position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.06),transparent 30%);pointer-events:none}.card>*{position:relative}.card h2,.card h3{margin-top:0}.muted{color:var(--muted)}.stat{font-size:28px;font-weight:1000;letter-spacing:-.03em}.stat-card{min-height:128px}.stat-card .icon{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:rgba(214,168,79,.14);border:1px solid rgba(214,168,79,.18);font-size:22px;margin-bottom:12px}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;padding:5px 10px;color:var(--soft);background:rgba(255,255,255,.045);font-weight:800;font-size:12px}.btn,button{background:linear-gradient(135deg,var(--accent2),var(--accent));color:#171006;border:0;border-radius:14px;padding:11px 15px;font-weight:950;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 12px 28px rgba(214,168,79,.16);transition:.16s ease}.btn:hover,button:hover{transform:translateY(-1px);filter:brightness(1.05)}.btn.secondary{background:rgba(255,255,255,.06);color:var(--text);border:1px solid var(--border);box-shadow:none}.btn.danger{background:linear-gradient(135deg,#ff7c86,var(--danger));color:#fff}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.action-card{min-height:150px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;border-radius:22px;padding:18px;border:1px solid var(--border);background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.025));transition:.18s ease}.action-card:hover{transform:translateY(-3px);border-color:rgba(214,168,79,.35);box-shadow:0 18px 45px rgba(0,0,0,.28)}.action-card .big-icon{font-size:31px}.action-card strong{display:block;font-size:18px;margin-top:8px}.action-card small{color:var(--muted);line-height:1.4}.progress{height:12px;background:#0d121c;border:1px solid var(--border);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent2))}.progress.danger span{background:linear-gradient(90deg,#ffb45f,var(--danger))}.progress.ok span{background:linear-gradient(90deg,#39c982,var(--ok))}.flash{padding:14px 16px;border-radius:16px;margin-bottom:18px;background:rgba(255,255,255,.06);border:1px solid var(--border);box-shadow:0 12px 32px rgba(0,0,0,.18);font-weight:800}.flash.success{border-color:rgba(111,227,161,.45);background:rgba(111,227,161,.09)}.flash.error{border-color:rgba(255,95,109,.45);background:rgba(255,95,109,.09)}input,select,textarea{width:100%;max-width:480px;padding:12px 13px;border-radius:14px;border:1px solid var(--border);background:#0c111b;color:var(--text);margin:6px 0 12px;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:rgba(214,168,79,.55);box-shadow:0 0 0 4px rgba(214,168,79,.1)}label{display:block;margin:10px 0;color:var(--soft);font-weight:750}table{width:100%;border-collapse:separate;border-spacing:0;background:rgba(18,24,38,.75);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.2)}th,td{padding:13px 14px;border-bottom:1px solid var(--border);text-align:left}tr:last-child td{border-bottom:0}th{color:var(--accent2);background:rgba(255,255,255,.045);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.slot{font-size:42px;letter-spacing:10px}.item{border-top:1px solid var(--border);padding:14px 0}.item:first-child{border-top:0}.small-form{display:inline-block;margin:4px 6px 4px 0}.small-form input{max-width:160px}.plant-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.plant-stat{font-size:32px;font-weight:1000;color:var(--accent2)}.plantation-meter{height:14px;background:#0f1320;border:1px solid var(--border);border-radius:999px;overflow:hidden;max-width:420px}.plantation-meter span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0}.danger-text{color:var(--danger);font-weight:900}.ok-text{color:var(--ok);font-weight:900}.footer{text-align:center;color:var(--muted);padding:28px}.quick-row{display:flex;gap:10px;flex-wrap:wrap}.city-tag{display:inline-flex;gap:7px;align-items:center;color:var(--soft);background:rgba(101,183,255,.1);border:1px solid rgba(101,183,255,.2);border-radius:999px;padding:6px 10px;font-weight:800}.status-list{display:grid;gap:13px}.status-line{display:grid;gap:6px}.status-line label{margin:0;display:flex;justify-content:space-between;font-size:13px}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0}.kpi{padding:14px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid var(--border)}.kpi span{display:block;color:var(--muted);font-size:12px}.kpi strong{display:block;font-size:22px;margin-top:4px}
@media(max-width:900px){.app-shell{padding-left:0}.mobile-menu{display:block}.sidebar{transform:translateX(-105%);transition:.2s ease}.sidebar.open{transform:translateX(0)}.topbar{padding:62px 16px 16px;align-items:flex-start}.container{padding:18px}.top-stats{justify-content:flex-start}.hero-card{padding:24px;border-radius:24px}.grid.two{grid-template-columns:1fr}}
@media(max-width:560px){.topbar{display:block}.mini-stat{min-width:100%;}.mini-bars{width:100%;}.top-stats{margin-top:12px}.action-grid{grid-template-columns:1fr}table{display:block;overflow-x:auto}.guest-topbar{display:block}.guest-topbar nav{margin-top:12px}.stat{font-size:24px}}

/* Navigation cleanup */
.topbar{align-items:center}
.topbar-main{min-width:220px;flex:0 0 auto}
.top-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;min-width:360px;max-width:760px;margin:0 auto}
.top-action{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 12px;border-radius:12px;text-decoration:none!important;color:#dfe6f5!important;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.10);font-weight:900;line-height:1;white-space:nowrap;transition:.16s ease;box-shadow:none}
.top-action span{font-size:16px;line-height:1}
.top-action em{font-style:normal;font-size:12px;letter-spacing:0}
.top-action b{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:var(--danger);color:#fff;font-size:11px;border:2px solid #090d15}
.top-action:hover,.top-action.active{background:rgba(214,168,79,.16);border-color:rgba(214,168,79,.36);color:#fff!important;transform:translateY(-1px)}
.top-stats{flex:0 1 auto}
.top-stats .mini-stat{min-width:112px;padding:9px 11px;border-radius:12px}
.top-stats .mini-stat span{font-size:10px}
.top-stats .mini-stat strong{font-size:14px}
.top-stats .mini-bars{display:none}
.side-nav .nav-section:first-child{margin-top:8px}
.nav-section{margin:16px 8px 7px;font-size:10px;letter-spacing:.14em;color:#7b8497}
.nav-link{border-radius:10px;padding:8px 10px;margin:2px 0}
.nav-link span{font-size:16px;width:20px}
.nav-link em{font-size:13px}
@media(max-width:1280px){.topbar{align-items:flex-start;flex-wrap:wrap}.top-actions{order:3;justify-content:flex-start;min-width:100%;max-width:none;margin:0}.top-stats{margin-left:auto}}
@media(max-width:900px){.topbar{gap:14px}.top-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.top-action{padding:0 8px}.top-action em{font-size:11px}}
@media(max-width:560px){.topbar-main{min-width:0}.top-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.top-action{min-height:40px}.top-stats .mini-stat{min-width:100%}}

/* Dashboard */
.dashboard-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 18px;
  align-items: stretch;
  min-height: 290px;
  margin-bottom: 18px;
  border: 1px solid var(--border);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: var(--shadow);
  background:
    linear-gradient(90deg, rgba(8,11,17,.98), rgba(8,11,17,.7) 48%, rgba(8,11,17,.95)),
    url('../img/oslo-night.svg') center/cover;
}

/* Territorier */
.territory-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;padding:28px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(135deg,rgba(101,183,255,.13),rgba(214,168,79,.10)),linear-gradient(180deg,rgba(25,34,53,.88),rgba(12,17,27,.92));box-shadow:var(--shadow);overflow:hidden}
.territory-hero h1{margin:10px 0 8px}.territory-hero .lead{max-width:760px;margin:0;color:#dce4f2}.territory-hero-card{min-width:150px;padding:16px;border:1px solid var(--border);border-radius:16px;background:rgba(0,0,0,.20)}.territory-hero-card span,.territory-hero-card small{display:block;color:var(--muted);font-size:12px}.territory-hero-card strong{display:block;font-size:36px;line-height:1;color:var(--accent2)}
.territory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.territory-card{overflow:hidden;border:1px solid var(--border);border-radius:20px;background:linear-gradient(180deg,rgba(25,34,53,.88),rgba(13,18,29,.95));box-shadow:0 16px 42px rgba(0,0,0,.24)}.territory-card img{display:block;width:100%;height:165px;object-fit:cover;background:#101725}.territory-card-body{padding:16px}.territory-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.territory-title span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.territory-title h2{margin:3px 0 0;font-size:24px}.territory-title strong{white-space:nowrap;color:var(--accent2)}.territory-card p{min-height:72px;margin:10px 0 14px;color:#cdd5e3}.territory-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.territory-meta div{padding:10px;border:1px solid var(--border);border-radius:12px;background:rgba(0,0,0,.18)}.territory-meta span{display:block;color:var(--muted);font-size:11px}.territory-meta strong{display:block;margin-top:2px}.territory-defense{display:grid;gap:6px;margin-bottom:14px}.territory-defense label{display:flex;justify-content:space-between;margin:0;font-size:13px}.territory-defense i{height:9px;border:1px solid var(--border);border-radius:999px;background:#0d121c;overflow:hidden}.territory-defense u{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#65b7ff,var(--accent2))}
@media(max-width:760px){.territory-hero{align-items:stretch;flex-direction:column}.territory-hero-card{min-width:0}.territory-card p{min-height:0}}
.dashboard-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 42%;
  background: linear-gradient(0deg, rgba(7,9,13,.86), transparent);
  pointer-events: none;
}
.dashboard-hero-main {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: clamp(22px, 4vw, 42px);
}
.dashboard-hero h1 {
  max-width: 760px;
  margin: 12px 0 10px;
  font-size: clamp(40px, 6vw, 76px);
}
.dashboard-hero .lead {
  max-width: 680px;
  margin: 0 0 18px;
  color: #e6ebf4;
  font-size: 1.04rem;
}
.dashboard-next-card {
  position: relative;
  z-index: 1;
  align-self: end;
  margin: 22px;
  padding: 18px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(10,14,22,.76);
  backdrop-filter: blur(12px);
}
.dashboard-next-card span {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.dashboard-next-card strong {
  display: block;
  margin: 7px 0;
  color: var(--accent2);
  font-size: 1.35rem;
}
.dashboard-next-card p {
  margin: 0;
  color: var(--soft);
}
.dashboard-money-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.dashboard-money-card {
  min-height: 116px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(25,34,53,.78), rgba(14,19,30,.9));
  box-shadow: 0 12px 34px rgba(0,0,0,.18);
}
.dashboard-money-card span,
.dashboard-money-card small {
  display: block;
  color: var(--muted);
}
.dashboard-money-card span {
  font-size: .78rem;
  font-weight: 900;
}
.dashboard-money-card strong {
  display: block;
  margin: 7px 0 4px;
  color: #fff;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  line-height: 1.05;
  overflow-wrap: anywhere;
}
.dashboard-money-card small {
  line-height: 1.35;
}
.dashboard-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(300px, .75fr);
  gap: 16px;
}
.dashboard-main-column,
.dashboard-side-column,
.dashboard-action-groups,
.dashboard-feed {
  display: grid;
  gap: 16px;
}
.dashboard-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}
.dashboard-section-head h2,
.dashboard-section-head p {
  margin: 0;
}
.dashboard-section-head.compact {
  align-items: center;
  margin-bottom: 12px;
}
.dashboard-section-head.compact a {
  color: var(--accent2);
  font-weight: 900;
  text-decoration: none;
}
.dashboard-status-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr);
  gap: 16px;
  align-items: stretch;
}
.dashboard-mini-kpis {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.dashboard-mini-kpis div {
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(0,0,0,.18);
}
.dashboard-mini-kpis span {
  display: block;
  color: var(--muted);
  font-size: .76rem;
}
.dashboard-mini-kpis strong {
  display: block;
  margin-top: 4px;
  color: #fff;
  font-size: 1.1rem;
  overflow-wrap: anywhere;
}
.dashboard-rank-card p {
  margin-bottom: 0;
}
.dashboard-action-groups {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.dashboard-action-panel h2 {
  margin-bottom: 13px;
}
.dashboard-action-list {
  display: grid;
  gap: 9px;
}
.dashboard-action-list a {
  display: block;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: rgba(255,255,255,.035);
  text-decoration: none;
  transition: .16s ease;
}
.dashboard-action-list a:hover {
  border-color: rgba(214,168,79,.32);
  background: rgba(214,168,79,.1);
  transform: translateY(-1px);
}
.dashboard-action-list strong,
.dashboard-action-list span {
  display: block;
}
.dashboard-action-list strong {
  color: #fff;
  margin-bottom: 4px;
}
.dashboard-action-list span {
  color: var(--muted);
  line-height: 1.35;
  font-size: .88rem;
}
.dashboard-side-card {
  padding: 16px;
}
.dashboard-feed-item,
.dashboard-rival,
.dashboard-news-item {
  padding: 11px 0;
  border-top: 1px solid var(--border);
}
.dashboard-feed-item:first-child,
.dashboard-rival:first-child,
.dashboard-news-item:first-child {
  border-top: 0;
  padding-top: 0;
}
.dashboard-feed-item strong,
.dashboard-feed-item small,
.dashboard-rival strong,
.dashboard-rival small,
.dashboard-news-item strong,
.dashboard-news-item small {
  display: block;
}
.dashboard-feed-item small,
.dashboard-rival small,
.dashboard-news-item small {
  color: var(--muted);
  margin-top: 3px;
}
.dashboard-feed-item .progress {
  height: 9px;
  margin-top: 8px;
}
.dashboard-rival {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 3px 10px;
  align-items: center;
}
.dashboard-rival span {
  grid-row: span 2;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(214,168,79,.14);
  color: var(--accent2);
  font-weight: 1000;
}
@media(max-width:1100px) {
  .dashboard-money-grid,
  .dashboard-action-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .dashboard-layout {
    grid-template-columns: 1fr;
  }
}
@media(max-width:760px) {
  .dashboard-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .dashboard-next-card {
    align-self: stretch;
    margin: 0 18px 18px;
  }
  .dashboard-money-grid,
  .dashboard-action-groups,
  .dashboard-status-grid {
    grid-template-columns: 1fr;
  }
  .dashboard-section-head {
    flex-direction: column;
  }
}

/* Garasje */
.garage-hero {
  position: relative;
  min-height: 330px;
  display: flex;
  align-items: flex-end;
  margin-bottom: 16px;
  padding: clamp(22px, 4vw, 42px);
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  background:
    linear-gradient(90deg, rgba(7,9,13,.95), rgba(7,9,13,.54) 52%, rgba(7,9,13,.92)),
    url('../img/garasje-hero.jpg') center/cover;
}
.garage-hero > div {
  position: relative;
  z-index: 1;
  max-width: 760px;
}
.garage-hero h1 {
  margin: 12px 0 10px;
  font-size: clamp(40px, 6vw, 72px);
}
.garage-hero .lead {
  max-width: 650px;
  margin: 0 0 18px;
  color: #e6ebf4;
}
.garage-steal-form {
  margin: 0;
}
.garage-cooldown {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 10px 13px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--soft);
  font-weight: 900;
}
.garage-cooldown strong {
  color: var(--accent2);
  margin-left: 5px;
}
.garage-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.garage-summary div {
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(25,34,53,.78), rgba(14,19,30,.9));
  box-shadow: 0 12px 34px rgba(0,0,0,.18);
}
.garage-summary span,
.garage-summary small {
  display: block;
  color: var(--muted);
}
.garage-summary span {
  font-size: .78rem;
  font-weight: 900;
}
.garage-summary strong {
  display: block;
  margin: 6px 0 3px;
  font-size: clamp(1.4rem, 2vw, 1.9rem);
  line-height: 1.05;
  color: #fff;
}
.garage-layout {
  display: grid;
  grid-template-columns: minmax(280px, .55fr) minmax(0, 1.45fr);
  gap: 16px;
  align-items: start;
}
.garage-steal-card {
  position: sticky;
  top: 110px;
}
.garage-tips {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}
.garage-tips div {
  padding: 12px;
  border-radius: 15px;
  border: 1px solid var(--border);
  background: rgba(0,0,0,.18);
}
.garage-tips span,
.garage-tips strong {
  display: block;
}
.garage-tips span {
  color: var(--muted);
  font-size: .78rem;
}
.garage-tips strong {
  margin-top: 4px;
  color: #fff;
}
.garage-section-title {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}
.garage-section-title h2 {
  margin: 0;
}
.garage-car-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}
.garage-car-card {
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(25,34,53,.86), rgba(16,22,35,.94));
  box-shadow: 0 16px 42px rgba(0,0,0,.24);
}
.garage-car-image {
  height: 170px;
  background-image: url('../img/vehicles/vehicle-sprite.png');
  background-size: 300% 200%;
  background-repeat: no-repeat;
  background-color: #0c111b;
  border-bottom: 1px solid var(--border);
}
.vehicle-volvo-240 { background-position: 0% 0%; }
.vehicle-hiace { background-position: 50% 0%; }
.vehicle-bmw-5 { background-position: 100% 0%; }
.vehicle-tesla-model-s { background-position: 0% 100%; }
.vehicle-porsche-taycan { background-position: 50% 100%; }
.vehicle-armored-mercedes { background-position: 100% 100%; }
.vehicle-generic { background-position: 0% 0%; }
.garage-car-body {
  padding: 15px;
}
.garage-car-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.garage-car-title h3 {
  margin: 0 0 6px;
  font-size: 1.08rem;
}
.garage-car-title strong {
  color: var(--accent2);
  white-space: nowrap;
}
.garage-rarity {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.055);
  color: var(--soft);
  font-size: .72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.garage-rarity.uncommon { color: #b8d7ff; border-color: rgba(101,183,255,.28); background: rgba(101,183,255,.1); }
.garage-rarity.rare { color: #7cf4b7; border-color: rgba(111,227,161,.28); background: rgba(111,227,161,.1); }
.garage-rarity.epic { color: #d5b7ff; border-color: rgba(181,129,255,.32); background: rgba(181,129,255,.12); }
.garage-rarity.legendary { color: var(--accent2); border-color: rgba(214,168,79,.38); background: rgba(214,168,79,.14); }
.garage-car-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-bottom: 13px;
}
.garage-car-stats span {
  padding: 9px;
  border-radius: 13px;
  border: 1px solid var(--border);
  background: rgba(0,0,0,.18);
  color: var(--muted);
  font-size: .78rem;
}
.garage-car-stats b {
  color: #fff;
}
.garage-car-card form {
  margin: 0;
}
.garage-car-card button {
  width: 100%;
}
.garage-empty {
  min-height: 180px;
}
@media(max-width:960px) {
  .garage-layout {
    grid-template-columns: 1fr;
  }
  .garage-steal-card {
    position: relative;
    top: auto;
  }
}
@media(max-width:650px) {
  .garage-summary {
    grid-template-columns: 1fr;
  }
  .garage-car-grid {
    grid-template-columns: 1fr;
  }
  .garage-car-title {
    flex-direction: column;
  }
  .garage-car-title strong {
    white-space: normal;
  }
}

/* Advokat */
.lawyer-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: 18px;
  align-items: center;
  min-height: 260px;
  background:
    linear-gradient(135deg, rgba(214,168,79,.16), rgba(25,34,53,.9)),
    radial-gradient(circle at 80% 20%, rgba(101,183,255,.14), transparent 34%);
}
.lawyer-hero h1 {
  margin-bottom: 10px;
}
.lawyer-hero .lead {
  max-width: 760px;
}
.lawyer-case-file {
  padding: 18px;
  border: 1px solid rgba(214,168,79,.25);
  border-radius: 18px;
  background: rgba(0,0,0,.2);
}
.lawyer-case-file span,
.lawyer-case-file small {
  display: block;
  color: var(--muted);
  font-weight: 800;
}
.lawyer-case-file strong {
  display: block;
  margin: 6px 0;
  color: var(--accent2);
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1;
}
.lawyer-price-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}
.lawyer-price-list div {
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: rgba(255,255,255,.035);
}
.lawyer-price-list div.active {
  border-color: rgba(214,168,79,.42);
  background: rgba(214,168,79,.14);
}
.lawyer-price-list span,
.lawyer-price-list strong {
  display: block;
}
.lawyer-price-list span {
  color: var(--muted);
  font-size: .78rem;
}
.lawyer-price-list strong {
  margin-top: 4px;
  color: #fff;
}
@media(max-width:760px) {
  .lawyer-hero {
    grid-template-columns: 1fr;
  }
}

/* Spillerprofil */
.player-link {
  color: inherit;
  text-decoration: none;
}
.player-link:hover {
  color: var(--accent2);
  text-decoration: underline;
}
.profile-hero {
  display: flex;
  align-items: center;
  gap: 18px;
  background: linear-gradient(135deg, rgba(214,168,79,.16), rgba(25,34,53,.9));
}
.profile-avatar {
  width: 82px;
  height: 82px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 26px;
  background: linear-gradient(135deg, var(--accent2), var(--accent));
  color: #171006;
  font-size: 2.4rem;
  font-weight: 1000;
  box-shadow: 0 18px 45px rgba(214,168,79,.18);
}
.profile-hero h1 {
  margin-bottom: 12px;
}
.profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .7fr);
  gap: 16px;
  margin-top: 16px;
}
.profile-main,
.profile-side {
  display: grid;
  gap: 16px;
  align-content: start;
}
.profile-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
@media(max-width:1050px) {
  .profile-layout,
  .profile-stat-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media(max-width:700px) {
  .profile-hero {
    align-items: flex-start;
    flex-direction: column;
  }
  .profile-layout,
  .profile-stat-grid {
    grid-template-columns: 1fr;
  }
}

/* Familier */
.family-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  background: linear-gradient(135deg, rgba(214,168,79,.14), rgba(25,34,53,.9));
}
.family-hero h1 {
  margin-bottom: 10px;
}
.family-hero-stat {
  min-width: 220px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(214,168,79,.25);
  background: rgba(0,0,0,.18);
}
.family-hero-stat span,
.family-hero-stat strong {
  display: block;
}
.family-hero-stat span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
}
.family-hero-stat strong {
  color: var(--accent2);
  margin-top: 5px;
  font-size: 1.25rem;
}
.family-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .7fr);
  gap: 16px;
  margin-top: 16px;
}
.family-main,
.family-side,
.family-member-list,
.family-list {
  display: grid;
  gap: 16px;
}
.family-member-row,
.family-invite-row,
.family-list-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.035);
}
.family-member-row small,
.family-invite-row small,
.family-list-row small,
.family-list-row span {
  display: block;
  color: var(--muted);
  margin-top: 3px;
}
.family-list-row {
  grid-template-columns: minmax(0, 1fr) minmax(130px, auto) minmax(110px, auto);
}
.family-list-row strong {
  color: #fff;
}
.family-invite-row {
  grid-template-columns: minmax(0, 1fr) auto auto;
}
@media(max-width:900px) {
  .family-hero,
  .family-layout {
    grid-template-columns: 1fr;
  }
  .family-hero {
    align-items: stretch;
    flex-direction: column;
  }
}
@media(max-width:650px) {
  .family-member-row,
  .family-invite-row,
  .family-list-row {
    grid-template-columns: 1fr;
  }
}

/* Meldinger */
.messages-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  background: linear-gradient(135deg, rgba(101,183,255,.12), rgba(25,34,53,.9));
}
.messages-hero h1 {
  margin-bottom: 10px;
}
.message-count-card {
  min-width: 160px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid var(--border);
  background: rgba(0,0,0,.18);
}
.message-count-card span,
.message-count-card strong {
  display: block;
}
.message-count-card span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
}
.message-count-card strong {
  color: var(--accent2);
  font-size: 2rem;
}
.messages-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .7fr);
  gap: 16px;
  margin-top: 16px;
}
.messages-main,
.messages-side,
.message-list {
  display: grid;
  gap: 16px;
}
.message-list.compact {
  gap: 10px;
}
.message-item {
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.035);
}
.message-item.unread {
  border-color: rgba(214,168,79,.38);
  background: rgba(214,168,79,.1);
}
.message-item-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}
.message-item strong,
.message-item small {
  display: block;
}
.message-item small {
  color: var(--muted);
  margin-top: 4px;
}
.message-item p {
  margin-bottom: 0;
}
@media(max-width:900px) {
  .messages-hero {
    align-items: stretch;
    flex-direction: column;
  }
  .messages-layout {
    grid-template-columns: 1fr;
  }
}

/* Marked */
.market-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  background: linear-gradient(135deg, rgba(111,227,161,.11), rgba(25,34,53,.9));
}
.market-hero h1 {
  margin-bottom: 10px;
}
.market-layout {
  display: grid;
  grid-template-columns: minmax(290px, .65fr) minmax(0, 1.35fr);
  gap: 16px;
  margin-top: 16px;
  align-items: start;
}
.market-sell-list,
.market-grid {
  display: grid;
  gap: 14px;
}
.market-grid {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
.market-sell-card,
.market-card {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.035);
}
.market-sell-card {
  padding-bottom: 14px;
}
.market-sell-card > strong,
.market-sell-card > small,
.market-sell-card > label,
.market-sell-card > button {
  margin-left: 14px;
  margin-right: 14px;
}
.market-sell-card > strong,
.market-sell-card > small {
  display: block;
}
.market-sell-card > strong {
  margin-top: 12px;
}
.market-sell-card > small {
  color: var(--muted);
  margin-top: 3px;
}
.market-card-body {
  padding: 14px;
}
.market-card-body h3 {
  margin: 0 0 8px;
}
.market-card form,
.market-sell-card form {
  margin: 0;
}
.market-card button {
  width: 100%;
}
@media(max-width:950px) {
  .market-hero {
    align-items: stretch;
    flex-direction: column;
  }
  .market-layout {
    grid-template-columns: 1fr;
  }
}

/* Oslo Bors */
.stocks-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  background:
    linear-gradient(135deg, rgba(101,183,255,.12), rgba(25,34,53,.9)),
    url('../img/oslo-bors-hero.jpg') center/cover;
}
.stocks-hero h1 {
  margin-bottom: 10px;
}
.stocks-value-card {
  min-width: 220px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid var(--border);
  background: rgba(0,0,0,.34);
}
.stocks-value-card span,
.stocks-value-card strong,
.stocks-value-card small {
  display: block;
}
.stocks-value-card span,
.stocks-value-card small {
  color: var(--muted);
}
.stocks-value-card strong {
  margin: 5px 0;
  color: #fff;
  font-size: 1.65rem;
}
.stock-trade-form {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 0;
}
.stock-trade-form input {
  max-width: 92px;
  margin: 0;
}
@media(max-width:760px) {
  .stocks-hero {
    align-items: stretch;
    flex-direction: column;
  }
  .stock-trade-form {
    align-items: stretch;
    flex-direction: column;
  }
  .stock-trade-form input {
    max-width: none;
  }
}


/* V8 automatiske hero-bilder for hovedfunksjoner */
.feature-hero{
  position:relative;
  width:100%;
  margin:0 0 24px;
  border-radius:26px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 22px 70px rgba(0,0,0,.42);
  background:#07090d;
  min-height:210px;
}
.feature-hero:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(7,9,13,.22),transparent 50%,rgba(7,9,13,.16));
}
.feature-hero img{
  display:block;
  width:100%;
  height:clamp(190px,24vw,330px);
  object-fit:cover;
  object-position:center;
}
@media(max-width:700px){
  .feature-hero{border-radius:18px;margin-bottom:18px;min-height:150px}
  .feature-hero img{height:170px}
}

/* V9 Rank-system */
.rank-hero{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin-bottom:16px;
    background:linear-gradient(135deg, rgba(251,211,107,.16), rgba(22,31,48,.92));
}
.rank-hero-main{display:flex;align-items:center;gap:18px;}
.rank-badge-large{
    width:78px;height:78px;border-radius:24px;
    display:grid;place-items:center;
    font-size:34px;font-weight:900;color:#111827;
    background:linear-gradient(135deg,#ffe082,#f2b84b);
    box-shadow:0 18px 45px rgba(242,184,75,.2);
}
.rank-next-box{
    min-width:210px;padding:16px;border-radius:18px;
    background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);
}
.rank-next-box span,.rank-next-box small{display:block;color:var(--muted);}
.rank-next-box strong{display:block;font-size:22px;margin:5px 0;color:var(--text);}
.rank-progress-card{margin-bottom:16px;}
.rank-progress-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;}
.rank-percent{font-size:30px;font-weight:900;color:var(--gold);}
.progress.rank span{background:linear-gradient(90deg,#f2b84b,#ffe082,#7cf4b7);box-shadow:0 0 18px rgba(242,184,75,.28);}
.rank-progress-meta{display:flex;justify-content:space-between;gap:12px;margin-top:9px;color:var(--muted);font-size:13px;}
.rank-timeline{display:grid;gap:10px;margin-top:12px;}
.rank-row{
    display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:14px;
    padding:14px;border-radius:18px;border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.035);
}
.rank-row.current{border-color:rgba(242,184,75,.55);background:linear-gradient(90deg,rgba(242,184,75,.16),rgba(255,255,255,.035));}
.rank-row.locked{opacity:.62;}
.rank-number{
    width:44px;height:44px;border-radius:15px;display:grid;place-items:center;
    background:rgba(255,255,255,.08);font-weight:900;color:var(--text);
}
.rank-row.current .rank-number{background:linear-gradient(135deg,#ffe082,#f2b84b);color:#111827;}
.rank-info strong{display:block;font-size:16px;}
.rank-info small{display:block;color:var(--muted);margin-top:3px;}
.pill.gold{background:rgba(242,184,75,.2);border-color:rgba(242,184,75,.45);color:#ffe082;}
.muted-pill{opacity:.8;}
.rank-tip-card{margin-top:16px;}
@media (max-width: 760px){
    .rank-hero,.rank-progress-head{align-items:flex-start;flex-direction:column;}
    .rank-next-box{width:100%;min-width:0;}
    .rank-row{grid-template-columns:46px 1fr;}
    .rank-state{grid-column:2;}
    .rank-progress-meta{font-size:12px;}
}

/* V10 Safehouse */
.safehouse-hero {
    background:
        linear-gradient(90deg, rgba(8,12,20,.96), rgba(8,12,20,.74)),
        radial-gradient(circle at 78% 28%, rgba(238,194,92,.18), transparent 38%),
        linear-gradient(135deg, rgba(28,37,55,.96), rgba(8,12,20,.96));
}
.safehouse-current {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 14px;
}
.safehouse-current h3 { margin: 0 0 6px; font-size: 1.35rem; }
.safehouse-list .action-card { align-items: flex-start; }
.safehouse-card.owned {
    border-color: rgba(238,194,92,.55);
    box-shadow: 0 0 0 1px rgba(238,194,92,.18), 0 20px 45px rgba(0,0,0,.24);
}
.safehouse-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.safehouse-stats b {
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: var(--text);
    font-size: .82rem;
}
.inline-form {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin: 12px 0 18px;
}
.notice {
    padding: 11px 13px;
    border-radius: 14px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
}
.notice.success {
    background: rgba(61, 220, 151, .10);
    border-color: rgba(61, 220, 151, .24);
}
button:disabled, .btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: grayscale(.5);
}


/* V11 Safehouse images */
.safehouse-current-card {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    border: 1px solid rgba(255,255,255,.10);
    min-height: 230px;
    margin-bottom: 16px;
    background: rgba(0,0,0,.22);
    box-shadow: 0 22px 50px rgba(0,0,0,.22);
}
.safehouse-current-card img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    display: block;
    opacity: .74;
    filter: saturate(.92) contrast(1.06) brightness(.78);
}
.safehouse-current-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(4,8,14,.05), rgba(4,8,14,.82));
    pointer-events: none;
}
.safehouse-current-info {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 1;
}
.safehouse-current-info h3 {
    margin: 8px 0 5px;
    font-size: clamp(1.3rem, 3vw, 2rem);
    text-shadow: 0 3px 18px rgba(0,0,0,.65);
}
.safehouse-list {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.safehouse-list .safehouse-card {
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow: hidden;
    gap: 0;
}
.safehouse-card-image {
    position: relative;
    height: 170px;
    overflow: hidden;
    background: rgba(0,0,0,.2);
}
.safehouse-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .25s ease, filter .25s ease;
    filter: saturate(.9) contrast(1.04) brightness(.82);
}
.safehouse-card:hover .safehouse-card-image img {
    transform: scale(1.035);
    filter: saturate(1.02) contrast(1.08) brightness(.9);
}
.safehouse-card-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0), rgba(5,8,14,.72));
}
.safehouse-card-badge {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 1;
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(8,12,20,.78);
    border: 1px solid rgba(255,255,255,.16);
    color: var(--text);
    font-weight: 800;
    font-size: .78rem;
    backdrop-filter: blur(8px);
}
.safehouse-card-body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.safehouse-card-body > strong {
    font-size: 1.12rem;
    margin-bottom: 5px;
}
.safehouse-card-body > small {
    color: var(--muted);
    line-height: 1.45;
}
@media (max-width: 700px) {
    .safehouse-current-card img { height: 190px; }
    .safehouse-card-image { height: 150px; }
}

/* V13 PvP: ran og drapsforsøk */
.pvp-hero{position:relative;min-height:310px;border:1px solid rgba(255,255,255,.10);border-radius:24px;overflow:hidden;background:#0b101a;box-shadow:0 20px 70px rgba(0,0,0,.45);display:flex;align-items:flex-end;margin-bottom:8px}
.pvp-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.58) saturate(1.08);transform:scale(1.01)}
.pvp-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,10,16,.88),rgba(6,10,16,.25) 55%,rgba(6,10,16,.75)),linear-gradient(0deg,rgba(6,10,16,.86),transparent 60%)}
.pvp-hero>div{position:relative;z-index:1;padding:34px;max-width:760px}
.pvp-hero h1{font-size:clamp(34px,5vw,64px);margin:10px 0 8px;letter-spacing:-.04em;text-transform:uppercase}
.pvp-hero .lead{font-size:1.05rem;color:#d8dde8;max-width:700px}
.city-tag.danger,.danger{color:#ff7676!important}.danger-card{border-color:rgba(255,88,88,.35)!important;background:linear-gradient(135deg,rgba(95,21,29,.28),rgba(18,25,36,.9))!important}.btn.danger{background:linear-gradient(135deg,#a82932,#e94e58);color:#fff}.btn.small{padding:8px 12px;font-size:.85rem}.big-number{font-size:clamp(28px,4vw,46px);font-weight:900;color:#f6d46b;line-height:1}.table-wrap{overflow:auto}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 9px;background:rgba(255,255,255,.08);font-size:.78rem;color:#dfe6f5}.pvp-robbery-hero h1{color:#f4c744}.pvp-kill-hero h1{color:#ff6969}@media (max-width:700px){.pvp-hero{min-height:240px}.pvp-hero>div{padding:22px}.pvp-hero h1{font-size:34px}}


/* v15 ammunisjon */
.ammo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin-top: 16px;
}
.ammo-card {
    border: 1px solid rgba(255,255,255,.10);
    background: linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
    border-radius: 18px;
    padding: 16px;
    box-shadow: 0 12px 28px rgba(0,0,0,.22);
}
.ammo-card h3 { margin: 6px 0 6px; }
.ammo-card p { color: var(--muted, #aab2c0); min-height: 42px; }
.ammo-icon {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: rgba(229, 184, 77, .16);
    color: #f3c45b;
    border: 1px solid rgba(229, 184, 77, .35);
}
.ammo-card .price {
    display: block;
    margin: 10px 0;
    color: #f3d37a;
}
.shop-item {
    margin: 12px 0;
    padding: 14px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    background: rgba(255,255,255,.03);
}
.inventory-summary {
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(229, 184, 77, .08);
    border: 1px solid rgba(229, 184, 77, .18);
    margin-bottom: 12px;
}

/* v16: butikkbilder og bedre produktkort */
.shop-hero {
    background:
        linear-gradient(135deg, rgba(9,13,20,.92), rgba(20,27,41,.76)),
        radial-gradient(circle at 78% 25%, rgba(229,184,77,.18), transparent 34%);
}
.section-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}
.shop-badge,
.item-type-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 6px 10px;
    background: rgba(229,184,77,.12);
    border: 1px solid rgba(229,184,77,.25);
    color: #f3d37a;
    font-size: .74rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
    white-space: nowrap;
}
.shop-card-grid,
.shop-items-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 16px;
    margin-top: 16px;
}
.shop-product-card {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.02));
    box-shadow: 0 18px 40px rgba(0,0,0,.26);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.shop-product-card:hover {
    transform: translateY(-2px);
    border-color: rgba(229,184,77,.34);
    box-shadow: 0 24px 55px rgba(0,0,0,.34);
}
.shop-product-image {
    position: relative;
    height: 142px;
    background: radial-gradient(circle at 75% 20%, rgba(229,184,77,.18), transparent 34%), #101722;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.shop-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.shop-product-image .item-type-pill {
    position: absolute;
    left: 12px;
    bottom: 12px;
    backdrop-filter: blur(8px);
    background: rgba(10,14,22,.7);
}
.shop-product-body {
    padding: 15px;
}
.shop-product-body h3 {
    margin: 0 0 8px;
    font-size: 1.08rem;
}
.shop-product-body p {
    color: var(--muted, #aab2c0);
    min-height: 42px;
    margin: 0 0 10px;
    line-height: 1.45;
}
.shop-product-body .price {
    display: block;
    margin: 10px 0 12px;
    color: #f3d37a;
    font-size: 1.02rem;
}
.stat-line {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    margin: 10px 0 13px;
}
.stat-line span {
    padding: 8px 7px;
    border-radius: 12px;
    background: rgba(0,0,0,.20);
    border: 1px solid rgba(255,255,255,.07);
    color: var(--muted, #aab2c0);
    font-size: .75rem;
}
.stat-line b {
    color: #f3d37a;
}
.shop-layout.grid.two {
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, .7fr);
}
.inventory-summary.with-icon {
    display: flex;
    align-items: center;
    gap: 12px;
}
.inventory-summary.with-icon img {
    width: 62px;
    height: 44px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.10);
}
.inventory-list {
    display: grid;
    gap: 10px;
}
.inventory-row {
    display: grid;
    grid-template-columns: 54px 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 10px;
    border-radius: 15px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.035);
}
.inventory-row img {
    width: 54px;
    height: 38px;
    object-fit: cover;
    border-radius: 10px;
}
.inventory-row strong {
    color: #f3d37a;
}
@media (max-width: 950px) {
    .shop-layout.grid.two { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .section-title-row { flex-direction: column; }
    .shop-product-image { height: 120px; }
    .stat-line { grid-template-columns: 1fr; }
}

/* Topplister */
.leaderboard-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}
.leaderboard-head h1 {
    margin-bottom: 8px;
}
.leaderboard-head p {
    margin: 0;
}
.leaderboard-rank-card {
    min-width: 180px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(214,168,79,.24);
    background: linear-gradient(135deg, rgba(214,168,79,.16), rgba(255,255,255,.04));
    box-shadow: 0 16px 36px rgba(0,0,0,.22);
}
.leaderboard-rank-card span,
.leaderboard-rank-card small {
    display: block;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 800;
}
.leaderboard-rank-card strong {
    display: block;
    margin: 3px 0;
    color: var(--accent2);
    font-size: 2rem;
    line-height: 1;
}
.leaderboard-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}
.leaderboard-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 13px;
    border-radius: 14px;
    border: 1px solid var(--border);
    background: rgba(255,255,255,.045);
    color: var(--soft);
    text-decoration: none;
    font-weight: 900;
}
.leaderboard-tabs a:hover,
.leaderboard-tabs a.active {
    border-color: rgba(214,168,79,.42);
    background: rgba(214,168,79,.14);
    color: #fff;
}
.leaderboard-card {
    padding: 0;
}
.leaderboard-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 20px 20px 14px;
}
.leaderboard-card-head h2,
.leaderboard-card-head p {
    margin: 0;
}
.leaderboard-card-head h2 {
    margin-bottom: 5px;
}
.leaderboard-table {
    display: grid;
    gap: 0;
}
.leaderboard-row {
    display: grid;
    grid-template-columns: 62px minmax(170px, 1.4fr) minmax(120px, .8fr) minmax(120px, .8fr) minmax(130px, .8fr);
    gap: 12px;
    align-items: center;
    min-height: 62px;
    padding: 11px 20px;
    border-top: 1px solid var(--border);
}
.leaderboard-row-head {
    min-height: auto;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
    background: rgba(255,255,255,.025);
}
.leaderboard-row.is-me {
    background: linear-gradient(90deg, rgba(214,168,79,.18), rgba(255,255,255,.025));
}
.leaderboard-place {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: rgba(255,255,255,.07);
    color: var(--text);
    font-weight: 1000;
}
.leaderboard-place.top-three {
    background: linear-gradient(135deg, var(--accent2), var(--accent));
    color: #171006;
}
.leaderboard-row strong {
    display: inline-block;
    max-width: 100%;
    overflow-wrap: anywhere;
}
.leaderboard-row em {
    display: inline-flex;
    margin-left: 8px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(214,168,79,.2);
    color: var(--accent2);
    font-size: .72rem;
    font-style: normal;
    font-weight: 950;
    vertical-align: middle;
}
.leaderboard-value {
    color: var(--accent2);
    font-weight: 1000;
}
@media (max-width: 820px) {
    .leaderboard-head {
        align-items: stretch;
        flex-direction: column;
    }
    .leaderboard-rank-card {
        min-width: 0;
    }
    .leaderboard-row {
        grid-template-columns: 48px 1fr;
        gap: 7px 12px;
        align-items: start;
        padding: 13px 16px;
    }
    .leaderboard-row-head {
        display: none;
    }
    .leaderboard-row > span:nth-child(3)::before {
        content: "Rank: ";
        color: var(--muted);
        font-weight: 800;
    }
    .leaderboard-row > span:nth-child(4)::before {
        content: "Familie: ";
        color: var(--muted);
        font-weight: 800;
    }
    .leaderboard-row > span:nth-child(5)::before {
        content: "Verdi: ";
        color: var(--muted);
        font-weight: 800;
    }
    .leaderboard-row > span:nth-child(n+3) {
        grid-column: 2;
    }
}
