/* App full stylesheet extracted from inline version */
:root { --bg:#0e0a0b; --panel:#171013; --panel-alt:#1f1619; --fg:#f5f2f1; --accent:#d0541f; --accent-grad:linear-gradient(90deg,#6d121b 0%,#b92f1a 22%,#d0541f 45%,#e58f33 68%,#f5d38c 100%); --muted:#a98780; --border:#2c1a1e; --radius:8px; --focus:#ffe28a; --danger:#ff4f4f; --icon-size:78px; --silksong-gold-grad:linear-gradient(90deg,#f5d38c,#e5a43a,#d0541f,#b92f1a,#6d121b); --progress-text-grad:linear-gradient(90deg,#f9e6c4 0%,#f5d38c 15%,#e5a43a 35%,#d0541f 65%,#b92f1a 85%,#6d121b 100%); }
*{box-sizing:border-box;}
body{margin:0;color:var(--fg);font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;background:#0e0a0b;position:relative;min-height:100vh;}
body.pre-init .hero,body.pre-init header .logo-wrap img,body.pre-init .app-title{opacity:0;transform:translateY(8px);}
body.pre-init .hero{pointer-events:none}
body:not(.pre-init) .hero,body:not(.pre-init) header .logo-wrap img,body:not(.pre-init) .app-title{transition:opacity .45s ease,transform .55s ease}
/* Celebration animation */
.celebration-confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:300;}
.celebration-confetti .confetti-piece{position:absolute;top:-10vh;left:0;width:10px;height:14px;background:linear-gradient(var(--hue,30), var(--hue,30));background:hsl(var(--hue) 80% 55%);border-radius:2px;animation:confettiFall 3.6s cubic-bezier(.55,.12,.25,.9) forwards;transform:translateX(var(--rx,50vw)) rotate(0deg) scale(.9);opacity:.95;mix-blend-mode:screen;}
.celebration-confetti .confetti-piece:nth-child(3n){width:8px;height:12px;animation-duration:3.9s;}
.celebration-confetti .confetti-piece:nth-child(4n){width:12px;height:16px;animation-duration:4.1s;}
.celebration-confetti.fade .confetti-piece{animation-play-state:paused;opacity:0;transition:opacity .8s ease;}
@keyframes confettiFall{0%{transform:translateX(var(--rx)) translateY(-10vh) rotate(0deg) scale(.9)}60%{transform:translateX(calc(var(--rx) + (var(--wiggle,0) * 1px))) translateY(60vh) rotate(420deg) scale(1)}100%{transform:translateX(calc(var(--rx) + 4vw)) translateY(105vh) rotate(620deg) scale(.85);opacity:0}}
.app-title.celebrate{box-shadow:0 0 0 1px rgba(255,255,255,.18),0 0 22px -4px rgba(240,132,46,.75),0 0 60px -12px rgba(245,211,140,.55),0 6px 28px -8px rgba(0,0,0,.7);animation:titleCelebrate 3.8s ease}
@keyframes titleCelebrate{0%{filter:brightness(1) saturate(1);transform:scale(1);}28%{filter:brightness(1.25) saturate(1.3);transform:scale(1.035);}55%{filter:brightness(1.1) saturate(1.15);transform:scale(1.02);}100%{filter:brightness(1) saturate(1);transform:scale(1);}}
@media (prefers-reduced-motion:reduce){.celebration-confetti .confetti-piece{animation:none;display:none}.app-title.celebrate{animation:none}}
/* Floating progress widget */
.floating-progress{position:fixed;right:14px;bottom:18px;z-index:140;display:flex;align-items:center;gap:.55rem;background:rgba(20,26,30,.78);backdrop-filter:blur(6px) saturate(1.15);padding:.55rem .65rem .6rem;border:1px solid #25313c;border-radius:14px;box-shadow:0 8px 28px -10px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.04);animation:fadeIn .45s ease;}
.floating-progress__bar{width:140px;height:10px;background:#1f2730;border-radius:8px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #1d252d,0 2px 4px -2px rgba(0,0,0,.55) inset}
.floating-progress__fill{position:absolute;top:0;left:0;height:100%;width:0;background:var(--accent-grad);box-shadow:0 0 8px -2px rgba(240,132,46,.55),0 0 4px rgba(245,211,140,.55) inset;transition:width .55s cubic-bezier(.55,.12,.25,.9)}
.floating-progress__percent{font-size:.62rem;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;background:var(--progress-text-grad);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 10px rgba(240,132,46,.3)}
@media (max-width:640px){.floating-progress{right:8px;left:8px;bottom:12px;justify-content:space-between}.floating-progress__bar{flex:1;width:auto} }
body::before{content:"";position:fixed;inset:0;z-index:-2;background:
 radial-gradient(circle at 22% 18%,rgba(143,26,33,0.55) 0%,rgba(143,26,33,0) 55%),
 radial-gradient(circle at 78% 72%,rgba(240,132,46,0.28) 0%,rgba(240,132,46,0) 60%),
 linear-gradient(125deg,#12090b 0%,#140d10 35%,#1a1012 60%,#221415 85%,#271917 100%);
pointer-events:none}
/* subtle grain */
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:overlay;opacity:.5;background:
	/* ultra-fine static */repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,rgba(0,0,0,.02) 1px 2px),
	/* fine diagonal grain (brighter) */repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 2px,transparent 2px 4px),
	/* cross hatch (darker lines) */repeating-linear-gradient(-45deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px),
	/* warm speckles intensified */repeating-radial-gradient(circle at 10% 15%,rgba(240,170,80,.12) 0 1px,transparent 1px 18px),
	repeating-radial-gradient(circle at 78% 72%,rgba(160,40,32,.12) 0 1px,transparent 1px 22px),
	/* neutral noise dither stronger */repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 2px),
	linear-gradient(125deg,rgba(255,255,255,.025),rgba(0,0,0,.05));}
/* Removed grainShift animation for static background */
@media (prefers-reduced-motion:reduce){body::after{opacity:.45}}
header{display:flex;flex-direction:column;align-items:stretch;width:100%;position:relative;}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .9rem .6rem;background:linear-gradient(180deg,#121518,#12171b);position:sticky;top:0;z-index:90;border-bottom:1px solid #1f2730;backdrop-filter:blur(10px)}
.topbar .logo-wrap{flex:0 0 auto}
.topbar .toolbar{flex:0 0 auto}
/* Prevent title/logo from being squeezed by forcing wrap before overlap */
@media (max-width:1050px){
	.topbar{flex-wrap:wrap;justify-content:center;padding:.6rem .9rem .65rem}
	.topbar .logo-wrap{flex:1 1 100%;justify-content:center;order:0}
	.topbar .toolbar{flex:1 1 100%;justify-content:center;order:1;margin-top:.4rem}
	.logo-wrap .logo{height:58px}
	.app-title{max-width:100%;}
}
/* Hide button text labels a bit earlier on narrow desktop to preserve header width */
@media (max-width:900px){
	.topbar .toolbar{gap:.4rem}
	.btn-icon-labeled .btn-label{display:none}
	.btn-icon-labeled{font-size:0;padding:.46rem .55rem .48rem}
	.lang-toggle .lang-code{display:none}
	.search-inline input{width:120px}
}
/* Further tighten before mobile breakpoint but keep two-line layout until 640px rules take over */
@media (max-width:760px){
	.search-inline input{width:100px}
	.btn-icon-labeled{padding:.44rem .5rem .46rem}
}
.logo-wrap{display:flex;align-items:center;gap:.8rem;min-width:0}
.logo-wrap .logo{height:62px;width:auto;filter:drop-shadow(0 4px 10px rgba(0,0,0,.55));transition:transform .55s ease,height .55s ease}
@media (max-width:700px){.logo-wrap .logo{height:54px}}
.app-title{font-size:.78rem;margin:0;font-weight:600;letter-spacing:2px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}
/* Title adornment */
.app-title{position:relative;display:inline-flex;align-items:center;gap:.65rem;font-size:1rem;line-height:1.05;color:#f5f2f1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.6));text-shadow:0 1px 2px rgba(0,0,0,.55),0 0 6px rgba(255,255,255,.05);letter-spacing:2.1px;font-weight:700;padding:.18rem .0rem .22rem;border-radius:0;background:transparent;backdrop-filter:none}
/* Modernized header title style */
.app-title{--title-accent1:#f5d38c;--title-accent2:#e58f33;--title-accent3:#b92f1a;font-family:'Cinzel','Times New Roman',serif;letter-spacing:2.4px;font-weight:700;padding:.55rem 0 .6rem;border-radius:0;background:transparent;box-shadow:none;transition:letter-spacing .45s ease,padding .45s ease,transform .55s ease}
.app-title::before,.app-title::after{content:none}
.app-title .title-text{font-size:1.08rem;letter-spacing:3.1px;font-weight:700;background:linear-gradient(95deg,var(--title-accent1),var(--title-accent2) 55%,var(--title-accent3));-webkit-background-clip:text;background-clip:text;color:transparent;position:relative;text-shadow:0 0 18px rgba(240,132,46,.28),0 2px 6px rgba(0,0,0,.55);}
.app-title .title-text::before,.app-title .title-text::after{display:none} /* remove previous heavy outlines */
.app-title .title-flair{display:none} /* Remove old flairs for a cleaner, modern look */
@media (max-width:700px){.app-title{padding:.45rem 0 .5rem;border-radius:0}.app-title .title-text{font-size:.97rem;letter-spacing:2.2px}}
@media (min-width:900px){.app-title .title-text{font-size:1.22rem}}

/* Category count completion state */
.cat-count{font-size:.7rem;background:#25313c;padding:.25rem .5rem;border-radius:999px;color:var(--muted);transition:background .35s ease,color .35s ease,box-shadow .4s ease}
.cat-count.cat-count--complete{background:linear-gradient(90deg,#1e3d27,#174c2b 55%,#1e3d27);color:#d6ffe7;box-shadow:0 0 0 1px #2a6d43,0 0 14px -3px rgba(80,255,150,.55),0 2px 8px -3px rgba(0,0,0,.65);position:relative;animation:catCompletePop .65s ease}
.cat-count.cat-count--complete::after{content:"✔";margin-left:.4rem;font-weight:700;color:#9fffc3;text-shadow:0 0 8px rgba(140,255,190,.6);animation:catCompleteCheck .7s cubic-bezier(.55,.12,.25,.9)}
@keyframes catCompletePop{0%{transform:scale(.85);filter:brightness(.8);opacity:0}45%{transform:scale(1.08);filter:brightness(1.15);opacity:1}75%{transform:scale(.95);}100%{transform:scale(1);filter:brightness(1)}}
@keyframes catCompleteCheck{0%{opacity:0;transform:translateY(-4px) scale(.6)}50%{opacity:1;transform:translateY(0) scale(1.15)}100%{transform:scale(1);opacity:1}}
.app-title::before,.app-title::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none}
/* soft inner light */
.app-title::before{background:linear-gradient(140deg,rgba(255,255,255,.15),rgba(255,255,255,0) 55%);mix-blend-mode:overlay;opacity:.5}
/* subtle outer ring */
.app-title::after{box-shadow:0 0 0 1px rgba(255,255,255,.08),0 2px 10px -4px rgba(0,0,0,.6);opacity:.7}
.app-title .title-text{position:relative;font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;font-weight:700;letter-spacing:2.4px}
.app-title .title-text::before{content:attr(data-outline);position:absolute;left:0;top:0;right:0;bottom:0;z-index:-1;-webkit-text-stroke:3px rgba(0,0,0,.85);color:transparent;opacity:.9}
.app-title .title-text::after{content:attr(data-outline);position:absolute;left:0;top:0;right:0;bottom:0;z-index:-2;-webkit-text-stroke:6px rgba(0,0,0,.4);color:transparent;opacity:.45;filter:blur(.8px)}
@media (min-width:900px){.app-title{font-size:1.12rem}}
@media (max-width:700px){.app-title{font-size:.9rem;gap:.5rem}}
@media (max-width:520px){.app-title{font-size:.82rem;letter-spacing:1.6px;padding:.1rem 0 .15rem}}
/* Shrink variant inside hero.shrink */
.hero.shrink .app-title{font-size:.82rem;letter-spacing:1.4px;gap:.45rem;padding:.05rem 0 .1rem}
.hero.shrink .app-title{transform:translateY(-2px);box-shadow:0 3px 14px -6px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04)}
.hero.shrink .app-title .title-flair{font-size:.9rem;animation-duration:6s}
@media (prefers-reduced-motion:reduce){.app-title .title-flair{animation:none}}
/* Removed old flair & pulse animation */
.toolbar{display:flex;align-items:center;gap:.45rem;flex-wrap:nowrap}
.toolbar{-webkit-overflow-scrolling:touch}
@media (max-width:560px){
	.toolbar{overflow-x:auto;padding:.5rem .6rem .55rem;gap:.4rem;scroll-snap-type:x mandatory}
	.toolbar > *{scroll-snap-align:start}
	.toolbar::-webkit-scrollbar{display:none}
}
.toolbar select,#langSel{background:#1b232b;border:1px solid #2a343e;color:var(--fg);padding:.45rem .55rem .5rem;font-size:.6rem;letter-spacing:.9px;text-transform:uppercase;font-weight:600;border-radius:6px;cursor:pointer;transition:border-color .25s,background .25s}
.toolbar select:hover{border-color:#39576a;background:#202b33}
.btn-icon-labeled{display:inline-flex;align-items:center;gap:.18rem;background:#1b232b;border:1px solid #2a343e;color:var(--fg);padding:.44rem .6rem .44rem;font-size:.6rem;letter-spacing:.9px;text-transform:uppercase;font-weight:600;border-radius:6px;cursor:pointer;line-height:1;white-space:nowrap;transition:border-color .25s,background .25s,transform .25s}
.btn-icon-labeled:hover{border-color:#39576a;background:#202b33}
.btn-icon-labeled:active{transform:translateY(1px)}
.btn-icon{font-size:.8rem;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.icon{width:14px;height:14px;stroke:currentColor;display:inline-block}
/* Optional / category badges restored */
.badge-opt{display:inline-block;font-size:.65rem;line-height:1;padding:.2rem .45rem .25rem;margin-left:.35rem;background:#2b1d10;border:1px solid #5a3c1f;color:#f0c776;font-weight:600;border-radius:999px;vertical-align:middle;letter-spacing:.5px;box-shadow:0 2px 4px -2px rgba(0,0,0,.6)}
.badge-opt::before{content:'★';margin-right:.25rem;color:#f5d28a;text-shadow:0 0 4px rgba(245,210,138,.4)}
.optional-note,.optional-inline{font-size:.55rem;letter-spacing:.5px;text-transform:uppercase;background:#312418;color:#f5d28a;border:1px solid #5d422e;padding:.25rem .45rem .3rem;border-radius:6px;font-weight:600;display:inline-flex;align-items:center;gap:.25rem;box-shadow:0 2px 4px -2px rgba(0,0,0,.5)}
.optional-inline{position:absolute;top:6px;left:6px}
.optional-note{margin-top:.4rem}
.category-optional-note{margin-left:auto;font-size:.55rem;background:#2a1c13;border-color:#533726}
.boss-note{background:#3a2338;border-color:#6d3f68;color:#efb3e8}
.boss-note::before{content:'✦';margin-right:.25rem;font-size:.6rem;color:#f8dff5;text-shadow:0 0 4px rgba(248,223,245,.4)}
/* Header-integrated boss note */
.boss-header-note{display:inline-flex;align-items:center;gap:.4rem;font-size:.55rem;letter-spacing:.55px;font-weight:600;background:#23292f;color:#d6e4ed !important;padding:.28rem .55rem .3rem;border:1px solid #32424d;border-radius:999px;margin-left:.6rem;position:relative;top:-1px;white-space:nowrap}
.boss-header-note::before,.boss-header-note::after{content:'✦';font-size:.6rem;line-height:1;color:#8fb6cc;text-shadow:0 0 4px rgba(143,182,204,.45)}
.pulgas-header-note{display:inline-flex;align-items:center;gap:.4rem;font-size:.55rem;letter-spacing:.55px;font-weight:600;background:#23292f;color:#d6e4ed;padding:.28rem .55rem .3rem;border:1px solid #32424d;border-radius:999px;margin-left:.6rem;position:relative;top:-1px;white-space:nowrap}
.pulgas-header-note::before,.pulgas-header-note::after{content:'•';font-size:.7rem;line-height:1;color:#8fb6cc;opacity:.9}

/* Separator for non-100% contributing items */
.non-100-separator{margin:1.4rem 0 .9rem;display:flex;align-items:center;justify-content:center;position:relative}
.non-100-separator::before,.non-100-separator::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(255,217,140,0),rgba(255,217,140,.55),rgba(255,217,140,0));margin:0 .75rem}
.non-100-separator .sep-text{font-size:.6rem;letter-spacing:1px;text-transform:uppercase;color:#d9c08a;background:#1c1f23;padding:.35rem .75rem .4rem;border:1px solid #4d3b17;border-radius:999px;box-shadow:0 2px 6px -2px rgba(0,0,0,.6)}

/* Boss optional note row */
.boss-note-row{display:flex;align-items:center;gap:.5rem;font-size:.58rem;letter-spacing:.5px;font-weight:600}
.boss-note-icon{background:#5a2d52;color:#f5dff2;border:1px solid #854e7d;padding:.25rem .45rem .3rem;border-radius:6px;font-size:.55rem;line-height:1}
.boss-note-progress{margin-left:auto;background:#2a1c13;color:#f5d28a;border:1px solid #523726;padding:.25rem .5rem .3rem;border-radius:6px;font-size:.55rem}

/* Fallback if any icon fails to render */
.btn-icon-labeled .icon{min-width:14px}

/* Language selector flags improvement (restrict to EN/ES) */
select#langSel option{background:#141b21;color:#fff}
.toolbar #resetBtn{color:#ffd6d6;border-color:#503131;background:#301e1e}
.toolbar #resetBtn:hover{background:#3a2424;border-color:#734444}
.search-inline{position:relative;display:flex;align-items:center}
.search-inline input{width:150px;max-width:24vw;min-width:140px;background:#141b21;border:1px solid #25313c;color:var(--fg);padding:.45rem .6rem;padding-left:30px;border-radius:6px;font-size:.62rem;letter-spacing:.5px;outline:none;transition:width .3s ease,border-color .25s,background .25s}
@media (max-width:840px){.search-inline input{width:140px}}
.search-inline::before{content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);width:14px;height:14px;background:currentColor;opacity:.68;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.35-4.35'/></svg>") no-repeat center/14px 14px;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.35-4.35'/></svg>") no-repeat center/14px 14px;pointer-events:none}
@media (max-width:840px){.search-inline input{width:30px}}
@media (max-width:640px){.search-inline input{display:none}}
.search-inline input:focus{border-color:#39576a;background:#182028}
/* Removed standalone mast logo block; logo now inline in topbar */
@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}
.hero{width:100%;padding:1.1rem 0 1rem;display:flex;flex-direction:column;align-items:center;gap:.85rem;background:linear-gradient(180deg,rgba(13,15,18,0.95),rgba(13,15,18,0.75) 60%,rgba(13,15,18,0));transition:padding .45s ease,background .4s ease}
.hero-logo{height:140px;width:auto;filter:drop-shadow(0 6px 18px rgba(0,0,0,.6));animation:fadeIn .8s ease}
@media (max-width:700px){.hero-logo{height:110px}}
.hero-with-sides{position:relative;display:flex;align-items:center;justify-content:center;gap:1.4rem;flex-wrap:nowrap}
.hero-sides-row{display:flex;align-items:center;justify-content:center;gap:1.4rem}
.hero-side{height:150px;width:auto;object-fit:contain;filter:drop-shadow(0 8px 20px rgba(0,0,0,.65)) brightness(.97);opacity:.96;transition:transform .6s ease,opacity .5s ease}
@media (min-width:900px){.hero-side{height:170px}}
@media (max-width:780px){.hero-side{display:none}}
/* Override: show side logos again on smaller devices with reduced size */
@media (max-width:780px){
	.hero-with-sides .hero-side{display:block}
	.hero-side{height:120px}
}

/* Mobile adjustments update */
@media (max-width:640px){
	.hero-side{height:96px}
	.hero-with-sides{gap:.9rem}
	.hero-logo{height:120px}
}
@media (max-width:520px){
	.hero-side{height:82px;opacity:.9}
	.hero-logo{height:110px}
	.hero-with-sides{gap:.75rem}
}
@media (max-width:420px){
	.hero-side{height:70px;opacity:.85}
	.hero-logo{height:100px}
	.hero-with-sides{gap:.6rem}
}
@media (max-width:360px){
	.hero-side{height:62px;opacity:.82}
	.hero-logo{height:92px}
	.hero-with-sides{gap:.5rem}
}
.hero-side--left{transform-origin:center right}
.hero-side--right{transform-origin:center left}
.hero.shrink{padding:.55rem 0 .5rem;background:linear-gradient(180deg,rgba(13,15,18,0.97),rgba(13,15,18,0.86) 70%,rgba(13,15,18,0));}
.hero.shrink .app-title{opacity:.85}
.hero .progress-center{transition:gap .35s ease}
.hero.shrink .progress-center{gap:.3rem}
.hero #progressPercentText{background:var(--progress-text-grad);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 18px rgba(240,132,46,.28),0 0 8px rgba(245,211,140,.18)}
.hero.shrink #progressPercentText{font-size:.9rem;letter-spacing:1.4px}
h1{font-size:.95rem;margin:0;font-weight:600;letter-spacing:2px;text-transform:uppercase;opacity:.92}
.progress-center{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:.55rem;text-align:center;padding-top:.4rem}
.progress-floating{display:none}
#progressPercentText,#progressPercentTextFloating{letter-spacing:2px;text-transform:uppercase;font-weight:700;background:var(--silksong-gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 18px rgba(207,154,40,.25)}
.progress-bar{height:14px;width:100%;background:#1f2730;border-radius:8px;overflow:hidden;position:relative;box-shadow:0 2px 6px -2px rgba(0,0,0,.5) inset,0 0 0 1px #1d252d}
.progress-bar__fill{position:absolute;top:0;left:0;height:100%;width:0;background:var(--accent-grad);transition:width .55s cubic-bezier(.55,.12,.25,.9);box-shadow:0 0 12px -2px rgba(240,132,46,.55),0 0 4px rgba(245,211,140,.6) inset}
#itemsRemaining,#itemsRemainingFloating{font-size:.7rem;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:#b9c5cf;background:#25313c;padding:.3rem .65rem .32rem;border-radius:999px;box-shadow:0 2px 4px -2px rgba(0,0,0,.5),0 0 0 1px #2b3741}
/* old controls removed; toolbar replaces them */
main{max-width:1400px;margin:0 auto;padding:.75rem 1rem 2rem}
.categories{display:flex;flex-direction:column;gap:1rem}
.cat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.cat-header{cursor:pointer;padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;user-select:none;background:var(--panel-alt)}
.cat-header:hover{background:#202830}
.cat-header h2{flex:1;margin:0;font-size:.9rem;letter-spacing:.5px;font-weight:600}
.cat-count--side{background:#2a2225;color:#e2d8dc;border:1px solid #443238;box-shadow:0 2px 4px -2px rgba(0,0,0,.5)}
.cat.collapsed .cat-body{display:none}
.collapse-icon{font-size:.75rem;opacity:.6;transition:transform .25s}
.cat.collapsed .collapse-icon{transform:rotate(-90deg)}
.cat-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.55rem;padding:.75rem .85rem 1rem}
@media (max-width:700px){.cat-body{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
@media (max-width:420px){.cat-body{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem;padding:.65rem .7rem .85rem}}
@media (max-width:360px){.cat-body{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}
@media (max-width:640px){
	.boss-header-note,.pulgas-header-note{display:block;margin:.4rem 0 0 0;top:0;border-radius:8px;white-space:normal;line-height:1.25}
	.cat-header{flex-wrap:wrap}
	.cat-header h2{flex:1 1 100%;margin-bottom:.25rem}
}
@media (max-width:480px){
	.floating-progress{padding:.5rem .55rem .55rem;gap:.5rem;bottom:calc(12px + env(safe-area-inset-bottom,0));}
	.floating-progress__bar{height:8px}
	.floating-progress__percent{font-size:.55rem;letter-spacing:1.1px}
}
.item{border:1px solid var(--border);padding:.6rem .65rem .75rem;border-radius:8px;background:#161d23;cursor:pointer;line-height:1.25;position:relative;font-size:.78rem;display:flex;flex-direction:column;gap:.55rem;contain:layout paint}
.item:hover{border-color:#2d3944;background:#1b242b;box-shadow:0 0 0 1px #25313c,0 4px 10px -4px rgba(0,0,0,.6)}
.item:active{transform:translateY(1px)}
.item:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.item[aria-checked="true"]{background:#1e2d20;border-color:#315136}
.item[aria-checked="true"] .label{text-decoration:line-through;opacity:.85}
.checkmark{position:absolute;top:6px;right:6px;font-size:.85rem;opacity:.15;transition:.18s ease}
.item[aria-checked="true"] .checkmark{opacity:1;transform:scale(1)}
.item.pulse{animation:pulse .45s ease}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(79,179,255,.6)}100%{box-shadow:0 0 0 22px rgba(79,179,255,0)}}
.item .top{display:flex;align-items:flex-start;gap:.65rem}
.item .thumb{width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);border:1px solid #25313c;background:#10161b;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 2px 6px -2px rgba(0,0,0,.6)}
.item .thumb img{width:100%;height:100%;display:block;object-fit:contain;image-rendering:auto}
.item .thumb img.hi-upscaled{filter:drop-shadow(0 0 2px rgba(0,0,0,.4))}
@media (max-width:600px){:root{--icon-size:64px}}
@media (max-width:420px){:root{--icon-size:58px}}
@media (max-width:360px){:root{--icon-size:54px}}
.item{will-change:transform}
@media (max-width:420px){
	.item{padding:.55rem .55rem .7rem;font-size:.74rem}
	.item .label{font-size:.78rem}
	.item .desc{font-size:.6rem}
}
@media (max-width:360px){
	.item{padding:.5rem .5rem .65rem}
	.item .top{gap:.5rem}
}
@media (max-width:480px){
	.toolbar{padding-right:.4rem}
	.logo-wrap .logo{height:50px}
	.app-title{padding:.4rem .7rem .45rem}
	.app-title .title-text{font-size:.9rem;letter-spacing:2px}
	.btn-icon-labeled{padding:.42rem .55rem .42rem;font-size:.55rem}
	.lang-toggle{padding:.4rem .55rem .44rem;font-size:.5rem}
}
@media (max-width:380px){
	.btn-icon-labeled .btn-label{display:none}
	.btn-icon-labeled::before{margin-right:0}
	.toolbar{gap:.35rem}
	.lang-toggle .lang-code{display:none}
	.lang-toggle{gap:.25rem;padding:.38rem .5rem .4rem}
}

/* Prevent horizontal scroll on very narrow devices */
@media (max-width:480px){html,body{overflow-x:hidden}}

/* Improve tap target spacing when labels hidden */
@media (max-width:380px){.btn-icon-labeled{min-width:34px;justify-content:center}}

/* Category grid tighter on narrow devices */
@media (max-width:480px){
	.cat-header{padding:.65rem .75rem}
	.cat-body{padding:.6rem .65rem .75rem}
}

/* Boss & Pulgas side counts stack under header on narrow widths */
@media (max-width:640px){
	.cat-count--side{margin-top:.35rem;display:inline-flex}
}

/* Ensure progress bar text doesn't overflow small widths */
@media (max-width:400px){#progressPercentText{font-size:.9rem;letter-spacing:1.4px}}
.item .meta{flex:1;display:flex;flex-direction:column;min-width:0}
.item .label{font-weight:600;font-size:.82rem;line-height:1.15;display:block;margin:0 0 .2rem}
.item .desc{font-size:.63rem;letter-spacing:.35px;color:#c2ccd4;line-height:1.25}
.item[aria-checked="true"] .desc{opacity:.8}
.item .map-img{width:100%;border:1px solid #25313c;background:#10161b;border-radius:8px;overflow:hidden;aspect-ratio:5/2;display:flex;align-items:center;justify-content:center;margin-top:auto;position:relative}
.item .map-img img{width:100%;height:100%;object-fit:cover;opacity:.9;filter:contrast(1.05) brightness(.95)}
/* Tooltip (currently disabled via JS flag) */
.tooltip{position:fixed;z-index:100;pointer-events:none;max-width:280px;background:#0f1418;border:1px solid #25313c;padding:.6rem .7rem .65rem;border-radius:8px;font-size:.7rem;line-height:1.25;box-shadow:0 6px 18px -6px rgba(0,0,0,.55);opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .18s ease}
.tooltip[data-show="true"]{opacity:1;transform:translateY(0)}
.tooltip h4{margin:.1rem 0 .35rem;font-size:.75rem;font-weight:600;letter-spacing:.5px;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tooltip .row{margin:0 0 .35rem}
.tooltip .row:last-child{margin-bottom:0}
.tooltip .muted{color:var(--muted);font-style:italic}
@media (pointer:coarse){.tooltip{display:none}}
.search-bar-wrap{width:100%;max-width:760px;padding:0 .75rem;display:flex;justify-content:center}
/* === Mobile layout adjustments (appended) === */
@media (max-width:640px){
	/* Title single line full width; buttons stacked below */
	.logo-wrap .logo{display:none}
	.topbar{flex-direction:column;align-items:stretch;gap:.5rem;padding:.6rem .85rem .7rem}
	.topbar{overflow:visible}
	.logo-wrap{justify-content:center}
	.app-title{justify-content:center;width:100%;text-align:center;padding:.55rem 0 .5rem;max-width:100%;overflow:visible;text-overflow:unset}
	.app-title .title-text{font-size:clamp(.82rem,4.5vw,1rem);letter-spacing:clamp(1px,0.7vw,1.9px);white-space:nowrap}
	/* Toolbar: search first, no expand/collapse buttons */
	.toolbar{order:2;width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;padding:0;margin:0}
	#expandAllBtn,#collapseAllBtn{display:none !important}
	/* Show import/export/feedback buttons on mobile but more compact */
	.search-inline{order:0}
	.search-inline input{display:block !important;width:220px;max-width:70%;}
	.btn-icon-labeled{padding:.42rem .52rem .44rem;font-size:.0rem;letter-spacing:0}
	.btn-icon-labeled .btn-label{display:none}
	.lang-toggle .lang-code{display:none}
	/* Language menu centered */
	.lang-toggle{padding:.38rem .5rem .4rem;font-size:.5rem;letter-spacing:.75px}
	.toolbar > *{flex:0 0 auto}
	/* Category titles single line; include bosses/pulgas, shrink their notes */
	.cat-header{flex-wrap:nowrap;align-items:baseline}
	.cat-header h2{white-space:nowrap;display:flex;align-items:center}
	.boss-header-note,.pulgas-header-note{white-space:nowrap;font-size:.46rem;letter-spacing:.4px;margin-left:.5rem;top:0;position:static;line-height:1;display:inline-flex;align-items:center;padding:.22rem .45rem .25rem;border-radius:6px}
	.cat[data-category="bosses"] .cat-header h2,
	.cat[data-category="pulgas"] .cat-header h2{flex:0 0 auto;margin:0}
	.cat-count,.cat-count--side{white-space:nowrap}
	/* Progress bar side breathing room */
	.progress-bar{margin:0 auto;max-width:92%;width:92%}
}

/* Reduce mobile progress bar width slightly below 480 for better breathing room */
@media (max-width:480px){
	.progress-bar{max-width:88%;width:88%}
}
#searchInput{width:150px;max-width:150px}
@media (max-width:560px){#searchInput{width:140px;max-width:140px}}
footer p{margin:0}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Image modal styles appended here (were injected dynamically) */
.img-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;font-size:0}
.img-modal.hidden{display:none}
.img-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(4px)}
.img-modal-dialog{position:relative;max-width:90vw;max-height:90vh;background:#0f1418;border:1px solid #25313c;border-radius:12px;padding:1.1rem 1.15rem 1.2rem;box-shadow:0 12px 40px -10px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,0.05);display:flex;flex-direction:column}
.img-modal-body{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto}
.img-modal-body img{max-width:82vw;max-height:72vh;object-fit:contain;image-rendering:auto}
.img-modal-close{position:absolute;top:6px;right:6px;background:#202a32;border:1px solid #2d3944;color:#fff;font-size:1rem;line-height:1;height:32px;width:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.img-modal-close:hover{border-color:var(--accent)}
.map-img .zoom-btn{position:absolute;bottom:6px;right:6px;display:inline-flex;align-items:center;gap:.35rem;background:rgba(25,30,36,.82);border:1px solid #364450;color:#f5f2f1;font-size:.56rem;font-weight:600;letter-spacing:.6px;padding:.38rem .55rem .4rem;border-radius:7px;cursor:pointer;opacity:.92;backdrop-filter:blur(3px) saturate(1.2);line-height:1;transition:background .25s,border-color .25s,box-shadow .25s,transform .2s}
.map-img .zoom-btn__icon{width:14px;height:14px;display:inline-block;background:currentColor;opacity:.9;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'><path d='M15 3h6v6'/><path d='M9 21H3v-6'/><path d='M21 3 14 10'/><path d='m3 21 7-7'/></svg>") center/14px 14px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'><path d='M15 3h6v6'/><path d='M9 21H3v-6'/><path d='M21 3 14 10'/><path d='m3 21 7-7'/></svg>") center/14px 14px no-repeat;transition:opacity .25s}
.map-img .zoom-btn:hover{background:rgba(35,42,50,.9);border-color:#4d6274;box-shadow:0 0 0 1px rgba(255,255,255,.05),0 4px 14px -6px rgba(0,0,0,.6)}
.map-img .zoom-btn:hover .zoom-btn__icon{opacity:1}
.map-img .zoom-btn:active{transform:translateY(1px)}
.map-img .zoom-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* Info Modal */
.info-modal{position:fixed;inset:0;z-index:250;font-size:0;display:flex;align-items:center;justify-content:center}
.info-modal[hidden]{display:none}
.info-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(6px)}
.info-modal__dialog{position:relative;z-index:1;width:min(560px,90vw);max-height:80vh;overflow:auto;background:#12171b;border:1px solid #27323b;border-radius:14px;padding:1.1rem 1.2rem 1.25rem;font-size:.72rem;line-height:1.35;display:flex;flex-direction:column;gap:.65rem;box-shadow:0 16px 42px -12px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.04)}
.info-modal__dialog h2{margin:.1rem 0 .35rem;font-size:.85rem;font-weight:600;letter-spacing:1px;background:var(--silksong-gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.info-modal__close{position:absolute;top:6px;right:6px;background:#1d262d;border:1px solid #2b3741;color:#fff;font-size:1rem;line-height:1;height:32px;width:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.info-modal__close:hover{border-color:var(--accent)}
.info-list{margin:.15rem 0 .4rem;padding-left:1rem;font-size:.68rem}
.info-list li{margin:.25rem 0}

/* Single language toggle button (cycles EN/ES) */
.lang-dropdown{position:relative;display:inline-block}
.lang-toggle{background:#1b232b;border:1px solid #2a343e;color:var(--fg);display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .6rem .46rem .55rem;font-size:.55rem;letter-spacing:1px;text-transform:uppercase;font-weight:600;border-radius:6px;cursor:pointer;line-height:1;transition:border-color .25s,background .25s,transform .25s}
.lang-toggle:hover{border-color:#39576a;background:#202b33}
.lang-toggle:active{transform:translateY(1px)}
.lang-toggle[aria-expanded="true"]{border-color:#4e6880;background:#25313a}
.lang-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.lang-toggle .lang-code{min-width:1.6ch;text-align:center}
.lang-caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--fg);margin-left:.2rem;transition:transform .25s}
.lang-toggle[aria-expanded="true"] .lang-caret{transform:rotate(180deg)}
.lang-menu{position:absolute;top:100%;left:0;margin:.3rem 0 0;padding:.3rem 0;list-style:none;background:#161d1f;border:1px solid #2a343e;border-radius:8px;min-width:120px;box-shadow:0 8px 24px -8px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.04);font-size:.6rem;z-index:150}
.lang-menu li{display:flex;align-items:center;gap:.4rem;padding:.4rem .65rem .45rem;cursor:pointer;letter-spacing:.8px;text-transform:uppercase}
.lang-menu li:hover{background:#202a32}
.lang-menu li[aria-selected="true"]{background:#25313a;color:#fff}
.lang-menu li .opt-code{font-weight:600}
.lang-menu[hidden]{display:none}
.lang-toggle[aria-expanded="true"] + .lang-menu{display:block}
/* Floating overlay adjustments (JS sets position:fixed) */
.lang-menu[style*='position:fixed']{animation:fadeInLang .18s ease;}
@keyframes fadeInLang{0%{opacity:0;transform:translateY(-4px)}100%{opacity:1;transform:translateY(0)}}
.lang-dropdown{position:relative;z-index:160}
.lang-toggle[aria-expanded="true"]{position:relative}
@media (max-width:640px){
	.lang-dropdown{align-self:center}
	.lang-menu{top:calc(100% + .3rem);left:50%;transform:translateX(-50%);}
}
	/* Lazy image placeholders */
	img.lazy-img{background:#141b21 linear-gradient(135deg,#141b21,#1c252d);filter:blur(2px);transition:filter .35s ease,opacity .35s ease}
	img.lazy-img.hi-upscaled, img.lazy-img:not([data-src]){filter:blur(0);}
/* --- Dynamic overflow handling (desktop) --- */
.topbar.compact .btn-icon-labeled .btn-label{display:none}
.topbar.compact .btn-icon-labeled{padding:.46rem .55rem .48rem;font-size:0}
.topbar.compact .search-inline input{width:120px}
/* Second stage: hide search if still overflowing */
.topbar.compact2 .search-inline{display:none}
.topbar.compact2 .btn-icon-labeled{padding:.44rem .5rem .46rem}
.topbar.compact .lang-toggle .lang-code{display:none}
/* Provide subtle indicator that toolbar is truncated via gradient fade (optional) */
.topbar.compact .toolbar{position:relative}
.topbar.compact .toolbar::after{content:"";position:absolute;top:0;right:0;width:22px;height:100%;pointer-events:none;background:linear-gradient(90deg,rgba(18,21,24,0),rgba(18,21,24,.85));}
/* Icon-only presentation when labels hidden (compact or narrow) */
.btn-icon-labeled::before{content:none}
.topbar.compact .btn-icon-labeled,
.topbar.compact2 .btn-icon-labeled{justify-content:center;min-width:34px;gap:0}
.topbar.compact .btn-icon-labeled::before,
.topbar.compact2 .btn-icon-labeled::before{content:"";display:inline-block;width:16px;height:16px;background:currentColor;opacity:.9}
@media (max-width:900px){
	.btn-icon-labeled{justify-content:center;min-width:34px;gap:0}
	.btn-icon-labeled::before{content:"";display:inline-block;width:16px;height:16px;background:currentColor;opacity:.9}
}
/* Individual icon masks (Lucide-style stroke icons simplified) */
#importBtn::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v14'/><path d='m6 11 6 6 6-6'/><path d='M5 21h14'/></svg>") center/16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v14'/><path d='m6 11 6 6 6-6'/><path d='M5 21h14'/></svg>") center/16px 16px no-repeat}
#exportBtn::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21V7'/><path d='m6 13 6-6 6 6'/><path d='M5 3h14'/></svg>") center/16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21V7'/><path d='m6 13 6-6 6 6'/><path d='M5 3h14'/></svg>") center/16px 16px no-repeat}
#infoBtn::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/><path d='M12 16v-4'/><path d='M12 8h.01'/></svg>") center/16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/><path d='M12 16v-4'/><path d='M12 8h.01'/></svg>") center/16px 16px no-repeat}
#feedbackBtn::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-4.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.5 8.5 0 0 1 8 8v.5Z'/></svg>") center/16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-4.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.5 8.5 0 0 1 8 8v.5Z'/></svg>") center/16px 16px no-repeat}
#expandAllBtn::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' width='24' height='24'%3E%3Cpath d='m7 7 5 5 5-5'/><path d='m7 13 5 5 5-5'/></svg>") center/16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' width='24' height='24'%3E%3Cpath d='m7 7 5 5 5-5'/><path d='m7 13 5 5 5-5'/></svg>") center/16px 16px no-repeat}
#collapseAllBtn::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' width='24' height='24'%3E%3Cpath d='m17 17-5-5-5 5'/><path d='m17 11-5-5-5 5'/></svg>") center/16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' width='24' height='24'%3E%3Cpath d='m17 17-5-5-5 5'/><path d='m17 11-5-5-5 5'/></svg>") center/16px 16px no-repeat}
#resetBtn::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' width='24' height='24'%3E%3Cpath d='M21 2v6h-6'/><path d='M3 12a9 9 0 0 1 15-6l3 2'/><path d='M3 22v-6h6'/><path d='M21 12a9 9 0 0 1-15 6l-3-2'/></svg>") center/16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' width='24' height='24'%3E%3Cpath d='M21 2v6h-6'/><path d='M3 12a9 9 0 0 1 15-6l3 2'/><path d='M3 22v-6h6'/><path d='M21 12a9 9 0 0 1-15 6l-3-2'/></svg>") center/16px 16px no-repeat}
.flag{position:relative;width:18px;height:12px;border:1px solid #2a343e;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px rgba(0,0,0,.35) inset;flex-shrink:0}
.flag-en{background:linear-gradient(#b22234 14.28%,#fff 14.28%,#fff 28.56%,#b22234 28.56%,#b22234 42.84%,#fff 42.84%,#fff 57.12%,#b22234 57.12%,#b22234 71.4%,#fff 71.4%,#fff 85.68%,#b22234 85.68%,#b22234 100%)}
.flag-en::before{content:"";position:absolute;top:0;left:0;width:40%;height:50%;background:#3c3b6e}
.flag-es{background:linear-gradient(#aa151b 0,#aa151b 25%,#f1bf00 25%,#f1bf00 75%,#aa151b 75%,#aa151b 100%)}

/* Toolbar button icons via CSS mask (no sprite to avoid flicker) */
.btn-icon-labeled{position:relative}
.btn-icon-labeled::before{content:"";width:14px;height:14px;display:inline-block;background:currentColor;-webkit-mask:var(--icon) no-repeat center/14px 14px;mask:var(--icon) no-repeat center/14px 14px;opacity:.85;transition:opacity .25s;margin-right:.12rem;position:relative;top:.5px}
/* Ensure label aligns perfectly vertical */
.btn-icon-labeled .btn-label{display:inline-flex;align-items:center;line-height:1}
.btn-icon-labeled:hover::before{opacity:1}
/* Define per-button icons (24x24 viewBox stroke icons) */
.btn-import{--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3v12'/><path d='M7 10l5 5 5-5'/><path d='M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2'/></svg>")}
.btn-export{--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21V9'/><path d='M17 14l-5-5-5 5'/><path d='M4 7V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v2'/></svg>")}
.btn-info{--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 16v-4'/><path d='M12 8h.01'/></svg>")}
.btn-expand{--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><path d='M12 8v8'/><path d='M8 12h8'/></svg>")}
.btn-collapse{--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><path d='M8 12h8'/></svg>")}
.btn-reset{--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 3v6h6'/><path d='M21 21v-6h-6'/><path d='M21 9A9 9 0 0 0 5.64 5.64L3 9'/><path d='M3 15a9 9 0 0 0 15.36 3.36L21 15'/></svg>")}
/* Feedback button icon */
.btn-feedback{--icon:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5Z'/></svg>")}

/* Feedback modal */
.feedback-modal{position:fixed;inset:0;z-index:260;font-size:0;display:flex;align-items:center;justify-content:center}
.feedback-modal[hidden]{display:none}
.feedback-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(5px)}
.feedback-modal__dialog{position:relative;z-index:1;width:min(520px,92vw);max-height:82vh;overflow:auto;background:#12171b;border:1px solid #27323b;border-radius:14px;padding:1rem 1.1rem 1.2rem;font-size:.7rem;line-height:1.35;display:flex;flex-direction:column;gap:.75rem;box-shadow:0 16px 42px -12px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.04)}
.feedback-modal__close{position:absolute;top:6px;right:6px;background:#1d262d;border:1px solid #2b3741;color:#fff;font-size:1rem;line-height:1;height:32px;width:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.feedback-modal__close:hover{border-color:#39576a}
#feedbackForm{display:flex;flex-direction:column;gap:.85rem}
#feedbackForm .fb-row{display:flex;flex-direction:column;gap:.35rem}
#feedbackForm label{font-weight:600;letter-spacing:.5px;font-size:.65rem;text-transform:uppercase;color:#d6e4ed}
#feedbackForm select,#feedbackForm textarea{background:#141b21;border:1px solid #25313c;color:#f5f2f1;border-radius:8px;padding:.55rem .65rem .6rem;font-size:.65rem;font-family:inherit;letter-spacing:.4px;resize:vertical;min-height:46px;outline:none;transition:border-color .25s,background .25s}
#feedbackForm textarea{min-height:120px}
#feedbackForm select:focus,#feedbackForm textarea:focus{border-color:#39576a;background:#182028}
.fb-inline{display:none}
.fb-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.15rem}
.fb-actions button{font-size:.6rem;letter-spacing:.9px;text-transform:uppercase;font-weight:600;padding:.5rem .75rem .55rem;border-radius:8px;cursor:pointer;border:1px solid #2a343e;background:#1b232b;color:#f5f2f1;transition:background .25s,border-color .25s,transform .2s}
.fb-actions button:hover{background:#202b33;border-color:#39576a}
.fb-actions button:active{transform:translateY(1px)}
.fb-actions .fb-send{background:#25313a;border-color:#39576a}
.fb-actions .fb-send:hover{background:#2c3945}
.fb-status{font-size:.58rem;letter-spacing:.6px;background:#1b232b;border:1px solid #2a343e;padding:.45rem .6rem .5rem;border-radius:8px;margin-top:.2rem;display:flex;align-items:center;gap:.5rem}
.fb-status--ok{border-color:#2a6d43;background:#1e3d27;color:#d6ffe7}
.fb-status--err{border-color:#6d2a2a;background:#3d1e1e;color:#ffd6d6}
@media (max-width:480px){
	.feedback-modal__dialog{padding:.85rem .9rem 1rem}
	#feedbackForm textarea{min-height:100px}
}

/* === Header title simplification override (remove all backgrounds/gradients) === */
.app-title{background:none!important;box-shadow:none!important;filter:none!important;text-shadow:none!important;position:relative;display:inline-flex;align-items:center;gap:.55rem;font-family:'Cinzel','Times New Roman',serif;font-weight:700;letter-spacing:2.2px;padding:.45rem 0 .5rem;border-radius:0}
.app-title::before,.app-title::after{content:none!important}
.app-title .title-text{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;color:#f5f2f1!important;text-shadow:none!important;position:relative}
/* Keep celebration scale/animation but without reintroducing background visuals */
.app-title.celebrate{box-shadow:none!important}
@media (max-width:700px){.app-title{padding:.4rem 0 .45rem;letter-spacing:2px}}

