:root {
  font-family:system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;
  color:#17302a;
  background:#f4f7f5
}

* {
  box-sizing:border-box
}
body {
  margin:0
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select {
  font:inherit
}

.header {
  height:70px;
  background:#fff;
  border-bottom:1px solid #e3ece7;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 max(20px,calc((100vw - 1100px)/2))
}
.brand {
  font-size:23px;
  font-weight:850;
  letter-spacing:-1px
}
.brand span {
  color:#138367
}
.private {
  color:#789188;
  font-size:13px
}

main {
  max-width:1100px;
  margin:auto;
  padding:30px 20px 110px
}
h1 {
  font-size:28px;
  margin:0 0 6px
}
h2 {
  font-size:20px;
  margin:30px 0 14px
}
h3,p {
  margin:0
}
.muted,.sub {
  color:#72877e;
  font-size:14px
}
.sub {
  margin-bottom:24px
}
.nav {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  background:#fff;
  border-top:1px solid #e1ebe5;
  display:flex;
  justify-content:center;
  z-index:2;
  padding-bottom:env(safe-area-inset-bottom)
}
.nav a {
  padding:17px 25px;
  color:#6a8076;
  font-weight:700;
  font-size:13px
}
.nav a.active {
  color:#0b8d69
}

.grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px
}
.card {
  background:white;
  border:1px solid #e3ece7;
  border-radius:18px;
  padding:20px;
  box-shadow:0 5px 20px #17382a08
}
.metric .label {
  color:#71887c;
  font-size:14px
}
.metric strong {
  display:block;
  font-size:29px;
  margin:7px 0
}
.gain {
  color:#058765;
  font-weight:700;
  font-size:13px
}
.small {
  font-size:12px;
  color:#8b9c94
}
.split {
  margin:18px 0;
  display:flex;
  gap:10px;
  flex-wrap:wrap
}
.pill,.chip {
  border:1px solid #e2ece6;
  border-radius:99px;
  background:#fff;
  padding:8px 14px;
  color:#526d60;
  font-size:13px
}
.chip.selected {
  background:#0d8060;
  color:white;
  border-color:#0d8060
}
.accounts {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px
}
.account {
  display:block;
  transition:transform .15s
}
.account:hover {
  transform:translateY(-2px)
}
.row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px
}
.identity {
  display:flex;
  gap:10px;
  align-items:center;
  min-width:0
}
.icon {
  width:42px;
  height:42px;
  border-radius:13px;
  display:grid;
  place-items:center;
  background:#edf8f2;
  color:#087d5f;
  font-weight:850;
  font-size:16px;
  flex-shrink:0
}
.icon.ig {
  background:#fff0ed;
  color:#ca5d75
}
.handle {
  font-weight:800;
  direction:ltr;
  overflow-wrap:anywhere
}
.status {
  font-size:12px;
  color:#6d8679
}
.dot {
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#1cb584;
  margin-left:5px
}
.dot.bad {
  background:#e58552
}
.statline {
  display:flex;
  gap:32px;
  margin-top:20px
}
.statline strong {
  display:block;
  font-size:19px;
  margin-top:3px
}
.banner {
  background:#fff1ec;
  color:#a64b31;
  border-radius:14px;
  padding:14px 18px;
  margin-bottom:20px
}
.actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:16px 0
}
.button,button {
  border:0;
  border-radius:11px;
  background:#0e8464;
  color:white;
  padding:11px 17px;
  font-weight:700;
  cursor:pointer
}
.secondary {
  background:#edf5f0;
  color:#167659
}
.danger {
  background:#fff1ee;
  color:#b84435
}
.form {
  display:grid;
  gap:12px;
  max-width:500px
}
.form label {
  display:grid;
  gap:6px;
  color:#587064;
  font-size:14px
}
.form input,.form select {
  width:100%;
  border:1px solid #d9e6dd;
  border-radius:10px;
  padding:12px;
  background:#fff;
  color:#17302a
}
.form button {
  justify-self:start
}
.error {
  color:#b84435;
  margin:10px 0
}
.list {
  display:grid;
  gap:10px
}
.post {
  display:flex;
  gap:14px;
  align-items:center
}
.thumb {
  width:74px;
  height:74px;
  border-radius:11px;
  object-fit:cover;
  background:#ecf2ee;
  flex-shrink:0
}
.postbody {
  min-width:0;
  flex:1
}
.caption {
  font-weight:700;
  overflow-wrap:anywhere
}
.numbers {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  color:#667e71;
  font-size:13px;
  margin-top:8px
}
.activity {
  line-height:1.8
}
.chart {
  width:100%;
  height:150px;
  display:block
}
.chart-line {
  fill:none;
  stroke:#0d9871;
  stroke-width:3;
  vector-effect:non-scaling-stroke
}
.chart-bg {
  stroke:#dcebe2;
  stroke-width:1
}
.charts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
.empty {
  padding:25px;
  color:#84978c;
  text-align:center
}
.pulse {
  color:#0b9a6d;
  font-weight:800;
  animation:pulse 1.5s ease-out
}
@keyframes pulse {
  50% {
  transform:scale(1.15)
}
100% {
  opacity:.6
}

}
.login {
  max-width:430px;
  margin:50px auto
}
.login .card {
  padding:30px
}
.loading {
  color:#71877a
}

@media(max-width:600px) {
  main {
  padding:24px 16px 95px
}
.header {
  padding:0 16px
}
.nav a {
  padding:16px 9px;
  font-size:11px;
  flex:1;
  text-align:center
}
.grid {
  grid-template-columns:repeat(2,1fr);
  gap:8px
}
.metric {
  padding:13px 10px
}
.metric strong {
  font-size:21px
}
.metric .label,.gain {
  font-size:11px
}
.accounts,.charts {
  grid-template-columns:1fr
}
.card {
  padding:16px
}
.statline {
  gap:25px
}
.private {
  font-size:11px
}
h1 {
  font-size:25px
}

}


.nav[hidden] {
  display:none
}


.placeholder {
  display:grid;
  place-items:center;
  font-size:28px;
  color:#a2b9ac
}

@media(max-width:600px) {
  .grid .metric:last-child { grid-column: span 2; }
}

.viewer-screen { height: 540px; background: #111; margin-top: 1rem; }
