:root {
  color-scheme: dark;
  --bg:#070708;
  --panel:rgba(20,20,23,.92);
  --panel-2:rgba(26,26,30,.92);
  --text:#f6f6f7;
  --muted:#a5a5ad;
  --line:#34343b;
  --line-strong:#50505a;
  --crimson:#8f1732;
  --crimson-hover:#a91d3d;
  --danger-bg:rgba(143,23,50,.14);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{min-height:100%;background:var(--bg)}
body{
  margin:0;
  min-height:100svh;
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:
    radial-gradient(circle at 50% -12%,rgba(92,92,105,.22),transparent 38%),
    linear-gradient(180deg,#111114 0%,#08080a 50%,#050506 100%);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 42%,rgba(143,23,50,.055),transparent 34%);
}

.page{
  position:relative;
  z-index:1;
  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));
}
.shell{
  width:min(100%,560px);
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:0 24px 70px rgba(0,0,0,.42);
  padding:30px 22px 24px;
  backdrop-filter:blur(4px);
}
.auth-shell{width:min(100%,460px)}
.brand{text-align:center;margin-bottom:26px}
.mark{
  color:#fff;
  font-size:.72rem;
  line-height:1;
  font-weight:900;
  letter-spacing:.28em;
  margin-left:.28em;
}
h1{
  margin:12px 0 0;
  font-size:clamp(2rem,10vw,3.8rem);
  line-height:.95;
  letter-spacing:.06em;
  text-align:center;
}
.intro,.welcome{
  margin:18px auto 0;
  max-width:34rem;
  color:var(--muted);
  text-align:center;
  line-height:1.45;
  font-size:.98rem;
}
.welcome strong{color:#fff}
.form{display:grid;gap:17px;margin-top:28px}
label{display:grid;gap:8px;font-size:.82rem;font-weight:800;letter-spacing:.035em;color:#dddde2}
input{
  width:100%;
  min-height:54px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#0c0c0f;
  color:#fff;
  padding:14px 15px;
  font-size:16px; /* evita zoom automático no iPhone */
  outline:none;
  appearance:none;
}
input:focus{border-color:var(--crimson);box-shadow:0 0 0 3px rgba(143,23,50,.18)}
button,.menu-card{font:inherit;touch-action:manipulation}
.primary{
  width:100%;
  min-height:56px;
  border:1px solid var(--crimson);
  border-radius:14px;
  background:var(--crimson);
  color:#fff;
  font-weight:900;
  letter-spacing:.09em;
  cursor:pointer;
}
.primary:active{transform:scale(.99)}
@media (hover:hover){.primary:hover{background:var(--crimson-hover)}}
.text-link{
  display:block;
  width:max-content;
  max-width:100%;
  margin:24px auto 0;
  color:#e6e6e9;
  text-decoration:none;
  font-size:.92rem;
  text-align:center;
  padding:8px 2px;
}
.error{
  margin:22px 0 0;
  border:1px solid rgba(143,23,50,.58);
  border-radius:13px;
  background:var(--danger-bg);
  color:#f1c5cf;
  padding:13px 14px;
  font-size:.9rem;
  line-height:1.4;
}
.menu-grid{display:grid;gap:14px;margin:30px 0 24px}
.menu-card{
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  border:1px solid var(--line);
  border-radius:19px;
  background:var(--panel-2);
  color:inherit;
  text-decoration:none;
  padding:24px 18px;
  text-align:center;
  cursor:pointer;
}
.menu-card:active{transform:scale(.992);border-color:var(--line-strong)}
.menu-card-title{font-size:1.75rem;font-weight:950;letter-spacing:.09em}
.menu-card-copy{color:var(--muted);font-size:.94rem;line-height:1.4}
.menu-card-needs-vote .menu-card-copy::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--crimson);margin-right:8px;vertical-align:1px}
@media (hover:hover){.menu-card:hover{border-color:var(--line-strong);background:#202025}}
.bottom-row{display:flex;justify-content:center;margin-top:8px}
.ghost{
  min-height:48px;
  min-width:120px;
  border:1px solid var(--line);
  border-radius:13px;
  background:transparent;
  color:var(--muted);
  padding:11px 18px;
  cursor:pointer;
}
.placeholder{padding:20px 0 4px;text-align:center}
.placeholder h2{margin:4px 0 10px;font-size:1.9rem;letter-spacing:.08em}
.placeholder p{margin:0;color:var(--muted);line-height:1.5}
.back-link{display:block;margin:28px auto 0;width:max-content;color:#fff;text-decoration:none;border:1px solid var(--line);border-radius:13px;padding:13px 18px;min-height:48px}

@media (min-width:700px){
  .shell{padding:42px 38px 30px}
  .menu-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:420px){
  .page{padding-left:12px;padding-right:12px}
  .shell{border-radius:20px;padding:26px 17px 21px}
  .brand{margin-bottom:22px}
  .mark{font-size:.67rem}
  .menu-card{min-height:138px}
}
/* =========================================================
   THE COUNCIL — DASHBOARD V4
   ========================================================= */

body.council-dashboard {
  position: relative;
  min-height: 100vh;
  overflow-x: hidden;
}

body.council-dashboard .wolf-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    url("/static/img/kult-wolf.png")
    center 68% / min(90vw, 620px)
    no-repeat;
  opacity: 0.08;
}

body.council-dashboard .page {
  position: relative;
  z-index: 1;
}

body.council-dashboard .shell {
  width: min(100% - 32px, 520px);
  min-height: 100vh;
  margin: 0 auto;
  padding: 34px 0 28px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

body.council-dashboard .brand {
  text-align: center;
}

body.council-dashboard .brand .mark {
  margin-bottom: 18px;
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.34em;
}

body.council-dashboard .brand h1 {
  margin: 0;
  font-size: clamp(2.4rem, 11vw, 4rem);
  line-height: 0.95;
  letter-spacing: 0.07em;
}

body.council-dashboard .welcome {
  margin: 22px 0 0;
  color: #d0d0d0;
}

body.council-dashboard .intro {
  margin: 8px auto 0;
  color: #8d8d92;
  font-size: 0.95rem;
}

body.council-dashboard .menu-grid {
  display: grid;
  gap: 18px;
  margin-top: 48px;
}

body.council-dashboard .menu-card {
  min-height: 150px;
  padding: 24px 22px;
  border: 1px solid #36363d;
  border-radius: 20px;
  background: rgba(18, 18, 20, 0.88);
  color: #f5f5f7;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition:
    transform 0.15s ease,
    border-color 0.15s ease,
    background 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

body.council-dashboard .menu-card:active {
  transform: scale(0.985);
  border-color: #a5173f;
  background: rgba(89, 13, 34, 0.93);
}

body.council-dashboard .menu-card-title {
  font-size: 1.65rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}

body.council-dashboard .menu-card-copy {
  margin-top: 12px;
  color: #a0a0a5;
  line-height: 1.45;
}

body.council-dashboard .menu-card:active .menu-card-copy {
  color: #ececef;
}

body.council-dashboard .bottom-row {
  margin-top: auto;
  padding-top: 40px;
  text-align: center;
}

body.council-dashboard .ghost {
  border: 0;
  background: transparent;
  color: #75757b;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  cursor: pointer;
}

body.council-dashboard .ghost:active {
  color: #b8b8bd;
}

@media (min-width: 700px) {
  body.council-dashboard .shell {
    padding-top: 48px;
  }

  body.council-dashboard .menu-card {
    min-height: 165px;
  }
}
