
:root{--cyan:#50d9ff;--blue:#1688c7;--red:#ff4b55;--ink:#06111be8;--line:#58cfff88;--text:#e9f7ff;--muted:#8faebe;--green:#22e58a;--gold:#ffbd36}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#02070d;color:var(--text);font:14px/1.45 "Arial Narrow",Arial,sans-serif;letter-spacing:.035em}



.brand-logo{width:clamp(110px,14vw,185px);height:52px;object-fit:contain;object-position:left center;mix-blend-mode:screen}
.build-label{font-size:10px;letter-spacing:.18em;color:var(--muted);line-height:1.8}
.build-label span{display:block;color:var(--cyan);font-size:9px}
#introGate{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:transparent;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 1.1s ease}
#introGate.ready{opacity:1;visibility:visible}
#introGate.dismissed{opacity:0;visibility:hidden;pointer-events:none}
#enterBtn{font-size:clamp(28px,4vw,48px);letter-spacing:.35em;padding:32px clamp(72px,10vw,150px);border:2px solid #9cecff;background:#041522e8;box-shadow:0 0 65px #00bfff77,inset 0 0 30px #00bfff33;border-radius:2px;opacity:0;transform:scale(.94);transition:opacity 1.2s ease,transform 1.2s ease}
#introGate.ready #enterBtn{opacity:1;transform:scale(1);animation:enterElectric 2.4s ease-in-out infinite alternate}
#enterBtn:hover{transform:scale(1.04);box-shadow:0 0 85px #00bfffaa;background:#0b3a51}
@keyframes enterElectric{0%{box-shadow:0 0 24px #00bfff35,inset 0 0 8px #00bfff12;filter:brightness(.9)}45%{box-shadow:0 0 70px #00bfff77,inset 0 0 24px #00bfff2a;filter:brightness(1.08)}50%{filter:brightness(.78)}54%{filter:brightness(1.18)}100%{box-shadow:0 0 45px #00bfff55,inset 0 0 18px #00bfff20;filter:brightness(1)}}
#introGate .gate-card{padding:24px}
#introGate .gate-card img,#introGate .gate-kicker,#introGate .gate-hint{display:none}
#enterBtn{font-size:clamp(22px,3vw,36px);letter-spacing:.35em;padding:25px clamp(54px,8vw,110px);border:2px solid #9cecff;background:#041522d9;box-shadow:0 0 55px #00bfff66,inset 0 0 25px #00bfff2b;border-radius:2px}
#enterBtn:hover{transform:scale(1.04);box-shadow:0 0 75px #00bfff99;background:#0b3a51}
#introGate.dismissed{opacity:0;visibility:hidden;pointer-events:none}
#skipIntro{position:fixed;right:24px;bottom:24px;z-index:35;display:none;padding:14px 24px;background:#061723a8;border-color:#67dcff;color:#dff8ff;letter-spacing:.2em;box-shadow:0 0 18px #00bfff35}
#skipIntro.visible{display:block}
.gate-card{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:24px;max-width:min(92vw,430px)}
.gate-card img{width:min(72vw,340px);max-height:190px;object-fit:contain;mix-blend-mode:screen;filter:drop-shadow(0 0 24px #40cfff35)}
.gate-kicker,.gate-hint{font-size:9px;letter-spacing:.25em;color:#b5d9e8}
#enterBtn{font-size:16px;letter-spacing:.3em;padding:17px 44px;border:1px solid #76e2ff;background:linear-gradient(180deg,#0c3549ed,#061521f5);box-shadow:0 0 30px #00bfff38,inset 0 0 18px #00bfff18}
#enterBtn:hover{box-shadow:0 0 38px #00bfff77;background:#0b3a51}

@media(prefers-reduced-motion:reduce){}
#backdrop{position:fixed;inset:0;z-index:0;overflow:hidden;background:#06111b url("../intro-background.jpg") center/cover no-repeat}
#backdrop video{width:100%;height:100%;object-fit:cover;filter:brightness(.98) saturate(1.08);opacity:0;transition:opacity 1.1s ease;display:block}
body.entered #backdrop video{opacity:1}
#backdrop:after{pointer-events:none}
body:not(.entered) #backdrop:after{display:none}
#backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#02091216,transparent 36%,transparent 64%,#0209121a),linear-gradient(0deg,#02070d35,transparent 22%,transparent 78%,#02070d0a)}
.scanlines{pointer-events:none;position:fixed;inset:0;z-index:8;opacity:.11;background:repeating-linear-gradient(0deg,transparent 0 3px,#9adfff 4px)}
.shell{width:min(1280px,100%);margin:0 auto;padding:clamp(14px,2.5vh,28px) clamp(14px,2.5vw,30px) 26px;position:relative;z-index:2;pointer-events:none;min-height:100vh}.shell button{pointer-events:auto}
.frame{border:1px solid #49cfff9c;outline:1px solid #1a7199aa;outline-offset:4px;clip-path:polygon(0 15px,15px 0,calc(100% - 48px) 0,100% 28px,100% calc(100% - 16px),calc(100% - 16px) 100%,22px 100%,0 calc(100% - 22px));background:linear-gradient(135deg,#071723e8,#06111be8);box-shadow:0 0 22px #00baff18,inset 0 0 22px #00aaff0b;position:relative}
.frame:before{content:"";position:absolute;inset:5px;border:1px solid #5dd8ff24;pointer-events:none}
.topbar{display:flex;justify-content:flex-start;align-items:center;gap:16px;margin-bottom:clamp(14px,3vh,34px);padding:0 6px;max-width:42%}
.eyebrow{font-size:13px;letter-spacing:.32em;color:var(--cyan);text-transform:uppercase}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:42px;height:42px;border:1px solid var(--cyan);border-radius:50%;display:grid;place-items:center;color:var(--cyan);font-size:22px;box-shadow:0 0 18px #29c9ff38}
.brand h1{margin:0;font-size:clamp(20px,3vw,31px);letter-spacing:.12em;line-height:1}
.brand small{display:block;color:var(--cyan);letter-spacing:.38em;font-size:10px;margin-top:6px}
.controls{display:none}
button,.button{background:#0a2332d9;color:var(--text);border:1px solid #45cfff88;padding:10px 13px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;cursor:pointer;transition:.2s}
button:hover,.button:hover{background:#0d4058;border-color:var(--cyan);box-shadow:0 0 15px #23c5ff2b}
.status{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green)}
.hero{display:grid;grid-template-columns:minmax(320px,38%);justify-content:start;gap:18px;align-items:start}
.panel{padding:22px 23px;min-width:0}
.panel-title{font-size:15px;letter-spacing:.22em;color:#e8f8ff;text-transform:uppercase;margin:0 0 14px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.panel-title:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,#3acbff77,transparent);margin-left:5px}
.gp{font-size:clamp(48px,6vw,82px);font-weight:800;letter-spacing:-.04em;color:#a6edff;text-shadow:0 0 20px #20bfff8c;line-height:1.05;margin:7px 0}
.substats{display:flex;gap:22px;flex-wrap:wrap;margin-top:16px}
.stat-label{font-size:12px;color:var(--muted);letter-spacing:.2em;text-transform:uppercase}
.stat-value{font-size:27px;font-weight:700;margin-top:2px}.roster-open-close{font-size:12px;letter-spacing:.1em;color:var(--muted);margin-top:7px}.roster-open-close strong{color:var(--cyan)}
.center-brand{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:190px;background:radial-gradient(ellipse at center,#0a2b3a8a,transparent 65%)}
.emblem{font-size:50px;color:var(--cyan);text-shadow:0 0 24px #21c9ffb0;line-height:1}
.center-brand h2{font-size:clamp(29px,4vw,52px);letter-spacing:.1em;margin:8px 0 0;text-shadow:0 3px 0 #33444c}
.center-brand .consortium{font-size:clamp(10px,1.4vw,17px);letter-spacing:.52em;color:var(--cyan);margin-top:2px}
.motto{font-size:clamp(15px,1.6vw,21px);letter-spacing:.18em;line-height:1.5;margin:8px 0 12px}
.motto span{color:var(--cyan)}
.motto-sub{font-size:10px;letter-spacing:.2em;color:var(--muted);max-width:300px}
.content{display:grid;grid-template-columns:minmax(320px,42%);justify-content:start;gap:18px;margin-top:clamp(26px,4vh,46px)}
.left-stack,.right-stack{display:grid;gap:14px;align-content:start}.right-stack{display:none}
.roster-wrap{overflow:auto;max-height:52vh}
table{border-collapse:collapse;width:100%;font-size:16px}
th{text-align:left;font-size:12px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;font-weight:600}
td,th{padding:14px 9px;border-bottom:1px solid #9ddfff17;white-space:nowrap}
tbody tr:hover{background:#41cfff0c}
.player{display:flex;align-items:center;gap:8px}
.rankmark{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid #56cfff77;border-radius:50%;color:#9cecff;font-size:10px}
.online{color:var(--green)}.ingame{color:var(--gold)}.offline{color:var(--red)}.presence{font-size:13px}
.action-row{display:flex;justify-content:flex-end;margin-top:12px}
.battles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.battle{border:1px solid #65d8ff6b;background:#05131de8;padding:11px;min-width:0}
.battle.dark{border-color:#ff646a70}
.battle h3{font-size:10px;letter-spacing:.16em;margin:0 0 8px;color:#bcefff}
.battle.dark h3{color:#ffb6ba}
.planet{height:58px;background:linear-gradient(90deg,#071c2a88,#081521cc),url("../dashboard-template.png") center 45%/cover;border:1px solid #6ad9ff2c;margin-bottom:10px;display:flex;align-items:end;padding:7px;color:#e5f8ff;font-size:9px;letter-spacing:.13em}
.dark .planet{filter:hue-rotate(125deg) saturate(1.4)}
.chart-label{font-size:9px;color:var(--muted);letter-spacing:.13em;margin-bottom:6px}
.chart{height:91px;display:flex;align-items:end;gap:5px;border-bottom:1px solid #b6eaff35;padding:0 3px}
.bar-col{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:5px;min-width:0}
.bar{width:100%;max-width:27px;min-height:5px;background:linear-gradient(0deg,#0b84bd,#69e0ff);box-shadow:0 0 10px #20c8ff25}
.dark .bar{background:linear-gradient(0deg,#bd2637,#ff747d);box-shadow:0 0 10px #ff283825}
.bar-val{font-size:9px;color:#e8faff}
.bar-date{font-size:8px;color:var(--muted);margin-top:5px;white-space:nowrap}
.tw-table td{font-size:10px;padding:9px 5px}
.result-win{color:var(--green);font-weight:bold}.result-loss{color:var(--red);font-weight:bold}
.footer{margin-top:15px;text-align:center;padding:15px;color:#80c7de;font-size:9px;letter-spacing:.28em;text-transform:uppercase}
.footer strong{color:#dff7ff;font-weight:500}
.notice{color:#ffcf74;font-size:10px;letter-spacing:.06em;margin-top:8px}
.hidden{display:none!important}
@media(max-width:1000px){.hero,.content{grid-template-columns:minmax(0,1fr);max-width:520px}.topbar{align-items:flex-start;flex-direction:column;max-width:520px}.brand-logo{width:150px}}
@media(max-width:700px){.hero,.content{grid-template-columns:1fr;gap:12px;max-width:100%}.content{margin-top:14px}.hero .panel{width:100%}.topbar{max-width:100%}.brand-logo{width:125px;height:44px}}
@media(max-width:560px){.hero{grid-template-columns:1fr}.center-brand{grid-column:auto}.battles{grid-template-columns:1fr}.shell{padding:12px}.panel{padding:14px}.gp{font-size:48px}.tw-table td{white-space:normal}.footer{line-height:2}}

/* Build 0.0.5d layout */
.hero{position:absolute;top:clamp(20px,3vh,38px);left:clamp(14px,2vw,28px);width:min(390px,calc(100% - 28px));z-index:4;display:block!important}
.hero .panel{padding:22px 24px;background:linear-gradient(135deg,#061723dc,#06111bd9)}
.content{display:block!important;margin:0!important}
.left-stack{display:none!important}
.right-stack{display:none!important}
#rosterPanel{position:absolute;right:clamp(14px,2vw,28px);bottom:clamp(16px,2.5vh,32px);width:min(460px,calc(100% - 28px));z-index:4}
#rosterPanel .panel{padding:17px 19px;background:linear-gradient(135deg,#061723df,#06111bdc)}
.roster-scroller{height:clamp(150px,23vh,220px);overflow:hidden;position:relative;cursor:grab;user-select:none;touch-action:pan-y}.roster-scroller.dragging{cursor:grabbing}.roster-track{transition:transform .18s ease}
.roster-track{display:flex;gap:14px;align-items:stretch;transition:transform .85s ease;will-change:transform}
.roster-member{flex:0 0 112px;min-width:0;text-align:center;padding:8px 6px;border:1px solid #53d7ff52;background:#071a2899;box-shadow:inset 0 0 15px #22bfff0c}
.roster-member img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid #62dfff;box-shadow:0 0 14px #1abfff30;background:#102a3a}
.roster-member .member-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:8px}
.roster-member .member-gp{font-size:11px;color:#8fe7ff;margin-top:4px}
.roster-member .member-status{font-size:9px;letter-spacing:.08em;margin-top:4px}
.roster-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.roster-meta .panel-title{margin:0;font-size:15px}
.roster-meta .counter{font-size:12px;color:var(--cyan);white-space:nowrap}
.roster-nav{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.roster-nav button{padding:7px 10px}
.roster-dots{display:flex;gap:5px;align-items:center}
.roster-dots i{display:block;width:5px;height:5px;border-radius:50%;background:#477181}
.roster-dots i.active{background:var(--cyan);box-shadow:0 0 8px var(--cyan)}

body.intro .hero.visible,body.intro #rosterPanel.visible{visibility:visible;transform:none;filter:none;animation:panelPowerOn 1.15s steps(1,end) both}

@media(max-width:700px){
  .hero{top:12px;left:12px;width:min(350px,calc(100% - 24px))}
  #rosterPanel{right:12px;bottom:12px;width:min(400px,calc(100% - 24px))}
  .roster-member{flex-basis:100px}
  .roster-member img{width:62px;height:62px}
}


/* Build 0.0.5d: wide roster, drag-only navigation, and live guild analytics */
#guildStatsPanel{position:absolute;top:clamp(20px,3vh,38px);right:clamp(14px,2vw,28px);width:min(450px,calc(100% - 28px));z-index:4;padding:20px 22px;background:linear-gradient(135deg,#061723a8,#06111ba8)}
#guildStatsPanel .panel-title{font-size:13px;margin-bottom:13px}
.guild-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.guild-stat{min-width:0;padding:8px 9px;border-left:1px solid #51d9ff55;background:#071b2870}
.guild-stat span{display:block;font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.guild-stat strong{display:block;font-size:clamp(19px,2vw,28px);color:#a6edff;text-shadow:0 0 12px #20bfff58;margin-top:5px;white-space:nowrap}
#rosterPanel{left:clamp(14px,2vw,28px);right:clamp(14px,2vw,28px);bottom:clamp(14px,2vh,26px);width:auto;z-index:4;padding:16px 18px;background:linear-gradient(135deg,#061723a8,#06111ba8);pointer-events:auto}
.roster-scroller{pointer-events:auto}
#guildStatsPanel{pointer-events:auto}
#rosterPanel .panel{padding:0;background:transparent}
.roster-scroller{height:clamp(132px,19vh,174px);overflow-x:auto;overflow-y:hidden;position:relative;cursor:grab;user-select:none;touch-action:pan-y;scrollbar-width:none;overscroll-behavior-x:contain}
.roster-scroller::-webkit-scrollbar{display:none}.roster-scroller.dragging{cursor:grabbing;scroll-behavior:auto}
.roster-track{display:flex;gap:12px;align-items:stretch;transition:none;will-change:scroll-position;width:max-content;transform:none!important}
.roster-member{flex:0 0 132px;min-width:0;text-align:center;padding:7px 7px 9px;border:1px solid #53d7ff52;background:#071a2899;box-shadow:inset 0 0 15px #22bfff0c}
.roster-member img{width:70px;height:70px;border-radius:50%;object-fit:cover;border:2px solid #62dfff;box-shadow:0 0 14px #1abfff30;background:#102a3a}
.roster-member .member-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:6px}
.roster-member .member-gp{font-size:11px;color:#8fe7ff;margin-top:3px}
.roster-member .member-status{display:none}
.roster-hint{display:flex;justify-content:flex-end;gap:12px;font-size:9px;letter-spacing:.2em;color:#8faebe;margin-top:8px}
.roster-hint span{color:#50d9ff;letter-spacing:.1em}
.roster-meta{margin-bottom:9px}
.roster-meta .panel-title{font-size:14px}

body.intro .hero.visible,body.intro #guildStatsPanel.visible,body.intro #rosterPanel.visible{visibility:visible;transform:none;filter:none;animation:panelPowerOn 1.15s steps(1,end) both}
@media(max-width:700px){
 #guildStatsPanel{top:150px;left:12px;right:12px;width:auto;padding:12px}
 #guildStatsPanel .panel-title{margin-bottom:7px}
 .guild-stat{padding:6px}
 .guild-stat span{font-size:8px;letter-spacing:.04em}
 .guild-stat strong{font-size:18px}
 #rosterPanel{left:12px;right:12px;bottom:12px;padding:12px}
 .roster-scroller{height:132px}
 .roster-member{flex-basis:104px}
 .roster-member img{width:56px;height:56px}
 .roster-hint{font-size:8px}
}


/* Build 0.0.5d: expanded roster cards and Dark Side theme toggle */
#themeToggle{position:fixed;z-index:20;top:18px;left:50%;transform:translateX(-50%);padding:12px 22px;border:1px solid var(--cyan);background:#06111b88;backdrop-filter:blur(8px);font-size:11px;letter-spacing:.2em;white-space:nowrap}
#rosterPanel{left:clamp(14px,2vw,28px);right:clamp(14px,2vw,28px);width:auto;background:linear-gradient(135deg,#06172372,#06111b70);backdrop-filter:blur(4px)}
#guildStatsPanel{background:linear-gradient(135deg,#06172372,#06111b70);backdrop-filter:blur(4px)}
.roster-scroller{height:clamp(205px,28vh,280px)}
.roster-member{flex-basis:clamp(220px,31vw,380px);padding:14px 12px 16px;background:#071a2870}
.roster-member img{width:clamp(104px,11vw,148px);height:clamp(104px,11vw,148px);border-radius:8px}
.roster-member .member-name{font-size:clamp(17px,1.6vw,24px);margin-top:10px}
.roster-member .member-gp{font-size:clamp(14px,1.2vw,18px);margin-top:6px}
body.dark-side{--cyan:#ff4a52;--blue:#a51625;--red:#ff2538;--ink:#17060be8;--line:#ff384d99;--text:#fff0f1;--muted:#d0a0a7;--green:#f05b66;--gold:#ff8b54}
body.dark-side .frame{border-color:#ff4b5dba;outline-color:#8b1725aa;background:linear-gradient(135deg,#210810a8,#10050bb0);box-shadow:0 0 26px #ff17351c,inset 0 0 22px #ff17350b}
body.dark-side .frame:before{border-color:#ff687624}
body.dark-side .panel-title:after{background:linear-gradient(90deg,#ff354f88,transparent)}
body.dark-side .gp,body.dark-side .guild-stat strong{color:#ffb0b6;text-shadow:0 0 20px #ff17358c}
body.dark-side .guild-stat{border-left-color:#ff4b5d77;background:#25081070}
body.dark-side .roster-member{border-color:#ff4b5d77;background:#21081088;box-shadow:inset 0 0 18px #ff17351a}
body.dark-side .roster-member img{border-color:#ff5266;box-shadow:0 0 16px #ff17354a}
body.dark-side button,body.dark-side .button{border-color:#ff526688;background:#250810bb;color:#fff0f1}
body.dark-side button:hover,body.dark-side .button:hover{background:#5b101e;border-color:#ff5266;box-shadow:0 0 15px #ff17354a}
body.dark-side #backdrop:after{background:linear-gradient(90deg,#20000a40,transparent 35%,transparent 65%,#20000a35),linear-gradient(0deg,#10000755,transparent 25%,transparent 75%,#10000720)}
@media(max-width:700px){#themeToggle{top:12px;left:auto;right:12px;transform:none;padding:10px 12px;font-size:9px}.roster-scroller{height:205px}.roster-member{flex-basis:76vw}.roster-member img{width:100px;height:100px}}

/* Build 0.0.8f: roster panel matches Galactic Power panel width */
#rosterPanel{left:auto!important;right:clamp(14px,2vw,28px)!important;width:min(390px,calc(100% - 28px))!important;}
@media(max-width:700px){#rosterPanel{left:auto!important;right:12px!important;width:min(350px,calc(100% - 24px))!important;}}

/* Build 0.0.8f: left-side compact roster and right-bottom TB star charts */
#rosterPanel{left:clamp(14px,2vw,28px)!important;right:auto!important;width:min(390px,calc(100% - 28px))!important;bottom:clamp(14px,2vh,26px);}
#rosterPanel .roster-scroller{height:clamp(150px,20vh,205px)}
#rosterPanel .roster-member{flex-basis:98px;padding:8px 6px 9px}
#rosterPanel .roster-member img{width:58px;height:58px;border-radius:7px}
#rosterPanel .roster-member .member-name{font-size:12px;margin-top:5px}
#rosterPanel .roster-member .member-gp{font-size:10px}
#tbProgressPanel{position:absolute;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vh,26px);width:min(450px,calc(100% - 28px));z-index:4;padding:18px 20px;background:linear-gradient(135deg,#06172372,#06111b70);backdrop-filter:blur(4px)}
#tbProgressPanel .panel-title{font-size:13px;margin-bottom:12px}
.tb-chart-block{margin-top:10px;padding:9px 10px 7px;border:1px solid #53d7ff36;background:#071a2860}
.tb-chart-title{font-size:10px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:7px}
.tb-chart{display:flex;align-items:flex-end;justify-content:space-around;gap:8px;height:95px;border-bottom:1px solid #53d7ff55;padding:0 4px}
.tb-bar-col{height:100%;display:flex;flex:1;min-width:0;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px}
.tb-bar-val{font-size:11px;color:#a6edff;font-weight:700}
.tb-bar{width:min(24px,70%);min-height:4px;background:linear-gradient(0deg,#0878a7,#59ddff);border:1px solid #66e2ff75;box-shadow:0 0 10px #20bfff25}
.tb-bar-date{font-size:9px;color:var(--muted);padding-bottom:4px;white-space:nowrap}
.tb-note{font-size:9px;color:var(--muted);margin-top:9px;letter-spacing:.04em}
body.dark-side .tb-chart-block{border-color:#ff4b5d55;background:#25081070}
body.dark-side .tb-chart{border-bottom-color:#ff4b5d66}
body.dark-side .tb-bar{background:linear-gradient(0deg,#8f1426,#ff5869);border-color:#ff7b88aa;box-shadow:0 0 10px #ff173525}
body.dark-side .tb-bar-val{color:#ffb0b6}
@media(max-width:700px){#rosterPanel{left:12px!important;right:auto!important;width:min(46vw,260px)!important;bottom:12px;padding:10px!important}#rosterPanel .roster-scroller{height:150px}#rosterPanel .roster-member{flex-basis:76px}#rosterPanel .roster-member img{width:44px;height:44px}#tbProgressPanel{right:12px;bottom:12px;width:min(48vw,300px);padding:10px}#tbProgressPanel .tb-chart{height:75px}.tb-chart-title{font-size:8px}.tb-bar-date{font-size:8px}}



/* Build 0.0.8f updates */
.entry-choices{display:flex;flex-direction:column;gap:18px;align-items:center}
#enterLightBtn,#enterDarkBtn{font-size:clamp(16px,2vw,23px);letter-spacing:.13em;padding:22px clamp(28px,5vw,72px);min-width:min(76vw,390px);border:1px solid #8deaff;background:linear-gradient(180deg,#0b3449ed,#061521f5);box-shadow:0 0 34px #00bfff3b,inset 0 0 18px #00bfff18}
#enterDarkBtn{border-color:#ff6673;background:linear-gradient(180deg,#3b101bed,#15070bf5);box-shadow:0 0 30px #ff263b32,inset 0 0 18px #ff263b14}
#enterLightBtn:hover{background:#0b4059}#enterDarkBtn:hover{background:#57101e}#introGate .entry-choices{display:flex!important;position:relative;z-index:2;visibility:visible;opacity:1}
#introGate #enterLightBtn,#introGate #enterDarkBtn{display:block!important;visibility:visible;opacity:1;color:#e9faff;cursor:pointer;font-weight:700}
#introGate #enterDarkBtn{color:#fff0f1}
#introGate .gate-card{width:min(92vw,520px);max-width:92vw;background:linear-gradient(180deg,#0617238c,#02070d55);border:1px solid #69dfff35;box-shadow:0 0 70px #00bfff16}
#introGate.ready .entry-choices{animation:entryChoicesIn .6s ease both}
@keyframes entryChoicesIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
#skipIntro{right:clamp(24px,5vw,72px);bottom:clamp(24px,5vh,58px);padding:22px 34px;font-size:14px;min-width:118px;min-height:58px;background:#061723e8;box-shadow:0 0 25px #00bfff55}
#activeRosterPanel{position:absolute;top:clamp(250px,31vh,340px);left:clamp(14px,2vw,28px);width:min(390px,calc(100% - 28px));z-index:4;padding:16px 20px;background:linear-gradient(135deg,#06172372,#06111b70);backdrop-filter:blur(4px)}
#activeRosterPanel .panel-title{font-size:13px;margin-bottom:7px}
.active-roster-details .stat-value{font-size:26px}.member-cap{font-size:17px;color:var(--muted)}
.recruitment,.contact-line{font-size:12px;letter-spacing:.08em;color:var(--muted);margin-top:5px}.recruitment strong{color:var(--green);text-transform:uppercase}
#activeRosterPanel .active-roster-details{display:block}
#hero .active-roster{display:none}
#rosterPanel{width:min(390px,calc(100% - 28px))!important;bottom:clamp(14px,2vh,26px);left:clamp(14px,2vw,28px)!important;right:auto!important}
#rosterPanel .roster-scroller{height:clamp(118px,16vh,155px)}
#rosterPanel .roster-member{flex-basis:clamp(90px,8vw,112px);padding:7px 5px 8px}
#rosterPanel .roster-member img{width:clamp(48px,4.3vw,60px);height:clamp(48px,4.3vw,60px);border-radius:7px}
#rosterPanel .roster-member .member-name{font-size:11px;margin-top:5px}
#rosterPanel .roster-member .member-gp{font-size:10px}
.member-role{font-size:9px;font-weight:800;letter-spacing:.12em;margin-top:4px}
.member-role.leader{color:#ffd66b}.member-role.officer{color:#b7a0ff}.member-role.member{color:var(--muted)}
#twProgressPanel{position:absolute;right:clamp(14px,2vw,28px);bottom:clamp(235px,31vh,330px);width:min(450px,calc(100% - 28px));z-index:4;padding:15px 18px;background:linear-gradient(135deg,#06172372,#06111b70);backdrop-filter:blur(4px)}
#twProgressPanel .panel-title,#tbProgressPanel .panel-title{font-size:13px;margin-bottom:9px}
.tw-matchup{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.tw-team{display:flex;flex-direction:column;gap:3px;min-width:0}.tw-team-name{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tw-team strong{font-size:22px;color:#b9f3ff}
.opponent-team{text-align:right}.opponent-team strong{color:#ffadb4}
.tw-bar-wrap{grid-column:1/-1;height:12px;display:flex;overflow:hidden;border-radius:2px;background:#32121b;border:1px solid #8deaff50;box-shadow:0 0 10px #00bfff1a}
.tw-bar-left{height:100%;background:linear-gradient(90deg,#0878a7,#59ddff)}.tw-bar-right{height:100%;background:linear-gradient(90deg,#c83a4b,#ff8790)}
#tbProgressPanel{bottom:clamp(14px,2vh,26px);right:clamp(14px,2vw,28px);width:min(450px,calc(100% - 28px));padding:15px 18px}
.tb-chart-block{margin-top:7px;padding:7px 9px 5px}
.tb-chart{display:block;height:78px;border:0;padding:0;overflow:visible}
.tb-line-svg{width:100%;height:100%;overflow:visible;display:block}
.tb-gridline{stroke:#75cce9;stroke-opacity:.25;stroke-width:1;stroke-dasharray:3 4}
.tb-line-path{stroke:#50d9ff;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px #1abfff8a)}
.tb-line-dot{fill:#a6edff;stroke:#06111b;stroke-width:1.3;opacity:.75}
.tb-line-value{fill:#dff8ff;font-size:10px;font-weight:700}
.tb-line-date{fill:#9bbdcb;font-size:10px}
body.dark-side .tb-line-path{stroke:#ff5968;filter:drop-shadow(0 0 3px #ff263b66)}
body.dark-side .tb-line-dot{fill:#ffadb4}
body.dark-side .tw-bar-left{background:linear-gradient(90deg,#9d192c,#ff6978)}
body.dark-side .tw-bar-right{background:linear-gradient(90deg,#5e1b2a,#b35b68)}
body.light-side{--cyan:#50d9ff;--blue:#1688c7;--red:#ff4b55}
body.dark-side{--cyan:#ff4a52;--blue:#a51625;--red:#ff2538;--ink:#17060be8;--line:#ff384d99;--text:#fff0f1;--muted:#d0a0a7;--green:#f05b66;--gold:#ff8b54}

@media(max-width:700px){
 #activeRosterPanel{top:clamp(210px,29vh,285px);left:12px;width:min(44vw,250px);padding:10px}
 #activeRosterPanel .panel-title{font-size:10px}
 #activeRosterPanel .stat-value{font-size:20px}
 #activeRosterPanel .recruitment,#activeRosterPanel .contact-line{font-size:9px}
 #rosterPanel{left:12px!important;bottom:12px;width:min(44vw,250px)!important;padding:10px!important}
 #rosterPanel .roster-scroller{height:clamp(105px,15vh,140px)}
 #rosterPanel .roster-member{flex-basis:76px}
 #rosterPanel .roster-member img{width:44px;height:44px}
 #twProgressPanel{right:12px;bottom:clamp(190px,27vh,250px);width:min(48vw,290px);padding:10px}
 #tbProgressPanel{right:12px;bottom:12px;width:min(48vw,290px);padding:10px}
 #twProgressPanel .panel-title,#tbProgressPanel .panel-title{font-size:9px}
 .tw-team-name{font-size:8px}.tw-team strong{font-size:16px}
 #tbProgressPanel .tb-chart{height:66px}
}


/* v0.0.8f fail-safe entry screen: visible even if video or startup code fails */
#introGate:not(.dismissed){display:grid!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:99999!important}
#introGate.dismissed{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}
#introGate:not(.dismissed) .gate-card{display:flex!important;position:relative;z-index:100000!important}
#introGate:not(.dismissed) .entry-choices{display:flex!important;opacity:1!important;visibility:visible!important;gap:14px!important}
#introGate:not(.dismissed) .entry-choices button{display:block!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;position:relative;z-index:100001!important;min-height:58px!important}

/* v0.0.8f: stable hover; avoid transform/animation oscillation on entry controls */
#introGate:not(.dismissed) .entry-choices button,
#introGate:not(.dismissed) .entry-choices button:hover,
#introGate:not(.dismissed) .entry-choices button:focus,
#introGate:not(.dismissed) .entry-choices button:active{
  animation:none!important;
  transform:none!important;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease!important;
  filter:none!important;
  outline-offset:4px;
}
#introGate:not(.dismissed) .entry-choices button:hover{
  border-color:#d9f8ff;
}
#introGate:not(.dismissed) #enterLightBtn:hover{background:#0b4059!important}
#introGate:not(.dismissed) #enterDarkBtn:hover{background:#57101e!important}

/* v0.0.8f layout polish and visibility recovery */
#introGate .gate-card{transform:translateY(8vh)!important}
#introGate:not(.dismissed) .entry-choices button,
#introGate:not(.dismissed) .entry-choices button:hover,
#introGate:not(.dismissed) .entry-choices button:focus,
#introGate:not(.dismissed) .entry-choices button:active{
  animation:none!important;transform:none!important;filter:none!important;
  transition:none!important;
}
#skipIntro{right:clamp(44px,8vw,112px)!important;bottom:clamp(48px,9vh,96px)!important}
#twProgressPanel .tw-matchup{display:block!important}
#twProgressPanel .tw-bar-wrap{height:58px!important;position:relative!important;display:flex!important;overflow:hidden!important;border-radius:4px!important;margin:8px 0 10px!important}
#twProgressPanel .tw-bar-left,#twProgressPanel .tw-bar-right{height:100%!important;display:block!important}
#twProgressPanel .tw-bar-left{background:linear-gradient(90deg,#147a9c,#42d8ff)!important}
#twProgressPanel .tw-bar-right{background:linear-gradient(90deg,#8d2635,#e34b5c)!important}
#twProgressPanel .tw-bar-wrap:after{content:"BESKAR CONSORTIUM  13,086  |  THEGALAXYOFTHESITH  3,133";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;color:#fff;font-size:clamp(10px,1.2vw,14px);font-weight:800;letter-spacing:.04em;text-shadow:0 1px 4px #000,0 0 8px #000;pointer-events:none}
#twProgressPanel .tw-team{display:none!important}
#tbProgressPanel .tb-chart{display:block!important;min-height:104px!important;visibility:visible!important;opacity:1!important}
#tbProgressPanel .tb-line-svg{display:block!important;width:100%!important;height:104px!important;overflow:visible}
#tbProgressPanel .tb-line-path{stroke:#55d9ff!important;stroke-width:2.5!important;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px #2bcaff88)}
#tbProgressPanel .tb-line-dot{fill:#c5f5ff!important;stroke:#168bb0!important;stroke-width:1.5}
#tbProgressPanel .tb-line-value,#tbProgressPanel .tb-line-date{fill:#e6f8ff!important;font-size:10px!important}
#tbProgressPanel .tb-gridline{stroke:#8eb6c4!important;stroke-opacity:.28!important;stroke-width:1}
/* Keep visibility gating, but leave opacity/transform/filter to the original reveal animations. */


#rosterPanel .roster-scroller,#rosterPanel .roster-track{visibility:visible!important;opacity:1!important}
#rosterPanel .roster-member{flex:0 0 auto!important;visibility:visible!important;opacity:1!important}
#tbProgressPanel .tb-chart-block{display:block!important;visibility:visible!important;opacity:1!important}

/* v0.0.8f: layout correction, dependable visible roster/charts, non-overlapping panels */
#introGate .gate-card{transform:translateY(15vh)!important}
#activeRosterPanel{top:clamp(145px,21vh,205px)!important;left:clamp(14px,2vw,28px)!important;width:min(330px,calc(100% - 28px))!important}
#rosterPanel{left:clamp(14px,2vw,28px)!important;right:auto!important;bottom:clamp(14px,2vh,24px)!important;width:min(48vw,610px)!important;z-index:8!important}
#rosterPanel .roster-scroller{height:clamp(150px,22vh,205px)!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin!important;scrollbar-color:#3acbff66 transparent!important}
#rosterPanel .roster-track{display:flex!important;width:max-content!important;min-width:100%!important;transform:none!important;gap:12px!important}
#rosterPanel .roster-member{display:flex!important;flex-direction:column!important;flex:0 0 100px!important;min-height:130px!important;align-items:center!important;justify-content:flex-start!important;background:#071a28!important;border:1px solid #53d7ff66!important;border-radius:4px!important;color:#e8f8ff!important}
#rosterPanel .roster-member img{display:block!important;width:54px!important;height:54px!important;object-fit:cover!important}
#rosterPanel .roster-member .member-name{display:block!important;max-width:92px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#e8f8ff!important}
#rosterPanel .roster-member .member-gp{display:block!important;color:#a6edff!important}
#twProgressPanel{top:clamp(330px,43vh,430px)!important;bottom:auto!important;left:auto!important;right:clamp(14px,2vw,28px)!important;width:min(46vw,560px)!important;z-index:8!important}
#tbProgressPanel{top:auto!important;bottom:clamp(14px,2vh,24px)!important;left:auto!important;right:clamp(14px,2vw,28px)!important;width:min(46vw,560px)!important;height:auto!important;min-height:255px!important;z-index:7!important;padding:15px 18px!important}
#tbProgressPanel .tb-chart-block{display:block!important;margin-top:8px!important;padding:7px 9px!important}
#tbProgressPanel .tb-chart{display:block!important;height:86px!important;min-height:86px!important;overflow:visible!important;border:0!important}
#tbProgressPanel .tb-line-svg{display:block!important;width:100%!important;height:86px!important;overflow:visible!important}
#tbProgressPanel .tb-line-path{stroke:#55d9ff!important;stroke-width:3!important;fill:none!important}
#tbProgressPanel .tb-line-dot{fill:#d9faff!important;stroke:#159bc3!important;stroke-width:1.5!important}
#tbProgressPanel .tb-line-value,#tbProgressPanel .tb-line-date{fill:#f0fbff!important;font-size:11px!important}
#tbProgressPanel .tb-gridline{stroke:#9ac6d5!important;stroke-opacity:.35!important}
#twProgressPanel .tw-matchup{display:block!important}
#twProgressPanel .tw-team{display:block!important;text-align:left!important;margin-bottom:3px!important}
#twProgressPanel .tw-team-name{display:block!important;font-size:11px!important;color:#d4edf5!important}
#twProgressPanel .tw-team strong{display:none!important}
#twProgressPanel .tw-bar-wrap{height:46px!important;position:relative!important;display:flex!important;overflow:hidden!important;border-radius:4px!important;margin:7px 0 4px!important}
#twProgressPanel .tw-bar-left,#twProgressPanel .tw-bar-right{height:100%!important;display:block!important}
#twProgressPanel .tw-bar-left{background:linear-gradient(90deg,#147a9c,#42d8ff)!important}
#twProgressPanel .tw-bar-right{background:linear-gradient(90deg,#8d2635,#e34b5c)!important}
#twProgressPanel .tw-bar-wrap:after{content:"13,086     |     3,133";position:absolute;inset:0;display:flex;align-items:center;justify-content:space-around;text-align:center;color:#fff;font-size:clamp(12px,1.35vw,16px);font-weight:900;letter-spacing:.04em;text-shadow:0 1px 4px #000,0 0 8px #000;pointer-events:none}
#twProgressPanel .tb-note{margin-top:5px!important}
/* Build 0.0.8j: retain the original flicker/power-on effect when dashboard elements appear. */

@media(max-width:800px){
 #activeRosterPanel{top:clamp(140px,21vh,190px)!important;width:min(300px,calc(100% - 28px))!important}
 #rosterPanel{left:12px!important;right:12px!important;bottom:12px!important;width:auto!important}
 #twProgressPanel{top:clamp(330px,45vh,410px)!important;left:12px!important;right:12px!important;width:auto!important}
 #tbProgressPanel{left:12px!important;right:12px!important;bottom:12px!important;width:auto!important;position:relative!important;top:auto!important;margin-top:20px!important}
}

/* v0.0.8g: full static roster, reliable drag scrolling, side-aware Territory War stats */
#rosterPanel .roster-scroller{height:clamp(150px,16vh,205px)!important;overflow-x:auto!important;overflow-y:hidden!important}
#rosterPanel .roster-track{display:flex!important;flex-wrap:nowrap!important;width:max-content!important;min-width:100%!important;transform:none!important}
#rosterPanel .roster-member{flex:0 0 100px!important}
.guild-tw-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.guild-tw-stat{min-width:0;padding:8px 9px;border-left:1px solid #51d9ff55;background:#071b2870}
.guild-tw-stat span{display:block;font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.guild-tw-stat strong{display:block;font-size:clamp(18px,1.8vw,24px);color:#a6edff;text-shadow:0 0 12px #20bfff58;margin-top:4px}
@media(max-width:700px){.guild-tw-stat span{font-size:8px}.guild-tw-row{gap:6px}}


/* Build 0.0.8f: roster panel matches the Galactic Power panel width */
#rosterPanel{left:auto;right:clamp(14px,2vw,28px);width:min(38%,460px);box-sizing:border-box}
@media(max-width:700px){#rosterPanel{left:12px;right:12px;width:auto}}

/* v0.0.8g hard overrides */
#rosterPanel .roster-scroller{display:block!important;width:100%!important;height:clamp(150px,16vh,205px)!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:normal!important;touch-action:pan-x!important;cursor:grab!important;scrollbar-width:thin!important;scrollbar-color:var(--cyan) transparent!important;overscroll-behavior-x:contain!important;}
#rosterPanel .roster-scroller.dragging{cursor:grabbing!important;scroll-behavior:auto!important;}
#rosterPanel .roster-track{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:stretch!important;width:max-content!important;min-width:max-content!important;max-width:none!important;transform:none!important;transition:none!important;}
#rosterPanel .roster-member{display:block!important;position:relative!important;flex:0 0 100px!important;width:100px!important;min-width:100px!important;max-width:100px!important;}
#rosterPanel .roster-member img{pointer-events:none!important;-webkit-user-drag:none!important;}
#rosterPanel .roster-member .member-name,#rosterPanel .roster-member .member-gp{pointer-events:none!important;}
.guild-tw-stat{border-left-color:color-mix(in srgb,var(--cyan) 34%,transparent)!important;background:color-mix(in srgb,var(--ink) 45%,transparent)!important;}
.guild-tw-stat strong{color:var(--cyan)!important;text-shadow:0 0 12px color-mix(in srgb,var(--cyan) 35%,transparent)!important;}
.guild-tw-row{color:var(--text)!important;}
body.dark-side .guild-tw-stat{border-left-color:#ff4b5d77!important;background:#25081070!important;}
body.dark-side .guild-tw-stat strong{color:#ffb0b6!important;text-shadow:0 0 12px #ff173558!important;}
@media(max-width:700px){#rosterPanel .roster-member{flex-basis:100px!important;width:100px!important;min-width:100px!important;}}


/* v0.0.8h: scrollbar-free, pointer-draggable guild roster */
#rosterPanel{pointer-events:auto!important;}
#rosterPanel .roster-scroller{
  display:block!important;position:relative!important;width:100%!important;
  height:clamp(150px,16vh,205px)!important;overflow-x:auto!important;overflow-y:hidden!important;
  scrollbar-width:none!important;-ms-overflow-style:none!important;
  scroll-behavior:auto!important;overscroll-behavior-x:contain!important;
  touch-action:pan-x!important;cursor:grab!important;user-select:none!important;
  -webkit-user-select:none!important;pointer-events:auto!important;
}
#rosterPanel .roster-scroller::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;}
#rosterPanel .roster-scroller.dragging{cursor:grabbing!important;scroll-behavior:auto!important;}
#rosterPanel .roster-track{
  display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:stretch!important;
  width:max-content!important;min-width:max-content!important;max-width:none!important;
  transform:none!important;transition:none!important;gap:12px!important;pointer-events:auto!important;
}
#rosterPanel .roster-member{
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;
  flex:0 0 100px!important;width:100px!important;min-width:100px!important;max-width:100px!important;
  text-align:center!important;pointer-events:auto!important;
}
#rosterPanel .roster-member img{
  display:block!important;width:54px!important;height:54px!important;object-fit:cover!important;
  object-position:center center!important;margin:0 auto 0!important;align-self:center!important;
  pointer-events:none!important;-webkit-user-drag:none!important;
}
#rosterPanel .roster-member .member-name,#rosterPanel .roster-member .member-gp{pointer-events:none!important;text-align:center!important;width:100%!important;}

/* Territory War: team names share one row; each score sits inside its own bar segment */
#twProgressPanel .tw-matchup{display:block!important;}
#twProgressPanel .tw-team-labels{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:5px 0 7px!important;}
#twProgressPanel .tw-team-labels .tw-team-name{display:block!important;max-width:50%!important;font-size:11px!important;line-height:1.3!important;color:#d4edf5!important;}
#twProgressPanel .tw-team-labels .opponent-name{text-align:right!important;margin-left:auto!important;}
#twProgressPanel .tw-bar-wrap{height:46px!important;position:relative!important;display:flex!important;overflow:hidden!important;border-radius:4px!important;margin:0 0 4px!important;}
#twProgressPanel .tw-bar-left,#twProgressPanel .tw-bar-right{height:100%!important;display:flex!important;align-items:center!important;box-sizing:border-box!important;min-width:0!important;}
#twProgressPanel .tw-bar-left{justify-content:flex-start!important;padding-left:12px!important;background:linear-gradient(90deg,#147a9c,#42d8ff)!important;}
#twProgressPanel .tw-bar-right{justify-content:flex-end!important;padding-right:8px!important;background:linear-gradient(90deg,#8d2635,#e34b5c)!important;}
#twProgressPanel .tw-bar-score{display:block!important;position:relative!important;color:#fff!important;font-size:clamp(11px,1.25vw,15px)!important;font-weight:900!important;white-space:nowrap!important;text-shadow:0 1px 4px #000,0 0 8px #000!important;z-index:1!important;}
#twProgressPanel .tw-bar-wrap:after{content:none!important;display:none!important;}
#twProgressPanel .tw-team{display:none!important;}
@media(max-width:700px){#twProgressPanel .tw-team-labels .tw-team-name{font-size:9px!important;}#twProgressPanel .tw-bar-wrap{height:40px!important;}#twProgressPanel .tw-bar-left{padding-left:7px!important;}#twProgressPanel .tw-bar-right{padding-right:5px!important;}#twProgressPanel .tw-bar-score{font-size:10px!important;}}

#twProgressPanel .tw-bar-left{width:80.7%!important}
#twProgressPanel .tw-bar-right{width:19.3%!important}

/* Build 0.0.8i: prevent first-paint dashboard flash before entry */


body.pre-entry #introGate:not(.dismissed){visibility:visible!important;opacity:1!important;pointer-events:auto!important}


/* Build 0.0.9a requested refinements */
#guildStatsPanel, #guildStatsPanel .panel-title, #guildStatsPanel .guild-stat,
#guildStatsPanel .guild-stat span, #guildStatsPanel .guild-stat strong,
#guildStatsPanel .guild-tw-row, #guildStatsPanel .guild-tw-stat {text-align:center!important;}
#guildStatsPanel .guild-stat-grid{justify-items:stretch!important;}
#guildStatsPanel .guild-stat{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;}
#centerBeskarLogo{position:absolute!important;z-index:5!important;top:clamp(82px,13vh,150px)!important;left:50%!important;transform:translateX(-50%)!important;width:clamp(100px,13vw,190px)!important;max-height:180px!important;display:flex!important;align-items:center!important;justify-content:center!important;pointer-events:none!important;}
#centerBeskarLogo img{display:block!important;width:100%!important;height:auto!important;max-height:165px!important;object-fit:contain!important;mix-blend-mode:screen;filter:drop-shadow(0 0 12px #ff26394a)!important;}

#twProgressPanel .tb-note{display:none!important;}
#twProgressPanel .tw-bar-left,#twProgressPanel .tw-bar-right{position:relative!important;overflow:hidden!important;}
#twProgressPanel .tw-bar-left,#twProgressPanel .tw-bar-right{animation:tw-color-pulse 5.7s steps(1,end) infinite;filter:none!important;}
#twProgressPanel .tw-bar-right{animation-delay:2.1s!important;}
#twProgressPanel .tw-bar-left:after,#twProgressPanel .tw-bar-right:after{content:none!important;display:none!important;}
@keyframes tw-color-pulse{0%,7%,10%,34%,37%,61%,100%{filter:brightness(1) saturate(1)}8%,9%,35%,36%,62%{filter:brightness(1.75) saturate(1.5) drop-shadow(0 0 5px currentColor)}}
#rosterPanel .roster-member{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;padding-top:8px!important;padding-bottom:8px!important;box-sizing:border-box!important;}
#rosterPanel .roster-member.leader{border:1px solid #ffd166!important;box-shadow:inset 0 0 16px #ffd16624,0 0 10px #ffd16630!important;}
#rosterPanel .roster-member.officer{border:1px solid #b48cff!important;box-shadow:inset 0 0 16px #b48cff22,0 0 9px #b48cff30!important;}
#rosterPanel .roster-member.leader img{border-color:#ffd166!important;}
#rosterPanel .roster-member.officer img{border-color:#b48cff!important;}
body.light-side #skipIntro{border-color:#65dfff!important;color:#e5faff!important;box-shadow:0 0 22px #00c8ff55!important;}
body.dark-side #skipIntro{border-color:#ff5266!important;color:#fff0f1!important;box-shadow:0 0 22px #ff173555!important;background:#250810e8!important;}
@media(max-width:800px){#centerBeskarLogo{top:clamp(82px,13vh,125px)!important;width:clamp(86px,18vw,130px)!important;}}

/* Live data states: never substitute a fabricated roster or guild statistics. */
.roster-data-state{display:flex;align-items:center;justify-content:center;min-width:240px;height:100%;padding:16px;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase;}

.history-status{font-size:10px;line-height:1.4;color:var(--muted);margin:-2px 0 8px;letter-spacing:.02em}.history-empty{min-height:40px;display:flex;align-items:center;font-size:10px;line-height:1.4;color:var(--muted);padding:6px 0}.tb-chart:has(.history-empty){min-height:40px}

.tw-result-date{grid-column:1/-1;color:var(--muted);font-size:.72rem;letter-spacing:.06em;margin-top:2px}.tw-bar-left,.tw-bar-right{min-width:0;display:flex;align-items:center;justify-content:center;transition:width .35s ease}.tw-bar-score{font-size:10px;font-weight:700;white-space:nowrap;color:#f2fbff;padding:0 4px}


/* Final command-center polish: centered emblem and information-first TB report. */
#centerBeskarLogo{
  position:absolute!important;z-index:6!important;top:clamp(8px,1.4vh,20px)!important;left:50%!important;
  width:clamp(170px,19vw,270px)!important;max-height:240px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;pointer-events:none!important;
  opacity:0!important;visibility:hidden!important;transform:translate(-50%,10px) scale(.94)!important;
  filter:blur(4px)!important;transition:opacity 2s ease,transform 2s ease,filter 2s ease,visibility 2s ease!important;
}
#centerBeskarLogo img{
  display:block!important;width:100%!important;height:auto!important;max-height:225px!important;object-fit:contain!important;
  mix-blend-mode:screen!important;filter:drop-shadow(0 0 10px #54dcff9c) drop-shadow(0 0 26px #28bfff70)!important;
}
body.light-side #centerBeskarLogo img{filter:drop-shadow(0 0 10px #65e8ffcc) drop-shadow(0 0 28px #20bfff99) drop-shadow(0 0 48px #b7f6ff40)!important}
body.dark-side #centerBeskarLogo img{filter:drop-shadow(0 0 10px #ff465bcc) drop-shadow(0 0 28px #e5102fba) drop-shadow(0 0 48px #ff163d70)!important}

#tbProgressPanel{max-height:none!important}
#tbProgressPanel .tb-info-list{display:grid;gap:9px;margin-top:8px}
#tbProgressPanel .tb-info-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #53d7ff36;background:linear-gradient(110deg,#071a28b8,#071a2860);border-left:2px solid #50d9ff99}
#tbProgressPanel .tb-info-row>div{display:flex;flex-direction:column;gap:5px;min-width:0}
#tbProgressPanel .tb-info-name{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#e8f8ff}
#tbProgressPanel .tb-info-date{font-size:10px;color:var(--muted)}
#tbProgressPanel .tb-info-stars{font-size:clamp(19px,2vw,25px);white-space:nowrap;color:#a6edff;text-shadow:0 0 12px #20bfff58}
body.dark-side #tbProgressPanel .tb-info-row{border-color:#ff465b42;border-left-color:#ff5968}
body.dark-side #tbProgressPanel .tb-info-stars{color:#ffadb4;text-shadow:0 0 12px #ff263b66}
body.dark-side #centerBeskarLogo img{mix-blend-mode:screen!important}


/* Build 0.1.0: responsive non-overlapping command-center layout */
@media (min-width: 801px) {
  .shell { min-height:100vh; }
  .hero { position:absolute!important;top:clamp(20px,3vh,38px)!important;left:clamp(14px,2vw,28px)!important;width:min(390px,calc(50% - 42px))!important;z-index:4!important; }
  .hero .frame { width:100%!important;box-sizing:border-box!important; }
  #guildStatsPanel { top:clamp(20px,3vh,38px)!important;right:clamp(14px,2vw,28px)!important;left:auto!important;width:min(390px,calc(50% - 42px))!important;box-sizing:border-box!important; }
  #activeRosterPanel { top:clamp(230px,29vh,300px)!important;left:clamp(14px,2vw,28px)!important;width:min(390px,calc(50% - 42px))!important;box-sizing:border-box!important; }
  #rosterPanel { top:auto!important;bottom:clamp(14px,2vh,26px)!important;left:clamp(14px,2vw,28px)!important;right:auto!important;width:min(390px,calc(50% - 42px))!important;box-sizing:border-box!important; }
  #tbProgressPanel { top:auto!important;bottom:clamp(14px,2vh,26px)!important;left:auto!important;right:clamp(14px,2vw,28px)!important;width:min(390px,calc(50% - 42px))!important;height:auto!important;min-height:0!important;max-height:none!important;box-sizing:border-box!important; }
  #tbProgressPanel .tb-info-row { padding:9px 10px!important; }
  #twProgressPanel { top:clamp(245px,30vh,315px)!important;bottom:auto!important;left:auto!important;right:clamp(14px,2vw,28px)!important;width:min(390px,calc(50% - 42px))!important;box-sizing:border-box!important; }
  #centerBeskarLogo { top:clamp(20px,3vh,38px)!important;margin-top:0!important; }
}
#centerBeskarLogo img,
body.light-side #centerBeskarLogo img,
body.dark-side #centerBeskarLogo img {
  filter:drop-shadow(0 0 5px #000) drop-shadow(0 0 13px #000) drop-shadow(0 0 25px #000)!important;
}
#twProgressPanel .tw-team-labels { display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important; }
#twProgressPanel .tw-team-labels .tw-team-name { flex:1 1 0!important;min-width:0!important;max-width:42%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important; }
#twProgressPanel .tw-team-labels .opponent-name { text-align:right!important; }
#twProgressPanel .tw-result-date { flex:0 1 auto!important;grid-column:auto!important;margin:0!important;text-align:center!important;white-space:nowrap!important;font-size:clamp(8px,.72vw,10px)!important;letter-spacing:0!important; }
#twProgressPanel .tw-bar-left { width:var(--tw-left-width,50%)!important; }
#twProgressPanel .tw-bar-right { width:var(--tw-right-width,50%)!important; }
#rosterPanel .roster-member.leader {border-color:#ffd166!important;box-shadow:inset 0 0 18px #ffd16635,0 0 15px #ffd16680!important;}
#rosterPanel .roster-member.officer {border-color:#b48cff!important;box-shadow:inset 0 0 18px #b48cff32,0 0 14px #b48cff80!important;}
@media(max-width:800px) {
  .shell { position:relative!important;min-height:100vh!important;height:auto!important;padding:12px!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;gap:12px!important; }
  .hero,#activeRosterPanel,#guildStatsPanel,#rosterPanel,#twProgressPanel,#tbProgressPanel {
    position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
    width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;
    margin:0!important;box-sizing:border-box!important;transform:none!important;
  }
  .hero { display:block!important;order:1!important; }
  #activeRosterPanel { order:2!important; }
  #guildStatsPanel { order:3!important; }
  #twProgressPanel { order:4!important; }
  #rosterPanel { order:5!important; }
  #tbProgressPanel { order:6!important; }
  #rosterPanel .roster-scroller {height:clamp(125px,20vh,180px)!important;}
  #centerBeskarLogo { position:relative!important;top:auto!important;left:auto!important;transform:none!important;width:clamp(100px,30vw,155px)!important;max-height:120px!important;margin:0 auto 8px!important;order:0!important; }
  #centerBeskarLogo img {max-height:120px!important;}
  #twProgressPanel .tw-team-labels .tw-team-name {font-size:10px!important;}
  #twProgressPanel .tw-result-date {font-size:9px!important;}
}

@media(min-width:801px){
 #rosterPanel,#tbProgressPanel{height:clamp(260px,29vh,310px)!important;min-height:clamp(260px,29vh,310px)!important;box-sizing:border-box!important;}
 #rosterPanel .roster-scroller{height:clamp(145px,16vh,180px)!important;}
}


/* Build 0.1.1: grid-based responsive layout, guild GP timeline, wider roster, role labels */
.gp-history-wrap{margin-top:12px;padding-top:10px;border-top:1px solid #53d7ff30}
.gp-history-heading{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.gp-history-chart{display:block;width:100%;height:100px;overflow:visible}
.gp-history-chart text{font-family:Arial,sans-serif;fill:var(--muted);font-size:10px;letter-spacing:.02em}
.gp-history-chart .gp-chart-axis{stroke:#53d7ff45;stroke-width:1}
.gp-history-chart .gp-chart-line{fill:none;stroke:var(--cyan);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px #35cfff75)}
.gp-history-chart .gp-chart-dot{fill:#eafaff;stroke:var(--cyan);stroke-width:2}
.gp-history-chart .gp-chart-value{fill:var(--text);font-size:9px}
.tw-results{display:grid;gap:12px}
.tw-result-card{min-width:0;padding:9px 10px 10px;border:1px solid #53d7ff36;background:linear-gradient(110deg,#071a28b8,#071a2860)}
.tw-result-card .tw-team-labels{margin:0 0 7px!important}
.tw-result-card .tw-bar-wrap{height:40px!important;margin:0!important}
.tw-result-card .tw-bar-left,.tw-result-card .tw-bar-right{min-width:0!important;overflow:hidden!important}
.tw-result-card .tw-bar-left{background:linear-gradient(90deg,#147a9c,#42d8ff)!important}
.tw-result-card .tw-bar-right{background:linear-gradient(90deg,#8d2635,#e34b5c)!important}
.tw-result-card .tw-result-date{font-size:9px!important}
.tw-result-card .tw-team-name{font-size:10px!important}
#rosterPanel .member-role{font-size:9px;font-weight:800;letter-spacing:.13em;margin-top:1px;color:#c6e4ee}
#rosterPanel .member-role.leader{color:#ffd166;text-shadow:0 0 8px #ffd16670}
#rosterPanel .member-role.officer{color:#c9a8ff;text-shadow:0 0 8px #b48cff70}
#centerBeskarLogo{width:min(330px,32vw)!important;max-width:330px!important;max-height:none!important;top:12px!important;left:50%!important;transform:translate(-50%,10px) scale(.94)!important}
#centerBeskarLogo img{width:100%!important;max-height:none!important;animation:beskarFloat 5.2s ease-in-out infinite!important}
@keyframes beskarFloat{0%,100%{translate:0 0}50%{translate:0 -9px}}
@media(min-width:801px){
 .shell{width:100%!important;max-width:1600px!important;min-height:100vh!important;height:auto!important;margin:0 auto!important;padding:clamp(22px,3vh,38px) clamp(18px,2.5vw,36px) 28px!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:"gp stats" "members tw" "roster roster" "tb tb"!important;align-content:start!important;align-items:stretch!important;column-gap:clamp(24px,4vw,64px)!important;row-gap:clamp(18px,2.4vh,28px)!important}
 .hero,#guildStatsPanel,#activeRosterPanel,#twProgressPanel,#rosterPanel,#tbProgressPanel{position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;box-sizing:border-box!important;align-self:stretch!important}
 .hero{grid-area:gp!important;z-index:4!important}.hero .frame{width:100%!important}
 #guildStatsPanel{grid-area:stats!important;z-index:4!important}
 #activeRosterPanel{grid-area:members!important;z-index:4!important}
 #twProgressPanel{grid-area:tw!important;z-index:4!important}
 #rosterPanel{grid-area:roster!important;z-index:4!important}
 #tbProgressPanel{grid-area:tb!important;z-index:4!important}
 #rosterPanel .roster-scroller{height:clamp(150px,20vh,220px)!important}
 #centerBeskarLogo{position:absolute!important;z-index:6!important;top:clamp(14px,2vh,26px)!important;left:50%!important;pointer-events:none!important}
}
@media(max-width:800px){
 .shell{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"logo" "gp" "stats" "tw" "members" "roster" "tb"!important;gap:14px!important;padding:12px!important;height:auto!important;min-height:100vh!important;overflow:visible!important}
 .hero,#guildStatsPanel,#activeRosterPanel,#twProgressPanel,#rosterPanel,#tbProgressPanel{position:relative!important;inset:auto!important;width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;transform:none!important;box-sizing:border-box!important}
 .hero{grid-area:gp!important;order:initial!important}.hero .frame{width:100%!important}
 #guildStatsPanel{grid-area:stats!important;order:initial!important}
 #activeRosterPanel{grid-area:members!important;order:initial!important}
 #twProgressPanel{grid-area:tw!important;order:initial!important}
 #rosterPanel{grid-area:roster!important;order:initial!important}
 #tbProgressPanel{grid-area:tb!important;order:initial!important}
 #centerBeskarLogo{position:relative!important;grid-area:logo!important;order:initial!important;display:flex!important;width:min(330px,88vw)!important;max-width:330px!important;max-height:none!important;height:auto!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;margin:0 auto!important;transform:none!important;justify-self:center!important;align-self:center!important}
 #centerBeskarLogo img{max-height:none!important;width:100%!important}
 #rosterPanel .roster-scroller{height:clamp(145px,22vh,190px)!important}
 .tw-result-card .tw-team-labels{gap:5px!important}
 .tw-result-card .tw-team-name{font-size:9px!important}
 .tw-result-card .tw-result-date{font-size:8px!important}
}
@media(prefers-reduced-motion:reduce){#centerBeskarLogo img{animation:none!important}}


/* Build 0.1.2 layout and analytics refinements */
#hero,#guildStatsPanel,#twProgressPanel,#activeRosterPanel,#rosterPanel{box-sizing:border-box;max-width:calc(100vw - 24px)}
.hero{width:min(500px,calc(100% - 28px))!important}
#guildStatsPanel{width:min(500px,calc(100% - 28px))!important;right:clamp(14px,2vw,28px)!important;left:auto!important}
#twProgressPanel{width:min(400px,calc(100% - 28px))!important;right:clamp(14px,2vw,28px)!important;left:auto!important}
#activeRosterPanel{width:min(400px,calc(100% - 28px))!important}
#rosterPanel{width:min(500px,calc(100% - 28px))!important}
#centerBeskarLogo{top:200px!important}
#centerBeskarLogo img{animation:beskarFloat 5.2s ease-in-out infinite!important}
.gp-value-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.gp-daily-change{font-size:clamp(13px,1.3vw,18px);font-weight:800;letter-spacing:.03em;color:var(--muted);display:flex;flex-direction:column;line-height:1.1}
.gp-daily-change small{font-size:9px;letter-spacing:.18em;margin-top:5px;color:var(--muted)}
.gp-daily-change.positive{color:#65eaff;text-shadow:0 0 12px #49dcff55}
.gp-daily-change.negative{color:#ff6574;text-shadow:0 0 12px #ff465455}
#activeRosterPanel .panel-title,#activeRosterPanel .stat-value,#activeRosterPanel .recruitment,#activeRosterPanel .contact-line{font-size:clamp(14px,1.1vw,19px)!important}
#activeRosterPanel .stat-value{font-size:clamp(26px,2vw,34px)!important}
#activeRosterPanel .contact-line{font-weight:800;color:var(--text)!important;letter-spacing:.04em;text-shadow:0 0 10px #50d9ff44}
#activeRosterPanel .recruitment strong{animation:recruitmentPulse 3.7s ease-in-out infinite}
@keyframes recruitmentPulse{0%,78%,100%{opacity:1;text-shadow:none}84%{opacity:.25;text-shadow:0 0 10px currentColor}90%{opacity:1;text-shadow:0 0 12px currentColor}}
#guildStatsPanel .analytics-tb-list{margin-top:14px;padding-top:10px;border-top:1px solid #53d7ff35;display:grid;gap:8px}
#guildStatsPanel .tb-info-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;background:#06172375;border:1px solid #53d7ff24}
#guildStatsPanel .tb-info-name{display:block;font-size:11px;font-weight:700;color:var(--text)}
#guildStatsPanel .tb-info-date{display:block;font-size:9px;color:var(--muted);margin-top:3px}
#guildStatsPanel .tb-info-stars{font-size:18px;color:var(--cyan);white-space:nowrap}
#rosterPanel .roster-member.leader{border-color:#ffd66b!important;box-shadow:0 0 14px #ffd66b44,inset 0 0 12px #ffd66b12!important}
#rosterPanel .roster-member.officer{border-color:#b7a0ff!important;box-shadow:0 0 14px #b7a0ff44,inset 0 0 12px #b7a0ff12!important}
@media(max-width:700px){
 #hero,#guildStatsPanel,#twProgressPanel,#activeRosterPanel,#rosterPanel{position:relative!important;inset:auto!important;width:100%!important;max-width:500px!important;margin:12px auto!important}
 .shell{display:flex!important;flex-direction:column!important;gap:10px!important;padding:12px!important}
 #centerBeskarLogo{position:relative!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;width:min(330px,88vw)!important;margin:10px auto 14px!important;transform:none!important;order:1!important}
 #hero{order:0!important} #activeRosterPanel{order:2!important} #guildStatsPanel{order:3!important} #twProgressPanel{order:4!important} #rosterPanel{order:5!important}
 #guildStatsPanel .analytics-tb-list{gap:6px}
}
@media(prefers-reduced-motion:reduce){#activeRosterPanel .recruitment strong{animation:none!important}}


/* Build 0.1.3: reliable right-column alignment and full-width roster */
@media(min-width:801px){
  .shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:clamp(24px,4vw,64px)!important;align-items:start!important}
  #guildStatsPanel{grid-column:2!important;justify-self:end!important;align-self:start!important;width:min(500px,100%)!important;max-width:500px!important;margin-left:auto!important;margin-right:0!important}
  #twProgressPanel{grid-column:2!important;justify-self:end!important;align-self:start!important;width:min(400px,100%)!important;max-width:400px!important;margin-left:auto!important;margin-right:0!important}
  #rosterPanel{grid-column:1 / -1!important;justify-self:stretch!important;width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important}
}
@media(max-width:800px){#rosterPanel{width:100%!important;max-width:none!important}}


/* Build 0.1.4: exact panel edges, centered logo, role mapping and panel sizing */
@media(min-width:801px){
  .shell{max-width:1400px!important;}
  #guildStatsPanel,#twProgressPanel{right:0!important;margin-right:0!important;justify-self:end!important;}
  #centerBeskarLogo{left:50%!important;right:auto!important;transform:translateX(-50%)!important;}
}
#hero,#guildStatsPanel{min-height:360px!important;}
#activeRosterPanel .recruitment{font-size:clamp(19px,1.7vw,25px)!important;font-weight:800!important;}
#activeRosterPanel .recruitment strong{font-size:clamp(25px,2.3vw,34px)!important;color:#65eaff!important;text-shadow:0 0 10px #49dcff70!important;}
@media(max-width:800px){
  .shell{max-width:1400px!important;}
  #centerBeskarLogo{left:auto!important;right:auto!important;transform:none!important;margin-left:auto!important;margin-right:auto!important;}
  #hero,#guildStatsPanel{min-height:360px!important;}
}

/* Build 0.1.6: simplified dashboard and full guild roster grid */
#centerBeskarLogo{display:none!important}
@media(min-width:801px){
  .shell{width:100%!important;max-width:1400px!important;display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;grid-template-areas:"gp gp gp stats stats stats" "members members version version tw tw" "roster roster roster roster roster roster"!important;column-gap:clamp(14px,1.6vw,24px)!important;row-gap:clamp(18px,2.2vh,28px)!important;align-items:stretch!important}
  .hero{grid-area:gp!important;width:100%!important;max-width:none!important;min-width:0!important}
  .hero .frame{width:100%!important;height:360px!important;min-height:360px!important}
  #guildStatsPanel{grid-area:stats!important;width:100%!important;max-width:none!important;min-height:360px!important;height:360px!important;left:auto!important;right:auto!important;margin:0!important;justify-self:stretch!important}
  #activeRosterPanel{grid-area:members!important;width:100%!important;max-width:none!important;margin:0!important;justify-self:stretch!important}
  #versionPanel{grid-area:version!important;width:100%!important;max-width:none!important;margin:0!important;min-width:0!important}
  #twProgressPanel{grid-area:tw!important;width:100%!important;max-width:none!important;left:auto!important;right:auto!important;margin:0!important;justify-self:stretch!important}
  #rosterPanel{grid-area:roster!important;width:100%!important;max-width:none!important;margin:0!important;left:auto!important;right:auto!important;bottom:auto!important;height:auto!important;min-height:0!important}
}
#rosterPanel .roster-scroller{height:auto!important;max-height:none!important;overflow:visible!important;scrollbar-width:auto!important}
#rosterPanel .roster-track,#rosterPanel .roster-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important;overflow:visible!important;transform:none!important;width:100%!important;height:auto!important;max-height:none!important}
#rosterPanel .roster-member{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;min-width:0!important;width:100%!important;flex:none!important;flex-basis:auto!important;padding:12px 9px!important;border:1px solid #49cfff55!important;background:linear-gradient(145deg,#071723d9,#06111bd9)!important;clip-path:none!important;border-radius:5px!important;box-sizing:border-box!important;overflow-wrap:anywhere!important;text-align:center!important}
#rosterPanel .roster-member img{width:clamp(46px,5vw,72px)!important;height:clamp(46px,5vw,72px)!important;object-fit:cover!important;margin-bottom:7px!important}
#rosterPanel .roster-member .member-name{font-size:clamp(12px,.95vw,15px)!important;font-weight:800!important;line-height:1.25!important;min-height:2.5em!important;max-width:100%!important;overflow-wrap:anywhere!important}
#rosterPanel .roster-member .member-gp{font-size:12px!important;margin-top:5px!important}
#rosterPanel .member-role{font-size:10px!important;font-weight:900!important;letter-spacing:.12em!important;margin:6px 0!important}
#rosterPanel .member-time{display:flex!important;flex-direction:column!important;gap:1px!important;width:100%!important;margin-top:5px!important;padding-top:5px!important;border-top:1px solid #58cfff20!important;font-size:10px!important;line-height:1.25!important}
#rosterPanel .member-time span{font-size:8px!important;letter-spacing:.13em!important;color:var(--muted)!important;font-weight:800!important}
#rosterPanel .member-time strong{font-size:10px!important;color:var(--text)!important;font-weight:700!important}
#rosterPanel .roster-member.leader{border-color:#ffd66b!important;box-shadow:0 0 17px #ffd66b55,inset 0 0 14px #ffd66b17!important}
#rosterPanel .roster-member.officer{border-color:#b7a0ff!important;box-shadow:0 0 16px #b7a0ff55,inset 0 0 14px #b7a0ff17!important}
#rosterPanel .roster-member.at-risk{animation:memberAtRisk 1.15s ease-in-out infinite!important;border-color:#ff4b55!important}
#rosterPanel .member-time.activity-risk strong{color:#ff6974!important;text-shadow:0 0 8px #ff465455!important}
@keyframes memberAtRisk{0%,100%{box-shadow:0 0 3px #ff4b5550,inset 0 0 5px #ff4b5510;filter:brightness(1)}50%{box-shadow:0 0 19px #ff4b55bd,inset 0 0 14px #ff4b5538;filter:brightness(1.18)}}
@media(max-width:1100px){#rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:800px){
 .shell{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-areas:"gp gp" "stats stats" "members version" "tw tw" "roster roster"!important;gap:14px!important;padding:12px!important;max-width:100%!important}
 
 .hero{grid-area:gp!important}.hero .frame{height:auto!important;min-height:360px!important}
 #guildStatsPanel{grid-area:stats!important;min-height:360px!important}
 #activeRosterPanel{grid-area:members!important}
 #versionPanel{grid-area:version!important}
 #twProgressPanel{grid-area:tw!important}
 #rosterPanel{grid-area:roster!important}
 #rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
 #rosterPanel .roster-member{padding:9px 6px!important}
}
@media(max-width:480px){#rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(prefers-reduced-motion:reduce){#rosterPanel .roster-member.at-risk{animation:none!important;border-width:2px!important}}


/* Build 0.1.7: compact horizontal roster tiles and relative dates */
#rosterPanel .roster-track,#rosterPanel .roster-grid{gap:9px!important;align-items:stretch!important}
#rosterPanel .roster-member{display:grid!important;grid-template-columns:clamp(54px,5.2vw,76px) minmax(0,1fr)!important;grid-template-rows:1fr!important;align-items:center!important;justify-content:stretch!important;gap:10px!important;padding:10px!important;min-height:116px!important;text-align:left!important;}
#rosterPanel .roster-member>img{grid-column:1!important;grid-row:1!important;width:100%!important;height:auto!important;aspect-ratio:1/1!important;max-height:76px!important;object-fit:cover!important;margin:0!important;align-self:center!important;border-radius:4px!important;}
#rosterPanel .roster-member .member-details{grid-column:2!important;grid-row:1!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:3px!important;min-width:0!important;width:100%!important;}
#rosterPanel .roster-member .member-name{width:100%!important;min-height:0!important;text-align:left!important;font-size:clamp(12px,1vw,15px)!important;line-height:1.2!important;overflow-wrap:anywhere!important;}
#rosterPanel .roster-member .member-gp{width:100%!important;text-align:left!important;font-size:11px!important;margin:0!important;}
#rosterPanel .roster-member .member-role{margin:2px 0!important;font-size:9px!important;line-height:1.1!important;}
#rosterPanel .roster-member .member-times{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;width:100%!important;margin-top:3px!important;}
#rosterPanel .roster-member .member-time{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;min-width:0!important;width:100%!important;margin:0!important;padding-top:4px!important;border-top:1px solid #58cfff20!important;text-align:left!important;line-height:1.15!important;}
#rosterPanel .roster-member .member-time span{font-size:7px!important;letter-spacing:.08em!important;white-space:nowrap!important;}
#rosterPanel .roster-member .member-time strong{font-size:9px!important;white-space:normal!important;overflow-wrap:anywhere!important;}
@media(max-width:1100px){#rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:800px){#rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}#rosterPanel .roster-member{grid-template-columns:48px minmax(0,1fr)!important;min-height:108px!important;padding:8px!important;gap:8px!important}}
@media(max-width:480px){#rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:minmax(0,1fr)!important}}

/* Build 0.1.8: fix roster grid sizing — five equal-width columns on desktop */
#rosterPanel{width:100%!important;max-width:none!important;box-sizing:border-box!important}
#rosterPanel .roster-scroller{display:block!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;overflow:visible!important}
#rosterPanel .roster-track,#rosterPanel .roster-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important;width:100%!important;max-width:none!important;min-width:0!important;height:auto!important;max-height:none!important;overflow:visible!important;transform:none!important;box-sizing:border-box!important}
#rosterPanel .roster-member{display:grid!important;grid-template-columns:clamp(48px,4.5vw,64px) minmax(0,1fr)!important;grid-template-rows:auto!important;align-items:center!important;justify-content:stretch!important;gap:10px!important;width:100%!important;min-width:0!important;max-width:none!important;min-height:112px!important;height:auto!important;flex:none!important;flex-basis:auto!important;padding:9px!important;box-sizing:border-box!important;text-align:left!important;overflow:hidden!important}
#rosterPanel .roster-member>img{grid-column:1!important;grid-row:1!important;width:100%!important;height:auto!important;aspect-ratio:1/1!important;max-height:64px!important;object-fit:cover!important;margin:0!important;align-self:center!important}
#rosterPanel .roster-member .member-details{grid-column:2!important;grid-row:1!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:3px!important;min-width:0!important;width:100%!important}
#rosterPanel .roster-member .member-name{min-height:0!important;width:100%!important;max-width:100%!important;font-size:clamp(11px,.9vw,14px)!important;line-height:1.2!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:left!important}
#rosterPanel .roster-member .member-gp{width:100%!important;font-size:11px!important;margin:0!important;text-align:left!important}
#rosterPanel .roster-member .member-role{font-size:9px!important;line-height:1.1!important;margin:2px 0!important}
#rosterPanel .roster-member .member-times{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;width:100%!important;margin-top:3px!important}
#rosterPanel .roster-member .member-time{display:flex!important;flex-direction:column!important;align-items:flex-start!important;min-width:0!important;width:100%!important;margin:0!important;padding-top:3px!important;gap:2px!important;line-height:1.1!important}
#rosterPanel .roster-member .member-time span{font-size:7px!important;white-space:normal!important}
#rosterPanel .roster-member .member-time strong{font-size:9px!important;white-space:normal!important;overflow-wrap:anywhere!important}
@media(max-width:1100px) and (min-width:801px){#rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px!important}#rosterPanel .roster-member{grid-template-columns:44px minmax(0,1fr)!important;gap:7px!important;padding:7px!important;min-height:104px!important}}
@media(max-width:800px){#rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}#rosterPanel .roster-member{grid-template-columns:48px minmax(0,1fr)!important;min-height:104px!important;padding:8px!important;gap:8px!important}}
@media(max-width:480px){#rosterPanel .roster-track,#rosterPanel .roster-grid{grid-template-columns:minmax(0,1fr)!important}}


/* Build 0.1.9 — final dashboard layout and command-center details */
@media (min-width: 801px) {
  .shell {
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    grid-template-areas:
      "gp gp gp stats stats stats"
      "members members version version tw tw"
      "roster roster roster roster roster roster"!important;
    gap:14px!important;
    width:100%!important;
    max-width:1400px!important;
    min-height:100vh!important;
    height:auto!important;
    margin:0 auto!important;
    padding:clamp(20px,2.4vw,34px)!important;
    box-sizing:border-box!important;
    align-content:start!important;
  }
  
  .shell>.hero{grid-area:gp!important}
  .shell>.hero>.frame{width:100%!important;min-height:360px!important;height:360px!important;box-sizing:border-box!important}
  .shell>#guildStatsPanel{grid-area:stats!important;min-height:360px!important;height:360px!important}
  .shell>#activeRosterPanel{grid-area:members!important}
  .shell>#versionPanel{grid-area:version!important}
  .shell>#twProgressPanel{grid-area:tw!important}
  .shell>#rosterPanel{grid-area:roster!important}
}
@media (max-width:800px) {
  .shell {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-areas:"gp gp" "stats stats" "members version" "tw tw" "roster roster"!important;
    gap:12px!important;padding:12px!important;max-width:100%!important;width:100%!important;
    box-sizing:border-box!important;
  }
  
  .shell>.hero{grid-area:gp!important}
  .shell>.hero>.frame{min-height:360px!important;height:auto!important}
  .shell>#guildStatsPanel{grid-area:stats!important;min-height:360px!important;height:auto!important}
  .shell>#activeRosterPanel{grid-area:members!important}
  .shell>#versionPanel{grid-area:version!important}
  .shell>#twProgressPanel{grid-area:tw!important}
  .shell>#rosterPanel{grid-area:roster!important}
}
@media (max-width:520px) {
  .shell{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"gp" "stats" "members" "version" "tw" "roster"!important}
}
.shell .panel-heading-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;min-width:0!important}
.shell .panel-heading-row .panel-title{min-width:0!important;margin:0!important}
.gp-member-count{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto;padding:5px 9px;border:1px solid #5edfff40;background:#071a2870;border-radius:5px}
.gp-member-count>span,.gp-activity-stat>span{font-size:8px;letter-spacing:.16em;color:var(--muted);font-weight:800}
.gp-member-count strong{font-size:14px;color:var(--text);font-variant-numeric:tabular-nums}
.gp-activity-row{display:flex;justify-content:flex-end;margin-top:-4px;margin-bottom:3px}
.gp-activity-stat{display:flex;align-items:center;gap:9px;padding:3px 8px;border-left:2px solid var(--cyan);background:#071a2855}
.gp-activity-stat strong{font-size:15px;color:var(--cyan);font-variant-numeric:tabular-nums;text-shadow:0 0 10px #54dcff55}
#activeRosterPanel .active-roster-details{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important}
#activeRosterPanel .recruitment-status-line{display:flex;align-items:center;gap:8px;font-size:13px}
#activeRosterPanel .recruitment-status-line>span{color:var(--muted);font-weight:700}
#activeRosterPanel .recruitment{font-size:22px!important;line-height:1.1;font-weight:900;color:var(--cyan)!important;text-shadow:0 0 12px #43d9ff6b;letter-spacing:.12em;animation:recruitmentPulse 3.4s ease-in-out infinite}
#activeRosterPanel .contact-line{font-size:13px!important;color:var(--text)!important}
#activeRosterPanel .contact-line strong{font-size:15px;color:var(--cyan);letter-spacing:.04em}
#activeRosterPanel .danger-count-line{display:flex;align-items:baseline;gap:6px;padding:7px 9px;border:1px solid #ff475755;background:#ff23331a;color:#ffc1c5;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
#activeRosterPanel .danger-count-line strong{font-size:22px;color:#ff6872;text-shadow:0 0 12px #ff243f90}
#activeRosterPanel .recruitment-guidance{margin:0;font-size:11px;line-height:1.45;color:var(--text);opacity:.88}
#activeRosterPanel .activity-rule{padding-top:7px;border-top:1px solid #53d7ff24;font-size:11px;color:var(--muted)}
#activeRosterPanel .activity-rule strong{color:var(--cyan);font-size:13px}
@keyframes recruitmentPulse{0%,100%{opacity:1}50%{opacity:.72;text-shadow:0 0 18px #43d9ffb0}}
#versionPanel .version-content{display:flex;flex-direction:column;gap:10px;margin-top:10px;min-width:0}


#versionPanel .version-line{font-size:11px;line-height:1.45;color:var(--muted);letter-spacing:.04em}
#versionPanel .version-line strong{color:var(--text);font-size:12px;font-weight:800}



#versionPanel #lastDataPull{display:inline-block;overflow-wrap:anywhere}
@keyframes datapadReveal{to{opacity:1;transform:translateY(0)}}
#guildStatsPanel .tb-info-row{position:relative!important;overflow:hidden!important;align-items:stretch!important;gap:10px!important}
#guildStatsPanel .tb-info-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
#guildStatsPanel .tb-info-date{text-align:left!important;margin-left:0!important;align-self:flex-start!important}
#guildStatsPanel .tb-star-track{height:5px;width:100%;overflow:hidden;border-radius:10px;background:#020b13a8;margin-top:5px;box-shadow:inset 0 0 0 1px #65dcff24}
#guildStatsPanel .tb-star-progress{display:block;height:100%;width:var(--target-width);border-radius:inherit;background:linear-gradient(90deg,#117d9e,#4bdfff);box-shadow:0 0 9px #40d9ff85}
#guildStatsPanel .tb-star-progress.star-fill-first{animation:starFillIn 1.15s ease-out both}
@keyframes starFillIn{from{width:0}to{width:var(--target-width)}}
#guildStatsPanel .tb-info-stars{position:relative;z-index:1;align-self:center;min-width:70px;text-align:right;font-variant-numeric:tabular-nums;font-size:14px!important}
#twProgressPanel .tw-team-labels .tw-result-date{margin-right:auto!important;text-align:left!important;order:-1!important;flex:0 0 auto!important}
#twProgressPanel .tw-bar-wrap{position:relative!important;isolation:isolate!important}
#twProgressPanel .tw-outcome{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);padding:4px 12px;border:1px solid #ffffff65;border-radius:3px;background:#06111bea;color:#fff;font-size:13px;line-height:1;font-weight:1000;letter-spacing:.18em;text-shadow:0 0 10px #fff8;box-shadow:0 0 15px #0009;pointer-events:none}
#twProgressPanel .tw-result-card.win .tw-outcome{color:#6af0ff;border-color:#62e7ff99;text-shadow:0 0 12px #27cfff;box-shadow:0 0 14px #27cfff44}
#twProgressPanel .tw-result-card.lose .tw-outcome{color:#ff7884;border-color:#ff697a99;text-shadow:0 0 12px #ff364f;box-shadow:0 0 14px #ff364f44}
#rosterPanel .roster-member.leader{border-color:#ffd66b!important;box-shadow:0 0 16px #ffd66b60,inset 0 0 15px #ffd66b20!important}
#rosterPanel .roster-member.officer{border-color:#b7a0ff!important;box-shadow:0 0 16px #b7a0ff60,inset 0 0 15px #b7a0ff20!important}
#rosterPanel .roster-member.at-risk{background:linear-gradient(125deg,#57131d9c,#1b0c18c9)!important;border-color:#ff4757!important;box-shadow:0 0 12px #ff243f55,inset 0 0 16px #ff243f22!important}
#rosterPanel .roster-member.at-risk .member-name{color:#ffdfe2!important;text-shadow:0 0 9px #ff344f5c}
@media(prefers-reduced-motion:reduce){#activeRosterPanel .recruitment{animation:none!important}}

/* Keep first-load effects paused behind the intro gate, then run them with the dashboard reveal. */


#guildStatsPanel .tb-star-progress.star-fill-first{animation-play-state:paused!important}



/* Build 0.2.0: compact paired TB results, guild news ticker, sync countdown and recent join highlight */
#guildStatsPanel .analytics-tb-list{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;align-items:stretch!important}
#guildStatsPanel .analytics-tb-list .tb-info-row{min-width:0!important;box-sizing:border-box!important;gap:7px!important;padding:8px!important}
#guildStatsPanel .analytics-tb-list .tb-info-copy{min-width:0!important;overflow:hidden!important}
#guildStatsPanel .analytics-tb-list .tb-info-name{font-size:clamp(9px,.78vw,11px)!important;line-height:1.3!important;overflow-wrap:anywhere}
#guildStatsPanel .analytics-tb-list .tb-info-stars{min-width:0!important;font-size:clamp(11px,1.1vw,14px)!important;white-space:nowrap!important}
#guildStatsPanel .guild-news-ticker{margin-top:12px;padding:8px 0 0;border-top:1px solid #53d7ff35;min-width:0;overflow:hidden}
#guildStatsPanel .guild-news-label{font-size:8px;font-weight:900;letter-spacing:.18em;color:var(--cyan);margin-bottom:6px}
#guildStatsPanel .guild-news-window{overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%)}
#guildStatsPanel .guild-news-track{display:flex;align-items:center;gap:20px;width:max-content;animation:guildNewsScroll 32s linear infinite;color:var(--text);font-size:10px;letter-spacing:.025em}
#guildStatsPanel .guild-news-track i{font-style:normal;color:var(--cyan);font-size:8px}
#guildStatsPanel .guild-news-ticker:hover .guild-news-track{animation-play-state:paused}
@keyframes guildNewsScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
#rosterPanel .roster-member.recent-join{border-color:#45e68a!important;background:linear-gradient(125deg,#073d2a9c,#071b19c9)!important;box-shadow:0 0 13px #28e98545,inset 0 0 14px #28e98518!important}
#rosterPanel .roster-member.recent-join .member-name{color:#caffdf!important;text-shadow:0 0 8px #28e98550}
#versionPanel .sync-countdown-line strong{color:var(--cyan);font-variant-numeric:tabular-nums}
@media(max-width:520px){#guildStatsPanel .analytics-tb-list{gap:6px!important}#guildStatsPanel .analytics-tb-list .tb-info-row{padding:6px!important;gap:4px!important}#guildStatsPanel .analytics-tb-list .tb-info-stars{font-size:10px!important}#guildStatsPanel .analytics-tb-list .tb-info-name{font-size:9px!important}}
@media(prefers-reduced-motion:reduce){#guildStatsPanel .guild-news-track{animation:none!important;white-space:normal;flex-wrap:wrap;width:auto}}


/* Build 0.2.1: news-only ticker, consistent titles, stable dashboard, roster hierarchy and compact score labels */
#guildStatsPanel .guild-news-ticker{padding-top:10px!important;min-height:30px!important;display:flex!important;align-items:center!important}
#guildStatsPanel .guild-news-window{width:100%!important}
#guildStatsPanel .guild-news-track{font-size:clamp(12px,1.05vw,16px)!important;font-weight:750!important;letter-spacing:.035em!important;gap:24px!important;animation-duration:48s!important}
#guildStatsPanel .guild-news-track i{font-size:11px!important;flex:none!important}
/* All panel headings follow the Beskar Consortium GP title treatment. */
.shell .panel-title,.shell .roster-meta .panel-title{font-size:15px!important;letter-spacing:.22em!important;line-height:1.25!important;font-weight:800!important}
/* Keep the dashboard in place after entry: no slide/blur/reveal movement. */

#versionPanel{position:relative!important;overflow:hidden!important;padding-bottom:58px!important}
#versionPanel .version-content{position:relative!important;z-index:1!important;padding-right:2px!important}


#versionPanel .guild-founded-line{max-width:calc(100% - 64px)!important}
#rosterPanel .roster-member.leader{background:linear-gradient(125deg,#59451a77,#101a20e8)!important;border-color:#ffd66b!important;box-shadow:0 0 16px #ffd66b50,inset 0 0 18px #ffd66b20!important}
#rosterPanel .roster-member.officer{background:linear-gradient(125deg,#382b6677,#101a20e8)!important;border-color:#b7a0ff!important;box-shadow:0 0 16px #b7a0ff50,inset 0 0 18px #b7a0ff20!important}
#rosterPanel .roster-member.recent-join>img{border:2px solid #45e68a!important;box-shadow:0 0 10px #28e98565!important;box-sizing:border-box!important}
#rosterPanel .roster-member .member-details{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto auto!important;align-content:center!important;align-items:center!important;column-gap:6px!important;row-gap:3px!important}
#rosterPanel .roster-member .member-name{grid-column:1!important;grid-row:1!important;min-width:0!important}
#rosterPanel .roster-member .member-gp{grid-column:2!important;grid-row:1!important;width:auto!important;text-align:right!important;font-size:clamp(14px,1.15vw,19px)!important;font-weight:950!important;line-height:1.05!important;white-space:nowrap!important;color:#f0fbff!important;text-shadow:0 0 8px #4bd7ff38!important}
#rosterPanel .roster-member .member-role{grid-column:1 / -1!important;grid-row:2!important;justify-self:start!important}
#rosterPanel .roster-member .member-times{grid-column:1 / -1!important;grid-row:3!important}
#twProgressPanel .tw-bar-left{width:var(--tw-left-width)!important;flex:none!important;overflow:visible!important}
#twProgressPanel .tw-bar-right{width:var(--tw-right-width)!important;flex:none!important;overflow:visible!important}
#twProgressPanel .tw-bar-wrap{overflow:visible!important;isolation:isolate!important}
#twProgressPanel .tw-bar-score{z-index:3!important;max-width:100%!important;font-size:clamp(9px,1vw,14px)!important}
#twProgressPanel .tw-bar-right .tw-bar-score{position:absolute!important;right:5px!important;top:50%!important;transform:translateY(-50%)!important;padding:2px 4px!important;border-radius:3px!important;background:#5e1720d9!important;box-shadow:0 1px 5px #0009!important}
@media(max-width:600px){#guildStatsPanel .guild-news-track{font-size:12px!important}#versionPanel .version-line{font-size:10px!important}#versionPanel .version-logo{width:46px!important;height:34px!important}#rosterPanel .roster-member .member-gp{font-size:13px!important}}


/* v0.2.2 update: clearer 24-hour metrics, roster sorting and stable entry controls */
#activeRosterPanel .danger-count-line strong,
#activeRosterPanel .active-roster-stat strong,
.gp-activity-stat strong#active24hCount{
  font-size:clamp(24px,2.8vw,36px)!important;
  line-height:1.1;
  text-shadow:0 0 14px #20bfff55;
}
.guild-stat .metric-24h{
  display:block;
  margin-top:4px;
  font-size:10px;
  line-height:1.35;
  letter-spacing:.035em;
  color:var(--muted);
  white-space:normal;
}
.guild-stat .metric-24h.positive{color:var(--green)}
.guild-stat .metric-24h.negative{color:var(--red)}
#versionPanel .guild-founded-line{margin-bottom:3px}
#versionPanel .sync-countdown-line strong{
  display:inline-block;
  font-size:clamp(16px,1.8vw,22px)!important;
  color:var(--cyan)!important;
  font-variant-numeric:tabular-nums;
  text-shadow:0 0 12px #20bfff55;
}
.roster-tools{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.roster-tools label{font-size:9px;color:var(--muted);letter-spacing:.14em}
#rosterSort{
  max-width:min(52vw,250px);
  padding:7px 10px;
  color:var(--text);
  background:#071a28;
  border:1px solid #49cfff66;
  border-radius:3px;
  font:inherit;
  font-size:11px;
  letter-spacing:.02em;
  outline:none;
}
#rosterSort:focus{border-color:var(--cyan);box-shadow:0 0 12px #20bfff35}
#rosterPanel .roster-member .member-gp{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:0;
  margin-top:2px;
  margin-left:auto;
  text-align:right;
  font-size:9px;
  color:var(--muted);
  line-height:1.15;
}
#rosterPanel .roster-member .member-gp strong{
  font-size:clamp(17px,1.5vw,23px);
  color:#dff8ff;
  line-height:1.05;
  font-weight:800;
}
#rosterPanel .roster-member .member-gp span{font-size:9px;letter-spacing:.15em;color:var(--muted)}
#rosterPanel .roster-member .member-details{width:100%;min-width:0}
#introGate.ready .entry-choices{animation:none!important;transform:none!important}
#introGate #enterLightBtn,#introGate #enterDarkBtn{animation:none!important;transition:background .18s ease,box-shadow .18s ease!important;transform:none!important}
#introGate #enterLightBtn:hover,#introGate #enterDarkBtn:hover{transform:none!important}
@media(max-width:700px){
  .roster-tools{gap:6px}
  #rosterSort{max-width:48vw;font-size:10px}
  .roster-tools label{display:none}
}

.gp-activity-stat>span{font-size:clamp(11px,1.1vw,14px)!important;letter-spacing:.1em!important}
.gp-activity-stat strong#active24hCount{display:block;margin-top:5px;font-size:clamp(30px,3.4vw,44px)!important}

/* v0.2.3: restore datapad power-on animations while keeping entry controls fixed. */



body.dashboard-ready #hero.reveal.visible{--panel-delay:0ms}
body.dashboard-ready #activeRosterPanel.reveal.visible{--panel-delay:180ms}
body.dashboard-ready #versionPanel.reveal.visible{--panel-delay:280ms}
body.dashboard-ready #guildStatsPanel.reveal.visible{--panel-delay:380ms}
body.dashboard-ready #twProgressPanel.reveal.visible{--panel-delay:480ms}
body.dashboard-ready #tbProgressPanel.reveal.visible{--panel-delay:580ms}
body.dashboard-ready #rosterPanel.reveal.visible{--panel-delay:680ms}
/* Sequentially load the Version text again; logo stays independent of the text stack. */








#versionPanel{padding-bottom:82px!important}
#versionPanel .version-content{padding-right:0!important}
#versionPanel .guild-founded-line{max-width:100%!important}
/* Active count returns to its previous, less dominant size. */
.gp-activity-stat strong#active24hCount{font-size:clamp(22px,2.1vw,30px)!important}
#activeRosterPanel .active-roster-stat strong,#activeRosterPanel .danger-count-line strong{font-size:clamp(22px,2.1vw,30px)!important}
/* Put each Analytics 24-hour delta to the right of its main value. */
#guildStatsPanel .guild-stat{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;align-items:end!important;column-gap:8px!important}
#guildStatsPanel .guild-stat>span{grid-column:1/-1!important;grid-row:1!important}
#guildStatsPanel .guild-stat>strong{grid-column:1!important;grid-row:2!important;min-width:0!important;font-size:clamp(17px,1.65vw,25px)!important}
#guildStatsPanel .guild-stat .metric-24h{grid-column:2!important;grid-row:2!important;align-self:center!important;margin:0!important;text-align:right!important;white-space:nowrap!important;font-size:clamp(9px,.78vw,11px)!important;color:var(--muted)!important}
#guildStatsPanel .guild-stat .metric-24h.positive{color:#66dcff!important}
#guildStatsPanel .guild-stat .metric-24h.negative{color:#ff7b88!important}
body.light-side #guildStatsPanel .guild-stat .metric-24h.positive{color:#76e5ff!important}
body.light-side #guildStatsPanel .guild-stat .metric-24h.negative{color:#ff8891!important}
body.dark-side #guildStatsPanel .guild-stat .metric-24h.positive{color:#ff9aa5!important}
body.dark-side #guildStatsPanel .guild-stat .metric-24h.negative{color:#ff4e62!important}
#guildStatsPanel .guild-news-track{ text-transform:uppercase!important }
body.light-side #guildStatsPanel .guild-news-track>span{color:#a8efff!important;text-shadow:0 0 8px #2ccfff42}
body.light-side #guildStatsPanel .guild-news-track>i{color:#57dfff!important}
body.dark-side #guildStatsPanel .guild-news-track>span{color:#ffc1c7!important;text-shadow:0 0 8px #ff334a4d}
body.dark-side #guildStatsPanel .guild-news-track>i{color:#ff6272!important}
#rosterPanel .roster-meta{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin-bottom:9px!important}
#rosterPanel .roster-heading-controls{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;min-width:0!important}
#rosterPanel .roster-meta .panel-title{margin:0!important;white-space:nowrap!important}
#rosterPanel #rosterSort{max-width:190px!important;width:auto!important;padding:5px 24px 5px 8px!important;font-size:10px!important;letter-spacing:.04em!important;text-transform:none!important}
#rosterPanel .roster-tools{display:none!important}
#rosterPanel .roster-member .member-gp{display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:center!important;grid-column:2!important;grid-row:1!important;max-width:100%!important;margin:0 0 0 auto!important;text-align:right!important;white-space:nowrap!important;line-height:1!important}
#rosterPanel .roster-member .member-gp strong{display:block!important;font-size:clamp(17px,1.5vw,23px)!important;line-height:1!important;max-width:100%!important}
#rosterPanel .roster-member .member-gp span{display:block!important;font-size:9px!important;line-height:1.1!important;margin-top:2px!important;text-align:right!important}
#introGate .entry-choices,#introGate #enterLightBtn,#introGate #enterDarkBtn{animation:none!important;transform:none!important;transition:background .18s ease,box-shadow .18s ease!important}
@media(max-width:600px){#versionPanel .version-logo{width:200px!important;max-width:42%!important;height:auto!important}#guildStatsPanel .guild-stat .metric-24h{font-size:8px!important}#rosterPanel .roster-heading-controls{gap:7px!important}#rosterPanel #rosterSort{max-width:135px!important;font-size:9px!important}}
@media(prefers-reduced-motion:reduce){}


/* v0.2.4: expanded three-column guild roster, weekly member deltas and compact TW history scroller. */
#rosterPanel .roster-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;align-items:stretch!important;overflow:visible!important;width:100%!important;}
#rosterPanel .roster-member{display:grid!important;grid-template-columns:clamp(58px,6vw,82px) minmax(0,1fr)!important;grid-template-rows:auto!important;align-items:start!important;gap:10px!important;min-width:0!important;width:100%!important;min-height:0!important;padding:12px!important;text-align:left!important;position:relative!important;overflow:hidden!important;}
#rosterPanel .roster-member>img{grid-column:1!important;grid-row:1!important;width:100%!important;height:auto!important;aspect-ratio:1!important;object-fit:cover!important;margin:0!important;border-radius:6px!important;}
#rosterPanel .roster-member .member-details{grid-column:2!important;grid-row:1!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto auto!important;gap:5px 8px!important;align-items:start!important;width:100%!important;min-width:0!important;text-align:left!important;}
#rosterPanel .roster-member .member-name{grid-column:1!important;grid-row:1!important;min-height:0!important;margin:0!important;text-align:left!important;overflow-wrap:anywhere!important;white-space:normal!important;font-size:clamp(12px,1vw,15px)!important;}
#rosterPanel .roster-member .member-role{grid-column:1!important;grid-row:2!important;justify-self:start!important;font-size:9px!important;}
#rosterPanel .roster-member .member-gp{grid-column:2!important;grid-row:1 / span 2!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:flex-start!important;white-space:nowrap!important;margin:0!important;line-height:1!important;}
#rosterPanel .roster-member .member-gp strong{font-size:clamp(17px,1.45vw,24px)!important;line-height:1!important;}
#rosterPanel .roster-member .member-gp span{font-size:9px!important;margin-top:2px!important;}
#rosterPanel .roster-member .member-week-change{font-size:10px!important;margin-top:4px!important;}
#rosterPanel .member-week-change.positive{color:#64dfff!important}#rosterPanel .member-week-change.negative{color:#ff6278!important}#rosterPanel .member-week-change.pending{color:var(--muted)!important}
#rosterPanel .member-extra-gp{grid-column:1/-1!important;grid-row:3!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;padding-top:5px!important;border-top:1px solid #5bdcff24!important;}
#rosterPanel .member-extra-gp>div{display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0!important;}
#rosterPanel .member-extra-gp span{font-size:8px!important;letter-spacing:.07em!important;color:var(--muted)!important;}
#rosterPanel .member-extra-gp strong{font-size:clamp(11px,.9vw,14px)!important;overflow-wrap:anywhere!important;}
#rosterPanel .roster-member .member-times{grid-column:1/-1!important;grid-row:4!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;margin-top:2px!important;}
#rosterPanel .roster-member .member-time{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;min-width:0!important;}
#rosterPanel .roster-member .member-time span{font-size:8px!important;letter-spacing:.06em!important;color:var(--muted)!important;}
#rosterPanel .roster-member .member-time strong{font-size:10px!important;white-space:normal!important;overflow-wrap:anywhere!important;}
#rosterPanel .roster-member.member-boot{animation:memberDatapadBoot .75s steps(1,end) both;animation-delay:var(--member-delay,0ms)}
@keyframes memberDatapadBoot{0%{opacity:0;filter:brightness(2.6) drop-shadow(0 0 14px #59e8ff);transform:translateY(7px)}25%{opacity:.5;filter:brightness(1.8)}42%{opacity:.25;filter:brightness(1.1)}61%{opacity:.95;filter:brightness(1.4) drop-shadow(0 0 7px #59e8ff)}100%{opacity:1;filter:none;transform:translateY(0)}}
#twProgressPanel .tw-results{display:block!important;max-height:225px!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:thin!important;scrollbar-color:#49d8ff55 transparent!important;overscroll-behavior:contain!important;}
#twProgressPanel .tw-results .tw-result-card{margin-bottom:10px!important;}
#twProgressPanel .tw-results .tw-result-card:last-child{margin-bottom:0!important;}
#versionPanel .version-logo{width:150px!important;height:auto!important;right:30px!important;bottom:40px!important;max-width:36%!important;z-index:0!important;}
#versionPanel .version-content{position:relative!important;z-index:1!important;padding-right:0!important;}
#versionPanel{isolation:isolate!important;}
@media(max-width:1000px){#rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:620px){#rosterPanel .roster-grid{grid-template-columns:minmax(0,1fr)!important;}#rosterPanel .roster-member{grid-template-columns:62px minmax(0,1fr)!important;}#versionPanel .version-logo{width:150px!important;max-width:34%!important;right:30px!important;bottom:40px!important;}}
@media(prefers-reduced-motion:reduce){#rosterPanel .roster-member.member-boot{animation:none!important;opacity:1!important;filter:none!important;transform:none!important}}


/* v0.2.5 refinements: inline metrics, four roster columns, steady flicker without tile movement. */
#guildStatsPanel .guild-stat .metric-24h{font-size:inherit!important;display:inline!important;margin-left:7px!important;white-space:nowrap!important;}
#rosterPanel .roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;}
#rosterPanel .roster-member.member-boot{animation:memberDatapadFlicker .9s steps(1,end) both!important;animation-delay:var(--member-delay,0ms)!important;transform:none!important;}
@keyframes memberDatapadFlicker{
  0%{opacity:.05;filter:brightness(2.8) drop-shadow(0 0 14px #59e8ff)}
  12%{opacity:.88;filter:brightness(.75)}
  23%{opacity:.22;filter:brightness(2.2)}
  37%{opacity:1;filter:brightness(1.7) drop-shadow(0 0 10px #59e8ff)}
  49%{opacity:.4;filter:brightness(.85)}
  63%{opacity:1;filter:brightness(1.45) drop-shadow(0 0 7px #59e8ff)}
  76%{opacity:.72;filter:brightness(.95)}
  100%{opacity:1;filter:none}
}
/* Restore the original 0.0.8j panel power-on flicker; keep panels stationary. */



#rosterPanel .roster-member.member-boot{transform:none!important}
.gp-activity-row .gp-activity-stat{display:flex!important;align-items:baseline!important;gap:10px!important;flex-wrap:nowrap!important}
.gp-activity-row .gp-activity-stat>span{display:inline!important;white-space:nowrap!important}
.gp-activity-row .gp-activity-stat>strong{display:inline!important;line-height:1!important}
@media(max-width:1000px){#rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:620px){#rosterPanel .roster-grid{grid-template-columns:minmax(0,1fr)!important}}
@media(prefers-reduced-motion:reduce){
 
 #rosterPanel .roster-member.member-boot{animation:none!important;opacity:1!important;filter:none!important;transform:none!important}
}


/* v0.2.6 animation restoration: match the original v0.1.7 datapad power-on flicker. */


/* Version text uses a clean terminal-like character reveal: no blur or sliding. */






/* v0.2.7: fix the entrance animation cascade; allow opacity keyframes to run. */







/* v0.2.8 regression repair and requested roster/metrics polish. */
/* Keep all dashboard panels present after entry; animate rather than suppress them. */



#activeRosterPanel,#twProgressPanel{display:block!important;}
/* Original panel flicker must remain visible; do not let reduced-motion or late rules cancel it. */
@media(prefers-reduced-motion:reduce){}
/* Rebuild Version as a dependable terminal line reveal, then bring sync and logo in last. */




#versionPanel .version-content{padding-bottom:18px!important;}
/* Compact analytics labels to the requested short format. */
#guildStatsPanel .guild-stat .metric-24h{font-size:inherit!important;white-space:nowrap!important;}
/* Portrait remains square/cropped and aligns with the member name, not stretched to card height. */
#rosterPanel .roster-member{position:relative!important;}
#rosterPanel .roster-member>img{width:48px!important;height:48px!important;aspect-ratio:1/1!important;object-fit:contain!important;object-position:center top!important;align-self:start!important;margin:0 0 0!important;border-radius:7px!important;}
#rosterPanel .roster-member .member-name{margin-top:0!important;}
#rosterPanel .roster-member .member-extra-gp small.member-extra-delta{display:block!important;font-size:9px!important;line-height:1.25!important;margin-top:2px!important;white-space:nowrap!important;}
#rosterPanel .roster-member .member-extra-gp small.positive{color:#6df2bd!important;}
#rosterPanel .roster-member .member-extra-gp small.negative{color:#ff7d8e!important;}
#rosterPanel .roster-member .member-extra-gp small.pending{color:var(--muted)!important;}
@media(max-width:620px){#rosterPanel .roster-member>img{width:42px!important;height:42px!important;}}


/* v0.2.9: authoritative original-style panel power-on flicker. */



#activeRosterPanel,#twProgressPanel{display:block!important;visibility:visible}
/* Use the full tile width for the placeholder portrait; stack all member data below it. */
#rosterPanel .roster-member{display:flex!important;flex-direction:column!important;align-items:stretch!important;text-align:left!important;min-width:0!important;gap:0!important}
#rosterPanel .roster-member>img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center top!important;align-self:stretch!important;margin:0 0 9px!important;border-radius:7px!important}
#rosterPanel .roster-member .member-details{width:100%!important;min-width:0!important}
#rosterPanel .roster-member .member-name{margin:0 0 4px!important;white-space:normal!important;overflow-wrap:anywhere!important}
#rosterPanel .roster-member .member-role{margin-bottom:5px!important}
#rosterPanel .roster-member .member-gp{display:flex!important;align-items:baseline!important;gap:5px!important;flex-wrap:wrap!important;margin:4px 0!important}
#rosterPanel .roster-member .member-extra-gp{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;width:100%!important;margin-top:7px!important}
#rosterPanel .roster-member .member-extra-gp>div{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:baseline!important;column-gap:6px!important}
#rosterPanel .roster-member .member-extra-gp>div>span{grid-column:1;white-space:normal!important;font-size:9px!important}
#rosterPanel .roster-member .member-extra-gp>div>strong{grid-column:2;grid-row:1;text-align:right!important}
#rosterPanel .roster-member .member-extra-gp>div>small{grid-column:1 / -1!important;white-space:normal!important}
#rosterPanel .roster-member .member-times{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;width:100%!important;margin-top:8px!important}
#rosterPanel .roster-member .member-time{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;align-items:baseline!important}
#rosterPanel .roster-member .member-time>span{font-size:9px!important}
#rosterPanel .roster-member .member-time>strong{text-align:right!important;white-space:normal!important;font-size:10px!important}
@media(prefers-reduced-motion:reduce){}


/* v0.3.0 regression fix: original v0.1.7 electric power-on flicker and true stagger. */

/* Hide only before reveal. Never leave these two panels caught in an intro-only opacity rule. */



/* Version characters load left-to-right, with no blur or sliding; sync counter and logo follow. */
#versionPanel .version-content{position:relative!important;z-index:1!important;}






/* Roster: portrait/name/title/total GP share the first row; both secondary GP stats share a row; dates share a row. */
#rosterPanel .roster-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;}
#rosterPanel .roster-member{display:grid!important;grid-template-columns:clamp(58px,6vw,82px) minmax(0,1fr)!important;grid-template-rows:auto!important;align-items:start!important;gap:8px!important;min-width:0!important;width:100%!important;min-height:0!important;padding:10px!important;}
#rosterPanel .roster-member>img{grid-column:1!important;grid-row:1!important;width:100%!important;height:auto!important;aspect-ratio:1!important;object-fit:contain!important;object-position:center top!important;align-self:start!important;margin:0!important;border-radius:6px!important;}
#rosterPanel .roster-member .member-details{grid-column:2!important;grid-row:1!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto auto!important;gap:4px 8px!important;align-items:center!important;width:100%!important;min-width:0!important;text-align:left!important;}
#rosterPanel .roster-member .member-name{grid-column:1!important;grid-row:1!important;margin:0!important;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important;font-size:clamp(12px,1vw,15px)!important;}
#rosterPanel .roster-member .member-role{grid-column:1!important;grid-row:2!important;justify-self:start!important;margin:0!important;font-size:9px!important;}
#rosterPanel .roster-member .member-gp{grid-column:2!important;grid-row:1 / span 2!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:center!important;gap:2px!important;margin:0!important;white-space:nowrap!important;line-height:1!important;}
#rosterPanel .roster-member .member-gp strong{font-size:clamp(15px,1.3vw,21px)!important;line-height:1!important;}
#rosterPanel .roster-member .member-gp span{font-size:9px!important;margin:0!important;}
#rosterPanel .roster-member .member-week-change{font-size:9px!important;margin-top:2px!important;}
#rosterPanel .roster-member .member-extra-gp{grid-column:1/-1!important;grid-row:3!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;width:100%!important;margin:2px 0 0!important;padding-top:5px!important;border-top:1px solid #5bdcff24!important;}
#rosterPanel .roster-member .member-extra-gp>div{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:baseline!important;column-gap:5px!important;row-gap:2px!important;min-width:0!important;}
#rosterPanel .roster-member .member-extra-gp>div>span{grid-column:1/-1!important;font-size:8px!important;letter-spacing:.04em!important;white-space:nowrap!important;}
#rosterPanel .roster-member .member-extra-gp>div>strong{grid-column:1!important;grid-row:2!important;font-size:clamp(10px,.9vw,13px)!important;overflow-wrap:anywhere!important;}
#rosterPanel .roster-member .member-extra-gp>div>small{grid-column:2!important;grid-row:2!important;font-size:8px!important;line-height:1.2!important;margin:0!important;white-space:nowrap!important;text-align:right!important;}
#rosterPanel .roster-member .member-times{grid-column:1/-1!important;grid-row:4!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;width:100%!important;margin-top:2px!important;padding-top:5px!important;border-top:1px solid #5bdcff24!important;}
#rosterPanel .roster-member .member-time{display:flex!important;flex-direction:column!important;gap:1px!important;min-width:0!important;}
#rosterPanel .roster-member .member-time>span{font-size:8px!important;letter-spacing:.06em!important;color:var(--muted)!important;}
#rosterPanel .roster-member .member-time>strong{font-size:10px!important;text-align:left!important;white-space:normal!important;overflow-wrap:anywhere!important;}
#guildStatsPanel .guild-stat .metric-24h{margin-left:3px!important;}
@media(max-width:800px){#rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:520px){#rosterPanel .roster-grid{grid-template-columns:minmax(0,1fr)!important;}#rosterPanel .roster-member{grid-template-columns:54px minmax(0,1fr)!important;}#versionPanel .version-logo{max-width:34%!important;}}

/* v0.3.1 focused layout and Version-text reliability fixes */
#rosterPanel .roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
#rosterPanel .roster-member .member-extra-gp>div{display:flex!important;flex-direction:column!important;align-items:flex-start!important;text-align:left!important;}
#rosterPanel .roster-member .member-extra-gp>div>strong{align-self:flex-start!important;text-align:left!important;}
#rosterPanel .roster-member .member-extra-gp>div>small{align-self:flex-start!important;text-align:left!important;}
@media(max-width:1000px){#rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:520px){#rosterPanel .roster-grid{grid-template-columns:minmax(0,1fr)!important;}}
#guildStatsPanel .guild-stat{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;gap:2px!important;}
#guildStatsPanel .guild-stat>span,#guildStatsPanel .guild-stat>strong,#guildStatsPanel .guild-stat .metric-24h{display:block!important;width:100%!important;grid-column:auto!important;grid-row:auto!important;text-align:center!important;margin:0!important;}
#guildStatsPanel .guild-stat .metric-24h{font-size:clamp(9px,.78vw,11px)!important;line-height:1.15!important;white-space:normal!important;color:var(--muted)!important;}
#guildStatsPanel .guild-stat .metric-change-value{display:block!important;font-size:inherit!important;line-height:1.15!important;}
#guildStatsPanel .guild-stat .metric-24h>small{display:block!important;font-size:8px!important;line-height:1.1!important;letter-spacing:.08em!important;color:var(--muted)!important;margin-top:2px!important;}






/* v0.3.2: background-first boot, stronger electric interference, then values. */
@keyframes beskarElectricBoot032{
  0%{opacity:0;filter:brightness(3.2) contrast(1.35) drop-shadow(0 0 20px #4bdfff);clip-path:inset(0 0 100% 0)}
  7%{opacity:.95;filter:brightness(2.4) drop-shadow(0 0 18px #4bdfff);clip-path:inset(0 0 0 0)}
  13%{opacity:.12;filter:brightness(.65) contrast(1.8)}
  19%{opacity:.9;filter:brightness(2.8) drop-shadow(0 0 15px #4bdfff)}
  26%{opacity:.28;filter:brightness(.8)}
  34%{opacity:1;filter:brightness(1.9) drop-shadow(0 0 11px #4bdfff)}
  42%{opacity:.42;filter:brightness(.7) contrast(1.5)}
  51%{opacity:.96;filter:brightness(1.8) drop-shadow(0 0 9px #4bdfff)}
  59%{opacity:.64;filter:brightness(.9)}
  69%{opacity:1;filter:brightness(1.45) drop-shadow(0 0 7px #4bdfff)}
  78%{opacity:.82;filter:brightness(1.05)}
  88%,100%{opacity:1;filter:none;clip-path:inset(0 0 0 0)}
}

/* Keep the panel surfaces visible while their inner data waits for the full grid boot. */


/* Version text is intentionally excluded from the generic fade; JS begins it only after all panels. */






/* Analytics: main number on the left, its 24-hour delta on the right. */
#guildStatsPanel .guild-stat{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:auto auto!important;align-items:end!important;
  column-gap:12px!important;row-gap:3px!important;text-align:left!important;
}
#guildStatsPanel .guild-stat>span{grid-column:1/-1!important;grid-row:1!important;text-align:left!important;width:auto!important;}
#guildStatsPanel .guild-stat>strong{grid-column:1!important;grid-row:2!important;text-align:left!important;width:auto!important;}
#guildStatsPanel .guild-stat .metric-24h{grid-column:2!important;grid-row:2!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:flex-end!important;text-align:right!important;width:auto!important;margin:0!important;white-space:nowrap!important;}
#guildStatsPanel .guild-stat .metric-change-value{display:block!important;text-align:right!important;}
#guildStatsPanel .guild-stat .metric-24h>small{display:block!important;text-align:right!important;margin-top:2px!important;}
/* Sorting already uses FLIP positions; make movement more visible without changing card order logic. */
#rosterPanel .roster-member{will-change:transform,filter,opacity;}


/* v0.3.3 — authoritative background-first electric boot and theme corrections. */
@keyframes beskarElectricBoot033{
  0%{opacity:.02;filter:brightness(4.2) contrast(1.9) saturate(1.5) drop-shadow(0 0 24px var(--cyan));}
  5%{opacity:1;filter:brightness(3.5) contrast(1.7) drop-shadow(0 0 26px var(--cyan));}
  9%{opacity:.08;filter:brightness(.35) contrast(2.2);}
  14%{opacity:.92;filter:brightness(3.1) contrast(1.8) drop-shadow(0 0 22px var(--cyan));}
  18%{opacity:.22;filter:brightness(.6) contrast(1.6);}
  24%{opacity:1;filter:brightness(2.7) drop-shadow(0 0 18px var(--cyan));}
  29%{opacity:.12;filter:brightness(.4) contrast(2);}
  36%{opacity:.96;filter:brightness(2.2) drop-shadow(0 0 15px var(--cyan));}
  43%{opacity:.38;filter:brightness(.7);}
  50%{opacity:1;filter:brightness(2.4) contrast(1.5) drop-shadow(0 0 18px var(--cyan));}
  57%{opacity:.55;filter:brightness(.8) contrast(1.4);}
  65%{opacity:1;filter:brightness(1.9) drop-shadow(0 0 12px var(--cyan));}
  73%{opacity:.72;filter:brightness(.9);}
  82%{opacity:1;filter:brightness(1.55) drop-shadow(0 0 9px var(--cyan));}
  91%,100%{opacity:1;filter:none;}
}
/* The hero's background lives on its nested .frame; never hide that surface while waiting on values. */



/* Keep backgrounds visible after their flash; hold content until every panel has booted. */



/* More deliberate value count-up once the background sequence is complete. */


/* Deterministic Version text reveal: JS adds visible class per glyph, so no delayed keyframe can drop letters. */







/* Give TB/TW cards the active side's palette, including the background surfaces. */
body.light-side #twProgressPanel,body.light-side #tbProgressPanel{background:linear-gradient(135deg,#061723e8,#071b29dc)!important;border-color:#50d9ff66!important;}
body.light-side #twProgressPanel .tw-result-card,body.light-side #tbProgressPanel .tb-info-row,body.light-side #guildStatsPanel .tb-info-row{background:linear-gradient(110deg,#071a28e8,#071a28a8)!important;border-color:#53d7ff55!important;border-left-color:#50d9ff!important;}
body.dark-side #twProgressPanel,body.dark-side #tbProgressPanel{background:linear-gradient(135deg,#250810f0,#17060be8)!important;border-color:#ff465b88!important;box-shadow:0 0 22px #ff173522,inset 0 0 18px #ff173510!important;}
body.dark-side #twProgressPanel .tw-result-card,body.dark-side #tbProgressPanel .tb-info-row,body.dark-side #guildStatsPanel .tb-info-row{background:linear-gradient(110deg,#300812f0,#1b060ce8)!important;border-color:#ff465b77!important;border-left-color:#ff3b53!important;}
body.dark-side #twProgressPanel .tw-bar-left,body.dark-side #guildStatsPanel .tw-bar-left{background:linear-gradient(90deg,#741020,#ff344d)!important;}
body.dark-side #twProgressPanel .tw-bar-right,body.dark-side #guildStatsPanel .tw-bar-right{background:linear-gradient(90deg,#3d0b16,#a81f35)!important;}
body.dark-side #twProgressPanel .tw-result-card.win .tw-outcome{color:#ff5267!important;border-color:#ff4059!important;text-shadow:0 0 12px #ff183d!important;box-shadow:0 0 14px #ff173544!important;}
body.dark-side #twProgressPanel .tw-result-card.lose .tw-outcome{color:#d69aa1!important;border-color:#9b3b49!important;text-shadow:0 0 10px #b51b32!important;}
body.dark-side #tbProgressPanel .tb-info-stars,body.dark-side #guildStatsPanel .tb-info-stars{color:#ff6b7c!important;text-shadow:0 0 12px #ff263b66!important;}
body.dark-side #tbProgressPanel .tb-chart-block,body.dark-side #guildStatsPanel .tb-chart-block{background:#250810b8!important;border-color:#ff465b66!important;}
body.dark-side #tbProgressPanel .tb-bar{background:linear-gradient(0deg,#8f1426,#ff5869)!important;border-color:#ff7b88aa!important;}
/* Daily guild GP delta follows faction palette, never the sign of the change. */
body.light-side #gpDailyChange,body.light-side .gp-daily-change{color:#62dcff!important;text-shadow:0 0 9px #20bfff66!important;}
body.dark-side #gpDailyChange,body.dark-side .gp-daily-change{color:#ff5267!important;text-shadow:0 0 9px #ff173566!important;}
body.dark-side #guildStatsPanel .guild-stat .metric-24h.positive,body.dark-side #guildStatsPanel .guild-stat .metric-24h.negative{color:#ff5267!important;}
body.light-side #guildStatsPanel .guild-stat .metric-24h.positive,body.light-side #guildStatsPanel .guild-stat .metric-24h.negative{color:#62dcff!important;}


/* v0.3.4: restore the proven v0.2.0 entry and datapad text animations. */



/* Use the original v0.2.0 line-level datapad reveal; no per-character spans. */








@keyframes datapadReveal{to{opacity:1;transform:translateY(0)}}
/* Roster secondary statistics occupy the image-side half only, split 50/50. */
#rosterPanel .roster-member{grid-template-columns:minmax(0,50%) minmax(0,1fr)!important;grid-template-rows:auto auto auto!important;column-gap:8px!important;row-gap:6px!important;align-items:start!important;}
#rosterPanel .roster-member>img{grid-column:1!important;grid-row:1!important;width:100%!important;height:auto!important;aspect-ratio:1/1!important;max-height:none!important;object-fit:contain!important;object-position:center top!important;align-self:start!important;}
#rosterPanel .roster-member .member-details{grid-column:2!important;grid-row:1!important;}
#rosterPanel .roster-member .member-extra-gp{grid-column:1!important;grid-row:2!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:4px!important;width:100%!important;margin:0!important;padding-top:5px!important;min-width:0!important;}
#rosterPanel .roster-member .member-extra-gp>div{display:flex!important;flex-direction:column!important;align-items:flex-start!important;min-width:0!important;gap:2px!important;}
#rosterPanel .roster-member .member-extra-gp>div>span{font-size:7px!important;white-space:normal!important;overflow-wrap:anywhere!important;}
#rosterPanel .roster-member .member-extra-gp>div>strong{font-size:clamp(9px,.75vw,12px)!important;overflow-wrap:anywhere!important;}
#rosterPanel .roster-member .member-extra-gp>div>small{font-size:7px!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:left!important;}
#rosterPanel .roster-member .member-times{grid-column:1!important;grid-row:3!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:4px!important;width:100%!important;margin:0!important;padding-top:5px!important;min-width:0!important;}
#rosterPanel .roster-member .member-time{min-width:0!important;}
#rosterPanel .roster-member .member-time span,#rosterPanel .roster-member .member-time strong{white-space:normal!important;overflow-wrap:anywhere!important;font-size:7px!important;}
@media(max-width:1000px){#rosterPanel .roster-member{grid-template-columns:minmax(0,48%) minmax(0,1fr)!important;}}

body.pre-entry .reveal, body.intro .reveal{opacity:0 !important;visibility:hidden;transform:translateY(18px);filter:blur(3px)}.reveal{opacity:1;visibility:visible;transform:translateY(0);filter:blur(0);transition:opacity 1.3s ease,transform 1.3s ease,filter 1.3s ease}body.intro .reveal.visible{opacity:1 !important;visibility:visible;transform:translateY(0);filter:blur(0)}body.intro .hero,body.intro #rosterPanel{opacity:0!important;visibility:hidden;transform:translateY(16px);filter:blur(2px)}body.intro .hero.visible,body.intro #rosterPanel.visible{opacity:1!important;visibility:visible;transform:none;filter:none;animation:panelPowerOn 1.15s steps(1,end) both}@keyframes panelPowerOn{0%{opacity:.05;filter:brightness(2.5)}12%{opacity:.85;filter:brightness(.7)}20%{opacity:.18;filter:brightness(2)}34%{opacity:1;filter:brightness(1.6)}43%{opacity:.35;filter:brightness(.8)}56%{opacity:1;filter:brightness(1.35)}68%{opacity:.72;filter:brightness(.95)}100%{opacity:1;filter:none}}body.intro .hero,body.intro #guildStatsPanel,body.intro #rosterPanel{opacity:0!important;visibility:hidden;transform:none;filter:none}body.intro .hero.visible,body.intro #guildStatsPanel.visible,body.intro #rosterPanel.visible{opacity:1!important;visibility:visible;transform:none;filter:none;animation:panelPowerOn 1.15s steps(1,end) both}body.intro #activeRosterPanel,body.intro #twProgressPanel,body.intro #tbProgressPanel{opacity:0!important;visibility:hidden}body.intro #activeRosterPanel.visible,body.intro #twProgressPanel.visible,body.intro #tbProgressPanel.visible{opacity:1!important;visibility:visible;animation:panelPowerOn 1.15s steps(1,end) both}body.dashboard-ready .reveal,
body.dashboard-ready.intro .reveal,
body.dashboard-ready.intro .hero,
body.dashboard-ready.intro #rosterPanel{
  visibility:visible!important;
}body.dashboard-ready .reveal,body.dashboard-ready .hero,body.dashboard-ready #rosterPanel,body.dashboard-ready #activeRosterPanel,body.dashboard-ready #twProgressPanel,body.dashboard-ready #tbProgressPanel{visibility:visible!important;display:block!important}#versionPanel .version-content>*{opacity:0;transform:translateY(5px);animation:datapadReveal .48s steps(1,end) forwards}#versionPanel .version-main{font-size:clamp(12px,1.15vw,16px);font-weight:900;letter-spacing:.14em;color:var(--cyan);line-height:1.35;text-shadow:0 0 12px #54dcff50;animation-delay:1.9s!important}#versionPanel .version-line:nth-child(2){animation-delay:2.35s!important}#versionPanel .version-line:nth-child(3){animation-delay:2.75s!important}#versionPanel .version-line:nth-child(4){animation-delay:3.15s!important}@keyframes datapadReveal{to{opacity:1;transform:translateY(0)}}


/* v0.3.5 compatibility merge: keep v0.2.0 entrance and datapad animations. */
/* Guild Analytics: center every label and primary value; keep 24H delta at the right. */
#guildStatsPanel .guild-stat{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  text-align:center!important;
  min-width:0!important;
}
#guildStatsPanel .guild-stat>span,
#guildStatsPanel .guild-stat>strong{
  display:block!important;
  width:100%!important;
  text-align:center!important;
  align-self:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
#guildStatsPanel .guild-stat .metric-24h{
  position:absolute!important;
  right:3px!important;
  top:52%!important;
  transform:translateY(-50%)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  text-align:center!important;
  line-height:1.05!important;
}
#guildStatsPanel .guild-stat .metric-24h .metric-change-value{
  display:block!important;
  text-align:center!important;
  white-space:nowrap!important;
  font-size:clamp(8px,.7vw,10px)!important;
}
#guildStatsPanel .guild-stat .metric-24h>small{
  display:block!important;
  margin-top:2px!important;
  font-size:7px!important;
  line-height:1!important;
  text-align:center!important;
}
/* Four roster cards per desktop row; keep the two detail pairs split evenly. */
#rosterPanel .roster-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:10px!important;
}
#rosterPanel .roster-member{
  display:grid!important;
  grid-template-columns:minmax(0,48%) minmax(0,1fr)!important;
  grid-template-rows:auto auto auto!important;
  align-items:start!important;
  min-width:0!important;
  width:100%!important;
}
#rosterPanel .roster-member>img{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  object-fit:contain!important;
  margin:0!important;
}
#rosterPanel .roster-member .member-details{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
  width:100%!important;
}
#rosterPanel .roster-member .member-extra-gp,
#rosterPanel .roster-member .member-times{
  grid-column:1/-1!important;
  width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:8px!important;
  text-align:left!important;
}
#rosterPanel .roster-member .member-extra-gp{grid-row:2!important;}
#rosterPanel .roster-member .member-times{grid-row:3!important;}
#rosterPanel .roster-member .member-extra-gp>div,
#rosterPanel .roster-member .member-times>.member-time{
  min-width:0!important;
  width:100%!important;
  text-align:left!important;
  align-items:flex-start!important;
}
#rosterPanel .roster-member .member-extra-gp>div>strong,
#rosterPanel .roster-member .member-times>.member-time>strong{
  text-align:left!important;
}
#versionPanel .version-logo{
  position:absolute!important;
  right:30px!important;
  bottom:40px!important;
  width:150px!important;
  height:auto!important;
  max-width:36%!important;
  z-index:0!important;
  opacity:0!important;
  animation:datapadReveal .48s steps(1,end) 3.65s forwards!important;
}
@media(max-width:1000px){
  #rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:560px){
  #rosterPanel .roster-grid{grid-template-columns:minmax(0,1fr)!important;}
}


/* v0.3.6: roster details, role pulse, progress animation, and side-themed bars */
#rosterPanel .roster-member>img{width:100%!important;max-width:80px!important;height:auto!important;justify-self:start!important;align-self:start!important;}
#rosterPanel .roster-member .member-name{font-size:clamp(13px,1.05vw,16px)!important;line-height:1.25!important;}
#rosterPanel .roster-member .member-role{font-size:10px!important;}
#rosterPanel .roster-member .member-extra-gp>div>span,#rosterPanel .roster-member .member-time>span{font-size:9px!important;}
#rosterPanel .roster-member .member-extra-gp>div>strong,#rosterPanel .roster-member .member-time>strong{font-size:11px!important;}
@keyframes rolePulseGlow{0%,100%{filter:brightness(1);box-shadow:0 0 10px var(--role-glow),inset 0 0 12px var(--role-glow-soft)}50%{filter:brightness(1.42);box-shadow:0 0 22px var(--role-glow),inset 0 0 18px var(--role-glow-soft)}}
#rosterPanel .roster-member.leader{--role-glow:#ffd16699;--role-glow-soft:#ffd16624;animation:rolePulseGlow 2.8s ease-in-out infinite!important;}
#rosterPanel .roster-member.officer{--role-glow:#b7a0ff99;--role-glow-soft:#b7a0ff22;animation:rolePulseGlow 3.1s ease-in-out infinite!important;}
.copy-ally-code{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:23px;height:23px;margin-left:5px;padding:3px;border:1px solid var(--accent,#54dcff);border-radius:4px;background:transparent;color:var(--accent,#54dcff);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;}
.copy-ally-code svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.copy-ally-code:hover,.copy-ally-code.copied{background:var(--accent,#54dcff);color:#04121b;box-shadow:0 0 12px color-mix(in srgb,var(--accent,#54dcff) 60%,transparent);}
/* Make the GP history line visibly draw from left to right on dashboard entry. */
#guildGpPanel .gp-chart-line,#gpHistoryChart .gp-chart-line{stroke-dasharray:1000;stroke-dashoffset:1000;}
#gpHistoryChart .gp-chart-draw{animation:gpHistoryLineDraw 3.2s ease-out forwards;animation-play-state:paused;}
body.dashboard-ready #gpHistoryChart .gp-chart-draw{animation-play-state:running;}
@keyframes gpHistoryLineDraw{to{stroke-dashoffset:0}}
/* The first-load TB fills were left paused behind the intro gate; run them once the dashboard is visible. */
body.dashboard-ready #guildStatsPanel .tb-star-progress.star-fill-first{animation-play-state:running!important;}
body.light-side #guildStatsPanel .tb-star-progress{background:linear-gradient(90deg,#087da3,#55e3ff)!important;box-shadow:0 0 9px #40d9ff85!important;}
body.dark-side #guildStatsPanel .tb-star-progress{background:linear-gradient(90deg,#701024,#ff4058)!important;box-shadow:0 0 10px #ff284d99!important;}
body.light-side #tbProgressPanel .tb-star-progress{background:linear-gradient(90deg,#087da3,#55e3ff)!important;}
body.dark-side #tbProgressPanel .tb-star-progress{background:linear-gradient(90deg,#701024,#ff4058)!important;box-shadow:0 0 10px #ff284d99!important;}
/* Keep Analytics labels and main values centered, while the delta sits close to the main value's right edge. */
#guildStatsPanel .guild-stat{position:relative!important;}
#guildStatsPanel .guild-stat>span,#guildStatsPanel .guild-stat>strong{text-align:center!important;}
#guildStatsPanel .guild-stat .metric-24h{right:8px!important;top:64%!important;transform:translateY(-50%)!important;}
body.dark-side #twProgressPanel .tw-result-card.lose .tw-bar-right{background:linear-gradient(90deg,#102d66,#3489ff)!important;}
body.dark-side #twProgressPanel .tw-result-card.lose .tw-bar-left{background:linear-gradient(90deg,#4b0715,#c51d39)!important;}
@media(prefers-reduced-motion:reduce){#rosterPanel .roster-member.leader,#rosterPanel .roster-member.officer{animation:none!important}#gpHistoryChart .gp-chart-draw{animation:none!important;stroke-dashoffset:0!important}}
body.light-side #tbProgressPanel .tb-line-path{stroke:#55dfff!important;filter:drop-shadow(0 0 4px #35cfff88)!important;}
body.dark-side #tbProgressPanel .tb-line-path{stroke:#ff4058!important;filter:drop-shadow(0 0 4px #ff173d99)!important;}
body.light-side #tbProgressPanel .tb-line-dot{fill:#c5f5ff!important;stroke:#168bb0!important;}
body.dark-side #tbProgressPanel .tb-line-dot{fill:#ffd0d5!important;stroke:#c51d39!important;}

/* v0.3.7 refinements requested: tighter name/role alignment, full-width TB tracks, analytics change strength, side-aware TW loss bar. */
#rosterPanel .roster-member{column-gap:3px!important;}
#rosterPanel .roster-member .member-details{margin-left:0!important;}
#tbProgressPanel .tb-info-row{width:100%!important;box-sizing:border-box!important;}
#tbProgressPanel .tb-info-copy{flex:1 1 auto!important;width:100%!important;min-width:0!important;overflow:visible!important;}
#tbProgressPanel .tb-star-track{display:block!important;width:100%!important;max-width:none!important;box-sizing:border-box!important;min-width:0!important;}
#tbProgressPanel .tb-star-progress{display:block!important;max-width:100%!important;}
#guildStatsPanel .metric-24h .metric-change-value{font-weight:900!important;color:var(--accent,#55dfff)!important;text-shadow:0 0 8px currentColor!important;}
body.light-side #guildStatsPanel .metric-24h .metric-change-value{color:#69e5ff!important;}
body.dark-side #guildStatsPanel .metric-24h .metric-change-value{color:#ff687a!important;}
body.dark-side #twProgressPanel .tw-result-card.lose .tw-bar-left{background:linear-gradient(90deg,#102d66,#3489ff)!important;}
body.dark-side #twProgressPanel .tw-result-card.lose .tw-bar-right{background:linear-gradient(90deg,#4b0715,#c51d39)!important;}
/* Rotational FLIP movement is driven by Web Animations when sorting; avoid a competing CSS transform transition. */
#rosterPanel .roster-member{will-change:transform,filter,opacity;}
@media(max-width:700px){#twProgressPanel{height:auto!important;}}


/* v0.3.8 requested fixes: roster alignment, three-way analytics row, clear Dark Side TW winner/loser colors. */
#rosterPanel .roster-member{grid-template-columns:clamp(58px,6vw,80px) minmax(0,1fr)!important;column-gap:5px!important;row-gap:6px!important;}
#rosterPanel .roster-member>img{grid-column:1!important;grid-row:1!important;width:100%!important;max-width:80px!important;height:auto!important;aspect-ratio:1/1!important;object-fit:contain!important;justify-self:start!important;align-self:start!important;margin:0!important;}
#rosterPanel .roster-member .member-details{grid-column:2!important;grid-row:1!important;margin:0!important;padding:0!important;min-width:0!important;width:100%!important;justify-self:start!important;align-self:start!important;align-items:flex-start!important;}
#rosterPanel .roster-member .member-name,#rosterPanel .roster-member .member-role{width:100%!important;text-align:left!important;margin-left:0!important;padding-left:0!important;}
#rosterPanel .roster-member .member-extra-gp,#rosterPanel .roster-member .member-times{grid-column:1/-1!important;width:100%!important;max-width:100%!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;min-width:0!important;}
#rosterPanel .roster-member .member-extra-gp>div,#rosterPanel .roster-member .member-times>.member-time{min-width:0!important;width:100%!important;overflow-wrap:anywhere!important;}
#rosterPanel .roster-member .member-extra-gp>div>span,#rosterPanel .roster-member .member-time>span{font-size:7px!important;letter-spacing:0!important;white-space:normal!important;line-height:1.15!important;}
#rosterPanel .roster-member .member-extra-gp>div>strong,#rosterPanel .roster-member .member-time>strong{font-size:9px!important;white-space:normal!important;overflow-wrap:anywhere!important;}
#guildStatsPanel .analytics-tb-list{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;align-items:stretch!important;}
#guildStatsPanel .analytics-tb-list .tb-info-row{display:flex!important;flex-direction:column!important;justify-content:space-between!important;align-items:stretch!important;min-width:0!important;min-height:88px!important;gap:7px!important;padding:8px!important;box-sizing:border-box!important;}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-info-copy{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;min-width:0!important;width:100%!important;gap:4px!important;overflow:visible!important;}
#guildStatsPanel .analytics-tb-list .tb-info-name{font-size:clamp(8px,.72vw,10px)!important;line-height:1.25!important;overflow-wrap:anywhere!important;}
#guildStatsPanel .analytics-tb-list .tb-info-date{font-size:8px!important;line-height:1.2!important;white-space:normal!important;}
#guildStatsPanel .analytics-tb-list .tb-info-stars{align-self:flex-end!important;font-size:clamp(10px,.95vw,13px)!important;min-width:0!important;}
#guildStatsPanel .analytics-tb-list .tb-star-track{width:100%!important;max-width:none!important;box-sizing:border-box!important;}
#guildStatsPanel .tw-countdown-card{justify-content:center!important;border-left-color:var(--accent,#55dfff)!important;}
#guildStatsPanel .tw-countdown-card .tb-info-name{text-align:center!important;letter-spacing:.07em!important;}
#guildStatsPanel .tw-countdown-value{display:block!important;text-align:center!important;align-self:center!important;width:100%!important;font-size:clamp(12px,1.05vw,16px)!important;font-weight:900!important;line-height:1.3!important;letter-spacing:.02em!important;font-variant-numeric:tabular-nums!important;color:var(--accent,#55dfff)!important;text-shadow:0 0 10px currentColor!important;white-space:nowrap!important;}
@media(max-width:700px){#guildStatsPanel .analytics-tb-list{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;}#guildStatsPanel .analytics-tb-list .tb-info-row{padding:6px!important;min-height:82px!important;}#guildStatsPanel .tw-countdown-value{font-size:10px!important;white-space:normal!important;overflow-wrap:anywhere!important;}}
#twProgressPanel{height:282px!important;min-height:282px!important;max-height:282px!important;box-sizing:border-box!important;}
@media(max-width:700px){#twProgressPanel{height:auto!important;min-height:0!important;max-height:none!important;}}
body.dark-side #twProgressPanel .tw-bar-winning{background:linear-gradient(90deg,#4b0715,#ff344d)!important;box-shadow:0 0 10px #ff173d55!important;}
body.dark-side #twProgressPanel .tw-bar-losing{background:linear-gradient(90deg,#102d66,#3489ff)!important;box-shadow:0 0 10px #3489ff55!important;}
body.dark-side #twProgressPanel .tw-bar-tie{background:linear-gradient(90deg,#33384b,#69718a)!important;}
body.light-side #twProgressPanel .tw-bar-winning{background:linear-gradient(90deg,#087da3,#55e3ff)!important;}
body.light-side #twProgressPanel .tw-bar-losing{background:linear-gradient(90deg,#741020,#e34b5c)!important;}
body.light-side #twProgressPanel .tw-bar-tie{background:linear-gradient(90deg,#33384b,#69718a)!important;}
body.light-side .gp-daily-change,body.light-side #active24hCount{color:#72edff!important;text-shadow:0 0 12px #36dfff99!important;font-weight:900!important;}
body.dark-side .gp-daily-change,body.dark-side #active24hCount{color:#ff687d!important;text-shadow:0 0 12px #ff244e99!important;font-weight:900!important;}
#active24hCount{display:inline-block!important;font-variant-numeric:tabular-nums!important;}

/* Build 0.3.10 — requested layout and reveal refinements */
#introGate .gate-card>img{display:block!important;width:min(70vw,330px)!important;max-height:220px!important;object-fit:contain!important;mix-blend-mode:screen!important;filter:drop-shadow(0 0 28px #40cfff65)!important;position:relative!important;z-index:1!important;margin-bottom:2px!important;}
#introGate .gate-card{transform:translateY(0)!important;}
#introGate #enterLightBtn:hover,#introGate #enterDarkBtn:hover{opacity:1!important;filter:none!important;}
#guildStatsPanel .guild-news-ticker{margin-top:0!important;}
#guildStatsPanel .tw-countdown-card{align-items:center!important;justify-content:center!important;}
#guildStatsPanel .tw-countdown-card .tb-info-copy{justify-content:center!important;align-items:center!important;min-height:100%!important;}
#guildStatsPanel .tw-countdown-value{align-self:center!important;line-height:1.45!important;}
#twProgressPanel .panel-title{font-size:clamp(14px,1.05vw,17px)!important;letter-spacing:.09em!important;text-transform:uppercase!important;}
#versionPanel .sync-countdown-line{position:absolute!important;left:18px!important;right:18px!important;bottom:14px!important;margin:0!important;font-size:clamp(10px,.8vw,12px)!important;}
#versionPanel .sync-countdown-line strong{font-size:clamp(13px,1.2vw,18px)!important;color:var(--accent,#55dfff)!important;}
#versionPanel .version-content{padding-bottom:30px!important;}
#rosterPanel .roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;}
#rosterPanel .roster-member{grid-template-columns:minmax(0,34%) minmax(0,1fr)!important;grid-template-rows:auto auto auto!important;row-gap:5px!important;padding:9px!important;}
#rosterPanel .roster-member>img{grid-column:1!important;grid-row:1!important;max-width:100%!important;}
#rosterPanel .roster-member .member-details{grid-column:2!important;grid-row:1!important;}
#rosterPanel .roster-member .member-extra-gp{grid-column:1/-1!important;grid-row:2!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;padding-top:5px!important;border-top:1px solid #5bdcff28!important;}
#rosterPanel .roster-member .member-extra-gp>div{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:baseline!important;gap:2px 5px!important;}
#rosterPanel .roster-member .member-extra-gp>div>span{grid-column:1!important;font-size:8px!important;}
#rosterPanel .roster-member .member-extra-gp>div>strong{grid-column:2!important;grid-row:1!important;font-size:clamp(10px,.85vw,13px)!important;}
#rosterPanel .roster-member .member-extra-gp>div>small{grid-column:1/-1!important;font-size:8px!important;}
#rosterPanel .roster-member .member-trend{grid-column:1/-1!important;display:block!important;width:100%!important;height:22px!important;overflow:visible!important;margin-top:1px!important;}
#rosterPanel .member-trend .trend-base{stroke:#5bdcff35;stroke-width:1;fill:none;}
#rosterPanel .member-trend .trend-line{stroke:var(--accent,#55dfff);stroke-width:2;fill:none;vector-effect:non-scaling-stroke;}
#rosterPanel .member-trend .trend-dot{fill:var(--accent,#55dfff);}
#rosterPanel .member-trend text{font-size:7px;fill:var(--muted,#8faebe);letter-spacing:.08em;}
#rosterPanel .roster-member .member-times{grid-column:1/-1!important;grid-row:3!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;padding-top:5px!important;border-top:1px solid #5bdcff28!important;margin-top:0!important;}
#rosterPanel .roster-member .member-time>span{font-size:9px!important;}
#rosterPanel .roster-member .member-time>strong{font-size:clamp(11px,.9vw,14px)!important;line-height:1.2!important;}
@media(max-width:1000px){#rosterPanel .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:560px){#rosterPanel .roster-grid{grid-template-columns:minmax(0,1fr)!important;}#versionPanel .sync-countdown-line{position:static!important;margin-top:10px!important;}#versionPanel .version-content{padding-bottom:0!important;}}

/* Build 0.3.11 corrections */
#introGate:not(.dismissed) #enterLightBtn:hover,
#introGate:not(.dismissed) #enterLightBtn:focus,
#introGate:not(.dismissed) #enterLightBtn:active{background:linear-gradient(180deg,#0b3449ed,#061521f5)!important;border-color:#8deaff!important;box-shadow:0 0 34px #00bfff3b,inset 0 0 18px #00bfff18!important;color:#e9faff!important;filter:none!important;opacity:1!important;transform:none!important;outline:none!important;transition:none!important;}
#introGate:not(.dismissed) #enterDarkBtn:hover,
#introGate:not(.dismissed) #enterDarkBtn:focus,
#introGate:not(.dismissed) #enterDarkBtn:active{background:linear-gradient(180deg,#3b101bed,#15070bf5)!important;border-color:#ff6673!important;box-shadow:0 0 30px #ff263b32,inset 0 0 18px #ff263b14!important;color:#fff0f1!important;filter:none!important;opacity:1!important;transform:none!important;outline:none!important;transition:none!important;}
#introGate:not(.dismissed) #enterLightBtn,#introGate:not(.dismissed) #enterDarkBtn{transition:none!important;}
#rosterPanel .roster-member .member-weekly-trend{grid-column:1/-1!important;grid-row:2!important;width:100%!important;height:25px!important;margin:0!important;padding-top:3px!important;border-top:1px solid #5bdcff28!important;}
#rosterPanel .roster-member .member-extra-gp{grid-row:3!important;}
#rosterPanel .roster-member .member-times{grid-row:4!important;}
body.dark-side #rosterPanel .member-trend .trend-base{stroke:#ff536b45!important;}
body.dark-side #rosterPanel .member-trend .trend-line{stroke:#ff536b!important;filter:drop-shadow(0 0 3px #ff294b88)!important;}
body.dark-side #rosterPanel .member-trend .trend-dot{fill:#ffc0c8!important;}
body.dark-side #rosterPanel .member-trend text{fill:#ff9aa7!important;}
body.dark-side #rosterPanel .member-week-change.positive,body.dark-side #rosterPanel .member-week-change.negative,body.dark-side #rosterPanel .member-extra-delta.positive,body.dark-side #rosterPanel .member-extra-delta.negative{color:#ff687d!important;text-shadow:0 0 6px #ff244e55!important;}
body.dark-side #twProgressPanel .tw-bar-losing{background:linear-gradient(90deg,#087da3,#55e3ff)!important;box-shadow:0 0 10px #40d9ff65!important;}
body.dark-side #guildStatsPanel .tw-countdown-value{color:#ff5267!important;text-shadow:0 0 10px #ff173566!important;}
body.dark-side #versionPanel .sync-countdown-line strong{color:#ff5267!important;text-shadow:0 0 8px #ff173566!important;}
#versionPanel .sync-countdown-line{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;margin-top:10px!important;}
#versionPanel .version-content{padding-bottom:0!important;}
@media(max-width:560px){#versionPanel .sync-countdown-line{position:relative!important;margin-top:10px!important;}}


/* v0.3.12: weekly GP trend sits beside the member name/GP; static entry buttons and role PNG support. */
#introGate:not(.dismissed) #enterLightBtn,
#introGate:not(.dismissed) #enterDarkBtn,
#introGate:not(.dismissed) #enterLightBtn:hover,
#introGate:not(.dismissed) #enterDarkBtn:hover,
#introGate:not(.dismissed) #enterLightBtn:focus,
#introGate:not(.dismissed) #enterDarkBtn:focus,
#introGate:not(.dismissed) #enterLightBtn:focus-visible,
#introGate:not(.dismissed) #enterDarkBtn:focus-visible,
#introGate:not(.dismissed) #enterLightBtn:active,
#introGate:not(.dismissed) #enterDarkBtn:active{transform:none!important;filter:none!important;opacity:1!important;transition:none!important;animation:none!important;}
#rosterPanel .roster-member .member-details{grid-template-rows:auto auto auto auto!important;}
#rosterPanel .roster-member .member-weekly-trend{grid-column:1/-1!important;grid-row:3!important;display:block!important;width:100%!important;height:22px!important;margin:0!important;padding:0!important;border:0!important;overflow:visible!important;}
#rosterPanel .roster-member .member-weekly-trend text{font-size:6px!important;letter-spacing:.08em!important;fill:var(--muted,#8faebe)!important;}
#rosterPanel .roster-member .member-weekly-trend.is-week-preview text{fill:var(--accent,#55dfff)!important;}
body.dark-side #rosterPanel .member-weekly-trend text{fill:#ff9aa7!important;}

/* Explicitly freeze every visual property across all entry-button states. */
#introGate:not(.dismissed) #enterLightBtn,#introGate:not(.dismissed) #enterLightBtn:hover,#introGate:not(.dismissed) #enterLightBtn:focus,#introGate:not(.dismissed) #enterLightBtn:focus-visible,#introGate:not(.dismissed) #enterLightBtn:active{background:linear-gradient(180deg,#0b3449ed,#061521f5)!important;border:1px solid #8deaff!important;box-shadow:0 0 34px #00bfff3b,inset 0 0 18px #00bfff18!important;color:#e9faff!important;}
#introGate:not(.dismissed) #enterDarkBtn,#introGate:not(.dismissed) #enterDarkBtn:hover,#introGate:not(.dismissed) #enterDarkBtn:focus,#introGate:not(.dismissed) #enterDarkBtn:focus-visible,#introGate:not(.dismissed) #enterDarkBtn:active{background:linear-gradient(180deg,#3b101bed,#15070bf5)!important;border:1px solid #ff6673!important;box-shadow:0 0 30px #ff263b32,inset 0 0 18px #ff263b14!important;color:#fff0f1!important;}

/* v0.3.13: weekly total-GP sparkline must fill the entire member-details column beside the portrait. */
#rosterPanel .roster-member .member-details{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto minmax(30px,auto)!important;align-content:start!important;align-items:start!important;column-gap:6px!important;row-gap:3px!important;min-width:0!important;width:100%!important;justify-content:stretch!important;}
#rosterPanel .roster-member .member-details .member-name{grid-column:1!important;grid-row:1!important;min-width:0!important;}
#rosterPanel .roster-member .member-details .member-role{grid-column:1!important;grid-row:2!important;}
#rosterPanel .roster-member .member-details .member-gp{grid-column:2!important;grid-row:1 / span 2!important;justify-self:end!important;align-self:start!important;}
#rosterPanel .roster-member .member-details .member-weekly-trend{grid-column:1 / -1!important;grid-row:4!important;display:block!important;width:100%!important;min-width:0!important;height:34px!important;min-height:34px!important;max-height:34px!important;margin:3px 0 0!important;padding:0!important;overflow:visible!important;justify-self:stretch!important;}
#rosterPanel .roster-member .member-details .member-weekly-trend text{font-size:7px!important;letter-spacing:.08em!important;}

/* Beskar 0.4.0: raid activity, denser daily GP history, and responsive dashboard layout. */
#gpHistoryChart .gp-chart-point-value{fill:var(--text);font-size:8px;font-weight:800;paint-order:stroke;stroke:var(--ink);stroke-width:2px;stroke-linejoin:round;pointer-events:none}
#gpHistoryChart .gp-chart-dot{fill:var(--cyan);stroke:var(--ink);stroke-width:1px}
#raidsPanel{min-width:0;display:flex;flex-direction:column;gap:14px}
.raid-ticket-summary{display:flex;flex-direction:column;gap:9px;padding:12px;background:#06172375;border:1px solid #53d7ff24}
.raid-ticket-numbers{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.raid-ticket-numbers strong{font-size:clamp(22px,2vw,32px);font-weight:900;color:var(--cyan);font-variant-numeric:tabular-nums}
.raid-ticket-numbers span,.raid-label{font-size:9px;letter-spacing:.13em;color:var(--muted);font-weight:800}
.raid-ticket-track{height:12px;overflow:hidden;background:#020a10;border:1px solid var(--line);border-radius:2px}
.raid-ticket-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 12px #50d9ff55;transition:width .45s ease}
#raidsPanel #raidTicketNote,.last-raid-block small{font-size:10px;color:var(--muted);line-height:1.4}
.last-raid-block{display:flex;flex-direction:column;gap:6px;padding:12px;border-left:2px solid var(--cyan);background:#06172345;min-width:0}
.last-raid-block strong{font-size:clamp(13px,1.1vw,17px);overflow-wrap:anywhere;color:var(--text)}
#rosterPanel .strongest-units{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;width:100%;margin-top:4px;padding-top:5px;border-top:1px solid #58cfff20;text-align:left;min-width:0}
#rosterPanel .strongest-units span{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:baseline;gap:4px;font-size:8px;line-height:1.3;color:var(--muted)}
#rosterPanel .strongest-units label{font-size:8px;color:var(--muted);font-weight:700}
#rosterPanel .strongest-units b{font-size:9px;color:var(--text);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#rosterPanel .strongest-units em{font-size:9px;font-style:normal;color:var(--cyan);font-variant-numeric:tabular-nums;white-space:nowrap}
@media(min-width:801px){
 .shell{grid-template-columns:repeat(8,minmax(0,1fr))!important;grid-template-areas:"gp gp gp gp stats stats stats stats" "members members version version raids raids tw tw" "roster roster roster roster roster roster roster roster"!important}
 .hero{grid-area:gp!important}.hero .frame{height:360px!important;min-height:360px!important}
 #guildStatsPanel{grid-area:stats!important;height:360px!important;min-height:360px!important}
 #activeRosterPanel{grid-area:members!important;min-height:180px!important;height:180px!important}
 #versionPanel{grid-area:version!important;min-height:180px!important;height:180px!important}
 #raidsPanel{grid-area:raids!important;min-height:180px!important;height:180px!important}
 #twProgressPanel{grid-area:tw!important;height:180px!important;min-height:180px!important;max-height:180px!important}
 #rosterPanel{grid-area:roster!important}
 #versionPanel .version-main{font-size:10px!important}
 #versionPanel .version-logo{max-height:54px!important}
}
@media(max-width:800px){
 .shell{display:flex!important;flex-direction:column!important;align-items:center!important;gap:14px!important;padding:12px!important;width:100%!important;max-width:100%!important}
 .shell>section,.shell>.hero{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;align-self:center!important;left:auto!important;right:auto!important}
 .hero .frame,#guildStatsPanel,#activeRosterPanel,#versionPanel,#raidsPanel,#twProgressPanel{width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important}
 #activeRosterPanel,#versionPanel,#raidsPanel{padding:14px!important}
 #twProgressPanel{height:auto!important;min-height:180px!important}
 #rosterPanel{width:100%!important;max-width:100%!important}
 #gpHistoryChart{width:100%!important;height:auto!important;min-height:100px!important}
}
@media(max-width:480px){#rosterPanel .strongest-units span{grid-template-columns:43px minmax(0,1fr) auto}#gpHistoryChart .gp-chart-point-value{font-size:7px}}


/* v0.4.1 layout correction: Version and Raids share one stacked column.
   Recruitment and Territory War return to their original full panel height. */
@media(min-width:801px){
 .shell{grid-template-columns:repeat(8,minmax(0,1fr))!important;grid-template-areas:"gp gp gp gp stats stats stats stats" "members members version version tw tw tw tw" "roster roster roster roster roster roster roster roster"!important;align-items:stretch!important}
 #activeRosterPanel{grid-area:members!important;height:282px!important;min-height:282px!important;max-height:282px!important;box-sizing:border-box!important}
 #versionRaidsColumn{grid-area:version!important;display:flex!important;flex-direction:column!important;gap:12px!important;min-width:0!important;height:282px!important;min-height:282px!important;max-height:282px!important}
 #versionRaidsColumn>#versionPanel,#versionRaidsColumn>#raidsPanel{position:relative!important;grid-area:auto!important;flex:1 1 0!important;width:100%!important;min-width:0!important;min-height:0!important;height:auto!important;max-height:none!important;margin:0!important;box-sizing:border-box!important;overflow:hidden!important}
 #versionPanel .version-main{font-size:10px!important}
 #versionPanel .version-logo{max-height:54px!important}
 #twProgressPanel{grid-area:tw!important;height:282px!important;min-height:282px!important;max-height:282px!important;box-sizing:border-box!important}
}
@media(max-width:800px){
 #versionRaidsColumn{display:flex!important;flex-direction:column!important;gap:14px!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important}
 #versionRaidsColumn>#versionPanel,#versionRaidsColumn>#raidsPanel{width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;flex:none!important;overflow:visible!important}
 #activeRosterPanel,#twProgressPanel{height:auto!important;min-height:180px!important;max-height:none!important}
}

/* Beskar 0.4.2: equal thirds for the middle dashboard row and compact 50/50 Version/Raids panels. */
@media(min-width:801px){
  .shell{grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-template-areas:"gp gp gp gp gp gp stats stats stats stats stats stats" "members members members members version version version version tw tw tw tw" "roster roster roster roster roster roster roster roster roster roster roster roster"!important;column-gap:14px!important;align-items:stretch!important}
  .hero{grid-area:gp!important}
  #guildStatsPanel{grid-area:stats!important}
  #activeRosterPanel{grid-area:members!important;width:100%!important;height:282px!important;min-height:282px!important;max-height:282px!important;box-sizing:border-box!important}
  #versionRaidsColumn{grid-area:version!important;display:flex!important;flex-direction:column!important;gap:8px!important;width:100%!important;min-width:0!important;height:282px!important;min-height:282px!important;max-height:282px!important}
  #versionRaidsColumn>#versionPanel,#versionRaidsColumn>#raidsPanel{position:relative!important;display:flex!important;flex-direction:column!important;width:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:12px 16px!important;box-sizing:border-box!important;overflow:hidden!important;gap:6px!important}
   #versionRaidsColumn>#versionPanel{flex:1 1 0!important}
   #versionRaidsColumn>#raidsPanel{flex:2 1 0!important}
  #versionPanel .version-content{padding:0!important;margin:0!important;min-height:0!important;display:flex!important;flex-direction:column!important;gap:4px!important}
  #versionPanel .version-main{font-size:clamp(8px,.72vw,10px)!important;line-height:1.2!important;letter-spacing:.1em!important;overflow-wrap:anywhere!important}
  #versionPanel .version-line{font-size:clamp(9px,.7vw,11px)!important;line-height:1.2!important;margin:0!important}
  #versionPanel .sync-countdown-line{position:static!important;margin-top:auto!important;font-size:9px!important;line-height:1.15!important}
  #versionPanel .sync-countdown-line strong{font-size:clamp(11px,.9vw,14px)!important}
  #versionPanel .version-logo{display:none!important}
  #raidsPanel{gap:6px!important}
  #raidsPanel .panel-title{margin-bottom:0!important;flex:0 0 auto!important}
  #raidsPanel .raid-ticket-summary{padding:7px!important;gap:5px!important;min-height:0!important}
  #raidsPanel .raid-ticket-numbers{gap:4px!important;flex-wrap:nowrap!important}
  #raidsPanel .raid-ticket-numbers strong{font-size:clamp(16px,1.2vw,22px)!important;line-height:1.1!important}
  #raidsPanel .raid-ticket-numbers span{font-size:7px!important;line-height:1.15!important;text-align:right!important}
  #raidsPanel .raid-ticket-track{height:7px!important;flex:0 0 7px!important}
  #raidsPanel #raidTicketNote{font-size:8px!important;line-height:1.15!important}
  #raidsPanel .last-raid-block{padding:6px 8px!important;gap:3px!important;min-height:0!important}
  #raidsPanel .last-raid-block .raid-label{font-size:8px!important}
  #raidsPanel .last-raid-block strong{font-size:clamp(10px,.85vw,13px)!important;line-height:1.15!important}
  #raidsPanel .last-raid-block small{font-size:8px!important;line-height:1.15!important}
  #twProgressPanel{grid-area:tw!important;width:100%!important;height:282px!important;min-height:282px!important;max-height:282px!important;box-sizing:border-box!important}
}


/* v0.4.6 release polish */
.datapad-version{font-size:.62em;letter-spacing:.08em;color:var(--cyan);white-space:nowrap;margin-left:.35em}
.datapad-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}
#versionPanel .datapad-stat-grid .guild-stat{min-width:0;min-height:88px;padding:12px 10px;display:flex;flex-direction:column;justify-content:center;gap:8px;text-align:center;background:#06172375;border:1px solid #53d7ff24}
#versionPanel .datapad-stat-grid .guild-stat span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
#versionPanel .datapad-stat-grid .guild-stat strong{font-size:clamp(14px,1.2vw,19px);line-height:1.25;color:var(--ink);overflow-wrap:anywhere}
#raidsPanel .raid-ticket-track{position:relative;overflow:hidden}
#raidsPanel .raid-ticket-track>span{display:block;height:100%;transition:width .65s ease}
#raidsPanel .raid-ticket-track>b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;letter-spacing:.02em;color:#f0fbff;text-shadow:0 1px 4px #00121b,0 0 5px #00121b;pointer-events:none;white-space:nowrap}
#raidsPanel .raid-ticket-summary{gap:8px}
#raidsPanel .next-raid-ticket-summary{margin-top:4px}
#rosterPanel .strongest-units>span{display:flex;align-items:baseline;gap:4px;flex-wrap:nowrap}
#rosterPanel .strongest-units b{font-size:1.35em;line-height:1.05}
#rosterPanel .strongest-units em{font-size:.85em;white-space:nowrap;margin-left:0}
.gp-history-chart{height:150px!important}
#versionPanel.reveal,#raidsPanel.reveal{animation-duration:.72s!important;animation-timing-function:cubic-bezier(.2,.75,.25,1)!important}
#versionPanel.reveal.visible,#raidsPanel.reveal.visible{transform:none!important;/* Do not force filter:none: it suppresses the panel brightness-flash animation. */}
@media(max-width:600px){.datapad-stat-grid{gap:8px}#versionPanel .datapad-stat-grid .guild-stat{padding:10px 6px;min-height:80px}}


/* Beskar 0.4.7 UI corrections */
@media(min-width:801px){
  #versionRaidsColumn>#versionPanel{flex:1 1 0!important}
  #versionRaidsColumn>#raidsPanel{flex:1 1 0!important}
}
/* Restore the main Beskar Consortium GP chart to its original proportions.
   Only member-level GP trend charts inside Guild Roster are taller. */
#gpHistoryChart.gp-history-chart{height:100px!important}
#rosterPanel .roster-member .member-weekly-trend{height:50px!important;min-height:50px!important}
#rosterPanel .roster-member .member-trend{height:50px!important;min-height:50px!important}
/* Keep Last Raid compact in Guild Analytics. */
#guildStatsPanel #analyticsLastRaid{font-size:clamp(10px,.78vw,13px)!important;line-height:1.15!important;overflow-wrap:anywhere!important}
/* Raid bars: consistent height, contrast-filled remainder, all values inside. */
#raidsPanel .raid-ticket-numbers{display:none!important}
#raidsPanel .raid-ticket-summary{padding:5px 0!important;margin:0!important;gap:5px!important}
#raidsPanel .raid-ticket-track{
  position:relative!important;display:block!important;width:100%!important;
  height:24px!important;min-height:24px!important;flex:0 0 24px!important;
  border-radius:6px!important;overflow:hidden!important;
  background:#ff4a52!important;border:1px solid #ff7b8170!important;
  box-shadow:inset 0 0 0 1px #08172255!important;
}
#raidsPanel .raid-ticket-track>span{
  position:absolute!important;left:0!important;top:0!important;bottom:0!important;
  display:block!important;height:100%!important;width:0;
  background:#43cfff!important;border-radius:5px 0 0 5px!important;
  transition:width .65s ease!important;
}
#raidsPanel .raid-ticket-track>b{
  position:absolute!important;inset:0!important;z-index:1!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  padding:0 8px!important;box-sizing:border-box!important;
  font-size:clamp(9px,.72vw,11px)!important;font-weight:800!important;
  line-height:1.1!important;letter-spacing:.015em!important;text-align:center!important;
  color:#f4fbff!important;text-shadow:0 1px 3px #00121b,0 0 4px #00121b!important;
  white-space:nowrap!important;pointer-events:none!important;
}
body.dark-side #raidsPanel .raid-ticket-track{background:#43cfff!important;border-color:#70dfff70!important}
body.dark-side #raidsPanel .raid-ticket-track>span{background:#ff4a52!important}
@media(max-width:800px){
 #versionRaidsColumn>#versionPanel,#versionRaidsColumn>#raidsPanel{flex:1 1 auto!important}
 #raidsPanel .raid-ticket-track{height:24px!important;min-height:24px!important;flex-basis:24px!important}
}


/* Beskar 0.4.8 targeted visual fixes */
#versionPanel .datapad-stat-grid .guild-stat strong{
 color:#dff8ff!important;
 text-shadow:0 0 10px #53d7ff25!important;
}
#guildStatsPanel .guild-tw-stat:last-child{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;text-align:center!important}
#guildStatsPanel .guild-tw-stat:last-child>span{width:100%!important;text-align:center!important}
#guildStatsPanel #analyticsLastRaid{width:100%!important;display:block!important;text-align:center!important;font-size:clamp(10px,.72vw,12px)!important;line-height:1.15!important;overflow-wrap:anywhere!important}
#rosterPanel .strongest-units b{font-size:clamp(20px,1.7vw,28px)!important;line-height:1!important}
#rosterPanel .strongest-units em{font-size:clamp(11px,.85vw,14px)!important;margin-left:2px!important}
#rosterPanel .roster-member .member-details .member-weekly-trend{height:50px!important;min-height:50px!important;max-height:50px!important;display:block!important;width:100%!important}
#rosterPanel .roster-member .member-details .member-trend{height:50px!important;min-height:50px!important;max-height:50px!important}
/* Raid progress bars use the same border treatment and faction gradients as TW results. */
#raidsPanel .raid-ticket-track{
 border:1px solid #53d7ff36!important;
 background:linear-gradient(90deg,#8d2635,#e34b5c)!important;
 border-radius:6px!important;box-shadow:none!important;
}
#raidsPanel .raid-ticket-track>span{
 background:linear-gradient(90deg,#147a9c,#42d8ff)!important;
 border-radius:5px 0 0 5px!important;
}
body.dark-side #raidsPanel .raid-ticket-track{
 background:linear-gradient(90deg,#147a9c,#42d8ff)!important;
 border-color:#53d7ff36!important;
}
body.dark-side #raidsPanel .raid-ticket-track>span{
 background:linear-gradient(90deg,#8d2635,#e34b5c)!important;
}
#raidsPanel .raid-ticket-track>b{font-size:clamp(9px,.72vw,11px)!important}

/* v0.4.9 GP chart correction: 150px height; retain point labels without corner min/max labels. */
#gpHistoryChart.gp-history-chart{height:150px!important;min-height:150px!important}


/* v0.4.10 requested refinements */
/* Territory Battle analytics: show only progress bars, with date and star count inside. */
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card){display:block!important;padding:8px!important;border:1px solid #53d7ff55!important;border-left:2px solid #50d9ff!important;border-radius:0!important;background:linear-gradient(110deg,#071a28e8,#071a28a8)!important;box-shadow:none!important;box-sizing:border-box!important}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-info-copy{display:flex!important;flex-direction:column!important;gap:5px!important;width:100%!important}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-info-name{font-size:10px!important;line-height:1.2!important}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-info-date,#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-info-stars{display:none!important}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-track{position:relative!important;height:22px!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#5a1824!important;overflow:hidden!important}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-progress{position:absolute!important;inset:0 auto 0 0!important;width:var(--target-width)!important;height:100%!important;border-radius:0!important;box-shadow:none!important}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-label{position:absolute!important;inset:0!important;z-index:1!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 6px!important;color:#f4fbff!important;font-size:9px!important;font-weight:800!important;line-height:1.1!important;text-align:center!important;text-shadow:0 1px 3px #00121b,0 0 4px #00121b!important;white-space:nowrap!important;pointer-events:none!important}
body.light-side #guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-progress{background:linear-gradient(90deg,#147a9c,#42d8ff)!important}
body.dark-side #guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-progress{background:linear-gradient(90deg,#8d2635,#ff5267)!important}
/* Remove outlines and round corners from raid and TW score bars. */
#raidsPanel .raid-ticket-track,#raidsPanel .raid-ticket-track>span{border:0!important;border-radius:0!important;box-shadow:none!important}
#twProgressPanel .tw-bar-wrap,#twProgressPanel .tw-bar-left,#twProgressPanel .tw-bar-right{border:0!important;border-radius:0!important;box-shadow:none!important}
/* Datapad values follow the selected side's accent colors. */
body.light-side #versionPanel .datapad-stat-grid .guild-stat strong{color:#a8efff!important;text-shadow:0 0 10px #2ccfff42!important}
body.dark-side #versionPanel .datapad-stat-grid .guild-stat strong{color:#ffc1c7!important;text-shadow:0 0 10px #ff334a4d!important}


#gpHistoryChart.gp-history-chart{height:150px!important;min-height:150px!important}

/* v0.4.11: restore individual inner containers around TB result bars. */
body.dark-side #guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card){border-color:#ff465b77!important;border-left-color:#ff3b53!important;background:linear-gradient(110deg,#300812f0,#1b060ce8)!important}


/* Build 0.5.0 update refinements */
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card){
  display:flex!important;flex-direction:column!important;justify-content:center!important;
}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-info-copy{
  justify-content:center!important;
}
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-track{
  background:transparent!important;
}
#raidsPanel .raid-ticket-track{background:transparent!important;}
#raidsPanel .raid-ticket-summary>small{display:none!important;}











/* v0.5.10: use the same visible power-on flash for all three panels, independent of intro class timing. */
#guildStatsPanel.power-on-flash,
#versionPanel.power-on-flash,
#raidsPanel.power-on-flash {
  animation: panelPowerOn 1.15s steps(1,end) both !important;
  visibility: visible !important;
  transform: none !important;
}
/* Keep the flash keyframes' opacity and brightness pulses unobstructed. */
#versionPanel.reveal.visible.power-on-flash,
#raidsPanel.reveal.visible.power-on-flash {
  opacity: initial;
  filter: none;
}


/* v0.5.11: reliable power-on flash for Datapad and Raids.
   Use a dedicated animation with no opacity dependency, because the global reveal
   rules intentionally force panel opacity while intro is running. */
@keyframes beskarPanelPowerFlash {
  0% { filter: brightness(2.8) saturate(1.5); box-shadow: 0 0 0 rgba(83,215,255,0); }
  10% { filter: brightness(.55) saturate(.7); box-shadow: 0 0 24px rgba(83,215,255,.7); }
  21% { filter: brightness(2.2) saturate(1.5); box-shadow: 0 0 4px rgba(83,215,255,.15); }
  34% { filter: brightness(.75) saturate(.8); box-shadow: 0 0 20px rgba(83,215,255,.6); }
  48% { filter: brightness(1.9) saturate(1.4); box-shadow: 0 0 7px rgba(83,215,255,.25); }
  61% { filter: brightness(.85); box-shadow: 0 0 16px rgba(83,215,255,.45); }
  74% { filter: brightness(1.45); box-shadow: 0 0 9px rgba(83,215,255,.25); }
  100% { filter: brightness(1); box-shadow: 0 0 0 rgba(83,215,255,0); }
}
body.intro #versionPanel.reveal.visible.power-on-flash,
body.intro #raidsPanel.reveal.visible.power-on-flash,
body.dashboard-ready #versionPanel.reveal.visible.power-on-flash,
body.dashboard-ready #raidsPanel.reveal.visible.power-on-flash {
  animation: beskarPanelPowerFlash 1.15s steps(1,end) both !important;
  visibility: visible !important;
  transform: none !important;
}


/* v0.5.14: one shared, deterministic power-on animation for Guild Analytics, Datapad and Raids. */
@keyframes beskarSharedPanelPowerOn {
  0% { opacity: .05; filter: brightness(2.5); box-shadow: 0 0 0 rgba(83,215,255,0); }
  12% { opacity: .85; filter: brightness(.7); box-shadow: 0 0 22px rgba(83,215,255,.65); }
  20% { opacity: .18; filter: brightness(2); box-shadow: 0 0 3px rgba(83,215,255,.12); }
  34% { opacity: 1; filter: brightness(1.6); box-shadow: 0 0 18px rgba(83,215,255,.55); }
  43% { opacity: .35; filter: brightness(.8); box-shadow: 0 0 4px rgba(83,215,255,.15); }
  56% { opacity: 1; filter: brightness(1.35); box-shadow: 0 0 15px rgba(83,215,255,.45); }
  68% { opacity: .72; filter: brightness(.95); box-shadow: 0 0 8px rgba(83,215,255,.2); }
  100% { opacity: 1; filter: brightness(1); box-shadow: 0 0 0 rgba(83,215,255,0); }
}
#guildStatsPanel.power-on-flash,
#versionPanel.power-on-flash,
#raidsPanel.power-on-flash {
  visibility: visible !important;
  animation: beskarSharedPanelPowerOn 1.15s steps(1,end) both !important;
}


/* v0.5.15: keep the successful flash, but remove opacity fading from Datapad and Raids.
   Brightness and glow flicker while the panels remain fully opaque throughout. */
@keyframes beskarPanelFlashNoFade {
  0%   { opacity: 1; filter: brightness(2.6) saturate(1.5); box-shadow: 0 0 0 rgba(83,215,255,0); }
  10%  { opacity: 1; filter: brightness(.62) saturate(.8); box-shadow: 0 0 24px rgba(83,215,255,.72); }
  20%  { opacity: 1; filter: brightness(2.25) saturate(1.5); box-shadow: 0 0 4px rgba(83,215,255,.16); }
  32%  { opacity: 1; filter: brightness(.78) saturate(.85); box-shadow: 0 0 21px rgba(83,215,255,.62); }
  45%  { opacity: 1; filter: brightness(1.95) saturate(1.4); box-shadow: 0 0 6px rgba(83,215,255,.2); }
  58%  { opacity: 1; filter: brightness(.88); box-shadow: 0 0 17px rgba(83,215,255,.48); }
  72%  { opacity: 1; filter: brightness(1.55); box-shadow: 0 0 10px rgba(83,215,255,.3); }
  84%  { opacity: 1; filter: brightness(.96); box-shadow: 0 0 5px rgba(83,215,255,.12); }
  100% { opacity: 1; filter: brightness(1); box-shadow: 0 0 0 rgba(83,215,255,0); }
}
#versionPanel.power-on-flash,
#raidsPanel.power-on-flash {
  opacity: 1 !important;
  animation: beskarPanelFlashNoFade 1.15s steps(1,end) both !important;
}


/* v0.5.16: remove the separate reveal fade on Datapad and Raids.
   Visibility still waits for .visible; once revealed, opacity switches immediately.
   The panel flash is brightness/glow only, and Datapad content no longer staggers/fades. */
#versionPanel.reveal,
#raidsPanel.reveal {
  transition: none !important;
}
#versionPanel.reveal.visible,
#raidsPanel.reveal.visible {
  opacity: 1 !important;
  transition: none !important;
}
#versionPanel.reveal.visible .version-content > *,
#versionPanel.reveal.visible .version-logo {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}
#versionPanel.power-on-flash,
#raidsPanel.power-on-flash {
  opacity: 1 !important;
  transition: none !important;
  animation: beskarPanelFlashNoFade 1.15s steps(1,end) both !important;
}


/* v0.5.17: Recruitment and Territory War panels appear in place, without entrance fade or vertical slide.
   Preserve their internal ongoing effects (e.g. recruitment pulse and TW bar pulses). */
body.pre-entry #activeRosterPanel.reveal,
body.pre-entry #twProgressPanel.reveal,
body.intro #activeRosterPanel.reveal,
body.intro #twProgressPanel.reveal,
#activeRosterPanel.reveal,
#twProgressPanel.reveal {
  transition: none !important;
  transform: none !important;
  filter: none !important;
}
body.intro #activeRosterPanel.reveal,
body.intro #twProgressPanel.reveal {
  opacity: 0 !important;
  visibility: hidden !important;
}
body.intro #activeRosterPanel.reveal.visible,
body.intro #twProgressPanel.reveal.visible,
body.dashboard-ready #activeRosterPanel.reveal.visible,
body.dashboard-ready #twProgressPanel.reveal.visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  transition: none !important;
  animation: none !important;
}
#activeRosterPanel.reveal.visible,
#twProgressPanel.reveal.visible {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  transition: none !important;
  animation: none !important;
}
/* Keep individual TW result cards stationary too; do not affect their bar pulse animations. */
#twProgressPanel .tw-results,
#twProgressPanel .tw-results .tw-result-card {
  transform: none !important;
  transition: none !important;
}

/* v0.5.18: Guild roster should appear in its final position, without the remaining entrance slide/fade. */
#rosterPanel.reveal,
body.pre-entry #rosterPanel.reveal,
body.intro #rosterPanel.reveal,
body.dashboard-ready #rosterPanel.reveal {
  transform: none !important;
  transition: none !important;
  filter: none !important;
}
body.intro #rosterPanel.reveal.visible,
body.dashboard-ready #rosterPanel.reveal.visible,
#rosterPanel.reveal.visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: none !important;
  filter: none !important;
  animation: none !important;
}


/* Build 0.5.21: compact Guild Founded duration without colon separators. */
#versionPanel #guildFoundedDate{
  font-size:clamp(11px,.95vw,14px)!important;
  line-height:1.3!important;
  letter-spacing:.01em!important;
  white-space:normal!important;
}


/* v0.5.22: Raid progress remainder stays a dark track on both factions.
   Only the filled portion uses the faction accent; the unfilled area is never the opposite faction color. */
#raidsPanel .raid-ticket-track,
body.light-side #raidsPanel .raid-ticket-track,
body.dark-side #raidsPanel .raid-ticket-track {
  background: #08131d !important;
  border-color: #263745 !important;
  box-shadow: inset 0 0 0 1px #00000040 !important;
}


/* v0.5.23: Territory Battle result bars use the same dark empty track in Light and Dark Side themes. */
#guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-track,
body.light-side #guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-track,
body.dark-side #guildStatsPanel .analytics-tb-list .tb-info-row:not(.tw-countdown-card) .tb-star-track {
  background: #08131d !important;
}


/* Build 0.5.24: HR Department video intro, flash-out transition, and Datapad value glow. */
#activeRosterPanel{position:relative!important;overflow:hidden!important;}
#activeRosterPanel .hr-video-overlay{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#02070d;visibility:visible;opacity:1;pointer-events:none;}
#activeRosterPanel .hr-video-overlay video{display:block;width:100%;height:100%;object-fit:cover;background:#02070d;}
#activeRosterPanel .active-roster-details{visibility:hidden;opacity:0;}
#activeRosterPanel.hr-video-done .hr-video-overlay{display:none!important;}
#activeRosterPanel.hr-video-done .active-roster-details{visibility:visible;opacity:1;}
#activeRosterPanel.hr-video-exiting .hr-video-overlay{animation:hrVideoFlashOut .52s steps(1,end) both!important;}
@keyframes hrVideoFlashOut{
  0%{opacity:1;filter:brightness(1);}
  18%{opacity:1;filter:brightness(3.2);}
  30%{opacity:.25;filter:brightness(.2);}
  43%{opacity:1;filter:brightness(2.6);}
  58%{opacity:.08;filter:brightness(4);}
  72%{opacity:1;filter:brightness(2);}
  86%{opacity:.15;filter:brightness(.1);}
  100%{opacity:0;filter:brightness(3);}
}
#versionPanel #guildFoundedDate,
#versionPanel #nextSyncCountdown{color:var(--accent,#55dfff)!important;text-shadow:0 0 10px currentColor,0 0 18px color-mix(in srgb,currentColor 42%,transparent)!important;font-weight:900!important;}
body.dark-side #versionPanel #guildFoundedDate,
body.dark-side #versionPanel #nextSyncCountdown{color:#ff5267!important;text-shadow:0 0 10px #ff173566,0 0 18px #ff173544!important;}


/* Build 0.5.25: animated incoming-transmission slate before HR video; play HR audio unmuted. */
#activeRosterPanel .hr-video-overlay{background:#02070d!important;opacity:1!important;filter:none;pointer-events:auto!important;}
#activeRosterPanel .hr-video-overlay video{visibility:hidden;opacity:0;transition:none!important;}
#activeRosterPanel.hr-video-playing .hr-video-overlay video{visibility:visible;opacity:1;}
#activeRosterPanel .hr-transmission-screen{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(7px,1.1vw,13px);overflow:hidden;background:radial-gradient(ellipse at center,#103149 0%,#06131f 48%,#01050a 100%);color:#9eeeff;text-align:center;font-family:inherit;letter-spacing:.18em;}
#activeRosterPanel .hr-transmission-screen[hidden]{display:none!important;}
#activeRosterPanel .hr-transmission-title{font-size:clamp(13px,1.65vw,21px);font-weight:900;text-shadow:0 0 8px #5bdfff,0 0 22px #21bfff8c;animation:hrIncomingPulse 1.05s steps(2,end) infinite;}
#activeRosterPanel .hr-transmission-status{font-size:clamp(7px,.72vw,9px);color:#6ac9df;letter-spacing:.1em;}
#activeRosterPanel .hr-transmission-status span{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#62efff;box-shadow:0 0 9px #62efff;animation:hrStatusBlink .7s steps(2,end) infinite;}
#activeRosterPanel .hr-transmission-scanline{position:absolute;left:0;right:0;top:-35%;height:24%;pointer-events:none;background:linear-gradient(180deg,transparent,#62eaff18,#9af4ff54,transparent);animation:hrScanDown 1.3s linear infinite;}
#activeRosterPanel #hrAudioEnable{position:absolute;z-index:8;bottom:10px;left:50%;transform:translateX(-50%);padding:8px 12px;border:1px solid #6deaffaa;background:#06131fef;color:#a9f3ff;font-family:inherit;font-size:10px;font-weight:700;letter-spacing:.1em;cursor:pointer;}
@keyframes hrIncomingPulse{0%,100%{opacity:.55;filter:brightness(.7)}20%{opacity:1;filter:brightness(1.8)}24%{opacity:.35;filter:brightness(.4)}30%,70%{opacity:1;filter:brightness(1.35)}74%{opacity:.6;filter:brightness(.75)}}
@keyframes hrStatusBlink{0%,49%{opacity:1}50%,100%{opacity:.2}}
@keyframes hrScanDown{from{transform:translateY(0)}to{transform:translateY(600%)}}
@media(prefers-reduced-motion:reduce){#activeRosterPanel .hr-transmission-title,#activeRosterPanel .hr-transmission-status span,#activeRosterPanel .hr-transmission-scanline{animation:none!important}}

/* Build 0.6.1: transmission slate contains no logo; center the title/status group vertically. */

/* Build 0.6.5: Dark Side incoming-transmission slate uses the red faction palette. */
body.dark-side #activeRosterPanel .hr-transmission-screen{
  background:radial-gradient(ellipse at center,#3a101b 0%,#19070d 48%,#030204 100%)!important;
  color:#ffc1c7!important;
}
body.dark-side #activeRosterPanel .hr-transmission-title{
  color:#ffc1c7!important;
  text-shadow:0 0 8px #ff5267,0 0 22px #ff17358c!important;
}
body.dark-side #activeRosterPanel .hr-transmission-status{color:#e98b9a!important;}
body.dark-side #activeRosterPanel .hr-transmission-status span{
  background:#ff5267!important;
  box-shadow:0 0 9px #ff1735!important;
}
body.dark-side #activeRosterPanel .hr-transmission-scanline{
  background:linear-gradient(180deg,transparent,#ff334a18,#ff9aa954,transparent)!important;
}

#activeRosterPanel .hr-transmission-screen{justify-content:center; gap:clamp(10px,1.8vh,18px);}


/* Build 0.6.3: keep both entry choices reachable on short mobile landscape screens. */
@media (max-width: 900px) and (max-height: 520px) {
  #introGate:not(.dismissed) {
    position: fixed !important;
    inset: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    place-items: center !important;
    align-items: center !important;
    padding: 10px !important;
  }
  #introGate:not(.dismissed) .gate-card {
    transform: none !important;
    width: min(94vw, 680px) !important;
    max-width: 94vw !important;
    max-height: calc(100dvh - 20px) !important;
    overflow-y: auto !important;
    margin: auto !important;
    padding: 12px !important;
    gap: 10px !important;
  }
  #introGate:not(.dismissed) .entry-choices {
    display: flex !important;
    flex-direction: row !important;
    width: 100% !important;
    gap: 10px !important;
  }
  #introGate:not(.dismissed) .entry-choices button {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 48px !important;
    padding: 10px 8px !important;
    font-size: clamp(11px, 2.2vw, 15px) !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
    white-space: normal !important;
  }
  #skipIntro { bottom: 8px !important; right: 8px !important; }
}


/* Build 0.6.7: keep full-capacity HR status on one row. */
#activeRosterPanel .recruitment-status-line{gap:5px;min-width:0;white-space:nowrap;}
#activeRosterPanel .recruitment-status-line>span{flex:0 0 auto;font-size:11px;}
#activeRosterPanel .recruitment{font-size:clamp(8px, .72vw, 12px)!important;letter-spacing:.035em!important;line-height:1!important;white-space:nowrap;min-width:0;}
@media(max-width:700px){#activeRosterPanel .recruitment{font-size:clamp(8px, 2.3vw, 11px)!important;letter-spacing:.02em!important}}
