:root{
  --bg:#072b45;
  --surface:#ffffff;
  --ink:#123251;
  --muted:#5f7891;
  --line:#d7e3ef;
  --gold:#f0d47a;
  --cyan:#93def3;
  --violet:#7c4dff;
  --green:#11b981;
  --danger:#dc4d62;
}
*{box-sizing:border-box} html,body{margin:0;padding:0;font-family:Inter,system-ui,Arial,sans-serif;background:#0d3150;color:var(--ink)} body{min-height:100vh}
button,input,select{font:inherit} button{cursor:pointer;border:0} img{max-width:100%;display:block}
.app-shell{min-height:100vh;background:linear-gradient(180deg,#0c3b5b,#08243d);position:relative;overflow:hidden}
.loading,.empty-state{display:grid;place-items:center;color:#fff}
.login-shell{display:grid;place-items:center;padding:24px}
.login-screen{width:min(100%,460px)}
.login-card{background:rgba(255,255,255,.96);border-radius:28px;padding:24px 22px;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.login-logo{width:min(100%,340px);margin:0 auto 12px}
.login-card h1{font-size:26px;line-height:1.12;margin:0 0 8px;text-align:center}
.login-card p{margin:0 0 14px;color:var(--muted);text-align:center}
.tabs-login{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 14px}
.tabs-login button{padding:12px 8px;border-radius:14px;background:#edf4fb;color:#48627a;font-weight:700}
.tabs-login button.active{background:linear-gradient(180deg,#1f4464,#0a2c49);color:#fff}
.tabs-login button:disabled{opacity:.45;cursor:not-allowed}
.field{display:grid;gap:6px;margin-bottom:12px}
.field label{font-size:13px;font-weight:700;color:#47657f}.field input,.field select{width:100%;padding:15px 16px;border-radius:16px;border:1px solid #c8dae8;background:#f9fbfd;color:#183654}.field input:focus,.field select:focus{outline:2px solid #8fdaf2;border-color:#8fdaf2}
.primary-btn,.secondary-btn{width:100%;padding:15px 18px;border-radius:18px;font-weight:800;margin-top:8px}.primary-btn{background:linear-gradient(180deg,#2c5782,#123a5f);color:#fff;box-shadow:0 10px 20px rgba(9,40,69,.2)}.secondary-btn{background:#edf3f8;color:#214260;border:1px solid #cfdeea}
.login-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;color:#5d7890;font-size:12px;flex-wrap:wrap}

.screen{padding:18px 18px 100px;min-height:100vh;position:relative}
.hero-map{background-size:cover;background-position:center center;background-repeat:no-repeat}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,20,36,.10),rgba(0,16,28,.16) 40%,rgba(4,20,38,.36) 100%);pointer-events:none}
.top-logo-wrap{position:relative;z-index:2;display:flex;justify-content:center;margin-top:8px}.top-logo{width:min(100%,380px);filter:drop-shadow(0 10px 24px rgba(0,0,0,.24))}
.hero-cards{position:relative;z-index:2;display:grid;gap:10px;grid-template-columns:1.2fr .8fr;margin-top:18px}
.glass-card{background:rgba(255,255,255,.18);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);border-radius:22px;padding:14px 16px;color:#fff;box-shadow:0 12px 24px rgba(0,0,0,.18)}.glass-card.small{display:flex;flex-direction:column;justify-content:center}
.energy-row,.xp-meta{display:flex;justify-content:space-between;gap:8px;font-size:13px}.energy-row{font-weight:700}.xp-track,.mini-track{width:100%;height:12px;background:rgba(255,255,255,.22);border-radius:999px;overflow:hidden;margin:10px 0}.xp-fill,.mini-fill{height:100%;background:linear-gradient(90deg,#ffe188,#7ef3d0)}.boss-small{font-weight:800;font-size:24px;margin-top:8px}

.map-regions{position:relative;z-index:2;min-height:600px;margin-top:6px}
.region-node{position:absolute;display:grid;justify-items:center;gap:6px;text-align:center;color:#fff;filter:drop-shadow(0 10px 18px rgba(0,0,0,.28))}
.region-node img{width:150px;height:150px;object-fit:contain}.region-node span{font-size:14px;font-weight:800;text-shadow:0 2px 8px rgba(0,0,0,.45)}.region-node.locked{opacity:.42;filter:grayscale(1) drop-shadow(0 10px 18px rgba(0,0,0,.18))}.region-node.current img{transform:scale(1.04)}
.region-node.base{left:4%;top:14%}.region-node.floresta{right:4%;top:16%}.region-node.cidade{left:6%;top:46%}.region-node.montanha{right:4%;top:48%}.region-node.boss{left:50%;transform:translateX(-50%);top:72%}

.map-avatars{position:absolute;inset:0;z-index:3;pointer-events:none}.avatar-pin{position:absolute;transform:translate(-50%,-50%)}
.avatar-pin.p1{left:23%;top:35%}.avatar-pin.p2{left:36%;top:28%}.avatar-pin.p3{left:70%;top:34%}.avatar-pin.p4{left:83%;top:29%}.avatar-pin.p5{left:21%;top:58%}.avatar-pin.p6{left:35%;top:61%}.avatar-pin.p7{left:66%;top:57%}.avatar-pin.p8{left:82%;top:61%}.avatar-pin.p9{left:32%;top:81%}.avatar-pin.p10{left:46%;top:86%}.avatar-pin.p11{left:58%;top:80%}.avatar-pin.p12{left:72%;top:86%}
.avatar-frame-wrap{position:relative;display:grid;place-items:center;width:56px;height:56px}.avatar-frame-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.avatar-plain{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;font-size:14px;box-shadow:0 5px 14px rgba(0,0,0,.25)}

.leader-strip{position:relative;z-index:3;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-radius:26px;padding:14px;margin-top:6px;box-shadow:0 14px 30px rgba(5,29,48,.18)}.leader-strip h3{margin:0 0 10px;font-size:18px}.leader-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.leader-card{background:#f7fbff;border:1px solid #dbe8f2;border-radius:18px;padding:10px;display:grid;justify-items:center;gap:6px;text-align:center}.leader-card .rank{font-size:12px;font-weight:900;color:#617f98}.leader-card strong{font-size:12px}.leader-card small{color:#67819a;font-weight:700}
.floating-register{position:fixed;right:16px;bottom:90px;background:none;padding:0;z-index:20}.floating-register img{width:210px;filter:drop-shadow(0 12px 24px rgba(0,0,0,.3))}

.page-screen{background:linear-gradient(180deg,#f3f8fc,#ebf3f8)}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.page-head.compact{justify-content:flex-start}.mini-logo{width:122px;flex:0 0 auto}.page-head h2{margin:0 0 4px;font-size:26px}.page-head p{margin:0;color:var(--muted)}
.metric-list,.ranking-list{display:grid;gap:12px}.metric-card,.team-card,.rules-card,.activity-panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px;box-shadow:0 10px 24px rgba(12,46,70,.08)}.metric-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.metric-card h3{margin:0;font-size:18px}.metric-card p{margin:2px 0 0;color:var(--muted);font-size:12px}.metric-percent{font-weight:900;color:#13415f}.metric-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.tiny-btn{padding:10px 14px;border-radius:14px;background:linear-gradient(180deg,#214d74,#123958);color:#fff;font-weight:800}.tiny-btn.secondary{background:#eff4f9;color:#214260;border:1px solid #d8e4ef}
.metric-icon.art{width:42px;height:42px;border-radius:12px;background:#f2f8fc;display:grid;place-items:center;border:1px solid #d7e6f0}.metric-icon.art img{width:28px;height:28px;object-fit:contain}

.team-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.member-main{display:grid;gap:4px}.member-main strong{font-size:16px}.member-main span{color:var(--muted);font-size:13px}.member-actions{display:flex;gap:6px}.icon-mini{width:36px;height:36px;border-radius:12px;background:#eef4f8;color:#24405d;font-weight:900}.icon-mini.danger{background:#fff1f4;color:#b33950}.admin-bar{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}.activity-panel{margin-top:14px}.activity-panel h3{margin:0 0 12px}.activity-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:8px 0;border-top:1px solid #ecf2f7}.activity-row:first-of-type{border-top:0}.activity-row span,.activity-row em{color:var(--muted);font-style:normal}.logout-wrap{margin-top:16px}
.rules-card{margin-bottom:12px}.rules-card h3{margin:0 0 8px}.rules-card p{margin:0;color:var(--muted);line-height:1.5}.empty-copy{color:var(--muted);text-align:center}

.bottom-nav{position:fixed;left:12px;right:12px;bottom:10px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:rgba(8,36,57,.94);backdrop-filter:blur(14px);padding:10px;border-radius:24px;border:1px solid rgba(255,255,255,.12);z-index:30;box-shadow:0 16px 28px rgba(0,0,0,.28)}.nav-btn{background:transparent;color:#d8e8f6;border-radius:18px;padding:10px 6px;display:grid;gap:4px;justify-items:center;font-size:11px;font-weight:800}.nav-btn span{font-size:18px}.nav-btn.active{background:rgba(255,255,255,.12);color:#fff}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;background:#112f49;color:#fff;padding:12px 16px;border-radius:14px;z-index:50;box-shadow:0 12px 24px rgba(0,0,0,.3)}

.modal-backdrop{position:fixed;inset:0;background:rgba(5,20,34,.56);display:grid;place-items:center;padding:18px;z-index:60}.modal{width:min(100%,760px);max-height:92vh;overflow:auto;background:#fff;border-radius:26px;padding:20px;position:relative;box-shadow:0 20px 50px rgba(0,0,0,.34)}.modal.wide{width:min(100%,860px)}.modal h2{margin:0 0 8px;font-size:30px}.modal p{margin:0 0 14px;color:var(--muted)}.modal-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:14px;background:#edf3f8;color:#173654;font-size:20px;font-weight:900}.helper-line{font-size:13px;color:var(--muted);margin-bottom:8px}.metrics-form{display:grid;gap:12px}.admin-metric-row{display:grid;grid-template-columns:auto 1.2fr repeat(3,1fr);gap:10px;align-items:center;background:#f8fbfd;border:1px solid #e2edf4;border-radius:18px;padding:12px}.admin-metric-copy{display:grid;gap:4px}.admin-metric-copy small{color:var(--muted)}

@media (max-width:720px){
  .hero-cards{grid-template-columns:1fr}.map-regions{min-height:560px}.region-node img{width:132px;height:132px}.leader-cards{grid-template-columns:1fr 1fr 1fr}.admin-metric-row{grid-template-columns:1fr;justify-items:start}.metric-bottom{flex-wrap:wrap}.page-head h2{font-size:22px}
}
@media (max-width:480px){
  .screen{padding:14px 14px 100px}.region-node img{width:118px;height:118px}.region-node span{font-size:13px}.top-logo{width:100%}.leader-cards{grid-template-columns:1fr}.floating-register img{width:190px}.login-card h1{font-size:22px}
}

.master-goal-banner{display:grid;gap:4px;background:linear-gradient(135deg,#6b21a8,#8b2bd6);color:#fff;padding:14px 16px;border-radius:18px;margin:0 0 14px;box-shadow:0 10px 22px rgba(80,25,130,.18)}
.master-goal-banner strong{font-size:14px;letter-spacing:.04em}.master-goal-banner span{font-size:12px;opacity:.9}
.admin-goal-edit{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end;margin-top:12px}.admin-goal-edit>div,.admin-goal-edit label{display:grid;gap:5px}.admin-goal-edit span{font-size:11px;font-weight:800;color:#647d92;text-transform:uppercase;letter-spacing:.03em}.admin-goal-edit strong{font-size:18px;color:#173957}.admin-goal-edit input{width:100%;border:1px solid #b8d0e3;background:#f8fbfd;border-radius:13px;padding:11px 12px;font-weight:800;color:#173957}.admin-goal-edit input:focus{outline:2px solid #8fdaf2;border-color:#8fdaf2}.sticky-save-goals{position:sticky;bottom:86px;z-index:12;box-shadow:0 14px 28px rgba(10,45,75,.28)}


/* Story, profile photo and dynamic avatar movement */
.avatar-user-photo{width:36px;height:36px;border-radius:50%;object-fit:cover;box-shadow:0 5px 14px rgba(0,0,0,.25)}
.avatar-frame-wrap.avatar-large{width:84px;height:84px}
.avatar-frame-wrap.avatar-large .avatar-plain,.avatar-frame-wrap.avatar-large .avatar-user-photo{width:54px;height:54px;font-size:19px}
.profile-photo-card{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:linear-gradient(135deg,#ffffff,#eef7ff);border:1px solid #cfe0ed;border-radius:24px;padding:18px;margin-bottom:14px;box-shadow:0 12px 26px rgba(12,46,70,.08)}
.profile-photo-card h3{margin:0 0 6px;font-size:19px}.profile-photo-card p{margin:0 0 12px;color:var(--muted);line-height:1.45}.profile-photo-preview{display:grid;place-items:center}.photo-upload-btn{display:inline-flex;align-items:center;width:auto}
.team-card .avatar-frame-wrap.avatar-large{width:84px;height:84px}.team-card{grid-template-columns:92px 1fr auto;min-height:104px}.member-main strong{font-size:17px}
.story-card{background:linear-gradient(160deg,#153c60,#0c2c48 65%,#163e59);color:#fff;border-radius:28px;padding:24px;margin-bottom:14px;box-shadow:0 16px 32px rgba(7,32,52,.18);position:relative;overflow:hidden}.story-card:after{content:"✦";position:absolute;right:18px;top:10px;font-size:86px;color:rgba(255,255,255,.07)}.story-card h3{font-size:26px;margin:4px 0 12px}.story-card p{line-height:1.65;margin:0 0 12px;color:#e3eef7}.story-kicker{font-size:11px;letter-spacing:.18em;font-weight:900;color:#ffe38b}
.game-mechanics{margin:0;padding-left:20px;color:var(--muted);display:grid;gap:12px;line-height:1.5}.game-mechanics strong{color:var(--ink)}.objective-card{border:1px solid #e4cf7b;background:linear-gradient(180deg,#fffdf5,#fff7d9)}.objective-card strong{color:#8a6500}
.avatar-pin{transition:left .9s ease,top .9s ease,transform .25s ease}.avatar-pin:hover{transform:translate(-50%,-50%) scale(1.08)}
@media(max-width:560px){.profile-photo-card{grid-template-columns:1fr;text-align:center}.profile-photo-card .tiny-btn{margin-inline:auto}.team-card{grid-template-columns:86px 1fr auto}.avatar-frame-wrap.avatar-large{width:78px;height:78px}.avatar-frame-wrap.avatar-large .avatar-plain,.avatar-frame-wrap.avatar-large .avatar-user-photo{width:50px;height:50px}}
