/* BarraMasters Invitational theme: deep ocean navy, teal + tropical blue, gold for winners. High contrast for sun. */
:root{--navy:#0B2545;--navy2:#13315C;--navy3:#1B4170;--deep:#071A33;--teal:#1FB5B0;--blue:#2A9DF4;--gold:#F2C14E;--gold2:#C9971F;--silver:#C9D3DD;--bronze:#D08A4E;
  --ink:#FFFFFF;--mute:#B9C9DC;--line:rgba(255,255,255,.14);--red:#FF6B5E;--amber:#F5B83D;--ok:#3DD68C;/* verification-panel ticks only */--card:#12335C;
  --safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);
  --wave:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 22 C150 2 300 42 450 22 S750 2 900 22 S1100 40 1200 20 V40 H0Z' fill='%230B2545'/%3E%3C/svg%3E");
  --ripple:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='40' viewBox='0 0 160 40'%3E%3Cpath d='M0 20 Q20 8 40 20 T80 20 T120 20 T160 20' fill='none' stroke='%23ffffff' stroke-opacity='.035' stroke-width='2'/%3E%3C/svg%3E")}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;color:var(--ink);font:17px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-text-size-adjust:100%}
html{background:var(--navy)}
body{min-height:100vh;padding-bottom:calc(78px + var(--safe-b));background:var(--ripple),linear-gradient(180deg,#0B2545 0%,#0A2A4F 45%,#08223F 100%) fixed}
a{color:#7FD8FF;font-weight:600}
.hidden{display:none!important}
.top{background:linear-gradient(135deg,#071A33,#0E3463 60%,#0F4C6E);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + var(--safe-t)) 14px 18px;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:12px;background:var(--wave) bottom/100% 100% no-repeat}
.brand{display:flex;gap:10px;align-items:center}.brand img{width:44px;height:44px;border-radius:50%;box-shadow:0 0 0 2px rgba(242,193,78,.6)}
.brand b{display:block;font-size:18px;letter-spacing:.3px;text-transform:uppercase}.brand small{color:#9fe3e0;font-size:12px;font-weight:600}
.demo-tag{background:var(--gold);color:#0B2545;border-radius:4px;padding:0 5px;font-weight:800;font-size:11px}
#who{font-size:12px;text-align:right;color:#d9e6f5}
.netbar{background:#5a3f00;color:#fff3cf;font-size:14px;padding:9px 14px;font-weight:600}
.netbar.on{background:#0f5f5c}
main{padding:14px;max-width:720px;margin:0 auto}
h1{font-size:24px;margin:6px 0 12px;color:#fff;letter-spacing:.2px}h2{font-size:19px;margin:20px 0 8px;color:var(--teal)}
.card{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));background-color:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px;margin:10px 0;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.muted{color:var(--mute);font-size:15px}.small{font-size:14px}
label{display:block;font-weight:700;margin:14px 0 6px;font-size:15px;color:#e8f1fb}
input,select,textarea{width:100%;font-size:17px;min-height:50px;padding:12px;border:2px solid #9fb6cf;border-radius:12px;background:#fff;color:#0B2545;font-family:inherit}
textarea{min-height:90px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,181,176,.35)}
input[readonly]{background:#e6edf5}
.row{display:flex;gap:10px}.row>*{flex:1;min-width:0}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;min-height:54px;padding:13px 16px;font-size:17px;font-weight:800;background:linear-gradient(180deg,#25C7C1,#16A39E);color:#05213A;text-decoration:none;cursor:pointer;width:100%;margin-top:10px;box-shadow:0 3px 0 #0d7a76}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 #0d7a76}
.btn.alt{background:rgba(255,255,255,.1);color:#fff;border:2px solid rgba(255,255,255,.28);box-shadow:none}
.btn.ochre,.btn.gold{background:linear-gradient(180deg,#FFD66B,#E9B23A);color:#3b2600;box-shadow:0 3px 0 #a9781a}
.btn.red{background:linear-gradient(180deg,#ff7b6f,#e2493c);color:#fff;box-shadow:0 3px 0 #9d2a20}
.btn.ok{background:linear-gradient(180deg,#3fd3cd,#1FB5B0);color:#05213A;box-shadow:0 3px 0 #0d7a76}
.btn.blue{background:linear-gradient(180deg,#46b1ff,#1f86d8);color:#fff;box-shadow:0 3px 0 #145e9b}
.btn:disabled{opacity:.45}
.btn.sm{min-height:44px;font-size:15px;padding:8px 12px;margin-top:6px}
.toggle{display:flex;gap:8px}.toggle button{flex:1;min-height:50px;border-radius:12px;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font-size:16px;font-weight:700}
.toggle button.on{background:var(--teal);color:#05213A;border-color:var(--teal)}
.nav{position:fixed;bottom:0;left:0;right:0;background:#071A33;border-top:1px solid rgba(255,255,255,.12);display:flex;padding-bottom:var(--safe-b);z-index:20}
.nav a{flex:1;text-align:center;font-size:12px;color:#a9bdd4;text-decoration:none;padding:8px 0 7px;min-height:60px;font-weight:600}
.nav a span{display:block;font-size:22px;line-height:1.2}.nav a.on{color:var(--gold)}
.nav a.on span{filter:drop-shadow(0 0 6px rgba(242,193,78,.6))}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(92px + var(--safe-b));background:#fff;color:#0B2545;font-weight:700;padding:12px 18px;border-radius:22px;font-size:15px;z-index:50;max-width:90%;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.wave-div{height:18px;margin:16px -14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 30' preserveAspectRatio='none'%3E%3Cpath d='M0 15 C150 0 300 30 450 15 S750 0 900 15 S1100 30 1200 15' fill='none' stroke='%231FB5B0' stroke-width='3' stroke-opacity='.7'/%3E%3Cpath d='M0 22 C150 7 300 37 450 22 S750 7 900 22 S1100 37 1200 22' fill='none' stroke='%232A9DF4' stroke-width='2' stroke-opacity='.45'/%3E%3C/svg%3E") center/100% 100% no-repeat}
/* splash + login hero */
.hero{text-align:center;padding:10px 0 4px}.hero img{width:min(62vw,250px);height:auto;filter:drop-shadow(0 8px 22px rgba(0,0,0,.45))}
.hero p{color:#9fe3e0;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:13px;margin:6px 0 0}
.splash{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.splash img{width:180px;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-8px)}}
/* camera */
.cam{position:relative;background:#000;border-radius:18px;overflow:hidden;aspect-ratio:3/4;width:100%;border:2px solid rgba(31,181,176,.5)}
.cam video,.cam img{width:100%;height:100%;object-fit:cover;display:block}
.ov{position:absolute;left:0;right:0;color:#fff;text-shadow:0 1px 3px #000;pointer-events:none}
.ov.otop{top:0;padding:10px;background:linear-gradient(rgba(0,0,0,.6),transparent);display:flex;justify-content:space-between;align-items:flex-start;position:absolute;box-shadow:none}
.ov.bot{bottom:0;padding:12px;background:linear-gradient(transparent,rgba(0,0,0,.7));font:600 14px/1.35 ui-monospace,Menlo,monospace}
.code{background:var(--gold);color:#2b1c00;font-weight:900;font-size:21px;padding:5px 11px;border-radius:10px;text-shadow:none;letter-spacing:.5px}
.guide{position:absolute;left:6%;right:6%;top:38%;height:24%;border:2px dashed rgba(127,216,255,.8);border-radius:12px;pointer-events:none}
.guide span{position:absolute;bottom:-24px;left:0;right:0;text-align:center;font-size:12px;color:#fff;text-shadow:0 1px 2px #000}
.shutter{width:84px;height:84px;border-radius:50%;border:6px solid #fff;background:radial-gradient(circle at 35% 30%,#FFE08A,#E9A923);margin:16px auto 0;display:block;box-shadow:0 0 0 4px var(--teal),0 6px 18px rgba(0,0,0,.4)}
.shutter:disabled{background:#6b7a8c;box-shadow:0 0 0 4px #3b4d63}
.rec{position:absolute;top:12px;right:12px;background:var(--red);color:#fff;padding:4px 10px;border-radius:12px;font-weight:800}
.countdown{position:absolute;top:58px;left:10px;background:rgba(0,0,0,.65);color:#fff;padding:5px 10px;border-radius:10px;font-weight:800}
/* lists */
.item{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;min-height:64px}
.item img{width:68px;height:68px;object-fit:cover;border-radius:12px;background:#22446d}
.chip{display:inline-block;font-size:12px;font-weight:800;border-radius:10px;padding:3px 9px;margin-top:4px}
.chip.pending{background:#5a3f00;color:#ffe3a3}.chip.awaiting_judge{background:#123f6e;color:#bfe2ff}.chip.under_review{background:#6a3410;color:#ffd2a6}
.chip.approved{background:#0f5f5c;color:#c9fbf8}.chip.rejected{background:#6b1f19;color:#ffc9c3}.chip.demo{background:var(--gold);color:#2b1c00}
.chip.live{background:#0f5f5c;color:#c9fbf8}.chip.paused{background:#3b4d63;color:#e3ecf6}.chip.pending_approval{background:#5a3f00;color:#ffe3a3}.chip.expired{background:#3b4d63;color:#cbd6e2}.chip.scheduled{background:#123f6e;color:#bfe2ff}.chip.members{background:var(--teal);color:#05213A}
table{width:100%;border-collapse:collapse;font-size:15px}th,td{text-align:left;padding:9px 5px;border-bottom:1px solid var(--line)}th{font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.5px}
td.num,th.num{text-align:right}
.tabs{display:flex;gap:8px;overflow-x:auto;margin:8px 0;padding-bottom:4px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
.tabs button{display:flex;align-items:center;gap:6px;white-space:nowrap;border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:#fff;border-radius:22px;min-height:46px;padding:6px 14px;font-size:15px;font-weight:700}
.tabs button.on{background:var(--teal);color:#05213A;border-color:var(--teal)}
.tabs svg{width:26px;height:14px;flex:none}
.checks{list-style:none;padding:0;margin:0}.checks li{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.dot{flex:0 0 24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#05213A;font-size:14px;font-weight:900}
.dot.pass{background:var(--ok)}.dot.fail{background:var(--red);color:#fff}.dot.warn{background:var(--amber)}.dot.info,.dot.soon{background:#8ea3bb}
.photo{width:100%;border-radius:14px;display:block}
.qr{background:#fff;padding:12px;border-radius:14px;display:inline-block}.qr img,.qr svg{display:block;width:220px;height:220px}
.sponsor{border:2px dashed rgba(242,193,78,.5)}
.logo{width:60px;height:60px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;color:#0B2545;font-size:12px;text-align:center;flex:none;overflow:hidden}
.logo img{width:100%;height:100%;object-fit:cover}
.warnbox{background:rgba(245,184,61,.14);border:1px solid rgba(245,184,61,.55);border-radius:14px;padding:12px;font-size:15px;color:#ffe9b8}
.errbox{background:rgba(255,107,94,.15);border:1px solid rgba(255,107,94,.6);border-radius:14px;padding:12px;color:#ffd6d1}
.steps li{margin:5px 0}
code.k{background:rgba(255,255,255,.14);color:#fff;padding:2px 6px;border-radius:6px;font-size:14px;word-break:break-all}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px;word-break:break-all;color:var(--mute)}
/* leaderboard */
.podium{display:flex;align-items:flex-end;gap:8px;margin:14px 0 6px}
.podium .p{flex:1;text-align:center;border-radius:16px 16px 8px 8px;padding:10px 6px 12px;color:#1b1200;box-shadow:0 6px 16px rgba(0,0,0,.3)}
.podium .p b{display:block;font-size:24px}.podium .p .nm{font-size:13px;font-weight:800;line-height:1.2;word-break:break-word}.podium .p .medal{font-size:28px}
.podium .p1{background:linear-gradient(180deg,#FFE08A,#E5AE2E);min-height:170px;order:2}.podium .p2{background:linear-gradient(180deg,#EEF2F6,#AEBBCA);min-height:140px;order:1}.podium .p3{background:linear-gradient(180deg,#F0B17A,#B86F35);min-height:120px;order:3}
.rank{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-weight:900;background:rgba(255,255,255,.12);color:#fff}
.rank.r1{background:var(--gold);color:#2b1c00;box-shadow:0 0 10px rgba(242,193,78,.6)}.rank.r2{background:var(--silver);color:#1d2833}.rank.r3{background:var(--bronze);color:#2a1400}
tr.top1 td{background:rgba(242,193,78,.1)}
.total{font-size:18px;font-weight:900;color:var(--gold)}
/* promos */
.promo{display:flex;gap:12px}.promo .pimg{width:100%;max-height:200px;object-fit:cover;border-radius:12px;margin:8px 0}
.disc{display:inline-block;background:var(--gold);color:#2b1c00;font-weight:900;border-radius:10px;padding:4px 10px;font-size:16px;margin:6px 0}
.counter{text-align:center}.counter .big{font-size:54px;font-weight:900;letter-spacing:2px;color:#fff}
.stat{display:inline-block;margin-right:14px;font-weight:800;color:#9fe3e0}
#printArea{display:none}
@media print{@page{size:A6 landscape;margin:0}body{padding:0;background:#fff}body>*:not(#printArea){display:none!important}#printArea{display:block}#printArea img{width:148mm;height:105mm;display:block}}
.pimg{display:block;width:100%;max-width:100%;max-height:220px;object-fit:cover;border-radius:12px;margin:10px 0 0}img,video{max-width:100%}

.upd{position:fixed;left:10px;right:10px;top:calc(8px + env(safe-area-inset-top,0px));z-index:100;background:linear-gradient(180deg,#FFD877,#F2C14E);color:#0B2545;font-weight:800;font-size:17px;border:0;border-radius:14px;min-height:54px;padding:12px 16px;box-shadow:0 6px 18px rgba(0,0,0,.45);text-align:center;width:auto}
/* v17 region switch (judges/admin, region-less sponsors) */
.regtabs{display:flex;margin:6px 0 4px;border:2px solid var(--gold);border-radius:14px;overflow:hidden}
.regtabs button{flex:1;min-height:46px;border:0;background:transparent;color:#fff;font-size:16px;font-weight:800;letter-spacing:.3px}
.regtabs button.on{background:var(--gold);color:#0B2545}
.lbsub{margin:2px 0 6px}
/* v18 catch alerts */
.nav a{position:relative}
.nav a.badge span::after{content:'';position:absolute;top:6px;left:calc(50% + 10px);width:11px;height:11px;border-radius:50%;background:var(--red);border:2px solid #071A33}
.pingbar{position:fixed;left:10px;right:10px;top:calc(10px + env(safe-area-inset-top,0px));z-index:90;display:flex;gap:10px;align-items:flex-start;background:#F4F7FB;color:#0B2545;border-radius:18px;padding:12px 12px 12px 14px;box-shadow:0 10px 30px rgba(0,0,0,.45);font-size:15px;line-height:1.35;cursor:pointer;animation:pingin .35s ease-out}
.pingbar img{width:38px;height:38px;border-radius:9px;flex:none}.pingbar b{display:block;font-size:15px}.pingbar small{display:block;color:#5a6b80;margin-top:3px;font-size:12px}
.pingbar>div{flex:1}.pingbar button{border:0;background:transparent;color:#5a6b80;font-size:18px;min-width:34px;min-height:34px}
@keyframes pingin{from{transform:translateY(-120%)}to{transform:none}}
.alertcard{border:2px solid rgba(242,193,78,.65)}
.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;cursor:pointer}.switch>span{display:flex;flex-direction:column;gap:3px;font-weight:600}
.switch input{appearance:none;-webkit-appearance:none;flex:none;width:58px;height:34px;border-radius:17px;background:rgba(255,255,255,.2);position:relative;transition:background .2s;margin:0}
.switch input::after{content:'';position:absolute;top:3px;left:3px;width:28px;height:28px;border-radius:50%;background:#fff;transition:left .2s}
.switch input:checked{background:var(--teal)}.switch input:checked::after{left:27px}.switch input:disabled{opacity:.45}
.ioshint{display:flex;gap:10px;align-items:center;margin:8px 12px 0;padding:10px 12px;border-radius:12px;background:rgba(42,157,244,.18);border:1px solid rgba(42,157,244,.5);font-size:14px}
.ioshint a{white-space:nowrap}.ioshint button{margin-left:auto;border:0;background:transparent;color:#fff;font-size:18px;min-width:34px;min-height:34px}
/* ---- v19: catch status, photo guide, sections, secret board, reports, onboarding ---- */
.okbox{background:rgba(61,214,140,.13);border:1px solid rgba(61,214,140,.55);border-radius:14px;padding:12px;color:#d4ffe9;margin:10px 0}
.errbox,.warnbox{margin:10px 0}
#netbar.warn{background:#7a2b22;color:#fff}
.stepper{list-style:none;display:flex;gap:4px;padding:0;margin:12px 0}
.stepper li{flex:1;text-align:center;font-size:12px;line-height:1.25;color:var(--mute);border-top:4px solid var(--line);padding-top:6px}
.stepper li span{display:block;font-size:18px}
.stepper li.done{border-color:var(--teal);color:#fff}
.stepper li.cur{border-color:var(--gold);color:var(--gold);font-weight:800}
.stepper li.cur.ok{border-color:var(--ok);color:var(--ok)}
.stepper li.cur.bad{border-color:var(--red);color:var(--red)}
.crocbox{background:linear-gradient(135deg,rgba(208,138,78,.22),rgba(11,37,69,.4));border:2px solid var(--bronze);border-radius:14px;padding:12px;margin:10px 0;color:#ffe7d2}
.crocbox .btn{margin-top:8px}
.pguide{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:12px 0}
.pguide summary{font-weight:800;cursor:pointer;min-height:32px;display:flex;align-items:center}
.pguide ul,.checklist{list-style:none;padding:0;margin:8px 0;columns:2;column-gap:14px;font-size:15px}
.pguide li,.checklist li{break-inside:avoid;margin:3px 0}
.checkrow{display:flex !important;gap:12px;align-items:flex-start;margin:14px 0 4px;font-weight:600}
.checkrow input{width:28px !important;height:28px;min-height:0 !important;flex:0 0 28px;margin:0}
.glorybox{border:1px dashed rgba(242,193,78,.6)}
.sponsorslot{margin:8px 0;padding:8px 12px;border-radius:12px;background:rgba(242,193,78,.12);border:1px solid rgba(242,193,78,.45);font-size:14px}
.sponsorslot.empty{background:transparent;border-style:dashed;color:var(--mute)}
.card.secret{border:2px solid #C38BFF;background:rgba(195,139,255,.12)}
.card.archived{border:2px solid var(--silver)}
.card.mystery{border:2px dashed #C38BFF;text-align:center}
.repbtn{display:inline-block;margin-left:6px;background:transparent;border:1px solid var(--line);color:var(--mute);border-radius:10px;min-width:38px;min-height:38px;font-size:16px;vertical-align:middle}
.lock{font-size:14px;margin-left:4px}
.reportcard{border:2px solid var(--red)}
.reportcard textarea,.judgebox textarea{width:100%;border-radius:12px;padding:10px;font-size:16px;background:#fff;color:#0B2545;border:0}
.linkbtn{background:none;border:0;color:var(--teal);text-decoration:underline;padding:8px 0;display:inline-block;font-weight:700}
.onboard{padding-top:6px}
.obdots{display:flex;gap:6px;justify-content:center;margin:6px 0 10px}
.obdots span{width:30px;height:6px;border-radius:3px;background:var(--line)}
.obdots span.on{background:var(--gold)}
.pentable td,.pentable th{vertical-align:top}
.seasontabs{border-color:var(--teal)}
.seasontabs button{font-size:14px}
.seasontabs button.on{background:var(--teal);color:#0B2545}
.chip.ladies{background:rgba(255,143,199,.2);color:#ffc2e2}
.chip.junior{background:rgba(155,225,93,.2);color:#d8ffb8}
.hist{list-style:none;padding:0;margin:0}
.hist li{border-left:3px solid var(--teal);padding:4px 0 4px 10px;margin:6px 0}
.judgebox{border:2px solid var(--gold)}
.rejbox{margin-top:10px}
.rejbox summary{font-weight:800;color:var(--red);min-height:40px;display:flex;align-items:center;cursor:pointer}
.entryline{display:inline-block}
/* v20 upgrade */
.scorechip{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}
.scorechip.counts{background:rgba(31,181,176,.18);color:#5fe0da;border:1px solid rgba(31,181,176,.5)}
.scorechip.out{background:rgba(185,201,220,.12);color:#B9C9DC;border:1px dashed rgba(185,201,220,.5)}
.card.upgrade{border:1px solid rgba(242,193,78,.6);background:linear-gradient(135deg,rgba(242,193,78,.18),rgba(42,157,244,.12))}
.upmark{display:inline-block;font-size:11px;font-weight:800;color:#F2C14E;background:rgba(242,193,78,.15);border-radius:999px;padding:1px 6px;margin-left:2px}
.okbox.entryline,.okbox.covers,#coversReg{background:rgba(42,157,244,.13);border-color:rgba(42,157,244,.55);color:#dcefff}
/* v22 icons: SVG barra + trophies (same on Samsung and iPhone) */
svg.bi-barra,svg.bi-trophy{display:inline-block;vertical-align:middle;flex:none;overflow:visible}
.tabs svg.bi-barra{width:42px;height:16px}
svg.bi-fish{display:inline-block;vertical-align:middle;flex:none;overflow:visible}
.tabs svg.bi-fish{width:42px;height:18px}
.tabs button.on svg.bi-fish{color:#0B2545}
.tabs button.on svg.bi-barra{color:#0B2545}
svg.bi-barra.inl{width:2.2em;height:.8em;vertical-align:-.05em}
svg.bi-trophy.inl{width:.95em;height:1.15em;vertical-align:-.18em}
h1 svg.bi-trophy.h1ico{width:1.05em;height:1.25em;vertical-align:-.22em;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.podium .p .medal{line-height:0;margin-bottom:4px}
.podium .p .medal svg.bi-trophy{width:40px;height:48px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.podium .p1 .medal svg.bi-trophy{width:48px;height:58px}
.nav a span svg.bi-barra{width:40px;height:22px;margin:0 auto;display:block}
.nav a span svg.bi-trophy{width:22px;height:26px;margin:0 auto;display:block}
.pingbar b svg.bi-barra.inl{width:2em;height:.75em}
/* v26: animated how-to-measure guide (SVG + CSS, offline) */
.measure{margin:12px 0 4px;background:#0B2545;border:1px solid var(--line);border-radius:14px;padding:10px}
.measure .mhead{display:flex;align-items:center;gap:8px;margin-bottom:8px}.measure .mhead b{color:var(--gold);font-size:16px}
.measure .mstep{flex:1;color:#a9bdd4;font-size:13px;font-weight:700}
.measure .mbtn{min-width:44px;min-height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font-size:16px;font-weight:800}
.measure .msvg{display:block;width:100%;height:auto}
.measure .mcap{min-height:3em;margin:8px 2px 0;font-size:17px;line-height:1.35;font-weight:800;color:#fff}
.ms .mf,.ms .mjaw,.ms .mtail{transform-box:view-box}
.ms .mf{transition:transform .9s cubic-bezier(.3,.7,.3,1);transform:translate(44px,0)}
.ms.s1 .mf{animation:msDrop 1s ease-out both}
@keyframes msDrop{0%{transform:translate(44px,-70px) rotate(-6deg);opacity:0}70%{opacity:1}100%{transform:translate(44px,0);opacity:1}}
.ms.ge2 .mf{transform:none}
.ms .mnose,.ms .mmouth,.ms .mtailx,.ms .mline,.ms .mcard,.ms .mphones,.ms .mflash,.ms .mend,.ms .mcode,.ms .mgape{opacity:0;transition:opacity .4s}
.ms .mmouth .mx,.ms .mmouth .mt,.ms .mtailx .mx,.ms .mtailx .mt{opacity:0}
.ms.s2 .mnose{opacity:1;animation:msPulse 1s .6s ease-in-out 2}
@keyframes msPulse{50%{opacity:.35}}
.ms .mjaw{transform-origin:9.4px 13.3px;transition:transform .5s}
.ms.s3 .mmouth{opacity:1}.ms.s3 .mjaw{animation:msJaw 2.1s both}.ms.s3 .mgape{animation:msGape 2.1s both}
.ms.s3 .mmouth .mx,.ms.s4 .mtailx .mx{animation:msWrong 2.2s both}.ms.s3 .mmouth .mt,.ms.s4 .mtailx .mt{animation:msRight 2.2s both}
@keyframes msJaw{0%,45%{transform:rotate(-28deg)}62%,100%{transform:none}}
@keyframes msGape{0%,45%{opacity:1}62%,100%{opacity:0}}
@keyframes msWrong{0%,48%{opacity:1}58%,100%{opacity:0}}
@keyframes msRight{0%,55%{opacity:0}68%,100%{opacity:1}}
.ms .mtail{transform-origin:57px 13px}
.ms.s4 .mtailx{opacity:1}.ms.s4 .mtail{animation:msTail 2.3s both}
@keyframes msTail{0%,45%{transform:scale(1.14,.4)}62%,100%{transform:none}}
.ms.s4 .mline{animation:msRight 2.3s both}.ms.ge5 .mline{opacity:1}
.ms.ge5 .mcard,.ms.ge5 .mcode{opacity:1}.ms.s5 .mcard{animation:msSlide .8s ease-out both}
@keyframes msSlide{from{transform:translate(130px,0)}to{transform:none}}
.ms.s6 .mphones{opacity:1}.ms.s6 .mflash{animation:msFlash 2.1s both}
@keyframes msFlash{0%,70%{opacity:0}78%{opacity:.85}100%{opacity:0}}
.ms.s7 .mend{opacity:1;transition-delay:.2s}
.measure.mpaused .ms *{animation-play-state:paused!important}
.measure.mstatic .mstage{display:grid;gap:10px}
.measure .mframe{margin:0}.measure .mframe figcaption{font-size:16px;font-weight:700;color:#fff;margin-top:4px;line-height:1.35}
.measure.mstatic .ms *{animation:none!important;transition:none!important}
.measure.mstatic .ms.s3 .mmouth .mt,.measure.mstatic .ms.s4 .mtailx .mt,.measure.mstatic .ms.s4 .mline{opacity:1}
@media (prefers-reduced-motion:reduce){.measure .ms *{animation:none!important;transition:none!important}}
/* v27: top-15 boards, full board, highlighted 'YOU' row, pinned row, My standing */
.youtag{display:inline-block;background:var(--gold);color:#0B2545;font-weight:900;font-size:11px;letter-spacing:.6px;border-radius:6px;padding:1px 6px;vertical-align:2px}
table tr.me td{background:#F2C14E!important;color:#0B2545!important}
table tr.me td:first-child{border-radius:10px 0 0 10px}table tr.me td:last-child{border-radius:0 10px 10px 0}
table tr.me{outline:3px solid #FFE08A;outline-offset:-1px}
table tr.me .pubname,table tr.me .total,table tr.me td div{color:#0B2545!important}
table tr.me .rank{background:#0B2545;color:#F2C14E}
table tr.me .youtag{background:#0B2545;color:#F2C14E}
table tr.me .chip.demo{background:#0B2545;color:#F2C14E}
table tr.me.flash td{animation:meFlash 1.6s ease-out}
@keyframes meFlash{0%,40%{background:#FFE9A8}100%{background:#F2C14E}}
.youpin{position:sticky;bottom:calc(66px + var(--safe-b, 0px));z-index:5;margin:8px 0 0;background:#0B2545;border:2px solid var(--gold);border-radius:12px;padding:10px 12px;color:#fff;font-size:17px;box-shadow:0 6px 16px rgba(0,0,0,.45);cursor:pointer}
.youpin b{color:var(--gold);font-size:19px}.youpin .small{color:#a9bdd4}
.lbmore{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.lbmore .btn{flex:1;min-width:140px;margin:0}
tr.unrk-h td{color:var(--gold);font-weight:800;font-size:13px;padding-top:12px}
tr.unrk td{opacity:.8}
.standing{border:2px solid rgba(242,193,78,.7);cursor:pointer}
.standing .stand-h{color:var(--gold);font-size:16px}.standing .stand-big{font-size:20px;margin:6px 0}.standing .stand-big b{color:var(--gold)}
.standing .stand-l{margin:6px 0 0;padding-left:18px}
/* v27: camera in portrait or landscape. The box takes the camera track's real shape (--ar), so preview = photo. */
.cam{--ar:.75;aspect-ratio:var(--ar);width:min(100%, calc((100svh - 150px) * var(--ar)));margin:0 auto}
.cam video{object-fit:contain}
@media (orientation:landscape){.cam{width:min(100%, calc((100svh - 40px) * var(--ar)))}}
.orient-tip{margin:6px 0 0;font-size:15px;font-weight:700;color:#FFE08A}
.photo{max-height:85svh;object-fit:contain}
@media (orientation:landscape) and (max-height:560px){
  .shutter{position:fixed;right:calc(14px + env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);margin:0;z-index:30;width:76px;height:76px}
}
/* landscape camera: near full-screen like the phone's own camera app (header + nav come back when you rotate back or leave) */
body.camland{padding-bottom:0}
body.camland header.top,body.camland .nav,body.camland #netbar{display:none!important}
body.camland .cam{width:min(calc(100% - 100px), calc((100svh - 16px) * var(--ar)));margin:8px 0 0}
body.camland #shutHint{margin-right:100px}

/* v28 catch card */
tr.tapcard{cursor:pointer}tr.tapcard:active td{background:rgba(31,181,176,.18)}
.ccsheet{position:fixed;inset:0;z-index:60;background:rgba(3,14,28,.72);display:flex;align-items:flex-end;justify-content:center}
.ccbox{position:relative;background:#0F2E52;border:1px solid rgba(255,255,255,.18);border-radius:18px 18px 0 0;width:100%;max-width:560px;max-height:92vh;overflow:auto;padding:16px 16px calc(18px + env(safe-area-inset-bottom))}
.ccx{position:absolute;right:10px;top:10px;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:50%;width:40px;height:40px;font-size:18px}
.ccphoto{width:100%;max-height:52vh;object-fit:contain;background:#000;border-radius:12px;margin:8px 0}
.ccnophoto{border:2px dashed rgba(255,255,255,.25);border-radius:12px;padding:28px 12px;text-align:center;color:#B9C9DC;margin:8px 0}
.ccfacts{display:grid;gap:6px;margin:6px 0 10px}.ccbig{font-size:30px;font-weight:900;color:var(--gold,#F2C14E)}
.cctabs{margin:6px 0}.repreasons{border:0;padding:0;margin:6px 0;display:grid;gap:6px}.repreasons legend{font-weight:700;margin-bottom:4px}
.rr{display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.06);border-radius:10px;padding:10px;min-height:44px}.rr input{width:22px;height:22px;flex:none}
svg.bi-fish.inl{width:2.2em;height:.95em;vertical-align:-.1em}
.ccfacts .chip{background:rgba(255,255,255,.12);border-radius:12px;padding:3px 10px}
.demophoto{position:relative;margin:8px 0}.demophoto img{display:block;width:100%;border-radius:12px;background:#000}.demophoto.ccphoto img{max-height:52vh;object-fit:contain}
.demophoto .chip.demo{position:absolute;left:8px;top:8px;font-weight:800}
.judgedemo{display:flex;gap:10px;align-items:center;margin:6px 0}.judgedemo .demophoto{width:120px;margin:0;flex:none}.judgedemo .demophoto img{border-radius:8px}.judgedemo .demophoto .chip.demo{font-size:10px;left:4px;top:4px;padding:1px 6px}

/* v28 More menu, sponsors, merch, events */
.menulist{display:grid;gap:10px}.menuitem{display:flex;gap:14px;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:12px 14px;min-height:64px;color:#fff;text-decoration:none}
.menuitem .mi-ico{font-size:26px;width:36px;text-align:center;flex:none}.menuitem b{display:block;font-size:17px}.menuitem small{display:block;color:#B9C9DC;font-size:13px}.menuitem .mi-go{margin-left:auto;font-size:26px;color:var(--gold,#F2C14E)}
.spslot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.1)}.spslot:last-child{border-bottom:0}.spslot.filled b{color:var(--gold,#F2C14E)}
.spcard{display:flex;gap:12px;align-items:flex-start}.splogo{width:64px;height:64px;object-fit:contain;background:#fff;border-radius:10px;flex:none}
.mphoto{width:100%;max-height:260px;object-fit:contain;background:rgba(255,255,255,.06);border-radius:12px;margin-bottom:8px}
.merch select,.cform select{min-height:44px}

/* v31 BarraMasters wordmark: BarraMasters large, division small beneath */
.wm b{display:block;font-size:21px;line-height:1.05;letter-spacing:.4px;text-transform:none;font-weight:900;color:#fff}
.wm small{display:block;color:#9fe3e0;font-size:12px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;margin-top:2px}
.wm small .demo-tag{letter-spacing:0}
/* v31 division chooser */
.chooser{padding-bottom:28px}.ch-head{display:flex;gap:12px;align-items:center;margin:6px 0 10px}.ch-head img{width:64px;height:64px;border-radius:50%;box-shadow:0 0 0 2px rgba(242,193,78,.6)}
.ch-head h1{margin:0;font-size:22px;line-height:1.2}.ch-head img{width:56px;height:56px;flex:none}
.ch-pts{list-style:none;margin:0 0 12px;padding:0;font-size:15px;line-height:1.35;color:#dce8f5}.ch-pts li{position:relative;padding-left:20px;margin:0 0 4px}.ch-pts li:before{content:'✓';position:absolute;left:0;color:#F2C14E;font-weight:900}
.mapfig{margin:0;background:radial-gradient(ellipse at 50% 40%,#16406e 0,#0B2545 70%);border:1px solid rgba(159,227,224,.25);border-radius:16px;padding:8px 6px 4px}
.mapfig figcaption{text-align:right;font-size:10px;padding:0 6px}
.aumap{display:block;width:100%;height:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.aumap .land{fill:#244a73;stroke:#7fa6c9;stroke-width:.8;stroke-linejoin:round}
.aumap .rg{fill:rgba(31,181,176,.45);stroke:#9fe3e0;stroke-width:1.1;stroke-linejoin:round;cursor:pointer;transition:fill .15s}
.aumap .rg:hover{fill:rgba(31,181,176,.65)}.aumap .rg:active{fill:rgba(242,193,78,.75)}
.aumap .rg:focus{outline:none}.aumap .rg:focus-visible{stroke:#fff;stroke-width:2.2}
.aumap .rg.on{fill:rgba(242,193,78,.85);stroke:#fff;stroke-width:1.8}
.aumap .rg-lab{font:800 10.5px system-ui,sans-serif;fill:#fff;letter-spacing:.8px;pointer-events:none;paint-order:stroke;stroke:#0B2545;stroke-width:2.4px}
.aumap .rg-lab.on{fill:#0B2545;stroke:#F2C14E}
.aumap .pin{pointer-events:none}.aumap .pin circle{fill:#F2C14E;stroke:#0B2545;stroke-width:1.4}
.aumap .pin text{font:800 9.5px system-ui,sans-serif;fill:#F2C14E;paint-order:stroke;stroke:#0B2545;stroke-width:2.4px}
.rgpanel{margin-top:10px}.rgpanel h2{margin-top:6px}
.divlist{display:grid;gap:10px}
.divcard{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;width:100%;min-height:76px;text-align:left;background:linear-gradient(135deg,#13315C,#0f2a4f);color:#fff;border:2px solid rgba(31,181,176,.55);border-radius:14px;padding:14px 16px;margin:0 0 10px;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s,background .15s,border-color .15s}
.divlist .divcard{margin:0}
button.divcard:hover{border-color:var(--teal)}button.divcard:active{transform:scale(.98);background:linear-gradient(135deg,#1FB5B0,#178f8b);border-color:#F2C14E;color:#05213A}
button.divcard:focus-visible{outline:3px solid #F2C14E;outline-offset:2px}
.divcard .dv-wm b{display:block;font-size:20px;font-weight:900}.divcard .dv-wm small{display:block;font-size:13px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#9fe3e0}
button.divcard:active .dv-wm small{color:#05213A}
.divcard .dv-sub{grid-column:1/2;font-size:13px;color:#c9d3dd}button.divcard:active .dv-sub{color:#05213A}
.divcard .dv-go{grid-column:2;grid-row:1/3;font-weight:900;color:#F2C14E;font-size:16px}
.divcard.soon{cursor:default;opacity:.92;border-style:dashed;border-color:rgba(201,211,221,.45);background:#0f2747}
.divcard.soon .chip.soon{grid-column:2;grid-row:1;background:#C9D3DD;color:#0B2545;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800;white-space:nowrap}
.divcard .dv-note{grid-column:1/3;font-size:12px;color:#9fb3c8;margin-top:4px}
.linkbtn{background:none;border:0;color:#9fe3e0;font:inherit;font-size:14px;text-decoration:underline;padding:10px 0;cursor:pointer}
.center{text-align:center}

/* v32 the title: Barra Master */
svg.bi-crown{width:1.3em;height:1em;vertical-align:-.12em;display:inline-block}
.titlecard{display:flex;gap:12px;align-items:center;margin:12px 0 6px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,rgba(242,193,78,.22),rgba(242,193,78,.06));border:1px solid rgba(242,193,78,.7);box-shadow:inset 0 0 0 1px rgba(255,231,160,.15)}
.titlecard svg.bi-crown{width:46px;height:36px;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.titlecard .tc-k{font-size:12px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#F2C14E}
.titlecard .tc-n{font-size:18px;font-weight:900;color:#fff;margin:2px 0}
.titlecard .tc-s{font-size:12.5px;color:#cfe0f0}
.crownmark svg.bi-crown{width:20px;height:15px}
.hunt{margin:6px 0 4px;font-weight:900;color:#F2C14E;font-size:15px;letter-spacing:.2px}
.titlerule{border-color:rgba(242,193,78,.7)!important;background:linear-gradient(135deg,rgba(242,193,78,.16),rgba(19,49,92,.9))}
.titlerule h2{color:#F2C14E;margin-top:4px}
.honour h2{color:#F2C14E;margin-top:4px}
.ch-sub{margin:2px 0 0;color:#F2C14E;font-weight:800;font-size:14px}
/* v33 real server (test version): test ribbon, payment switch */
.testbar { background: #12345a; color: #f2c14e; font-size: 12px; font-weight: 700; text-align: center; padding: 4px 8px; letter-spacing: .3px; }
.paymodes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0 6px; }
.paymode { display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 10px; border-radius: 12px; border: 2px solid var(--line); background: rgba(255,255,255,.04); color: inherit; font: inherit; cursor: pointer; min-height: 96px; }
.paymode b { font-size: 18px; }
.paymode.on { border-color: var(--gold); background: rgba(242,193,78,.14); }
.paymode[data-mode="live"].on { border-color: var(--red); background: rgba(220,80,80,.14); }
