/* Shared dapp-page components (Portfolio, Payday, Govern, Invest) --
   extends mint.css's dark/gold "terminal" visual language rather than
   introducing a second design system. */

.app-hero {
  position: relative;
  min-height: 100vh;
  padding: 9.25rem 0 5rem;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 24%, rgba(255,218,62,.075), transparent 30rem),
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
    #000;
  background-size: auto, 46px 46px, 46px 46px, auto;
}

.app__container {
  position: relative;
  z-index: 2;
  max-width: 62rem;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.app-header { margin-bottom: 2.5rem; }
.app-header__eyebrow {
  display: block;
  color: #ffda3e;
  font-weight: 800;
  font-size: .75rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: .6rem;
}
.app-header h1 {
  font-family: "Muller Next ExtraCond Trial", "Muller Next Expanded Trial", sans-serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: -.01em;
  margin-bottom: .75rem;
}
.app-header p { color: rgba(255,255,255,.6); font-size: .95rem; max-width: 56ch; line-height: 1.5; }

.notice {
  border: .0625rem solid rgba(255,218,62,.35);
  background: rgba(255,218,62,.06);
  border-radius: .5rem;
  padding: 1rem 1.2rem;
  color: #fff;
  font-size: .85rem;
  line-height: 1.5;
  margin-bottom: 1.5rem;
}
.notice strong { color: #ffda3e; }
.notice code { font-family: monospace; font-size: .8em; background: rgba(255,255,255,.08); padding: .1em .35em; border-radius: .25rem; }
.notice--info { border-color: rgba(255,255,255,.15); background: rgba(255,255,255,.03); color: rgba(255,255,255,.65); }
.notice--error { border-color: rgba(255,71,87,.35); background: rgba(255,71,87,.06); }
.notice--error strong { color: #ff4757; }

.app-panel {
  position: relative;
  border: .0625rem solid rgba(255,218,62,.4);
  border-radius: .6rem;
  background: rgba(10,10,10,.85);
  backdrop-filter: blur(6px);
  padding: 1.5rem;
  margin-bottom: 1.75rem;
}
.app-panel h2 {
  font-family: "Muller Next ExtraCond Trial", "Muller Next Expanded Trial", sans-serif;
  font-size: 1.1rem;
  color: #fff;
  text-transform: uppercase;
  margin-bottom: .4rem;
}
.app-panel__hint { font-size: .82rem; color: rgba(255,255,255,.55); margin-bottom: 1.25rem; line-height: 1.5; }

.stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 1rem 1.5rem; }
.stat__label {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-bottom: .35rem;
}
.stat__value { font-size: 1.15rem; font-weight: 800; color: #fff; }
.stat__value--gain { color: #ffda3e; }

.field { margin-bottom: 1.1rem; }
.field label {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-bottom: .4rem;
}
.field input, .field textarea {
  width: 100%;
  background: rgba(255,255,255,.04);
  border: .0625rem solid rgba(255,255,255,.15);
  border-radius: .4rem;
  padding: .65rem .8rem;
  color: #fff;
  font-size: .9rem;
  font-family: inherit;
}
.field input:focus, .field textarea:focus { outline: none; border-color: #ffda3e; }
.field textarea { resize: vertical; min-height: 5rem; }
.field__hint { font-size: .75rem; color: rgba(255,255,255,.5); margin-top: .4rem; min-height: 1.1em; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: .125rem solid #ffda3e;
  border-radius: .4rem;
  padding: .6rem 1.1rem;
  font-weight: 800;
  font-size: .78rem;
  letter-spacing: -.01em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .15s ease, opacity .15s ease, background .15s ease;
}
.btn:disabled { opacity: .35; cursor: not-allowed; }
.btn:active:not(:disabled) { transform: translateY(1px); }
.btn--primary { background: #ffda3e; color: #000; box-shadow: 0 0 .5rem rgba(255,218,62,.35); }
.btn--primary:hover:not(:disabled) { opacity: .88; }
.btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.25); }
.btn--ghost:hover:not(:disabled) { border-color: #fff; }
.btn--danger { background: transparent; border-color: rgba(255,71,87,.5); color: #ff4757; }
.btn--danger:hover:not(:disabled) { background: rgba(255,71,87,.08); }
.btn-row { display: flex; gap: .7rem; flex-wrap: wrap; }

.badge {
  display: inline-flex;
  align-items: center;
  padding: .2rem .55rem;
  border-radius: .3rem;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.badge--seed { color: #4ade80; background: rgba(74,222,128,.1); }
.badge--late { color: #ffda3e; background: rgba(255,218,62,.1); }
.badge--unicorn { color: #c084fc; background: rgba(192,132,252,.12); }

.token-list { display: flex; flex-direction: column; gap: .85rem; }
.token-card {
  border: .0625rem solid rgba(255,255,255,.12);
  border-radius: .5rem;
  padding: 1rem 1.2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  background: rgba(255,255,255,.02);
}
.token-card__id { font-family: monospace; color: rgba(255,255,255,.5); font-size: .8rem; }
.token-card__main { display: flex; align-items: center; gap: .85rem; flex-wrap: wrap; }
.token-card__meta { font-family: monospace; font-size: .8rem; color: rgba(255,255,255,.55); }
.token-card__actions { display: flex; gap: .6rem; flex-wrap: wrap; }

.empty-state {
  padding: 1.5rem;
  text-align: center;
  color: rgba(255,255,255,.45);
  font-size: .85rem;
  border: .0625rem dashed rgba(255,255,255,.15);
  border-radius: .5rem;
}
.spinner-text { color: rgba(255,255,255,.4); font-size: .85rem; }

.proposal-card {
  border: .0625rem solid rgba(255,255,255,.12);
  border-radius: .5rem;
  padding: 1.1rem 1.3rem;
  margin-bottom: .85rem;
  background: rgba(255,255,255,.02);
}
.proposal-card h3 { font-size: 1rem; color: #fff; margin-bottom: .3rem; }
.proposal-card__meta { font-size: .78rem; color: rgba(255,255,255,.5); margin-bottom: .8rem; }
.progress { height: .4rem; background: rgba(255,255,255,.08); border-radius: .3rem; overflow: hidden; }
.progress__fill { height: 100%; background: #ffda3e; }
.proposal-card__votes { display: flex; gap: 1rem; font-size: .78rem; color: rgba(255,255,255,.6); margin-top: .5rem; }

@media (max-width: 720px) {
  .app-hero { padding-top: 7.5rem; }
}
