:root {
  --ink: #271406;
  --cream: #fff6df;
  --paper: #fffaf0;
  --green: #12814a;
  --green-dark: #075533;
  --yellow: #ffd33d;
  --red: #dc2f25;
  --orange: #f47b20;
  --blue: #1d86c9;
  --teal: #34b4b7;
  --wood: #7a3d1e;
  --admin-bg: #101418;
  --admin-panel: #171e24;
  --admin-line: #2b3742;
  --shadow: 0 28px 80px rgba(56, 24, 6, .28);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: #101418;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.festival {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  padding: 22px clamp(14px, 3vw, 34px) 28px;
  background:
    radial-gradient(circle at 50% 105%, #9a4f22 0 18%, transparent 34%),
    linear-gradient(180deg, #162347 0%, #253c6e 35%, #f5a84f 72%, #6a361e 100%);
}
.festival:before {
  content: "";
  position: absolute;
  inset: 56% -10% -18%;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255, 221, 126, .55), transparent 38%),
    linear-gradient(180deg, #2d8a4e 0%, #14653a 64%, #0e452a 100%);
  border-radius: 50% 50% 0 0;
}
.night-sky, .flag-line, .site-header, .screen, .regulation { position: relative; z-index: 2; }
.moon, .star, .lantern { position: absolute; display: block; }
.moon { right: 8%; top: 38px; width: 70px; height: 70px; border-radius: 50%; background: #ffe9a6; box-shadow: 0 0 42px rgba(255,233,166,.7); }
.star { width: 6px; height: 6px; border-radius: 50%; background: #fff7b0; box-shadow: 0 0 16px #fff7b0; animation: twinkle 1.8s infinite alternate; }
.s1 { left: 12%; top: 70px; } .s2 { left: 42%; top: 34px; animation-delay: .4s; } .s3 { right: 24%; top: 126px; animation-delay: .8s; }
.lantern { width: 34px; height: 48px; border-radius: 50% 50% 44% 44%; background: linear-gradient(90deg, #df2f25, #ffd33d, #df2f25); box-shadow: 0 0 24px rgba(255,211,61,.55); animation: swing 2.8s ease-in-out infinite; }
.l1 { left: 22%; top: 105px; } .l2 { left: 68%; top: 82px; animation-delay: .3s; } .l3 { left: 86%; top: 188px; animation-delay: .8s; }

.flag-line {
  position: absolute;
  left: -4vw;
  right: -4vw;
  height: 94px;
  pointer-events: none;
  opacity: .95;
}
.flag-line-one {
  top: 95px;
  transform: rotate(-2deg);
  background: repeating-linear-gradient(90deg, transparent 0 24px, var(--red) 24px 58px, transparent 58px 82px, var(--yellow) 82px 116px, transparent 116px 140px, var(--green) 140px 174px, transparent 174px 198px, var(--blue) 198px 232px);
  clip-path: polygon(0 0, 100% 16%, 100% 58%, 0 100%);
}
.flag-line-two {
  top: 185px;
  transform: rotate(2deg);
  opacity: .72;
  background: repeating-linear-gradient(90deg, transparent 0 28px, #ff8c23 28px 62px, transparent 62px 86px, #32b15d 86px 120px, transparent 120px 144px, #e53f37 144px 178px);
  clip-path: polygon(0 40%, 100% 0, 100% 100%, 0 76%);
}

.site-header {
  width: min(1220px, 100%);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.brand-logo { width: min(210px, 44vw); filter: drop-shadow(0 14px 18px rgba(0,0,0,.28)); }
.screen { display: none; width: min(1220px, 100%); margin: 0 auto; }
.screen.active { display: block; animation: rise .45s ease both; }
.welcome-screen.active {
  display: grid;
  grid-template-columns: minmax(330px, .86fr) minmax(460px, 1.14fr);
  gap: clamp(18px, 3vw, 38px);
  align-items: center;
  min-height: calc(100vh - 150px);
  padding-top: 28px;
}
.welcome-panel, .notice-card, .result-card {
  background: linear-gradient(180deg, rgba(255,250,240,.97), rgba(255,242,205,.95));
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 18px;
  box-shadow: var(--shadow);
}
.welcome-panel { padding: clamp(24px, 4vw, 44px); }
.welcome-panel h1 { font-size: clamp(1.95rem, 3.15vw, 3.05rem); }
.campaign-pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--green), #18a85b);
  color: white;
  font-size: .84rem;
  font-weight: 950;
  letter-spacing: .2px;
  text-transform: uppercase;
}
h1, h2 { margin: 14px 0 12px; font-family: Georgia, "Times New Roman", serif; line-height: 1.02; letter-spacing: 0; }
h1 { font-size: clamp(2rem, 3.8vw, 3.75rem); }
h2 { font-size: clamp(2rem, 4vw, 4.2rem); }
p { font-size: 1.05rem; line-height: 1.56; }
.lead-form { display: grid; gap: 14px; margin-top: 24px; }
label { display: grid; gap: 7px; font-weight: 850; }
input, select, textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(39,20,6,.16);
  border-radius: 8px;
  padding: 12px 14px;
  background: #fffdf6;
  color: var(--ink);
  outline-color: var(--orange);
}
textarea { min-height: 92px; resize: vertical; }
.check { grid-template-columns: 22px 1fr; align-items: start; font-size: .94rem; }
.check input, .inline-check input { min-height: auto; width: 18px; margin-top: 3px; }
.primary, .ghost, .danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  border-radius: 8px;
  padding: 12px 18px;
  font-weight: 950;
  border: 0;
}
.primary {
  background: linear-gradient(135deg, #df2f25, #ff8c23);
  color: white;
  box-shadow: 0 14px 26px rgba(223, 47, 37, .28);
}
.primary.small, .ghost.small { min-height: 42px; padding: 9px 14px; }
.ghost { background: rgba(255,255,255,.78); border: 1px solid rgba(39,20,6,.12); color: var(--ink); }
.danger { background: #ffe7e2; border: 1px solid #ffb6aa; color: #b3261e; }
.form-message { min-height: 22px; margin: 0; color: var(--green); font-weight: 850; }
.form-message.error, .mini-game.error { color: #b3261e; }

.welcome-stage {
  min-height: 620px;
  position: relative;
  perspective: 1200px;
}
.mascot-hero {
  position: absolute;
  left: 50%;
  bottom: 44px;
  width: min(390px, 52%);
  transform: translateX(-50%);
  filter: drop-shadow(0 26px 28px rgba(36, 14, 3, .34));
  animation: float 3.4s ease-in-out infinite;
  z-index: 4;
}
.stone-path, .game-path {
  position: absolute;
  left: 50%;
  bottom: -36px;
  width: min(360px, 48vw);
  height: 520px;
  transform: translateX(-50%) rotateX(58deg);
  transform-origin: bottom;
  background:
    radial-gradient(circle at 22% 16%, #e9c58c 0 12px, transparent 13px),
    radial-gradient(circle at 70% 20%, #d9aa68 0 14px, transparent 15px),
    radial-gradient(circle at 42% 42%, #f1d09a 0 13px, transparent 14px),
    radial-gradient(circle at 75% 58%, #c98d50 0 16px, transparent 17px),
    linear-gradient(180deg, #f3d39a, #a96537);
  background-size: 94px 94px, 104px 104px, 112px 112px, 98px 98px, auto;
  clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%);
  opacity: .95;
  z-index: 1;
}
.decor-booth, .side-stall {
  position: absolute;
  bottom: 142px;
  width: min(245px, 32%);
  height: 230px;
  background: linear-gradient(180deg, #fff2c7 0 38%, #a85024 38% 100%);
  border: 7px solid #713a20;
  border-radius: 10px;
  box-shadow: 0 28px 50px rgba(24, 10, 2, .28);
  z-index: 2;
}
.decor-booth:before, .side-stall .stall-roof {
  content: "";
  position: absolute;
  left: -20px;
  right: -20px;
  top: -64px;
  height: 82px;
  background: repeating-linear-gradient(90deg, var(--red) 0 38px, var(--yellow) 38px 76px, var(--green) 76px 114px);
  clip-path: polygon(0 0, 100% 0, 91% 100%, 9% 100%);
  border-radius: 10px 10px 4px 4px;
}
.decor-booth span, .side-stall strong {
  position: absolute;
  left: 18px;
  right: 18px;
  top: 35px;
  text-align: center;
  color: #fff5c8;
  font-family: Georgia, serif;
  font-size: 1.55rem;
  text-shadow: 0 3px 0 rgba(0,0,0,.2);
}
.left-booth { left: 0; transform: rotateY(14deg) rotateZ(-2deg); }
.right-booth { right: 0; transform: rotateY(-14deg) rotateZ(2deg); }

.notice-card, .result-card {
  width: min(780px, 100%);
  margin: 68px auto;
  padding: clamp(28px, 5vw, 54px);
  text-align: center;
}
.game-screen { padding: 22px 0 38px; }
.game-hud {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  color: white;
  margin: 12px 0 18px;
}
.game-hud h2 {
  max-width: 820px;
  margin-bottom: 0;
  font-size: clamp(1.9rem, 3.2vw, 3.2rem);
  text-shadow: 0 4px 18px rgba(0,0,0,.25);
}
.hud-tip {
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 8px;
  padding: 12px 14px;
  font-weight: 900;
  backdrop-filter: blur(10px);
}
.game-world {
  min-height: 690px;
  position: relative;
  border-radius: 26px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(17, 44, 81, .12), rgba(0,0,0,0) 38%),
    radial-gradient(ellipse at 50% 96%, rgba(255, 220, 118, .45), transparent 44%);
}
.side-stall {
  bottom: 232px;
  width: 210px;
  height: 210px;
  opacity: .92;
}
.stall-candy { left: 18px; transform: rotate(-3deg) scale(.92); }
.stall-corn { right: 18px; transform: rotate(3deg) scale(.92); }
.side-stall i {
  position: absolute;
  left: 50%;
  bottom: 26px;
  width: 82px;
  height: 42px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd33d 0 10px, transparent 11px), radial-gradient(circle at 70% 45%, #fff 0 8px, transparent 9px);
}

.fishing-stall {
  position: absolute;
  left: 50%;
  bottom: 62px;
  width: min(760px, calc(100% - 70px));
  min-height: 560px;
  transform: translateX(-50%);
  border-radius: 18px;
  background:
    linear-gradient(90deg, transparent 0 7%, rgba(92, 45, 18, .95) 7% 10%, transparent 10% 90%, rgba(92,45,18,.95) 90% 93%, transparent 93%),
    linear-gradient(180deg, transparent 0 26%, #8b4520 26% 54%, #5f2f18 54% 100%);
  box-shadow: 0 32px 70px rgba(18, 8, 2, .36);
  z-index: 4;
}
.fishing-stall:before {
  content: "";
  position: absolute;
  left: -34px;
  right: -34px;
  top: -86px;
  height: 130px;
  border-radius: 16px 16px 8px 8px;
  background: repeating-linear-gradient(90deg, #d92d24 0 52px, #ffd33d 52px 104px, #12814a 104px 156px, #1d86c9 156px 208px);
  clip-path: polygon(4% 0, 96% 0, 100% 100%, 0 100%);
  box-shadow: 0 18px 26px rgba(36, 14, 3, .25);
}
.stall-sign {
  position: absolute;
  left: 50%;
  top: -38px;
  transform: translateX(-50%);
  z-index: 3;
  min-width: min(460px, 76%);
  padding: 14px 20px;
  border-radius: 10px;
  background: linear-gradient(180deg, #8a4c22, #552813);
  border: 4px solid #f5b041;
  color: #fff2bc;
  text-align: center;
  font-family: Georgia, serif;
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 900;
  text-shadow: 0 3px 0 rgba(0,0,0,.25);
}
.fishing-attendant {
  position: absolute;
  left: 26px;
  bottom: 196px;
  width: 190px;
  height: 250px;
  overflow: hidden;
  z-index: 5;
}
.fishing-attendant img {
  width: 260px;
  max-width: none;
  transform: translateX(-44px);
  filter: drop-shadow(0 18px 16px rgba(0,0,0,.28));
}
.fishing-rod {
  position: absolute;
  right: 6%;
  top: 74px;
  width: min(390px, 45vw);
  height: 340px;
  z-index: 8;
  pointer-events: none;
  background: url("../img/vara-realista.png?v=20260520-real4") top right / contain no-repeat;
  transform-origin: 88% 8%;
}
.rod-stick {
  display: none;
}
.rod-line {
  position: absolute;
  left: var(--hook-left);
  top: 150px;
  width: 2px;
  height: var(--line-height);
  background: rgba(245,250,255,.9);
  transform-origin: top center;
  box-shadow: 0 0 4px rgba(0,0,0,.28);
}
.hook {
  position: absolute;
  left: calc(var(--hook-left) - 7px);
  top: calc(150px + var(--line-height));
  width: 16px;
  height: 18px;
  border-right: 3px solid #1e2933;
  border-bottom: 3px solid #1e2933;
  border-radius: 0 0 12px 0;
}
.fishing-rod.reeling { animation: rodCast 1.2s ease forwards; }

.pond {
  position: absolute;
  left: 50%;
  bottom: 42px;
  width: min(590px, calc(100% - 68px));
  height: 255px;
  transform: translateX(-50%);
  border-radius: 48% 52% 44% 46%;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(255,255,255,.55), transparent 22%),
    radial-gradient(ellipse at 70% 70%, rgba(13, 104, 143, .55), transparent 34%),
    linear-gradient(180deg, #68d3df, #1f8ab5 66%, #136587);
  border: 9px solid #e6bf72;
  box-shadow: inset 0 -22px 35px rgba(0,54,83,.35), 0 24px 36px rgba(0,0,0,.24);
  overflow: hidden;
  z-index: 6;
}
.hook-target {
  position: absolute;
  left: var(--hook-left);
  top: var(--hook-top);
  width: 34px;
  height: 34px;
  border: 2px solid rgba(255,255,255,.95);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 7px rgba(255, 211, 61, .18), 0 0 18px rgba(255,255,255,.7);
  z-index: 8;
  pointer-events: none;
}
.water-shine {
  position: absolute;
  inset: 14px 20px;
  border-radius: 50%;
  background: repeating-linear-gradient(0deg, transparent 0 24px, rgba(255,255,255,.18) 25px 28px);
  animation: waterMove 2.8s linear infinite;
}
.fish {
  position: absolute;
  width: 122px;
  height: 88px;
  border: 0;
  background: url("../img/peixe-realista.png?v=20260520-real4") center / contain no-repeat;
  z-index: 2;
  animation: swim 3.6s ease-in-out infinite;
  filter: drop-shadow(0 8px 8px rgba(0, 25, 40, .25));
}
.fish-one { left: 9%; top: 42%; }
.fish-two { left: 35%; top: 22%; animation-delay: .5s; filter: hue-rotate(135deg) saturate(1.15) drop-shadow(0 8px 8px rgba(0, 25, 40, .25)); }
.fish-three { left: 58%; top: 53%; animation-delay: 1s; filter: hue-rotate(80deg) saturate(1.2) drop-shadow(0 8px 8px rgba(0, 25, 40, .25)); }
.fish-four { left: 73%; top: 23%; animation-delay: .2s; filter: hue-rotate(205deg) saturate(1.1) drop-shadow(0 8px 8px rgba(0, 25, 40, .25)); }
.fish.caught {
  animation: caughtFish 1.2s ease forwards;
  z-index: 20;
}
.mini-game {
  position: absolute;
  left: 50%;
  bottom: 10px;
  width: min(520px, calc(100% - 44px));
  transform: translateX(-50%);
  margin: 0;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,250,230,.92);
  font-weight: 900;
  text-align: center;
  z-index: 9;
}
.prize {
  display: block;
  margin: 18px 0;
  padding: 18px;
  border-radius: 12px;
  background: linear-gradient(135deg, #fff0a8, #ffd33d);
  color: #8b2516;
  font-size: clamp(1.5rem, 4vw, 2.45rem);
}
.win-message { font-weight: 900; color: var(--green); }
.rule { font-size: 1rem; }
.confetti { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 20; }
.confetti i { position: absolute; top: -18px; width: 10px; height: 18px; animation: confetti 2.8s linear forwards; }
.regulation {
  width: min(1220px, 100%);
  margin: 16px auto 0;
  color: #fff6dd;
  background: rgba(18, 22, 28, .42);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 8px;
  padding: 14px 16px;
  font-size: .9rem;
  line-height: 1.45;
  backdrop-filter: blur(10px);
}

.game-controls {
  width: min(760px, calc(100% - 20px));
  margin: -86px auto 24px;
  position: relative;
  z-index: 12;
  display: flex;
  justify-content: space-between;
  align-items: center;
  pointer-events: none;
}
.dpad {
  width: 142px;
  height: 142px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 6px;
  padding: 8px;
  border-radius: 50%;
  background: rgba(14, 22, 30, .78);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 16px 32px rgba(0,0,0,.32);
  pointer-events: auto;
}
.dpad button, .fish-action {
  border: 0;
  color: white;
  font-weight: 950;
  box-shadow: inset 0 -5px 0 rgba(0,0,0,.24), 0 8px 14px rgba(0,0,0,.2);
}
.dpad button {
  border-radius: 12px;
  background: linear-gradient(180deg, #344453, #171f28);
}
.dpad button[data-move="up"] { grid-column: 2; grid-row: 1; }
.dpad button[data-move="left"] { grid-column: 1; grid-row: 2; }
.dpad button[data-move="right"] { grid-column: 3; grid-row: 2; }
.dpad button[data-move="down"] { grid-column: 2; grid-row: 3; }
.fish-action {
  pointer-events: auto;
  width: 132px;
  height: 132px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 28%, #ffdf76, #e3352a 62%, #9c1e17 100%);
  border: 5px solid rgba(255,255,255,.32);
  letter-spacing: .5px;
}

.admin-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 8%, rgba(255, 211, 61, .12), transparent 24rem),
    radial-gradient(circle at 92% 12%, rgba(52, 180, 183, .13), transparent 25rem),
    var(--admin-bg);
  color: #edf4f8;
}
.admin-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 250px 1fr;
}
.admin-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 24px 18px;
  background: rgba(8, 12, 16, .86);
  border-right: 1px solid var(--admin-line);
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.admin-sidebar img { width: 154px; filter: drop-shadow(0 8px 14px rgba(0,0,0,.32)); }
.admin-sidebar strong { font-family: Georgia, serif; font-size: 1.45rem; color: #ffe59a; }
.admin-sidebar nav { display: grid; gap: 8px; }
.admin-sidebar nav a, .sidebar-logout {
  padding: 12px 13px;
  border-radius: 8px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  font-weight: 850;
}
.sidebar-logout { margin-top: auto; color: #ffb5aa; }
.admin-main { padding: 28px; min-width: 0; }
.admin-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 24px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(23,30,36,.96), rgba(34,46,55,.96));
  border: 1px solid var(--admin-line);
  box-shadow: 0 24px 60px rgba(0,0,0,.22);
}
.admin-hero h1 { margin: 12px 0 6px; font-size: clamp(2rem, 4vw, 3.5rem); }
.admin-hero p, .dashboard-panel p { color: #aebdc8; margin: 0; }
.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin: 16px 0;
}
.metric-grid article, .dashboard-panel {
  background: rgba(23,30,36,.96);
  border: 1px solid var(--admin-line);
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(0,0,0,.18);
}
.metric-grid article { padding: 18px; }
.metric-grid span { display: block; font-size: 2.2rem; font-weight: 950; color: #ffd33d; }
.metric-grid strong { color: #b8c6cf; }
.dashboard-panel { padding: 20px; margin-top: 16px; }
.dashboard-panel h2 { font-size: 2rem; margin: 0 0 4px; color: #fff7dc; }
.section-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.admin-help {
  margin: -4px 0 14px;
  color: #aebdc8;
  font-size: .92rem;
}
.filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(150px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.admin-body input, .admin-body select, .admin-body textarea {
  background: #111820;
  color: #eef5f8;
  border-color: #334250;
}
.lead-board {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.lead-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border-radius: 12px;
  background: #111820;
  border: 1px solid #293642;
}
.lead-top { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.lead-top strong { display: block; font-size: 1.1rem; color: white; }
.lead-top span { color: #aebdc8; }
.status-chip {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,211,61,.12);
  color: #ffe59a !important;
  font-size: .82rem;
  font-weight: 900;
}
dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 0;
}
dt { color: #7f94a3; font-size: .78rem; font-weight: 850; text-transform: uppercase; }
dd { margin: 3px 0 0; color: #eef5f8; font-weight: 750; }
.lead-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.whatsapp-action { color: #053c25; background: #51e093; }
.prize-editor {
  overflow: hidden;
  border: 1px solid #293642;
  border-radius: 12px;
}
.prize-editor-head {
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) 120px 92px 120px 170px;
  gap: 10px;
  padding: 11px 14px;
  background: #0d1319;
  color: #8fa2af;
  font-size: .78rem;
  font-weight: 950;
  text-transform: uppercase;
}
.prize-list { display: grid; gap: 0; }
.prize-card {
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) 120px 92px 120px 170px;
  gap: 10px;
  align-items: center;
  padding: 14px;
  background: #111820;
  border-top: 1px solid #293642;
}
.inline-check { display: flex; align-items: center; gap: 8px; min-height: 48px; }
.usage { display: grid; color: #ffd33d; font-weight: 950; }
.usage small { color: #8da0ad; font-weight: 750; }
.prize-actions { display: flex; gap: 8px; }
.empty-state { padding: 22px; border: 1px dashed #435364; border-radius: 12px; color: #aebdc8; }
.login-box {
  width: min(440px, calc(100% - 28px));
  margin: 9vh auto;
  padding: 30px;
  display: grid;
  gap: 14px;
  border-radius: 16px;
  background: var(--admin-panel);
  border: 1px solid var(--admin-line);
  box-shadow: 0 24px 60px rgba(0,0,0,.28);
}
.login-logo { width: 170px; }
.login-box h1 { margin: 0; color: #fff7dc; font-size: 2.2rem; }

@keyframes rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes twinkle { to { opacity: .35; transform: scale(.72); } }
@keyframes swing { 50% { transform: translateY(5px) rotate(4deg); } }
@keyframes float { 50% { transform: translateX(-50%) translateY(-12px) rotate(1deg); } }
@keyframes swim { 50% { transform: translateX(16px) translateY(-8px); } }
@keyframes waterMove { to { transform: translateY(28px); } }
@keyframes rodCast { 45% { transform: rotate(-12deg); } 100% { transform: rotate(-5deg); } }
@keyframes caughtFish {
  45% { transform: translateY(-36px) scale(1.08); }
  100% { transform: translateY(-205px) rotate(-12deg) scale(.86); opacity: .88; }
}
@keyframes confetti { to { transform: translateY(105vh) rotate(720deg); opacity: .2; } }

@media (max-width: 980px) {
  .welcome-screen.active { grid-template-columns: 1fr; min-height: auto; padding-top: 34px; }
  .welcome-stage { min-height: 520px; }
  .decor-booth { width: 210px; opacity: .78; }
  .game-hud { align-items: stretch; flex-direction: column; }
  .side-stall { display: none; }
  .fishing-stall { width: calc(100% - 24px); }
  .fishing-attendant { width: 138px; left: 4px; bottom: 204px; }
  .fishing-attendant img { width: 214px; }
  .fishing-rod { right: 38px; top: 126px; transform: scale(.86); transform-origin: top right; }
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar { position: relative; height: auto; flex-direction: row; align-items: center; flex-wrap: wrap; }
  .admin-sidebar nav { display: flex; flex-wrap: wrap; }
  .sidebar-logout { margin-top: 0; margin-left: auto; }
  .admin-main { padding: 18px; }
  .metric-grid, .lead-board { grid-template-columns: 1fr 1fr; }
  .filters, .prize-card, .prize-editor-head { grid-template-columns: 1fr; }
  .prize-editor-head { display: none; }
}

@media (max-width: 640px) {
  .festival { padding-inline: 10px; }
  .flag-line-one { top: 105px; }
  .flag-line-two { top: 162px; }
  .brand-logo { width: 160px; }
  h1 { font-size: 2.28rem; }
  .welcome-panel { padding: 20px; }
  .welcome-stage { min-height: 430px; }
  .mascot-hero { width: 250px; bottom: 32px; }
  .decor-booth { width: 158px; height: 172px; bottom: 118px; }
  .decor-booth span { font-size: 1.1rem; }
  .stone-path { height: 360px; width: 230px; }
  .game-world { min-height: 610px; }
  .fishing-stall { min-height: 505px; bottom: 40px; }
  .stall-sign { font-size: 1.55rem; min-width: 84%; }
  .pond { height: 225px; width: calc(100% - 28px); }
  .fish { width: 76px; height: 42px; }
  .fish-one { left: 4%; } .fish-two { left: 31%; } .fish-three { left: 51%; } .fish-four { left: 66%; }
  .metric-grid, .lead-board, dl { grid-template-columns: 1fr; }
  .admin-hero, .section-row { align-items: stretch; flex-direction: column; }
}

/* Bitmap game scene: keeps the interactive layer, but replaces the drawn booth with a richer rendered background. */
.game-world {
  min-height: 680px;
  background:
    linear-gradient(180deg, rgba(6, 15, 35, .1), rgba(6, 15, 35, .18)),
    url("../img/cenario-pescaria-realista.png?v=20260520-real3") center / cover no-repeat;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 30px 80px rgba(0,0,0,.34);
}
.side-stall { display: none; }
.fishing-stall {
  inset: 0;
  width: 100%;
  min-height: 100%;
  transform: none;
  left: 0;
  bottom: auto;
  background: transparent;
  box-shadow: none;
}
.fishing-stall:before { display: none; }
.stall-sign {
  top: 22px;
  min-width: min(360px, 76%);
  padding: 10px 16px;
  font-size: clamp(1.35rem, 3vw, 2.2rem);
  background: rgba(80, 38, 18, .86);
  backdrop-filter: blur(6px);
}
.fishing-attendant {
  left: 5%;
  bottom: 110px;
  width: 170px;
  height: 224px;
}
.fishing-attendant img { width: 238px; }
.pond {
  bottom: 54px;
  width: min(600px, calc(100% - 90px));
  height: 245px;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(255,255,255,.32), transparent 22%),
    linear-gradient(180deg, rgba(91,211,226,.62), rgba(14,112,153,.68));
  border: 4px solid rgba(255, 224, 150, .72);
  backdrop-filter: blur(1px);
}
.mini-game {
  bottom: 18px;
  background: rgba(15, 22, 28, .72);
  color: #fff8dd;
  border: 1px solid rgba(255,255,255,.2);
}
@media (max-width: 640px) {
  .game-world { min-height: 610px; background-position: center top; }
  .pond { width: calc(100% - 28px); height: 218px; bottom: 46px; }
  .fishing-attendant { width: 128px; left: 1%; bottom: 120px; }
  .fishing-attendant img { width: 198px; }
  .game-controls { margin-top: -74px; }
  .dpad { width: 118px; height: 118px; }
  .fish-action { width: 112px; height: 112px; }
}
