:root{--bg:#111421;--panel:#1b2031;--line:#30384c;--muted:#a5aec4;--ink:#f5f3fb;--accent:#d1b0ff;--green:#8ce8b6;--gold:#f5cf80}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 85% 0,#302441 0,transparent 45%),var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}main{max-width:1180px;margin:auto;padding:30px 40px}header{display:flex;align-items:center;justify-content:space-between;padding-bottom:32px;border-bottom:1px solid var(--line)}.brand{font-size:30px;letter-spacing:-1px;font-weight:850;color:var(--ink);text-decoration:none}.brand span{font-size:10px;letter-spacing:2px;border:1px solid #65547c;border-radius:5px;padding:5px 7px;margin-left:12px;vertical-align:middle;color:var(--accent)}.connection{font-size:12px;color:var(--muted)}.connection i{display:inline-block;height:7px;width:7px;border-radius:50%;background:var(--green);margin-right:7px}.intro{display:flex;justify-content:space-between;align-items:center;gap:40px;padding:44px 0 30px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:var(--accent);margin:0 0 9px}h1{font-size:43px;line-height:1.12;letter-spacing:-1.5px;margin:0 0 18px}h2{font-size:21px;letter-spacing:-.4px;margin:0}.muted,.hint{color:var(--muted)}.intro .muted{font-size:14px}.resources{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;min-width:320px}.resource{padding:16px 20px;border:1px solid var(--line);border-radius:13px;background:#ffffff05}.resource small{display:block;color:var(--muted);font-size:11px}.resource b{display:block;font-size:25px;color:var(--gold);font-weight:650}.resource:last-child b{color:var(--accent)}.layout{display:grid;grid-template-columns:1fr 1.25fr;gap:20px}.panel{padding:25px;border:1px solid var(--line);background:linear-gradient(135deg,#202639,#191e2e);border-radius:18px;box-shadow:0 15px 40px #00000014}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.section-head .eyebrow{margin-bottom:6px}.pill{white-space:nowrap;font-size:11px;color:var(--green);background:#8ce8b610;border:1px solid #8ce8b628;border-radius:100px;padding:5px 10px}.hint{font-size:12px;margin-top:-6px;margin-bottom:20px}.hero-row{display:flex;gap:13px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.portrait{display:block;flex:none;width:64px;height:64px;background-color:#353044;background-image:url('/assets/avatars.png');background-size:655.36px;border-radius:12px;box-shadow:inset 0 0 0 1px #ffffff20}.portrait.empty{background-image:none;display:grid;place-items:center;font-size:24px}.hero-main{flex:1}.hero-name{font-size:16px;font-weight:700}.hero-level{font-size:12px;color:var(--muted)}.hero-cost{font-size:10px;color:var(--muted);display:block;margin-top:5px}.hero-control{display:flex;align-items:center;gap:12px}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}button{font:inherit;cursor:pointer;transition:background .15s,transform .15s}button:hover:not(:disabled){translate:0 -1px}button:disabled{opacity:.4;cursor:default}.primary{border:0;background:var(--accent);color:#251c34;border-radius:11px;padding:14px 22px;font-weight:750;display:flex;justify-content:space-between;gap:30px;align-items:center}.primary:hover{background:#e1caff}.secondary{border:1px solid #46516a;background:#ffffff04;color:var(--ink);border-radius:9px;padding:8px 12px;font-size:12px}.wide{width:100%;margin-top:12px;padding:11px}.stages{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-top:8px}.stage{height:47px;border:1px solid #374158;background:#ffffff04;color:var(--muted);border-radius:10px;font-size:14px}.stage.done{color:var(--green);border-color:#8ce8b630}.stage.selected{background:#d1b0ff20;border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 2px #d1b0ff0b}.stage-detail{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.stage-detail p{font-size:12px;color:var(--muted);max-width:200px}.last-result{font-size:12px;min-height:25px;margin-top:17px;color:var(--green)}.arena{margin-top:20px}.battlefield{display:flex;justify-content:space-around;align-items:center;gap:25px;min-height:230px;background:radial-gradient(ellipse,#42375570,transparent 70%);padding:22px 0}.units{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;max-width:44%}.unit{text-align:center;width:83px;transition:transform .22s,opacity .25s;position:relative}.unit .portrait{margin:auto;width:70px;height:70px;background-size:716.8px}.unit-name{font-size:11px;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit .hp{height:5px;border-radius:5px;background:#ffffff13;margin:8px 0;overflow:hidden}.unit .hp i{display:block;height:100%;background:var(--green);transition:width .25s}.enemies .hp i{background:#f5a1b4}.unit.active{transform:translateY(-10px);filter:drop-shadow(0 0 12px #d1b0ff60)}.unit.dead{opacity:.3;filter:grayscale(1)}.versus{font-weight:800;color:#78688d;letter-spacing:3px}.battle-line{min-height:40px;text-align:center;font-size:14px;color:var(--muted);padding:12px;border-top:1px solid var(--line)}.rewards{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;color:var(--gold);font-size:13px}.reward{background:#f5cf8010;border:1px solid #f5cf8020;padding:7px 12px;border-radius:8px}.error{background:#ff87991a;border:1px solid #ff879950;padding:14px 18px;border-radius:12px;color:#ffd2da;margin:0 0 20px}footer{color:#8c96ad;font-size:12px;max-width:830px;padding:28px 0}footer strong{color:#b5bed2;font-weight:500}[hidden]{display:none!important}@media(max-width:850px){main{padding:22px}.intro{align-items:flex-start;flex-direction:column;gap:15px}.resources{min-width:0;width:100%;grid-template-columns:repeat(3,1fr)}.layout{grid-template-columns:1fr}h1{font-size:37px}.panel{padding:22px}.units{gap:8px}.unit{width:65px}.unit .portrait{width:60px;height:60px}.battlefield{gap:12px}.connection{font-size:10px}.resources .resource{padding:12px}.resource b{font-size:21px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Portada local compuesta con el fondo y los atlas del cliente. */
.home-view{max-width:490px;margin:24px auto 0}.home-stage{position:relative;aspect-ratio:9/16;overflow:hidden;border-radius:22px;border:5px solid #aabdd2;box-shadow:0 25px 70px #0009;background:#83b2db}.home-background{position:absolute;inset:0;background:url('/assets/home-bg.png') center center/cover no-repeat}.home-hero{position:absolute;left:50%;bottom:17%;width:100%;height:69%;object-fit:contain;transform:translateX(-50%);filter:drop-shadow(0 12px 16px #142e5370);pointer-events:none}.home-stage button{border:0;background:none;color:white;padding:0;text-shadow:0 2px 4px #1b253c,0 0 2px #12263a}.home-stage button:hover{scale:1.04}.home-top{position:absolute;top:0;left:0;right:0;height:13%;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 9px;background:linear-gradient(#d3e0f3ee,#cbdcf2dc 75%,transparent)}.home-profile{width:16%;height:78%;min-width:64px;position:relative;border:3px solid #eee!important;border-radius:17px;background:#98b7d8!important;box-shadow:0 2px 0 #486b97}.home-profile-portrait{position:absolute;inset:3px;background:url('/assets/avatars.png') left top/auto no-repeat;border-radius:11px}.home-profile #home-level{position:absolute;bottom:0;left:5px;font-size:14px;font-weight:bold}.home-currency{display:flex;gap:8px;margin-top:4px;min-width:0}.home-currency span{display:flex;align-items:center;gap:3px;padding:2px 7px;background:#f7fbffee;border:2px solid #a9bfd9;border-radius:30px;color:#3c4960;font-size:15px;text-shadow:none;white-space:nowrap}.home-currency b{font-weight:750}.home-mail{width:14%;height:55%;background:#96bcf1!important;border:3px solid #f3faff!important;border-radius:14px;display:grid;place-items:center;box-shadow:0 2px 0 #3768a7}.home-mail .home-sprite{transform:scale(.58)}.home-side{position:absolute;top:13%;display:flex;flex-direction:column;gap:6px;width:19%;z-index:2}.home-left{left:0}.home-right{right:0}.home-side button{min-height:80px;display:grid;justify-items:center;align-content:start}.home-sprite{display:block;flex:none;background-image:url('/assets/home-icons.png');background-repeat:no-repeat}.home-side .home-sprite{transform:scale(.72);transform-origin:top center;margin-bottom:-20px}.home-side small,.home-destinations strong,.home-bottom small{font-size:14px;font-weight:850;line-height:1;color:#fff;white-space:nowrap;-webkit-text-stroke:1px #56464a;paint-order:stroke fill}.home-destinations{position:absolute;bottom:14%;left:2%;right:2%;height:16%;display:flex;justify-content:space-between;align-items:end;z-index:3}.home-destinations button{width:27%;height:86%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(150deg,#c7edfdcc,#629cc9dd)!important;border:3px solid #e8f5fa!important;border-radius:16px;box-shadow:0 4px 0 #456187}.home-destinations button.featured{width:43%;height:100%;background:linear-gradient(145deg,#fbe1f3ee,#7ab9e2ee)!important}.home-destinations .home-sprite{transform:scale(.52);margin:-30px 0}.home-destinations strong{font-size:clamp(13px,3vw,25px);font-style:italic}.home-bottom{position:absolute;bottom:0;left:0;right:0;height:13%;display:grid;grid-template-columns:repeat(6,1fr);background:linear-gradient(#e8effbe8,#d6e3f7f0);border-top:3px solid #80b8df;z-index:4}.home-bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.home-bottom button.current{background:#72b4e9aa}.home-bottom .home-sprite{transform:scale(.53);margin:-12px 0 -16px}.home-bottom small{font-size:clamp(9px,1.9vw,17px)}.home-notice{max-width:490px;margin:12px auto;border-radius:10px;padding:12px;background:#303a57;color:#fff}.local-nav{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}.local-nav button{border:1px solid #556782;border-radius:10px;padding:8px 14px;background:#202940;color:#e9dafa}.local-nav button:hover{background:#334361}.capsule-view{max-width:750px;margin:24px auto}.capsule-art{min-height:160px;border-radius:18px;background:radial-gradient(circle at center,#b790ff66,#463c6888 60%,#1b2031);display:flex;align-items:center;justify-content:center;gap:25px;margin:24px 0}.capsule-art .home-sprite{transform:scale(1.4)}#capsule-result{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;max-width:520px}.capsule-result-card{display:grid;justify-items:center;gap:5px;font-size:12px;color:white}.capsule-actions{display:flex;flex-wrap:wrap;gap:10px}.capsule-actions button{min-height:46px}.layout.only-team{grid-template-columns:1fr;max-width:770px;margin:auto}.layout.only-team .campaign{display:none}.layout.only-campaign{grid-template-columns:1fr;max-width:770px;margin:auto}.layout.only-campaign .team{display:none}#play-view .intro{padding-top:10px}@media(max-width:580px){main{padding:10px}.home-view{margin:8px auto}.home-stage{border-width:3px;border-radius:12px}.home-side{gap:0}.home-side button{min-height:67px}.home-side .home-sprite{transform:scale(.55);margin-bottom:-32px}.home-side small{font-size:11px}.home-currency span{font-size:11px;padding:2px 4px}.home-destinations .home-sprite{transform:scale(.42);margin:-34px 0}.home-destinations strong{font-size:15px}}
/* Combat uses the original campaign backdrop and extracted character art. */
.battlefield{background-color:#699bcb;background-position:center 44%;background-size:cover;border:3px solid #b8d5e8;border-radius:14px;min-height:340px;overflow:hidden;position:relative}.battlefield:after{content:'';position:absolute;left:0;right:0;bottom:0;height:19%;background:linear-gradient(transparent,#19264355);pointer-events:none}.battlefield .units{max-width:46%;align-items:end;position:relative;z-index:1}.battlefield .unit{width:clamp(63px,9vw,105px);flex:none}.unit-art{display:block;width:100%;height:170px;object-fit:contain;filter:drop-shadow(0 6px 4px #14263c88)}.unit.active{filter:drop-shadow(0 0 15px #fff9)}.unit.attack{animation:unit-strike .48s ease-out}.unit .unit-name{background:#172948ae;border-radius:8px;padding:2px 4px;color:#fff;text-shadow:0 1px 2px #112}.unit .hp{background:#091f34a8;border:1px solid #e8f6ff55;height:9px}.unit.dead{opacity:.3;filter:grayscale(1)}@keyframes unit-strike{0%{transform:translateX(0) scale(1)}40%{transform:translateX(12px) translateY(-10px) scale(1.1)}100%{transform:translateX(0) scale(1)}}@media(max-width:580px){.battlefield{min-height:290px;padding:16px 4px}.battlefield .units{gap:4px}.battlefield .unit{width:60px}.unit-art{height:108px}.unit-name{font-size:9px}}
.battlefield{background-size:165% auto}

/* Seis casillas como en la pantalla original: dos delante, cuatro detrás. */
.formation-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:112px 112px;gap:10px;max-width:560px;margin:10px auto 14px;padding:13px;background:#111b30;border:1px solid #506482;border-radius:16px}
.formation-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;border:2px solid #768496;border-radius:11px;background:#e4e9e1;color:#779887;overflow:hidden}
.formation-slot:nth-child(1){grid-column:1;grid-row:1}.formation-slot:nth-child(2){grid-column:2;grid-row:1}.formation-slot:nth-child(3){grid-column:1;grid-row:2}.formation-slot:nth-child(4){grid-column:2;grid-row:2}.formation-slot:nth-child(5){grid-column:3;grid-row:2}.formation-slot:nth-child(6){grid-column:4;grid-row:2}
.formation-slot.front{background:#eee4e0;color:#bca69e}.formation-slot.occupied{background:#a8c2e0;border-color:#e9be69}.formation-slot.selected{outline:3px solid #efc772;outline-offset:2px}.formation-slot .slot-number{position:absolute;top:1px;left:6px;font-size:15px;font-weight:800;text-shadow:0 1px 2px #fff}.formation-slot.occupied .slot-number{z-index:1;color:#fff;text-shadow:0 1px 3px #18213a}.formation-slot .portrait{border-radius:7px;border:2px solid #ffe5a2;box-shadow:0 0 0 2px #8b703e;max-width:75%;max-height:70%}.slot-name{font-size:10px;max-width:96%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#172843;font-weight:800}.slot-empty{font-size:34px;line-height:1}
.formation-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:560px;margin:auto;color:#e2ca90;font-size:13px}.roster-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0 10px}.roster-heading h3{margin:0;font-size:19px}.roster-heading span{color:var(--muted)}.roster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.hero-card{position:relative;min-width:0;padding:6px;background:linear-gradient(#5599d6,#b5d7e9 62%,#36567b);border:3px solid #d1e6ed;border-radius:11px;box-shadow:0 3px 0 #253e62;color:#fff;text-align:center}.hero-card.assigned{border-color:#f2c66f;box-shadow:0 3px 0 #7d5830}.hero-card>.portrait{margin:auto;max-width:100%;border-radius:6px}.hero-card-level{position:absolute;right:8px;top:5px;font-size:11px;font-weight:850;color:#fff;text-shadow:0 1px 3px #152c4d}.hero-card-stars{display:block;font-size:12px;letter-spacing:-1px;line-height:1;color:#f7dd69;text-shadow:0 1px 2px #71531b;white-space:nowrap}.hero-card-info{display:grid;line-height:1.2;margin:4px 0}.hero-card-info strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-card-info small{font-size:10px;color:#dbedff}.hero-card-actions{display:flex;gap:3px;justify-content:center}.hero-card-actions button{font-size:10px;padding:4px 5px;white-space:nowrap;background:#263b62cc;color:#fff;border-color:#bdd5f0}
.arena{max-width:770px;margin:20px auto}.battlefield{display:block;width:min(100%,570px);aspect-ratio:9/12;height:auto;min-height:0;margin:auto;padding:0}.battlefield .units{position:absolute;inset:0;width:100%;max-width:none;display:block;z-index:1}.battlefield .unit{position:absolute;width:clamp(48px,11vw,84px);transform:translate(-50%,-50%);z-index:1}.battlefield .unit.active{transform:translate(-50%,-50%);z-index:3}.battlefield .unit.attack{animation:none}.battlefield .unit.attack .unit-art{animation:unit-strike .48s ease-out}.battlefield .unit .unit-art{height:clamp(70px,18vw,130px)}.battlefield .unit .portrait{width:55px!important;height:55px!important;max-width:100%;margin:auto}.battlefield .unit-name{font-size:10px;margin-top:0}.battlefield .unit .hp{height:7px;margin:3px 0}.battlefield .versus{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:0;background:#19294399;border-radius:50%;padding:13px 8px;color:#fff}.battlefield .enemies .unit-art{transform:scaleX(-1)}
@media(max-width:580px){.formation-board{grid-template-rows:82px 82px;gap:5px;padding:9px}.formation-slot .portrait{width:48px!important;height:48px!important}.formation-slot .slot-number{font-size:12px}.slot-name{font-size:8px}.roster-grid{gap:5px}.hero-card{padding:3px;border-width:2px}.hero-card>.portrait{width:67px!important;height:67px!important}.hero-card-info strong{font-size:10px}.hero-card-actions{flex-wrap:wrap}.hero-card-actions button{font-size:9px;padding:3px}.battlefield{min-height:0;padding:0}.battlefield .unit{width:clamp(42px,11vw,70px)}.battlefield .unit .unit-art{height:clamp(58px,19vw,95px)}.battlefield .unit-name{font-size:8px}}

/* ============================================================
   RESKIN — unifica el marco compartido (fuera de home-view) con
   la paleta azul/blanco de la portada, en vez del panel oscuro
   tipo dashboard. No toca .formation-board/.battlefield/.hero-card,
   que ya estaban bien afinados a nivel de componente.
   Para revertir: borrar este bloque.
   ============================================================ */
body{background:linear-gradient(180deg,#dcecfb 0%,#c3ddf2 340px,#eef4fb 340px,#eef4fb 100%)fixed;color:#233046}
header{border-bottom:3px solid #b8d5e8;padding-bottom:20px}
.brand{color:#1c3d63}
.brand span{border-color:#7fa9cf;color:#3c72a8}
.connection{color:#5c7495}
.eyebrow{color:#3c72a8}
h1,h2{color:#1c3d63}
.muted,.hint{color:#5c7495}
.resource{background:#fff;border:2px solid #cfe1f1;border-radius:14px}
.resource b{color:#d99a2b}
.resource:last-child b{color:#7a5bc0}
.panel{background:linear-gradient(160deg,#ffffff,#eef5fc);border:2px solid #cfe1f1;border-radius:18px;box-shadow:0 10px 26px #1c3d6314,inset 0 1px 0 #fff}
.pill{color:#2f8a5c;background:#e8f7ee;border:1px solid #b7e3c8}
.local-nav button{border:2px solid #a9c7e2;background:linear-gradient(150deg,#eaf5ff,#cfe4f7);color:#1c3d63;border-radius:12px;padding:9px 15px;font-weight:700;box-shadow:0 3px 0 #8fb3d6}
.local-nav button:hover{background:linear-gradient(150deg,#f5fbff,#daeefb)}
.local-nav button:active{transform:translateY(2px);box-shadow:0 1px 0 #8fb3d6}
.primary{background:linear-gradient(150deg,#8fd6ff,#5aa8e6);color:#0f2a45;border:2px solid #eaf7ff;border-radius:13px;box-shadow:0 4px 0 #3d7bb0;font-weight:800}
.primary:hover{background:linear-gradient(150deg,#a4e0ff,#6fb7ee)}
.primary:active{transform:translateY(3px);box-shadow:0 1px 0 #3d7bb0}
.secondary{border:2px solid #a9c7e2;background:#fff;color:#33547a}
.secondary:hover{background:#eef6fc}
.stage{background:#fff;border:2px solid #cfe1f1;color:#5c7495}
.stage.done{color:#2f8a5c;border-color:#a9dcc0;background:#eefbf3}
.stage.selected{background:#dff0ff;border-color:#5aa8e6;color:#1c3d63;box-shadow:0 0 0 2px #5aa8e630}
.error{background:#fff0f2;border:2px solid #f5b8c4;color:#a3324a}
footer{color:#5c7495}
footer strong{color:#33547a}
.capsule-view .local-nav,#play-view .local-nav{margin-top:0}

/* --- Escena de campaña: equipo parado sobre el fondo de la fase --- */
.campaign-scene{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;border:2px solid #cfe1f1;box-shadow:0 8px 20px #1c3d6318;margin-bottom:14px}
.campaign-scene-bg{position:absolute;inset:0;background-size:cover;background-position:center 40%;filter:saturate(.9) brightness(.98)}
.campaign-scene-bg:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0f1f3530,transparent 30%,transparent 70%,#0f1f3540)}
.campaign-scene-team{position:absolute;inset:0}
.scene-unit{position:absolute;width:54px;transform:translate(-50%,-50%);filter:drop-shadow(0 6px 5px #00000055)}
.scene-unit-art,.scene-unit .portrait{width:100%;display:block;object-fit:contain}
.scene-empty{position:absolute;inset:0;display:grid;place-items:center;color:#fff;text-shadow:0 1px 3px #0008;font-size:13px;background:#0f1f3530}
@media(max-width:580px){.scene-unit{width:38px}}

/* --- Mapa de fases: zigzag de 5 en 5, agrupado por capítulo de 10 --- */
.stage-chapter-block{margin:18px 0;padding-top:6px;border-top:1px dashed #cfe1f1}
.stage-chapter-block:first-child{border-top:0;padding-top:0}
.stage-chapter-label{display:block;font-size:12px;font-weight:800;color:#3c72a8;margin-bottom:8px;letter-spacing:.5px}
.stage-chapter-path{display:flex;flex-direction:column;align-items:center;gap:0}
.stage-chapter-subrow{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0}
.stage-chapter-subrow.reverse{flex-direction:row-reverse}
.stage-link{width:18px;height:3px;background:#a9c7e2;flex:none}
.stage-turn{width:3px;height:18px;background:#a9c7e2;flex:none;align-self:center}
.stage-turn.turn-right{margin-left:auto;margin-right:calc(50% - 29px)}
.stage-turn.turn-left{margin-right:auto;margin-left:calc(50% - 29px)}
.stage-hex{position:relative;width:58px;height:58px;flex:none;border:0;padding:0;display:grid;place-items:center;color:#fff;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0% 50%);background:linear-gradient(160deg,#8fb6da,#5d87b3);box-shadow:inset 0 0 0 2px #eaf5ff40}
.stage-hex.locked{background:linear-gradient(160deg,#2c3a55,#1c2740);color:#5c7495}
.stage-hex.done{background:linear-gradient(160deg,#7fd6a0,#3fa86c)}
.stage-hex.selected{background:linear-gradient(160deg,#ffe38a,#f0b93f);box-shadow:0 0 0 3px #f5cf8080,inset 0 0 0 2px #fff8}
.stage-hex:disabled{cursor:default}
.stage-hex-icon{font-size:16px;line-height:1;margin-bottom:1px;display:grid;place-items:center}
.stage-hex-icon img{width:24px;height:24px;object-fit:contain;filter:drop-shadow(0 1px 1px #0004)}
.stage-hex-label{font-size:11px;font-weight:800;text-shadow:0 1px 2px #0006}
@media(max-width:580px){.stage-hex{width:48px;height:48px}.stage-hex-icon{font-size:13px}.stage-hex-label{font-size:9px}}

/* --- Barra idle (recolección) --- */
.idle-bar{display:flex;align-items:center;gap:8px;background:#233046;border-radius:12px;padding:8px 10px;margin:12px 0;color:#fff}
.idle-icon{width:30px;height:30px;flex:none;border-radius:50%;border:2px solid #7fa9cf;background:#33547a;color:#fff;font-size:14px;display:grid;place-items:center;cursor:help}
.idle-counters{display:flex;gap:10px;flex:1;flex-wrap:wrap;font-size:12px;font-weight:700}
.idle-chip{background:#18223580;border-radius:8px;padding:4px 8px}
.idle-collect{flex:none;background:linear-gradient(150deg,#8fd6ff,#5aa8e6);border:2px solid #eaf7ff;border-radius:10px;padding:8px 16px;font-weight:800;color:#0f2a45;box-shadow:0 3px 0 #3d7bb0}
.idle-collect:disabled{background:#3a4867;color:#8fa0bf;border-color:#4a5a7c;box-shadow:none;cursor:not-allowed}

/* --- Fila de acciones bajo el mapa: libro / Fight / regalo --- */
.stage-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0 6px}
.stage-side-btn{width:52px;height:52px;flex:none;border-radius:14px;border:2px solid #cfe1f1;background:#fff;font-size:22px;display:grid;place-items:center;box-shadow:0 3px 0 #b8d5e8}
.stage-side-btn:disabled{opacity:.45;cursor:not-allowed}
.stage-side-btn:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px 0 #b8d5e8}
.stage-fight-btn{flex:1;max-width:230px;height:62px;border-radius:16px;border:3px solid #ffe9ad;background:linear-gradient(160deg,#ffd76a,#f0a839);color:#5a3300;font-weight:900;font-size:20px;letter-spacing:1px;box-shadow:0 5px 0 #c9862a,inset 0 1px 0 #fff8}
.stage-fight-btn:active{transform:translateY(3px);box-shadow:0 2px 0 #c9862a}
@media(max-width:580px){.idle-counters{font-size:10px}.stage-side-btn{width:44px;height:44px;font-size:18px}.stage-fight-btn{height:52px;font-size:16px}}

/* Campaña en formato vertical, siguiendo la captura original. */
#game-root.campaign-mode{width:100%;max-width:none;min-height:100dvh;margin:0;padding:0;background:#edf3f9}
#game-root.campaign-mode>header,#game-root.campaign-mode>footer,#game-root.campaign-mode #home-notice,#game-root.campaign-mode #play-view>.local-nav,#game-root.campaign-mode #play-view>.intro,#game-root.campaign-mode .team{display:none!important}
#game-root.campaign-mode .layout.only-campaign{display:block;width:min(100%,480px);max-width:none;margin:0 auto}
#game-root.campaign-mode .campaign{position:relative;display:flex;flex-direction:column;gap:0;width:100%;min-height:100dvh;margin:0;padding:0 0 calc(74px + env(safe-area-inset-bottom));overflow:hidden;border:0;border-radius:0;background:#dce6f1;color:#2f405c;box-shadow:none}
.campaign-topbar{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 54px;align-items:center;gap:8px;height:64px;flex:none;padding:7px 9px;background:linear-gradient(#d7e5f3,#c9ddef);border-bottom:2px solid #9fbad7;z-index:4}
.campaign-money{display:flex;align-items:center;justify-content:center;min-width:0;height:42px;padding:0 9px;border:2px solid #adbfce;border-radius:24px;background:linear-gradient(#fff,#e9f1f7);box-shadow:inset 0 1px 2px #fff;color:#33445e;font-size:15px;white-space:nowrap}
.campaign-money span{overflow:hidden;text-overflow:ellipsis}.campaign-money b{font-size:clamp(13px,4vw,20px);font-weight:800;margin-left:3px}.campaign-money.cash{justify-content:flex-start}.currency-plus{flex:none;width:28px;height:28px;margin-left:7px;border:2px solid #fff;border-radius:50%;background:#4f9ce5;color:#fff;font-weight:900;line-height:1;padding:0}
.campaign-back{justify-self:end;width:50px;height:44px;border:3px solid #f3f8ff;border-radius:12px;background:linear-gradient(#85caff,#348bdf);box-shadow:0 2px 0 #547fa9;color:white;font-size:30px;font-weight:900;line-height:1}
.campaign-heading{position:absolute;top:71px;left:0;right:0;z-index:3;justify-content:center;gap:6px;margin:0;padding:8px 6px;background:linear-gradient(#18253b33,transparent);text-align:center;color:#fff;text-shadow:0 1px 3px #18243b}
.campaign-heading .eyebrow{display:none}.campaign-heading h2{font-size:clamp(15px,4.4vw,22px);color:#fff;text-shadow:0 2px 3px #1b2a42}.campaign-heading .muted{position:absolute;right:10px;top:8px;color:#e6f3ff;font-size:11px}
#game-root.campaign-mode .campaign-scene{position:relative;flex:none;width:100%;height:clamp(350px,48dvh,590px);aspect-ratio:auto;margin:0;border:0;border-radius:0;overflow:hidden;background:#b3c5d3;box-shadow:none}
#game-root.campaign-mode .campaign-scene-bg{background-position:center 48%;background-size:cover;filter:none}
#game-root.campaign-mode .campaign-scene-bg:after{background:linear-gradient(#19263b38,transparent 28%,transparent 68%,#19263b70)}
#game-root.campaign-mode .campaign-scene-team{z-index:2}
#game-root.campaign-mode .scene-unit{width:clamp(48px,13vw,74px);filter:drop-shadow(0 6px 5px #171d2b88)}
#game-root.campaign-mode .scene-unit-art{width:100%;height:clamp(95px,18vh,155px);object-fit:contain;object-position:center bottom}
#game-root.campaign-mode .scene-unit .portrait{width:60px!important;height:60px!important;margin:auto;border:2px solid #f6e1b2;border-radius:10px}
#game-root.campaign-mode .scene-empty{background:transparent;color:white}
#game-root.campaign-mode .idle-bar{position:relative;z-index:3;flex:none;min-height:58px;margin:-1px 0 0;padding:7px 9px;border-radius:0;background:linear-gradient(#283a50ed,#172638ed);color:white;box-shadow:0 -5px 16px #1c2c4530}
#game-root.campaign-mode .idle-icon{width:40px;height:40px;border:2px solid #bad5ee;background:linear-gradient(#6eb6ee,#367ebc);font-size:20px}
#game-root.campaign-mode .idle-counters{justify-content:center;gap:5px;font-size:12px}
#game-root.campaign-mode .idle-chip{padding:5px 6px;background:#ffffff12;white-space:nowrap}
#game-root.campaign-mode .idle-collect{min-width:74px;padding:8px 9px;border:2px solid #d9f0ff;color:#fff;background:linear-gradient(#80c7ff,#478ed3);box-shadow:0 3px 0 #285e92}
#game-root.campaign-mode .idle-collect:disabled{color:#a9c0d5;background:linear-gradient(#657b91,#4c6078);border-color:#8397ac}
#game-root.campaign-mode #stage-map{flex:none;max-height:clamp(170px,23vh,250px);margin:0;padding:8px 6px 12px;overflow:auto;background:linear-gradient(#1b293bd9,#101a2bd9),url('/assets/battle-maps/battle_map_26_1.png') center 66%/cover;color:white;scrollbar-width:thin}
#game-root.campaign-mode .stage-chapter-block{margin:0;padding:2px 0;border:0}
#game-root.campaign-mode .stage-chapter-label{margin:0 0 4px;color:#e5f2ff;text-align:center;font-size:12px;text-shadow:0 1px 3px #15243b}
#game-root.campaign-mode .stage-chapter-path{gap:3px}
#game-root.campaign-mode .stage-chapter-subrow{width:100%;justify-content:space-around}
#game-root.campaign-mode .stage-link{width:4%;height:5px;border-radius:6px;background:#8da6be;box-shadow:0 1px 2px #0c1526}
#game-root.campaign-mode .stage-turn{display:none}
#game-root.campaign-mode .stage-hex{width:clamp(48px,14vw,68px);height:clamp(48px,14vw,68px);margin:4px 0 8px;background:linear-gradient(145deg,#5a7591,#263a53);border:2px solid #afc1d2;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0% 50%);filter:drop-shadow(0 2px 2px #0008)}
#game-root.campaign-mode .stage-hex.has-map{background-image:linear-gradient(#18263a22,#18263a55),var(--stage-map-image);background-size:cover;background-position:center}
#game-root.campaign-mode .stage-hex.locked{filter:grayscale(.9) brightness(.65) drop-shadow(0 2px 2px #0008)}
#game-root.campaign-mode .stage-hex.selected{outline:3px solid #ffe274;outline-offset:2px;background-color:#efc348;filter:drop-shadow(0 0 5px #ffe274aa)}
#game-root.campaign-mode .stage-hex.done:not(.selected){border-color:#8ce8b6}
#game-root.campaign-mode .stage-hex-icon{margin:0;font-size:18px;text-shadow:0 2px 3px #102138}
#game-root.campaign-mode .stage-hex-label{position:absolute;bottom:-15px;left:0;right:0;color:#fff;font-size:12px;text-align:center;text-shadow:0 2px 3px #071426}
#game-root.campaign-mode .stage-actions{position:relative;z-index:3;flex:none;min-height:84px;margin:0;padding:6px 12px 8px;background:linear-gradient(#172638,#111a28);gap:10px}
#game-root.campaign-mode .stage-side-btn{width:66px;height:62px;border:0;background:transparent;box-shadow:none;color:#fff;font-size:44px;text-shadow:0 2px 3px #101a27}
#game-root.campaign-mode .stage-side-btn:disabled{opacity:.55}
#game-root.campaign-mode .stage-fight-btn{height:74px;max-width:280px;border:4px solid #fff1b8;border-radius:50% 50% 18px 18px / 35% 35% 14px 14px;background:linear-gradient(160deg,#fff2aa,#f5c747 65%,#eaa32d);color:#603918;font-size:21px;letter-spacing:1px;text-shadow:0 1px #fff8;box-shadow:0 4px 0 #9f692d,inset 0 3px 5px #fff9}
#game-root.campaign-mode #stage-note{display:none}
#game-root.campaign-mode #last-result{min-height:0;margin:0;padding:0 8px 6px;background:#111a28;color:#a9c4dd;text-align:center;font-size:10px}
.campaign-bottom-nav{display:none}
#game-root.campaign-mode .campaign-bottom-nav{position:fixed;left:50%;bottom:0;z-index:15;display:grid;width:min(100%,480px);height:calc(68px + env(safe-area-inset-bottom));grid-template-columns:repeat(6,minmax(0,1fr));padding-bottom:env(safe-area-inset-bottom);transform:translateX(-50%);border-top:2px solid #93bce0;background:linear-gradient(#e5f0fc,#ccdff3);box-shadow:0 -4px 14px #18283c35}
#game-root.campaign-mode .campaign-bottom-nav button{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#244567;text-shadow:0 1px #fff;font-weight:800}
#game-root.campaign-mode .campaign-bottom-nav .home-sprite{flex:none;transform:scale(.42);transform-origin:center;margin:-12px 0 -19px}
#game-root.campaign-mode .campaign-bottom-nav small{font-size:clamp(8px,2.5vw,12px);white-space:nowrap}
#game-root.campaign-mode #arena:not([hidden])~.campaign-bottom-nav{display:none}
@media(min-width:700px){#game-root.campaign-mode .campaign{box-shadow:0 0 35px #24375033}.campaign-topbar{grid-template-columns:1.15fr 1fr 54px}#game-root.campaign-mode .campaign-scene{height:min(49vh,590px)}}
.capsule-view{max-width:490px;margin:8px auto 0;padding:0 0 78px;background:#e5edf4;color:#354561;overflow:hidden;border:3px solid #a9bfd1;border-radius:18px;box-shadow:0 18px 46px #0c152933}
.capsule-top{position:sticky;top:0;z-index:5;background:linear-gradient(#dce9f7,#cbdced);border-bottom:2px solid #a6bfd4;padding:8px 10px 4px}
.capsule-currencies{display:grid;grid-template-columns:1fr 1fr 48px;gap:8px;align-items:center}
.capsule-currencies>span{min-width:0;border:2px solid #abc2d9;border-radius:24px;background:#f7fbff;color:#3b4b66;padding:4px 8px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capsule-currencies .campaign-back{width:46px;height:38px;border:2px solid #f7fbff;border-radius:10px;background:linear-gradient(#73c5ff,#327bce);color:white;font-size:28px;line-height:1}
.capsule-links{display:flex;gap:8px;padding:7px 2px 0}.capsule-links button{border:1px solid #abc2d9;border-radius:8px;background:#edf5fc;color:#435875;padding:5px 10px}
.capsule-heading{padding:8px 14px 5px;background:linear-gradient(110deg,#fff,#e9f1f8);text-align:center}.capsule-heading .eyebrow{margin:0;color:#4889bd;font-size:12px;font-weight:900;letter-spacing:.12em}.capsule-heading h2{margin:2px 0;font-size:24px;color:#354d72}.capsule-heading p:last-child{margin:0 0 5px;font-size:12px;color:#738197}
.capsule-banner{display:grid;grid-template-columns:39% 61%;min-height:178px;margin:9px 8px;border:3px solid #fafcff;border-radius:15px;overflow:hidden;box-shadow:0 2px 5px #56677c45;background:#edf6fa;position:relative}
.capsule-banner:before{content:"";position:absolute;inset:0;background:url('/assets/capsule/summon-scene.png') center 42%/cover;opacity:.22;pointer-events:none}
.capsule-banner-art,.capsule-banner-controls{position:relative;z-index:1}.capsule-banner-art{display:flex;flex-direction:column;justify-content:space-between;padding:16px 9px 11px;background:linear-gradient(135deg,#ceeaf2dd,#eff7f6aa 55%,#a4c2d2aa)}
.capsule-banner-art strong{font-size:clamp(20px,5.2vw,30px);line-height:.98;color:#fff;text-shadow:0 2px 4px #51819b,-1px -1px #5192a8,1px 1px #377d99;-webkit-text-stroke:.7px #41839b;letter-spacing:-1px}
.capsule-banner-art small{font-size:11px;font-weight:800;color:#425d6a;text-shadow:0 1px #fff}
.capsule-banner-controls{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:10px;background:#ffffffe0}
.capsule-count{display:flex;align-items:center;justify-content:center;gap:10px;min-height:36px;border:2px solid #d6e2eb;border-radius:24px;background:#f7f9fc;color:#566784;font-size:19px}.capsule-count span{font-size:19px}
.capsule-free{margin:0;text-align:center;font-size:11px;font-weight:800;color:#486894}
.capsule-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.capsule-draw{min-height:47px;border:2px solid #fff;border-radius:10px;background:linear-gradient(#d8f2ff,#9ecde9);box-shadow:0 1px 4px #426c8d77,inset 0 0 0 1px #8ab8d6;color:#405a7c;font-weight:900;font-size:13px;text-shadow:0 1px #fff;padding:4px 3px}
.capsule-draw strong{display:block;font-size:11px;color:#354a67}.capsule-draw:disabled{filter:grayscale(.55);opacity:.58;cursor:not-allowed}.capsule-draw:not(:disabled):hover{filter:brightness(1.07);transform:translateY(-1px)}
.gem-draw{background:linear-gradient(#fff2c8,#efcf86);box-shadow:0 1px 4px #94733577,inset 0 0 0 1px #d6b148}
.advanced{min-height:218px;border-color:#d9bd82;background:#fff7db}.advanced .capsule-banner-art{background:linear-gradient(145deg,#f6e5a8e8,#fff8d0aa,#f9e4b4cc)}.advanced .capsule-banner-art strong{color:#fff4b0;text-shadow:0 2px 4px #91712c,-1px -1px #b2944d,1px 1px #957939;-webkit-text-stroke:1px #b29851;font-size:clamp(19px,4.8vw,27px)}.advanced .capsule-draw{background:linear-gradient(#fff2a9,#f6d36c);box-shadow:0 1px 4px #94733577,inset 0 0 0 1px #d6b148}
.advanced .capsule-alt-cost{margin:0;text-align:center;font-size:10px;color:#8a754d}.bff{min-height:180px;border-color:#d3e5c6;background:#eef7df}.bff .capsule-banner-art{background:linear-gradient(140deg,#def1c5ee,#f5f7e0aa,#bfe0c1cc)}.bff .capsule-banner-art strong{color:#efffdb;text-shadow:0 2px 4px #56853d,-1px -1px #6e9e59,1px 1px #548445;-webkit-text-stroke:1px #64944f}
.capsule-results{margin:8px;padding:12px;border-radius:12px;background:#fff;border:1px solid #c9d8e5}.capsule-results h3{margin:0 0 8px;color:#435c7c;font-size:15px}.capsule-results #capsule-result{min-height:52px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;color:#78869a;font-size:12px}.capsule-result-card{color:#465872}.capsule-results #capsule-stock{margin:8px 0 0;text-align:center;color:#718097;font-size:11px}
.capsule-bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(490px,100%);height:65px;z-index:8;border:2px solid #a6bfd4;border-bottom:0;border-radius:12px 12px 0 0;background:linear-gradient(#e9f1f8,#d6e4f1);box-shadow:0 -3px 12px #22364d44}.capsule-bottom-nav button{color:#40516c}.capsule-bottom-nav small{-webkit-text-stroke:0!important;color:#41526b!important;text-shadow:0 1px #fff!important}.capsule-bottom-nav .home-sprite{transform:scale(.43);margin:-17px 0 -22px}
@media(max-width:390px){.capsule-banner{grid-template-columns:35% 65%;margin:7px 5px}.capsule-banner-art{padding:12px 6px 9px}.capsule-banner-art strong{font-size:19px}.capsule-banner-controls{padding:7px}.capsule-draw{font-size:12px}.capsule-currencies{gap:4px}.capsule-links{gap:4px}.capsule-links button{padding:4px 7px;font-size:12px}}
.capsule-banner:before{background-position:center;background-size:100% 100%;background-repeat:no-repeat;opacity:1}
.capsule-banner.regular:before{background-image:url('/assets/capsule/regular-panel.png')}.capsule-banner.advanced:before{background-image:url('/assets/capsule/advanced-panel.png')}.capsule-banner.bff:before{background-image:url('/assets/capsule/bff-panel.png')}
.capsule-banner .capsule-banner-art{background:transparent}.capsule-banner .capsule-banner-controls{background:#ffffff72}
.capsule-real-title{display:block;width:min(100%,142px);height:auto;max-height:58px;object-fit:contain;object-position:left top;filter:drop-shadow(0 1px 1px #ffffffaa)}
.girls-view{max-width:490px;min-height:calc(100vh - 80px);margin:8px auto 0;padding:0 0 78px;overflow:hidden;border:3px solid #a9bfd1;border-radius:16px;background:#f5f3f8;color:#3e4d65;box-shadow:0 18px 46px #0c152933}
.girls-top{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:86px 1fr 52px;align-items:center;gap:6px;padding:8px 9px;background:linear-gradient(#dce9f7,#cbdced);border-bottom:2px solid #9eb6cd}
.girls-preset,.girls-back{min-height:39px;border:2px solid #fff;border-radius:10px;background:linear-gradient(#8ed1ff,#3d82d4);color:#fff;text-shadow:0 1px 2px #255180;font-weight:900;box-shadow:0 2px 3px #4c719455}.girls-back{font-size:25px}.girls-currencies{display:flex;gap:6px;min-width:0}.girls-currencies span{flex:1;min-width:0;padding:5px 7px;border:2px solid #adc3d6;border-radius:22px;background:#f9fcff;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.girls-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:12px 8px 8px;border:2px solid #9bacbd;border-radius:9px;overflow:hidden;background:#fff}.girls-tabs button{min-height:42px;background:linear-gradient(#fff,#e8ebf0);color:#3d4757;font-size:17px;font-weight:850}.girls-tabs button.active{background:linear-gradient(#81c9ff,#3984d2);color:#fff;text-shadow:0 1px 2px #365a8c;box-shadow:inset 0 1px 3px #fff9}
.girls-panel{padding:0 8px}.girls-count{display:flex;justify-content:flex-end;align-items:center;gap:7px;min-height:47px;padding:0 4px;font-size:18px}.girls-count button{width:36px;height:36px;border:2px solid #fff;border-radius:50%;background:linear-gradient(#8ed2ff,#3881d3);color:white;font-size:24px;line-height:1}
.girls-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 8px;padding:3px 5px 14px}.girl-card{position:relative;display:flex;min-width:0;flex-direction:column;align-items:stretch;overflow:hidden;border:2px solid #d4b866;border-radius:11px;background:linear-gradient(#ffefb4,#fff9df 75%);box-shadow:0 2px 3px #46536b44;padding:3px}.girl-card.owned{border-color:#e4a16c;background:linear-gradient(#ffeac4,#fff7e8 70%)}.girl-art{position:relative;aspect-ratio:0.76;overflow:hidden;border-radius:7px;background:linear-gradient(140deg,#dbecfb,#f4dfef)}.girl-art>img{width:100%;height:100%;object-fit:cover;object-position:top center}.girl-art>.portrait{position:absolute;inset:0!important;width:100%!important;height:100%!important;background-size:cover!important;background-position:center top!important;border-radius:0}.girl-faction{position:absolute;left:3px;top:3px;display:grid;place-items:center;width:22px;height:22px;border:1.5px solid #fff;border-radius:50%;background:#43c9d5;color:#fff;font-size:14px;font-weight:900;text-shadow:0 1px #335}.faction-2{background:#358bea}.faction-3{background:#ef6847}.faction-4{background:#5cbf60}.faction-5{background:#805bd1}.faction-6{background:#f3b72e}.faction-7{background:#a958dd}.girl-level{position:absolute;right:3px;top:3px;padding:1px 4px;border-radius:7px;background:#283c5bbd;color:white;font-weight:850;font-size:12px}.girl-name{display:block;min-height:25px;padding:3px 1px 0;overflow:hidden;color:#4d6381;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(10px,2.8vw,14px);font-weight:850}.girl-stars{min-height:17px;color:#edae27;text-align:center;letter-spacing:-1px;font-size:clamp(10px,2.7vw,14px);text-shadow:0 1px #fff}.girl-skin-count{position:absolute;right:4px;bottom:31px;border-radius:8px;background:#493c73d9;color:white;padding:2px 4px;font-size:9px;font-weight:800}
.girls-filters{position:sticky;bottom:65px;z-index:6;display:flex;align-items:center;justify-content:space-around;gap:4px;padding:8px 5px;background:#f5f7f9ed;border-top:2px solid #c3cbd2}.faction-filter{width:35px;height:35px;flex:none;border:2px solid #afbdca;border-radius:50%;background:linear-gradient(#fff,#dce7f2);color:#52657a;font-size:19px;font-weight:900}.faction-filter:nth-child(2){color:#43c7d1}.faction-filter:nth-child(3){color:#348cdb}.faction-filter:nth-child(4){color:#ee6349}.faction-filter:nth-child(5){color:#56b960}.faction-filter:nth-child(6){color:#855bd1}.faction-filter:nth-child(7){color:#e8b72f}.faction-filter:nth-child(8){color:#a050d2}.faction-filter.active{outline:3px solid #78c4f1;outline-offset:1px;box-shadow:0 0 4px #fff}.girls-star-filter{max-width:76px;min-height:34px;border:2px solid #c0ccda;border-radius:9px;background:#fff;color:#52637c;font-weight:800}.girls-bottom-nav{position:fixed;bottom:0;left:50%;z-index:9;display:grid;width:min(490px,100%);height:65px;grid-template-columns:repeat(6,minmax(0,1fr));transform:translateX(-50%);border:2px solid #a6bfd4;border-bottom:0;border-radius:12px 12px 0 0;background:linear-gradient(#e9f1f8,#d6e4f1);box-shadow:0 -3px 12px #22364d44}.girls-bottom-nav button{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#40516c}.girls-bottom-nav small{color:#41526b;font-size:clamp(8px,2.2vw,12px);font-weight:850;text-shadow:0 1px #fff;white-space:nowrap}.girls-bottom-nav .home-sprite{flex:none;transform:scale(.43);margin:-17px 0 -22px}
.shard-feature{display:flex;align-items:center;gap:13px;margin:7px 1px 12px;padding:15px 12px;border:2px solid #b5c7d9;border-radius:13px;background:linear-gradient(130deg,#f8faff,#dfeaf6)}.shard-orb{display:grid;place-items:center;flex:none;width:60px;height:60px;border:4px solid #fff;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#aad9ff 35%,#735bc7 75%);color:#fff;font-size:29px;text-shadow:0 2px 5px #453585;box-shadow:0 1px 6px #394a7c77}.shard-feature h2,.gallery-intro h2{margin:0 0 4px;font-size:18px;color:#425b7a}.shard-feature p,.gallery-intro p,.girls-explain{margin:0 0 6px;color:#66768c;font-size:12px;line-height:1.4}.shard-stock{font-size:13px;color:#526783}.shard-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 1px 18px}.shard-actions button{min-height:52px;border:2px solid #fff;border-radius:10px;background:linear-gradient(#ffedaa,#eabf51);box-shadow:0 2px 4px #95753e66;color:#654b20;font-weight:900}.shard-actions button:disabled{filter:grayscale(.8);opacity:.65}.girls-panel>h3{margin:12px 3px 5px;color:#53667e}.gallery-intro{padding:8px 6px 12px}.skin-card{border-color:#a78bd4;background:linear-gradient(#eee3ff,#faf7ff)}
body:has(#girls-view:not([hidden])){background:#d4dfeb}#girls-return{margin-right:5px}
@media(max-width:390px){.girls-grid{gap:7px 5px;padding-inline:2px}.girl-card{padding:2px}.girls-view{border-radius:11px;border-width:2px}.girls-tabs{margin:9px 5px 6px}.girls-top{padding:6px}.faction-filter{width:31px;height:31px}.girls-star-filter{max-width:68px;font-size:11px}}
.shard-list{display:grid;gap:8px;padding:2px 1px 16px}.shard-item{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:10px;min-height:96px;padding:8px;border:2px solid #c4d0dd;border-radius:12px;background:linear-gradient(120deg,#fff,#edf3f9);box-shadow:0 1px 3px #40536b30}.shard-item>.girl-card{width:70px;margin:auto}.shard-item>.girl-card .girl-art{aspect-ratio:1}.shard-item-info{display:grid;gap:4px;min-width:0}.shard-item-info strong{color:#4b5d77;font-size:13px}.shard-item-rarity,.shard-progress{color:#74839a;font-size:11px}.shard-item-rarity{color:#d49c28}.shard-compose{justify-self:start;min-height:32px;padding:4px 12px;border:2px solid #fff;border-radius:8px;background:linear-gradient(#ffedaa,#e9bd51);color:#62491d;font-weight:900;box-shadow:0 1px 3px #90734055}.shard-compose:disabled{filter:grayscale(.7);opacity:.58}.shard-orb.shard-small{width:56px;height:56px;margin:auto}.shard-draw-result{margin:8px 0 14px;border-radius:12px;background:#fff8;border:1px solid #d2dbe5}.shard-draw-result h3{margin:10px;text-align:center;color:#4d6484}.gallery-more{display:block;width:100%;min-height:42px;margin:0 auto 14px;border:2px solid #fff;border-radius:9px;background:linear-gradient(#b8e1ff,#75b4e8);color:#365776;font-weight:900}.gallery-more[hidden]{display:none}
.skin-art-missing{position:absolute;left:2px;right:2px;bottom:2px;padding:2px;border-radius:5px;background:#352b54c9;color:white;text-align:center;font-size:9px;font-weight:800}
.girl-faction:not(.faction-0),.faction-filter:not(:first-child){background-position:center;background-repeat:no-repeat;background-size:contain}
.girls-view{padding-bottom:132px}.girls-filters{position:fixed;left:50%;bottom:65px;z-index:10;width:min(490px,100%);transform:translateX(-50%);box-sizing:border-box}

/* Original card illustrations and inventory frames from the local Unity atlases. */
.girl-art{aspect-ratio:208/316}.girl-art>img{object-fit:cover;object-position:center}.girls-back{display:grid;place-items:center;padding:0;border:0;background:transparent;box-shadow:none}.girls-back img{display:block;width:100%;max-width:58px;height:auto}.girls-preset{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:2px 0;font-size:12px;line-height:1}.girls-preset img{width:30px;height:30px;object-fit:contain;margin:-2px auto -3px}
.bag-view{position:relative;display:flex;flex-direction:column;width:min(490px,100%);min-height:calc(100vh - 75px);margin:8px auto 0;padding-bottom:132px;box-sizing:border-box;border:3px solid #9eb4c8;border-radius:15px;background:#f3f1f4;color:#35475f;box-shadow:0 18px 46px #0c152933;overflow:hidden}.bag-view[hidden]{display:none}.bag-top{grid-template-columns:1fr 60px;min-height:54px}.bag-top .girls-currencies{gap:8px}.bag-top .girls-currencies span{font-size:16px}.bag-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:14px 7px 10px;border:2px solid #9aacc4;border-radius:8px;overflow:hidden;background:#f9fafb;box-shadow:0 2px 3px #63748b55}.bag-tabs button{min-width:0;min-height:36px;padding:4px 1px;border:0;border-right:2px solid #97a6bb;background:linear-gradient(#fff,#e7e9ed);color:#3c3d41;font-size:clamp(9px,2.25vw,13px);font-weight:750;white-space:nowrap}.bag-tabs button:last-child{border-right:0}.bag-tabs button.active{background:linear-gradient(#68bcff,#337bd3);color:#fff;text-shadow:0 1px 2px #264f88}.bag-panel{flex:1;min-height:430px;margin:0 7px;border:2px solid #bbc0c7;border-radius:9px 9px 0 0;background:#f5f2f3;box-shadow:inset 0 0 3px #fff;padding:19px 14px 12px}.bag-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;gap:17px 12px}.bag-item{position:relative;width:100%;aspect-ratio:1;background-color:transparent;background-position:center;background-size:100% 100%;background-repeat:no-repeat;border:0;padding:0;filter:drop-shadow(0 1px 1px #0002)}.bag-item-image{position:absolute;inset:15% 10%;width:80%;height:70%;object-fit:contain}.bag-item-fallback{position:absolute;inset:20%;font-size:28px;color:#f5e9a8}.bag-item-stars{position:absolute;left:1px;top:13%;display:block;width:12px;overflow-wrap:anywhere;color:#be62d4;line-height:.7;font-size:clamp(7px,2vw,12px);text-shadow:-1px -1px white,1px 1px white}.bag-item-count{position:absolute;right:3px;bottom:1px;color:#fff;font-size:clamp(11px,2.7vw,16px);font-weight:900;line-height:1;text-shadow:-1px -1px #3e4754,1px -1px #3e4754,-1px 1px #3e4754,1px 1px #3e4754,0 2px #3e4754}.bag-empty{padding:32px 15px;color:#758196;text-align:center;font-weight:750}.bag-actions{position:sticky;bottom:65px;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:67px;margin:0 7px;padding:5px 9px;border:2px solid #bbc0c7;border-top:0;border-radius:0 0 9px 9px;background:#f5f2f3}.bag-quality{display:flex;justify-content:space-around;gap:3px;flex:1}.bag-quality-button{width:clamp(25px,6.7vw,35px);height:clamp(25px,6.7vw,35px);padding:0;border:3px solid #b7c9d9;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff9,#40bcee 58%,#2185cf);box-shadow:inset 0 0 0 2px #fff,0 1px 2px #5a6477}.bag-quality-button.quality-1{background:radial-gradient(circle at 35% 28%,#fff9,#5cbcec 58%,#2a72d0)}.bag-quality-button.quality-2{background:radial-gradient(circle at 35% 28%,#fff9,#f9d953 58%,#dea719)}.bag-quality-button.quality-3{background:radial-gradient(circle at 35% 28%,#fff9,#e48be9 58%,#b84fd0)}.bag-quality-button.quality-4{background:radial-gradient(circle at 35% 28%,#fff9,#93df65 58%,#39b753)}.bag-quality-button.quality-5{background:radial-gradient(circle at 35% 28%,#fff9,#fa9c5b 58%,#d96d30)}.bag-quality-button.quality-6{background:radial-gradient(circle at 35% 28%,#fff9,#ffd76b 58%,#e3a51c)}.bag-quality-button.quality-7{background:radial-gradient(circle at 35% 28%,#fff9,#ed91c1 58%,#bf568f)}.bag-quality-button.active{outline:2px solid #4ab5f5;outline-offset:1px}.bag-forge{flex:none;min-width:105px;height:40px;padding:2px 7px;border:2px solid #fff;border-radius:8px;background:linear-gradient(#79ccff,#2e83d8);color:white;font-size:20px;font-weight:900;text-shadow:0 1px 2px #215484;box-shadow:0 2px 4px #44638a}.bag-forge span{font-size:15px}.bag-detail{position:fixed;left:50%;bottom:145px;z-index:15;display:grid;grid-template-columns:72px 1fr;gap:10px;width:min(430px,calc(100% - 24px));padding:16px;box-sizing:border-box;transform:translateX(-50%);border:3px solid #7aa5ce;border-radius:14px;background:#f8fbff;box-shadow:0 8px 28px #15294399}.bag-detail[hidden]{display:none}.bag-detail img{width:68px;height:68px;object-fit:contain}.bag-detail h3{margin:0 25px 3px 0;font-size:16px}.bag-detail p{margin:2px 0;font-size:12px}.bag-detail #bag-detail-count{font-weight:850}.bag-detail #bag-detail-close{position:absolute;right:7px;top:5px;width:27px;height:27px;border:0;border-radius:50%;background:#dceafb;color:#446486;font-size:22px}.bag-bottom-nav{position:fixed}.bag-bottom-nav button.current{background:linear-gradient(#75bcf6,#3986d6)}
.original-back{padding:0;border:0;background:none;box-shadow:none}.original-back img{display:block;width:55px;max-width:100%;height:auto}.stage-side-btn .next-arrow{width:31px;height:31px;object-fit:contain;transform:rotate(180deg)}
@media(max-width:390px){.bag-panel{padding:15px 8px}.bag-grid{gap:12px 6px}.bag-actions{padding:4px 5px}.bag-forge{min-width:83px;font-size:15px}}

/* Ficha de personaje inspirada en partner_detail_window del cliente. */
.girl-card.selectable{cursor:pointer}.girl-card.selectable:hover,.girl-card.selectable:focus-visible{outline:3px solid #65b9ef;outline-offset:2px;transform:translateY(-2px)}
.girl-detail-view{width:min(490px,100%);margin:8px auto 0;border:3px solid #a4bad1;border-radius:14px 14px 10px 10px;background:#e7ecf8;color:#405274;box-shadow:0 18px 46px #0c152933;overflow:hidden}.girl-detail-view[hidden]{display:none}.detail-top{grid-template-columns:1fr 60px;min-height:54px}.detail-scene{position:relative;height:590px;overflow:hidden;background:linear-gradient(180deg,#93b8f1 0%,#c7d9fa 44%,#e4d9ed 86%,#efc3d6 100%)}.detail-scene:before{content:'';position:absolute;inset:7% -10% 25%;background:radial-gradient(ellipse at 65% 35%,#fff9 0 15%,transparent 46%),radial-gradient(ellipse at 20% 75%,#fff9 0 8%,transparent 35%),url('/assets/detail/partner_new_bg_cloud.png') center 15%/110% auto no-repeat;opacity:.76}.detail-scene:after{content:'';position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(transparent,#e7c8e6a0);pointer-events:none}.detail-identity{position:absolute;top:12px;left:11px;z-index:3;display:flex;align-items:center;gap:8px;max-width:70%;padding:4px 12px 4px 4px;border-radius:25px;background:#ffffff8c;text-shadow:0 1px #fff}.detail-identity>img{width:46px;height:46px;object-fit:contain}.detail-identity h2{margin:0;color:#202437;font-size:22px;line-height:1.05}.detail-stars{color:#ed5f81;font-size:20px;letter-spacing:1px;text-shadow:-1px -1px white,1px 1px white}.detail-art-wrap{position:absolute;inset:40px 0 35px;z-index:1;display:flex;align-items:flex-end;justify-content:center}.detail-art-wrap img{max-width:none}.detail-art-wrap img.full-art{width:110%;height:100%;object-fit:contain;object-position:center bottom;mix-blend-mode:screen}.detail-art-wrap img.card-art{width:72%;height:92%;object-fit:cover;object-position:center;border:4px solid #fff8;border-radius:28px;box-shadow:0 14px 30px #476c9666}.detail-arrow{position:absolute;top:47%;z-index:4;width:40px;height:70px;padding:0;border:0;background:none;filter:drop-shadow(0 2px 2px #4568a080)}.detail-arrow img{width:100%;height:100%;object-fit:contain}.detail-arrow.prev{left:0}.detail-arrow.prev img{transform:rotate(180deg)}.detail-arrow.next{right:0}.detail-quote{position:absolute;left:17%;right:17%;bottom:22px;z-index:4;min-height:36px;max-height:95px;margin:0;padding:11px 14px;overflow:auto;border:2px solid #b3bed4;border-radius:10px;background:#fffffff0;color:#425064;font-size:13px;font-weight:700;line-height:1.3;box-shadow:0 3px 5px #344a6644}.detail-quote[hidden]{display:none}.detail-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:2px solid #9aaec5;background:#f5f6fa}.detail-tabs button{min-height:39px;padding:3px 1px;border:0;border-right:2px solid #a5b1c1;background:linear-gradient(#fff,#eceff2);color:#34363d;font-size:clamp(11px,3vw,18px);font-weight:800}.detail-tabs button:last-child{border-right:0}.detail-tabs button.active{background:linear-gradient(#66bcff,#367fda);color:#fff;text-shadow:0 1px #285ba2}.detail-panel{min-height:310px;margin:9px;padding:12px 14px;border:2px solid #b5bac6;border-radius:10px;background:#f3f4f8;box-shadow:inset 0 0 3px #fff}.detail-panel section[hidden]{display:none}.detail-summary{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding-bottom:8px;border-bottom:2px solid #b8c8df}.detail-summary strong{color:#e7a41b;font-size:17px}.detail-summary b{color:#6a75aa;font-size:16px}.detail-summary span{color:#485776;font-weight:800}.detail-grade,.detail-cost{display:flex;align-items:center;gap:10px;margin-top:10px;font-weight:800}.detail-grade>b,.detail-cost>b{display:inline-block;min-width:48px;padding:3px 5px;border-radius:3px;background:#66a7ee;color:white;text-align:center}.detail-grade span{display:flex;gap:2px;color:#c4b8e9;font-size:20px;letter-spacing:1px;text-shadow:0 1px white}.detail-grade span .filled{color:#8269ce}.detail-cost span{color:#666391}.detail-panel #detail-level-up{display:block;width:100%;min-height:37px;margin:11px 0 4px;border:2px solid #fff;border-radius:8px;background:linear-gradient(#ffd979,#e5a83d);color:#6a471d;font-size:15px;font-weight:900;box-shadow:0 2px 3px #8f6e3f55}.detail-panel #detail-level-up:disabled{background:linear-gradient(#d5d8e4,#bfc5d5);color:#68748b}.detail-note{margin:5px 0 9px;color:#79849d;font-size:11px;line-height:1.35}.detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:8px 0;border-block:2px solid #b8c8df}.detail-stat{display:flex;flex-direction:column;align-items:center;gap:2px;color:#66729b;font-size:11px;font-weight:850;text-align:center}.detail-stat img{width:27px;height:27px;object-fit:contain}.detail-skills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.detail-skill{min-width:0;text-align:center}.detail-skill img{width:min(100%,65px);aspect-ratio:1;object-fit:cover;border:3px solid #95a9c2;border-radius:8px;background:#e3edf9}.detail-skill small{display:block;overflow:hidden;color:#4e5874;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.detail-panel h3{margin:0 0 8px}.detail-panel h4{margin:14px 0 7px}.detail-gear-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.detail-gear-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:76px;border:2px solid #b8c9da;border-radius:9px;background:linear-gradient(#eff7ff,#dbe6f4)}.detail-gear-slot img{width:40px;height:40px;object-fit:contain;opacity:.64}.detail-gear-slot span{font-size:10px;color:#79849d;font-weight:800}.detail-gear-stock{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.detail-stock-item{display:grid;justify-items:center;padding:5px;border:1px solid #c7d1db;border-radius:8px;background:#fff}.detail-stock-item img{width:43px;height:43px;object-fit:contain}.detail-stock-item small{max-width:100%;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.detail-skin-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.detail-skin{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px;border:2px solid #bdc9d7;border-radius:9px;background:#fff;color:#52617d}.detail-skin.active{border-color:#69b7ed;background:#eff9ff}.detail-skin:disabled{opacity:.55}.detail-skin img{width:100%;height:120px;object-fit:cover;object-position:top;border-radius:5px}.detail-skin strong{font-size:12px}.detail-skin small{font-size:10px}#detail-awake-status{padding:20px;border:2px solid #c3cde0;border-radius:10px;background:#fff;color:#6b7691;font-size:14px;line-height:1.4}
@media(max-width:390px){.detail-scene{height:510px}.detail-identity h2{font-size:18px}.detail-summary{gap:4px}.detail-summary strong,.detail-summary b{font-size:13px}.detail-summary span{font-size:11px}.detail-panel{padding:9px}.detail-quote{font-size:11px}}
.detail-art-wrap img.full-art{transform:scale(1.5);transform-origin:center 56%}
.capsule-banner.advanced{min-height:300px;aspect-ratio:710/519}.capsule-banner.advanced .capsule-banner-art small{display:none}.capsule-banner.advanced .capsule-banner-controls{padding:8px;background:#fff9dc75}
.capsule-banner.advanced .advanced-real-title{width:min(100%,200px);max-height:60px;margin:0 auto}
.capsule-banner .capsule-draw{background-image:url('/assets/capsule/button-blue.png');background-size:100% 100%;background-repeat:no-repeat;background-color:transparent;border:0;box-shadow:none}
.capsule-banner.advanced .capsule-draw{background-image:url('/assets/capsule/button-gold.png')}.capsule-banner.advanced .gem-draw{background-image:url('/assets/capsule/button-blue.png')}
.capsule-banner .gem-draw{background-image:url('/assets/capsule/button-gold.png')}
.campus-view,.graduate-view{width:min(490px,100%);margin:8px auto 0;overflow:hidden;border:3px solid #9cb8d3;border-radius:14px;background:#d7ecf8;color:#3e5779;box-shadow:0 18px 46px #0c152933}.campus-view[hidden],.graduate-view[hidden]{display:none}.campus-body{min-height:730px;padding:12px 12px 30px;background:radial-gradient(circle at 25% 12%,#c9edff7a,transparent 22%),linear-gradient(155deg,#62b6e3,#3598d0 50%,#64bae5);position:relative}.campus-body:before{content:'';position:absolute;inset:0;background-image:linear-gradient(60deg,transparent 48%,#ffffff0b 49% 51%,transparent 52%),linear-gradient(-60deg,transparent 48%,#ffffff0b 49% 51%,transparent 52%);background-size:110px 95px;pointer-events:none}.campus-tabs{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;margin:0 4px 18px;border:2px solid #9ab5cb;border-radius:9px;overflow:hidden}.campus-tabs button{border:0;background:linear-gradient(#fff,#e8eff4);color:#334665;font-size:18px;font-weight:850;min-height:36px}.campus-tabs button.active{background:linear-gradient(#63b2ee,#347dda);color:#fff;text-shadow:0 1px #285580}.campus-cards{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 5px}.campus-column{display:flex;flex-direction:column;gap:10px}.campus-card{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;filter:drop-shadow(0 2px 2px #3c6e9f88)}.campus-card-art{display:block;width:100%;height:auto}.campus-card-title{position:absolute;left:50%;bottom:3%;transform:translateX(-50%);max-width:88%;width:auto;height:auto;max-height:25px;object-fit:contain;filter:drop-shadow(0 1px 2px #fff)}.campus-placeholder{grid-column:1/-1;padding:30px;border:2px solid #fff8;border-radius:10px;background:#e7f5ff;color:#456b8f;text-align:center}
.graduate-factions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:#f0eff8;border-block:2px solid #abc1d7}.graduate-factions button{display:flex;align-items:center;justify-content:center;gap:2px;min-width:0;padding:6px 1px;border:0;border-right:1px solid #aab7c6;background:linear-gradient(#fff,#ecedf3);color:#414657;font-size:clamp(8px,2.2vw,11px);font-weight:800}.graduate-factions button.active{background:linear-gradient(#59b2f2,#337acc);color:#fff}.graduate-factions img{width:19px;height:19px;object-fit:contain}.graduate-body{display:grid;grid-template-columns:minmax(0,1fr) 91px;min-height:760px;background:linear-gradient(165deg,#e1f3fd,#f7e1ef 68%,#c7d9f2);position:relative}.graduate-main{position:relative;min-height:760px;overflow:hidden}.graduate-main:before{content:'';position:absolute;inset:0;background:url('/assets/detail/partner_new_bg_cloud.png') center top/cover no-repeat;opacity:.4}.graduate-identity{position:absolute;z-index:2;top:12px;left:8px;display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:30px;background:#ffffffae;text-shadow:0 1px #fff}.graduate-identity img{width:32px;height:32px}.graduate-identity span{color:#e97f97;font-size:13px;font-weight:900}.graduate-identity h2{margin:0;color:#262c44;font-size:19px}.graduate-art{position:absolute;top:105px;left:-6%;width:112%;height:450px;object-fit:contain;object-position:center bottom;mix-blend-mode:screen}.graduate-art:not(.full-art){left:17%;width:67%;height:365px;border-radius:14px;mix-blend-mode:normal}.graduate-quote{position:absolute;z-index:2;top:420px;left:9%;right:5%;margin:0;padding:9px;border:2px solid #d4c8d0;border-radius:10px;background:#fffefded;color:#5a5769;font-size:11px;font-weight:750;text-align:center}.graduate-recipe{position:absolute;z-index:3;left:7px;right:6px;bottom:14px;padding:10px 7px;border:2px solid #b5bfd1;border-radius:12px;background:#f8f9fcf5;box-shadow:0 2px 5px #607ca755}.graduate-recipe label{font-size:11px;font-weight:800}.graduate-materials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:10px 0}.graduate-material{display:grid;justify-items:center;gap:2px;min-height:68px;padding:5px 2px;border:2px solid #bcc8d7;border-radius:7px;background:#e3e6ed;color:#727b8b;font-size:10px;text-align:center}.graduate-material.complete{border-color:#78b9da;background:#e5f8ef;color:#3b8d6b}.graduate-material span{color:#e8983d;white-space:nowrap}.graduate-material b{font-size:13px}.graduate-recipe p{min-height:32px;margin:3px 2px;color:#546783;font-size:11px;text-align:center}.graduate-recipe>button{display:block;width:75%;margin:auto;padding:9px;border:3px solid #e8f7ff;border-radius:10px;background:linear-gradient(#79d2ff,#3a87db);color:#fff;font-size:19px;font-weight:900;text-shadow:0 1px #3266a5}.graduate-recipe>button:disabled{filter:grayscale(.7);opacity:.6}.graduate-side{min-width:0;padding:6px 4px;background:linear-gradient(#bed6f0,#a4b8e4);border-left:3px solid #9eb0d0}.graduate-star-filters{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-bottom:5px}.graduate-star-filters button{padding:4px 1px;border:1px solid #90a7ca;border-radius:7px;background:#f7faff;color:#6080aa;font-size:10px;font-weight:850}.graduate-star-filters button.active{background:#6caeea;color:#fff}.graduate-candidates{display:flex;flex-direction:column;gap:5px;max-height:740px;overflow-y:auto}.graduate-candidate{position:relative;padding:2px;border:2px solid #9a9dc5;border-radius:7px;background:#f0ecdf;color:#506180;font-size:9px;font-weight:800}.graduate-candidate.active{border-color:#ffdc60;box-shadow:0 0 0 2px #e5a84f}.graduate-candidate img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.graduate-candidate span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:390px){.graduate-body{grid-template-columns:minmax(0,1fr) 77px}.graduate-factions button{flex-direction:column}.graduate-main{min-height:720px}.graduate-art{height:410px}.graduate-quote{top:390px}.graduate-material{font-size:9px}}
.campus-view .girls-top,.graduate-view .girls-top{grid-template-columns:minmax(0,1fr) 54px}.campus-view .girls-currencies,.graduate-view .girls-currencies{min-width:0}.graduate-art{mix-blend-mode:normal}.detail-art-wrap img.full-art{mix-blend-mode:normal}
.graduate-star-filters{grid-template-columns:1fr}.graduate-star-filters span{display:block;padding:5px 1px;border:1px solid #90a7ca;border-radius:7px;background:#f7faff;color:#6080aa;font-size:10px;font-weight:850;text-align:center}

/* Restored Life, Battle/League and shard layouts from the original UI. */
.league-view{width:min(490px,100%);min-height:calc(100vh - 75px);margin:8px auto 0;padding-bottom:70px;box-sizing:border-box;overflow:hidden;border:3px solid #9cb8d3;border-radius:14px;background:#d7ecf8;color:#3e5779;box-shadow:0 18px 46px #0c152933}.league-view[hidden]{display:none}.league-top{grid-template-columns:minmax(0,1fr) 54px}.league-body{min-height:780px;padding:72px 12px 20px;background:linear-gradient(155deg,#78b9e4,#509fd5 50%,#70b6dc)}.league-tabs{margin-bottom:16px}.league-cards{display:grid;gap:8px;padding:0 5px}.league-card{position:relative;display:block;width:100%;aspect-ratio:662/225;padding:0;border:0;background-color:#e6eef7;background-size:100% 100%;background-repeat:no-repeat;box-shadow:0 2px 3px #29445a8c;text-align:left}.league-card-copy{position:absolute;left:57%;right:3%;top:17%;bottom:10%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#365478;text-shadow:0 1px #fff;overflow:hidden}.league-card-copy strong{font-size:clamp(19px,5.5vw,29px);line-height:1.05}.league-card-copy small{margin-top:10px;font-size:clamp(10px,2.5vw,14px);line-height:1.2;font-weight:650}
.life-card .campus-card-title{bottom:3%;max-height:27px}.campus-card-label{position:absolute;left:4%;right:4%;bottom:3%;color:#345b81;font-size:clamp(12px,3.4vw,19px);font-weight:900;text-align:center;text-shadow:-1px -1px white,1px 1px white}.life-card .campus-card-art{aspect-ratio:auto}
#girls-shards-panel{min-height:calc(100vh - 195px);padding-bottom:68px}.shard-feature{display:none}.shard-board{min-height:calc(100vh - 274px);padding:14px 10px;border:2px solid #b9bdc6;border-radius:8px;background:#f7f5f6}.shard-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;gap:14px 8px;padding:0}.shard-card{min-width:0;padding:0;border:0;background:none;cursor:pointer}.shard-card:disabled{cursor:default}.shard-card-art{position:relative;display:block;width:100%;aspect-ratio:1/1.05;overflow:hidden;border:2px solid #bca971;border-radius:8px;background:linear-gradient(135deg,#6b231d,#a44b3c);box-shadow:inset 0 0 0 2px #fff8,0 1px 3px #3d3c44aa}.shard-card-art>img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.shard-card-art.silhouette>img{filter:brightness(.18) sepia(.5) saturate(2) hue-rotate(230deg)}.shard-card-faction{position:absolute;left:2px;top:2px;width:24%;aspect-ratio:1;border:1px solid #fff;border-radius:50%;background:#62a8df center/contain no-repeat;color:#fff}.shard-card-puzzle{position:absolute;right:2px;top:0;color:#e7c564;font-size:clamp(11px,3vw,18px);line-height:1}.shard-card-stars{position:absolute;left:2px;right:2px;bottom:0;color:#ffdb49;font-size:clamp(8px,2.2vw,13px);letter-spacing:-1px;white-space:nowrap;text-align:center;text-shadow:0 1px 2px #542}.shard-card-progress{display:block;position:relative;margin-top:3px;overflow:hidden;border:1px solid #81858c;border-radius:20px;background:linear-gradient(#c7c8ca,#898e95);color:#fff;font-size:clamp(9px,2.2vw,12px);line-height:16px;font-weight:900;text-align:center;text-shadow:0 1px 2px #333;box-shadow:inset 0 1px 2px #fff9}.shard-card-progress:before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--fill);background:linear-gradient(#9ddcff,#3297e8);z-index:0}.shard-card-progress.complete:before{background:linear-gradient(#aee779,#50bd38)}.shard-card-progress{isolation:isolate}.shard-card-progress:before{z-index:-1}.shard-filters{position:fixed;left:50%;bottom:65px;z-index:11;display:flex;justify-content:space-around;gap:3px;width:min(490px,100%);box-sizing:border-box;padding:8px 5px;border:2px solid #bec5cc;border-radius:0 0 8px 8px;background:#f7f5f6;transform:translateX(-50%)}.shard-filter{width:clamp(29px,7vw,37px);aspect-ratio:1;border:2px solid #b3c0ce;border-radius:50%;background:linear-gradient(#d6efff,#66b4e2);background-size:contain;background-position:center;background-repeat:no-repeat;color:#4a7199;font-size:23px;font-weight:900}.shard-filter.active{outline:2px solid #409ae1;outline-offset:1px}.shard-draw-result:empty{display:none}

/* Original screenshot navigation and original item icons. */
.nav-reference-icon{display:block;width:clamp(45px,12vw,74px);height:clamp(37px,10vw,55px);object-fit:contain;mix-blend-mode:multiply;flex:none}.home-bottom .nav-reference-icon,.girls-bottom-nav .nav-reference-icon,.campaign-bottom-nav .nav-reference-icon{margin:0 auto -3px;transform:none}.home-bottom button,.girls-bottom-nav button,.campaign-bottom-nav button{overflow:hidden}.currency-icon{display:inline-block;width:19px;height:19px;object-fit:contain;vertical-align:-4px;flex:none}.home-currency .currency-icon{width:17px;height:17px}.capsule-token{display:block;width:29px;height:29px;object-fit:contain}.cost-token{display:inline-block;width:15px;height:15px;object-fit:contain;vertical-align:-3px}.capsule-count{gap:5px}.capsule-count b{font-size:18px}.capsule-draw strong{display:block}.capsule-draw strong .cost-token{vertical-align:-3px}.campaign-money span,.capsule-currencies>span,.girls-currencies span,.home-currency span{display:flex;align-items:center;justify-content:center;gap:4px}.campaign-money .currency-icon{width:21px;height:21px}.idle-chip .currency-icon{width:17px;height:17px}
.graduate-star-filters{display:flex;flex-direction:column;gap:4px}.graduate-star-filters button{font-size:10px;line-height:1.1}.graduate-star-filters .red-stars{color:#d8395b;text-shadow:0 1px #fff}.graduate-star-filters .gold-stars{color:#e6b32a;text-shadow:0 0 5px #fff}.graduate-star-badge{display:inline-block;font-size:15px;font-weight:900;white-space:nowrap}.graduate-star-badge.red-stars{color:#d8395b;text-shadow:0 1px #761d30,0 0 4px #fff}.graduate-star-badge.gold-stars{color:#f8c12f;text-shadow:0 1px #76520c,0 0 7px #fff,0 0 12px #ffd64a}.graduate-star-badge.yellow-stars{color:#e8ad2c;text-shadow:0 1px #77500b}.graduate-candidate .graduate-star-badge{display:block;font-size:12px}

.nav-reference-icon{mix-blend-mode:normal}.home-bottom button.current,.girls-bottom-nav button.current,.campaign-bottom-nav button.current{background:linear-gradient(#75bcf6,#3986d6)!important}.capsule-bottom-nav{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))}.capsule-bottom-nav .nav-reference-icon{margin:0 auto -3px}

.home-bottom .nav-reference-icon,.girls-bottom-nav .nav-reference-icon,.campaign-bottom-nav .nav-reference-icon{width:clamp(44px,11vw,70px);height:45px;margin:0 auto -3px}.capsule-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.capsule-bottom-nav small{display:block;font-size:10px;line-height:1.1}.girls-bottom-nav small,.campaign-bottom-nav small{line-height:1.1}

/* Menu routes recovered from the client's window graph. */
.menu-explorer-view{width:min(490px,100%);min-height:calc(100vh - 70px);margin:8px auto 0;padding-bottom:86px;box-sizing:border-box;overflow:hidden;border:3px solid #9cb8d3;border-radius:14px;background:#dceefa;color:#385475;box-shadow:0 18px 46px #0c152933}.menu-explorer-view[hidden]{display:none}.menu-explorer-top{position:relative;z-index:2;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:68px;padding:6px;background:linear-gradient(#f4f4fc,#bed8f5);box-shadow:0 3px 6px #40608455}.menu-explorer-top button{width:44px;height:46px;border:0;background:none;padding:0}.menu-explorer-top button img{width:100%;height:100%;object-fit:contain}.menu-explorer-top small{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#637ba3;font-size:10px;font-weight:750}.menu-explorer-top h1{margin:0;font-size:clamp(17px,4.8vw,24px);line-height:1.1;text-shadow:0 1px #fff}.menu-explorer-money{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#444e5e}.menu-explorer-money span{display:flex;align-items:center;gap:3px;padding:2px 5px;border:1px solid #a6bbd1;border-radius:15px;background:#f7f8fa}.menu-explorer-money img{width:15px;height:15px;object-fit:contain}.menu-explorer-scene{position:relative;height:330px;background:linear-gradient(150deg,#87b7df,#d4ebf8);background-position:center center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.menu-explorer-scene.has-scene{background-size:auto 100%}.menu-explorer-scene:after{content:'';position:absolute;inset:auto 0 0;height:70px;background:linear-gradient(transparent,#e6f2fa)}.menu-explorer-art{position:absolute;z-index:1;bottom:10px;left:50%;max-width:85%;max-height:85%;object-fit:contain;transform:translateX(-50%);filter:drop-shadow(0 8px 8px #39495a66)}.menu-explorer-art[hidden]{display:none}.menu-explorer-content{position:relative;z-index:1;min-height:315px;margin:-1px 0 0;padding:15px 13px 28px;background:linear-gradient(#e6f2fa,#f7f6fa)}.menu-explorer-content>p:first-child{margin:0 0 14px;padding:10px 12px;border:2px solid #b8cadb;border-radius:10px;background:#fffdf8e8;font-size:14px;font-weight:750;line-height:1.35}.menu-explorer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.menu-explorer-link{position:relative;display:grid;grid-template-rows:115px auto;min-width:0;padding:0;overflow:hidden;border:2px solid #91a9c6;border-radius:9px;background:#fff;box-shadow:0 2px 4px #435e8360;text-align:left;color:#385475}.menu-explorer-link>img{display:block;width:100%;height:115px;object-fit:cover;object-position:center 34%;background:#b9d6e8}.menu-explorer-link>span{display:block;min-height:54px;padding:6px 14px 7px 8px}.menu-explorer-link strong{display:block;font-size:13px;line-height:1.15}.menu-explorer-link small{display:-webkit-box;overflow:hidden;margin-top:3px;font-size:10px;line-height:1.15;-webkit-line-clamp:2;-webkit-box-orient:vertical}.menu-explorer-chevron{position:absolute;right:5px;bottom:12px;font-size:24px;color:#62a4de}.menu-explorer-note{margin:16px 2px 0;color:#78879b;font-size:11px;line-height:1.3}.menu-explorer-bottom{position:fixed;z-index:10;bottom:0;left:50%;width:min(490px,100%);transform:translateX(-50%)}.menu-explorer-bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}
.menu-explorer-scene.is-map{height:680px;background-size:100% 100%}.menu-explorer-scene.is-map:after{height:25px}.menu-explorer-hotspots{position:absolute;inset:0;z-index:2;pointer-events:none}.menu-map-point{position:absolute;width:37%;min-height:125px;transform:translate(-50%,-50%);padding:2px;border:0;background:transparent;pointer-events:auto;filter:drop-shadow(0 2px 3px #23395099)}.menu-map-point img{display:block;width:100%;height:105px;object-fit:contain}.menu-map-point strong{display:block;margin-top:-5px;padding:3px 4px;border:1px solid #fff;border-radius:8px;background:linear-gradient(#f9f4d9,#ead28a);color:#64553e;font-size:11px;text-align:center;text-shadow:0 1px #fff}.menu-explorer-link>img[src*="setting_icon"],.menu-explorer-link>img[src*="shop_"],.menu-explorer-link>img[src*="guild_territory_icon"],.menu-explorer-link>img[src*="prophet_icon"],.menu-explorer-link>img[src*="gb_"]{object-fit:contain;padding:10px;box-sizing:border-box;background:linear-gradient(145deg,#eaf4ff,#a6c7eb)}
.menu-map-point.label-only{min-height:0;width:36%;padding:5px;border:1px solid #fff;border-radius:8px;background:linear-gradient(#faf1d8,#ddbf7b)}.menu-map-point.label-only strong{margin:0;padding:0;border:0;background:none}

/* Profile window, rebuilt from PersonInfoWindow and PersonAvatarsWindow. */
.profile-view{position:relative;width:min(490px,100%);min-height:calc(100vh - 80px);margin:8px auto 0;box-sizing:border-box;overflow:hidden;border:3px solid #9db5ce;border-radius:14px;background:linear-gradient(165deg,#cce7f8,#edf5fb 54%,#dbe9f6);color:#415879;box-shadow:0 18px 46px #0c152933}.profile-view[hidden],.profile-view [hidden]{display:none!important}.profile-top{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;padding:8px 10px;background:linear-gradient(#eaf1fb,#c5d8ed);border-bottom:2px solid #9eb5ce}.profile-top button{padding:0;border:0;background:none}.profile-top img{width:44px;height:44px;object-fit:contain}.profile-top h1{margin:0;text-align:center;font-size:23px;text-shadow:0 1px #fff}.profile-top>span{font-weight:900;color:#78a1ca;font-size:11px}.profile-tabs,.profile-picker-tabs{display:grid;grid-template-columns:1fr 1fr;margin:12px 14px;border:2px solid #91a7c2;border-radius:8px;overflow:hidden}.profile-tabs button,.profile-picker-tabs button{min-height:36px;border:0;background:linear-gradient(#fff,#dce7f0);color:#445c7a;font-size:17px;font-weight:850}.profile-tabs button.active,.profile-picker-tabs button.active{background:linear-gradient(#75bef1,#3988d7);color:white;text-shadow:0 1px #336299}.profile-page{padding:3px 17px 28px}.profile-card{display:flex;align-items:center;gap:18px;min-height:150px;padding:14px;border:2px solid #a4bfd5;border-radius:12px;background:#f8fbff url('/assets/profile/person_avatar_win_bg.png') center/cover no-repeat;box-shadow:0 2px 5px #5b789155}.profile-avatar,.profile-preview-avatar{position:relative;display:block;flex:none;width:118px;height:118px;padding:0;border:0;background:none;cursor:pointer}.profile-avatar>img:first-child,.profile-preview-avatar>img:first-child{position:absolute;inset:12px;width:94px;height:94px;object-fit:cover;border-radius:10px}.profile-avatar>.profile-frame-image,.profile-preview-avatar>img:nth-child(2){position:absolute;inset:0;width:118px;height:118px;object-fit:fill}.profile-avatar>span{position:absolute;right:-4px;bottom:0;display:grid;place-items:center;width:26px;height:26px;border:2px solid white;border-radius:50%;background:#62ace9;color:white;font-weight:900}.profile-identity{min-width:0}.profile-identity small{color:#7b9bb9;font-weight:800}.profile-identity h2{margin:4px 0 8px;overflow-wrap:anywhere;color:#365376;font-size:20px}.profile-identity>span{display:block;font-size:11px}.profile-edit-btn{margin-top:9px;padding:6px 12px;border:2px solid #fff;border-radius:7px;background:linear-gradient(#88c8f5,#468dd1);color:#fff;font-size:12px;font-weight:850;box-shadow:0 2px 2px #668bb0}.profile-level,.profile-field{margin-top:14px;padding:12px 15px;border:2px solid #b3c3d4;border-radius:10px;background:#fffdf9ee;box-shadow:0 2px 3px #758baa33}.profile-level>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.profile-exp-bar{height:13px;margin-top:9px;overflow:hidden;border:1px solid #7eabc8;border-radius:10px;background:#cbd9e2}.profile-exp-bar i{display:block;height:100%;background:linear-gradient(#f4d786,#ec9e42)}.profile-field h3{margin:0 0 5px;font-size:15px;color:#456b93}.profile-field p{margin:0;min-height:22px;white-space:pre-wrap;font-size:13px}.profile-primary{display:block;width:min(320px,90%);min-height:42px;margin:20px auto;border:2px solid #fff;border-radius:9px;background:linear-gradient(#81d0ff,#3e8bd7);color:#fff;font-size:16px;font-weight:900;text-shadow:0 1px #3772aa;box-shadow:0 3px 3px #6b90af}.profile-page>h2{margin:9px 0 18px;font-size:18px}.profile-setting-row{display:flex;align-items:center;gap:13px;margin-bottom:10px;padding:12px;border:2px solid #b1c3d7;border-radius:9px;background:#f9fbff}.profile-setting-row img{width:39px;height:39px;object-fit:contain}.profile-setting-row strong,.profile-setting-row small{display:block}.profile-setting-row small{margin-top:3px;color:#7a8ea5;font-size:11px}.profile-picker{position:absolute;z-index:12;inset:61px 0 0;min-height:760px;padding:12px 12px 30px;box-sizing:border-box;background:linear-gradient(#daeaf8,#f3f5f8 40%,#e5edf8)}.profile-picker-head{display:flex;align-items:center;gap:15px}.profile-picker-head button{width:34px;height:34px;border:1px solid #a0b3c7;border-radius:8px;background:#fff;color:#597da4;font-size:27px}.profile-picker-head h2{margin:0;font-size:20px}.profile-preview{display:flex;align-items:center;justify-content:center;gap:15px;margin:15px auto;padding:10px;border:2px solid #a9bdd1;border-radius:10px;background:#f7faff}.profile-preview strong{font-size:17px}.profile-picker-tabs{grid-template-columns:repeat(3,1fr);margin:10px 0}.profile-picker-tabs button{font-size:14px}.profile-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:8px;max-height:420px;overflow-y:auto;padding:7px;border:2px solid #b8c7d6;border-radius:9px;background:#f9f8f7}.profile-picker-grid button{position:relative;aspect-ratio:1;padding:3px;border:2px solid #a9bbca;border-radius:8px;background:#dae7f2}.profile-picker-grid button.selected{border-color:#f1bb45;box-shadow:0 0 0 2px #fff2a4}.profile-picker-grid img{display:block;width:100%;height:100%;object-fit:contain}.profile-picker-grid small{position:absolute;bottom:0;left:0;right:0;padding:2px;background:#edf5f8e6;color:#536d87;font-size:9px;font-weight:800}.profile-picker #profile-picker-message{min-height:16px;margin:8px 3px;color:#6380a1;font-size:11px}.profile-picker>.profile-primary{margin-top:8px}.profile-edit-dialog{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:14px;background:#172b5099}.profile-edit-dialog form{width:min(390px,100%);padding:20px;border:3px solid #97bad9;border-radius:13px;background:#f7fbff;color:#415879;box-shadow:0 15px 40px #13243a88}.profile-edit-dialog h2{margin:0 0 14px}.profile-edit-dialog label{display:block;margin-bottom:7px;font-size:13px;font-weight:800}.profile-edit-dialog textarea{width:100%;box-sizing:border-box;padding:9px;border:2px solid #aabed5;border-radius:8px;resize:vertical;font:inherit}.profile-edit-dialog p{min-height:18px;color:#bd5353;font-size:12px}.profile-edit-dialog form>div{display:flex;justify-content:flex-end;gap:9px}.profile-edit-dialog button{padding:8px 14px;border:1px solid #9aacc6;border-radius:7px;background:#e8eff8;color:#416188;font-weight:850}.profile-edit-dialog button[type=submit]{background:#4c9cdd;color:white}
.home-profile-frame{position:absolute;z-index:1;inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:fill;pointer-events:none}.home-profile #home-level{z-index:2}
@media(max-width:390px){.profile-card{gap:8px;padding:8px}.profile-avatar{transform:scale(.83);margin:-10px}.profile-identity h2{font-size:16px}.profile-picker-grid{gap:5px}}
.profile-local-note{margin:7px 3px 0;color:#71849a;font-size:10px;line-height:1.25}

/* Daily Quiz: original three resource challenge cards and difficulty emblems. */
.daily-quiz-view{width:min(490px,100%);min-height:calc(100vh - 80px);margin:8px auto 0;padding-bottom:30px;box-sizing:border-box;overflow:hidden;border:3px solid #9db9d1;border-radius:14px;background:linear-gradient(#b8d9f1,#dfeefa 50%,#ecf4fa);color:#3e5978;box-shadow:0 18px 46px #0c152933}.daily-quiz-view[hidden],.daily-quiz-view [hidden]{display:none!important}.daily-quiz-top{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:8px;padding:8px;background:linear-gradient(#ecf3fa,#c3d8ee);border-bottom:2px solid #95aec7}.daily-quiz-top button{padding:0;border:0;background:none}.daily-quiz-top button img{width:43px;height:43px;object-fit:contain}.daily-quiz-top h1{margin:0;font-size:22px;text-align:center}.daily-quiz-top>div{display:flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid #afbed0;border-radius:18px;background:#f5f7fa;font-size:12px}.daily-quiz-top>div img{width:17px;height:17px}.daily-quiz-banner{height:151px;display:flex;flex-direction:column;justify-content:center;padding:0 24px;background:#93b7d7 url('/assets/daily-quiz/bg_banner.png') center/cover no-repeat;text-shadow:0 1px 2px #fff}.daily-quiz-banner h2{margin:0;font-size:25px}.daily-quiz-banner p{max-width:235px;margin:7px 0;font-size:12px;font-weight:750}.daily-quiz-reset{margin:8px 12px 12px;color:#667f98;font-size:11px;text-align:center}.daily-quiz-categories{display:grid;gap:10px;padding:0 12px}.daily-quiz-category{position:relative;display:block;width:100%;min-height:166px;padding:0;border:0;border-radius:9px;background:#fff center/100% 100% no-repeat;box-shadow:0 2px 4px #4b6a8755;text-align:left;color:#42617f;overflow:hidden}.daily-quiz-category>span{position:absolute;left:48%;right:4%;top:17%;text-align:center}.daily-quiz-category strong{display:block;font-size:19px;text-shadow:0 1px #fff}.daily-quiz-category small{display:block;margin-top:12px;font-size:12px;font-weight:800}.daily-quiz-category em{display:block;margin-top:8px;color:#618db1;font-size:10px;font-style:normal;font-weight:750}.daily-quiz-detail{padding:13px}.daily-quiz-small-back{padding:5px 9px;border:1px solid #9eb4ce;border-radius:7px;background:#f8fbfd;color:#507da3;font-size:13px;font-weight:800}.daily-quiz-detail h2,.daily-quiz-result h2{margin:11px 0 3px;font-size:21px}.daily-quiz-detail>p{margin:3px 0 12px;font-size:12px}.daily-quiz-tiers{display:grid;gap:9px}.daily-quiz-tier{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:2px solid #adc3d7;border-radius:10px;background:#f8fbff;box-shadow:0 2px 3px #7d98ab55}.daily-quiz-tier.locked{background:#edf1f5}.daily-quiz-tier>img{width:50px;height:50px;object-fit:contain}.daily-quiz-tier h3{margin:0;font-size:14px}.daily-quiz-tier small{font-size:10px}.daily-quiz-tier-awards{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.daily-quiz-tier-awards span{display:flex;align-items:center;gap:2px;padding:2px 4px;border:1px solid #d5dce5;border-radius:5px;background:#fff;font-size:9px;font-weight:800}.daily-quiz-tier-awards img{width:17px;height:17px;object-fit:contain}.daily-quiz-tier-actions{display:grid;gap:4px}.daily-quiz-tier-actions button{min-width:70px;padding:6px 7px;border:2px solid #e8f5ff;border-radius:7px;background:linear-gradient(#82cafa,#448fd5);color:white;font-size:11px;font-weight:850;text-shadow:0 1px #366d9e}.daily-quiz-tier-actions button:disabled{filter:grayscale(.85);opacity:.65}.daily-quiz-tier-actions .practice{background:linear-gradient(#b5c9db,#759bbd)}.daily-quiz-result{padding:13px}.daily-quiz-result>p{font-size:13px}.daily-quiz-result-scene{min-height:230px;display:grid;place-items:center;border:3px solid #b9c8db;border-radius:10px;background:#7a9abc center/cover no-repeat}.daily-quiz-result-teams{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%;box-sizing:border-box;padding:12px;background:#182d4a77;color:white;text-align:center}.daily-quiz-result-side{display:flex;justify-content:center;flex-wrap:wrap;gap:4px}.daily-quiz-result-unit{width:42px;height:48px;border:1px solid #e1e9f4;border-radius:5px;background:#4c6682;overflow:hidden}.daily-quiz-result-unit img{width:100%;height:100%;object-fit:cover}.daily-quiz-result-side-title{grid-column:1/-1;display:block;font-size:11px;font-weight:850}.daily-quiz-result-rewards{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.daily-quiz-result-rewards span{display:flex;align-items:center;gap:5px;padding:6px;border:1px solid #b4c7d6;border-radius:7px;background:#fff;font-size:12px;font-weight:750}.daily-quiz-result-rewards img{width:24px;height:24px;object-fit:contain}.daily-quiz-error{margin:12px;padding:9px;border:1px solid #d7a6a6;border-radius:7px;background:#fff0f0;color:#9c4141;font-size:12px}
@media(max-width:390px){.daily-quiz-tier{grid-template-columns:42px minmax(0,1fr) auto;gap:4px;padding:5px}.daily-quiz-tier>img{width:40px;height:40px}.daily-quiz-tier-actions button{min-width:60px;font-size:10px}.daily-quiz-category{min-height:140px}.daily-quiz-category>span{left:46%}}
.daily-quiz-result-side{display:grid;grid-template-columns:repeat(3,42px);justify-content:center;align-content:center;gap:4px}.daily-quiz-result-side-title{grid-column:1/-1;text-align:center;margin-bottom:3px}
@media(max-width:390px){.daily-quiz-result-side{grid-template-columns:repeat(3,32px)}.daily-quiz-result-unit{width:32px;height:38px}}
.tower-view{width:min(490px,100%);min-height:calc(100vh - 80px);margin:8px auto 0;padding-bottom:24px;border:3px solid #8998b9;border-radius:13px;box-sizing:border-box;overflow:hidden;background:linear-gradient(#a0aaca,#d1d7e8 26%,#929cbc);color:#34435f;box-shadow:0 18px 46px #0c152933}.tower-view[hidden],.tower-view [hidden]{display:none!important}.tower-top{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:8px;padding:5px 9px;background:linear-gradient(#f9f8fa,#cbd7ed);border-bottom:2px solid #8894b3}.tower-top button{border:0;background:transparent;padding:0}.tower-top button img{width:45px;height:45px;object-fit:contain}.tower-top>img{width:114px;height:38px;object-fit:contain;justify-self:center}.tower-top>div{display:flex;align-items:center;gap:4px;padding:3px 7px;border:1px solid #9daac7;border-radius:15px;background:#f6f7fc;font-size:13px}.tower-top>div img{width:25px;height:25px;object-fit:contain}.tower-heading{text-align:center;padding:13px 8px 8px;background:#ffffff85}.tower-heading h1{margin:0;font-size:18px}.tower-heading p{margin:5px 0 0;font-size:12px;font-weight:700}.tower-floors{display:grid;gap:4px;padding:10px 8px}.tower-floor{position:relative;width:100%;height:112px;border:2px solid #889bc0;border-radius:6px;background-color:#8397ba;background-size:100% 100%;box-shadow:0 2px 4px #303f6b88;color:white;overflow:hidden;text-shadow:0 1px 3px #132643;font-weight:900}.tower-floor.current{outline:3px solid #f7d86f}.tower-floor.cleared{filter:saturate(.75)}.tower-floor.locked{filter:saturate(.55)}.tower-door{position:absolute;left:5%;top:4px;height:103px;width:83px;object-fit:contain}.tower-floor-label{position:absolute;left:8%;top:31px;width:70px;text-align:center;font-size:17px}.tower-floor-enemy{position:absolute;left:39%;top:13px;width:73px;height:82px;overflow:hidden;border:2px solid #f9f2d7;border-radius:5px;background:#6780a5}.tower-floor-enemy img{width:100%;height:100%;object-fit:cover}.tower-floor-box{position:absolute;right:6%;top:4px;width:86px;height:70px;object-fit:contain}.tower-floor-caption{position:absolute;right:3%;bottom:10px;width:118px;font-size:11px;text-align:center}.tower-detail,.tower-result{padding:13px}.tower-detail h2,.tower-result h2{margin:12px 0 5px;font-size:21px}.tower-detail h3{margin:15px 0 2px;font-size:15px}.tower-detail>p,.tower-result>p{font-size:12px}.tower-detail-enemies{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:15px 0}.tower-enemy{display:grid;justify-items:center;padding:5px;border:1px solid #9caacc;border-radius:7px;background:#f8f9fd}.tower-enemy>img,.tower-enemy .portrait{width:54px;height:57px;object-fit:cover;border-radius:4px}.tower-enemy small{font-size:10px;font-weight:800}.tower-actions{display:flex;gap:10px;margin-top:20px}.tower-actions button{flex:1;padding:10px 3px;border:2px solid #e7f2ff;border-radius:8px;background:linear-gradient(#86c4ec,#448ac5);color:white;font-weight:900}.tower-actions button:first-child{background:linear-gradient(#bccde2,#788fad)}.tower-actions button:disabled{opacity:.55;filter:grayscale(.8)}
.tower-floor-label{left:4%;top:6px;width:92px;padding:2px 0;border-radius:4px;background:#253348aa;font-size:13px}
.event-battle-view{width:min(770px,100%);margin:8px auto 0;padding:0 0 20px}.event-battle-view[hidden]{display:none!important}.event-battle-toolbar{display:flex;align-items:center;gap:13px;padding:8px 12px;border:2px solid #9fb5d0;border-radius:12px;background:linear-gradient(#e7f1fb,#aec6de);color:#314c69;font-size:18px;font-weight:850}.event-battle-toolbar button{width:44px;height:44px;padding:0;border:0;background:none}.event-battle-toolbar img{width:100%;height:100%;object-fit:contain}.event-battle-view .arena{margin:12px auto}.event-battle-view .rewards{margin:14px 0}.event-battle-view .reward{display:inline-flex;align-items:center;gap:5px}.event-battle-view .reward img{width:23px;height:23px;object-fit:contain}.event-battle-continue{display:block;min-width:180px;margin:14px auto 0;padding:10px 16px;border:2px solid #e9f6ff;border-radius:9px;background:linear-gradient(#80c7f5,#3b82c5);color:#fff;font-weight:850}.event-battle-continue[hidden]{display:none!important}
.event-rewatch{display:block;width:100%;margin-top:14px;padding:9px;border:2px solid #e7f2ff;border-radius:8px;background:linear-gradient(#84bdea,#4586bf);color:#fff;font-size:13px;font-weight:850}.event-rewatch[hidden]{display:none!important}
/* Original cut sprites from main_window_h5. */
.home-original{display:flex!important;align-items:center;justify-content:center;width:100%!important;height:100%!important;background:none!important}
.home-original-icon{display:block;object-fit:contain;max-width:100%;max-height:100%}
.home-side .home-original{width:62px!important;height:66px!important}
.home-right .home-original{background:url('/assets/original-ui/left_btn_bg_v3.png') center/contain no-repeat!important;padding:8px}
.home-mail .home-original{width:50px!important;height:38px!important}
.home-destinations .home-original{height:92px!important;transform:none!important;margin:0!important}
.home-destinations .home-original-icon{width:100%;height:100%}
.dev-open{position:absolute;top:82px;left:9px;z-index:9;padding:4px 8px;background:#213954dd;color:white;border:1px solid #9cbbd3;border-radius:6px;font-size:11px}
.developer-mode .dev-open{background:#8b420b}.developer-mode .home-top:after{content:'DEVELOPER · TEST SAVE';position:absolute;top:64px;left:95px;color:#fff;background:#8b420be8;font-size:10px;padding:3px 5px;border-radius:4px}
#developer-dialog{max-width:450px;width:90%;border:2px solid #88aac4;border-radius:14px;padding:20px;background:#edf4fa;color:#223b51}#developer-dialog::backdrop{background:#10253799}#developer-dialog label{display:block;margin:9px 0}#developer-dialog input,#developer-dialog select{display:block;width:100%;padding:7px;background:white;color:#223b51;border:1px solid #b3c5d4}#developer-dialog button{padding:9px;margin:5px 3px;background:#397fba;color:white;border-radius:7px}#developer-dialog p{font-size:13px;line-height:1.5}
.battlefield{aspect-ratio:9/16!important;background-size:cover!important;isolation:isolate;overflow:hidden}.battlefield .versus{display:none}.chibi-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.battlefield .units{z-index:2;pointer-events:none}.battlefield .unit{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;transform:translate(-50%,-50%)!important;width:19%!important}.battlefield .unit.has-chibi>.unit-art,.battlefield .unit.has-chibi>.portrait{visibility:hidden}.battlefield .unit.dead{opacity:.35}.unit-status{position:absolute;top:-14px;left:0;color:#fff;text-shadow:0 1px 2px #244a81;font-size:11px;display:flex;align-items:center}.unit-faction{width:20px;height:20px;position:absolute;left:-12px;top:11px;z-index:3}.battlefield .unit .hp{position:absolute;top:11px;left:0;width:100%;height:11px;border:2px solid #e7eeff;border-radius:2px;background:#284c32;box-shadow:0 1px 3px #13243f}.battlefield .hp i{background:linear-gradient(#4bff68,#0fb824)}.battle-round{position:absolute;top:5%;left:0;width:100%;text-align:center;font-size:clamp(22px,5vw,32px);font-weight:900;color:#ffdd83;text-shadow:1px 2px 1px #795733;z-index:3}.battle-hud{position:absolute;bottom:3%;left:4%;right:4%;display:flex;align-items:center;gap:10px;z-index:4}.battle-progress{height:20px;flex:1;border:3px solid #edf3ff;border-radius:18px;background:#3c466e;box-shadow:0 0 4px #396797;overflow:hidden}.battle-progress i{display:block;width:0;height:100%;background:linear-gradient(#4cddff,#0ca2e9);box-shadow:0 0 8px #9ff;transition:width .2s}.battle-hud button{width:44px;height:44px;background:transparent;border:0;padding:0}.battle-hud button img{width:100%;height:100%;object-fit:contain}.battlefield .unit.active{outline:0!important}.battlefield .unit.has-chibi.attack .unit-art{animation:none}
.battle-leader{flex:none;border:2px solid white;border-radius:50%;overflow:hidden}.battle-asset-note{display:block;font-size:11px;color:#59697c;padding:6px}.battlefield .unit.has-chibi{height:22%!important}.battlefield .unit .unit-status{top:0}.battlefield .unit .hp{top:24px}.home-right{gap:4px!important}.home-side button small{font-size:11px!important}
.battlefield .unit .hp{border:0;height:12px;background:transparent url('/assets/original-ui/battle_hp_bar_bg_new.png') center/100% 100% no-repeat;padding:2px;box-shadow:none}.battlefield .hp i{height:8px;border-radius:0;background:url('/assets/original-ui/battle_hp_bar1.png') left center/100% 100% no-repeat}
.home-left{display:grid!important;grid-template-columns:1fr 1fr;width:36%!important}.home-left button{min-width:0}.home-left button:nth-child(n+3){grid-column:1}.home-left button:nth-child(2) small{white-space:normal;max-width:80px;line-height:1.1}.home-original-icon{filter:drop-shadow(0 2px 1px #30445b55)}

.developer-mode .home-stage .dev-open{background:#82400c!important;border:1px solid #ffd68a!important;border-radius:6px;padding:4px 8px}.home-stage .dev-open{background:#27455cdd!important;border:1px solid #bbd2e4!important;border-radius:6px;padding:4px 8px}

/* Exact original avatar files cover all visible girls; inherit dimensions of each host. */
.portrait.has-image{background-image:none!important;background-color:#edf2fa;overflow:hidden;position:relative}.portrait>.portrait-image{display:block;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:inherit}

/* GXB2-CAPSULE-EGG-009: compact original top strip, points and hearts are separate. */
.capsule-view{margin-top:0;border-radius:0;border-width:0}.capsule-view .capsule-links{display:none}.capsule-view .capsule-top{padding:6px 8px}.capsule-egg{display:flex;align-items:center;gap:0;padding:4px 10px 0;height:57px;background:#edf0f7}.capsule-egg-meter{position:relative;flex:1;height:26px;border:2px solid #b4c1cf;border-radius:22px;background:#f7f7fb;box-shadow:inset 0 1px 3px #74839c55;overflow:hidden}.capsule-egg-meter span{position:absolute;inset:0 auto 0 0;background:linear-gradient(#fff7ad,#ffdf48,#f8ca34);border-radius:18px}.capsule-egg-meter b{position:relative;display:block;text-align:center;line-height:22px;font-size:15px;color:#695c39;text-shadow:0 1px white}.capsule-egg button{width:64px;height:57px;padding:0;border:0;background:transparent;position:relative;flex-shrink:0;cursor:pointer}.capsule-egg button img{width:55px;height:45px;object-fit:contain}.capsule-egg button small{position:absolute;bottom:0;left:0;right:0;font-size:11px;font-weight:900;color:#775619;text-shadow:0 1px white}.capsule-egg button:disabled{opacity:.65;cursor:default}.capsule-egg button.ready img{filter:drop-shadow(0 0 5px #ffcb36)}.capsule-view .regular{margin-top:4px}

.capsule-egg-result{margin:0;padding:5px 8px;text-align:center;color:#75551f;background:#fff6d4;font-weight:800;font-size:13px}
/* BattleWindow petBar_: Servant energy (0-100) with the Servant avatar, instead of a round-progress bar. */
.battle-progress.pet-energy i{background:linear-gradient(#bff3ff,#39b4f0 55%,#1f7fd0);box-shadow:0 0 6px #6fd0ff;transition:width .35s ease-out}
.battle-pet{display:grid;place-items:center;background:#e9f4ff;width:36px;height:36px}.battle-pet img{width:100%;height:100%;object-fit:cover}
/* Sanctuary boss damage bar (TrialWindow battle: accumulated damage / next reward tier + gift with tiers reached). */
.battle-bossbar{position:absolute;left:12%;right:6%;top:13%;z-index:6;display:flex;align-items:center;gap:6px;pointer-events:none}
.bb-bar{position:relative;flex:1;height:16px;border:2px solid #cfd8ea;border-radius:9px;background:#1d2440;overflow:hidden}
.bb-bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(#ffd27a,#f08a1a);transition:width .3s}
.bb-bar span{position:relative;display:block;text-align:center;color:#fff;font-size:11px;line-height:12px;text-shadow:0 0 2px #000}
.bb-gift{position:relative;width:34px;height:34px}.bb-gift img{width:100%;height:100%;object-fit:contain}.bb-gift b{position:absolute;right:-2px;bottom:-2px;color:#fff;font-size:12px;text-shadow:0 0 2px #000,0 0 2px #000}
/* GXB2-GUILD-UI-013: GuildTerritoryWindow scenery. Other menu routes keep their layout. */
#menu-explorer-view.guild-territory-map{height:853px;padding:0 0 76px;overflow:hidden;background:#a8d9e8}
.guild-territory-map .menu-explorer-top{height:53px;min-height:53px;display:flex;justify-content:center;gap:8px;padding:5px 6px}
.guild-territory-map .menu-explorer-top>div:not(.menu-explorer-money){display:none}
.guild-territory-map .menu-explorer-top>button{order:2;width:45px;height:43px;flex:none}
.guild-territory-map .menu-explorer-money{flex-direction:row;gap:8px;font-size:17px}
.guild-territory-map .menu-explorer-money span{min-width:145px;justify-content:center;gap:8px;padding:1px 8px;border-radius:22px;background:#f5faff}
.guild-territory-map .menu-explorer-money img{width:23px;height:23px}
.guild-territory-map .menu-explorer-scene.is-map{height:724px;background-size:100% 100%}
.guild-territory-map .menu-explorer-scene:after,.guild-territory-map .menu-explorer-content{display:none}
.guild-territory-map .menu-explorer-bottom{height:76px;position:absolute;bottom:0}
.gt-building{position:absolute;display:block;border:0;padding:0;background:none;pointer-events:auto;z-index:2}
.gt-building img{width:100%;height:100%;object-fit:contain}
.gt-label{position:absolute;display:flex;align-items:center;justify-content:center;color:white;font-size:14px;font-weight:750;text-shadow:0 1px 2px #236591;z-index:3;pointer-events:none;line-height:1}
.gt-fountain{position:absolute;object-fit:contain;z-index:2;pointer-events:none}
.gt-merchant{position:absolute;width:120px;height:170px;z-index:4;border:0;background:none;padding:0;pointer-events:auto}
.gt-merchant-name{position:absolute;top:48px;left:0;width:100%;color:white;font-size:12px;font-weight:750;text-shadow:1px 1px 2px #3f496b,-1px -1px 2px #3f496b;z-index:1}
.gt-merchant-model{width:120px;height:170px;pointer-events:none}
.guild-territory-map button:hover:not(:disabled),.guild-territory-map button:active{translate:none}
.battlefield .unit.boss-unit.has-chibi{visibility:hidden}

/* PIXI canvas backing pixels vary with device density; retain the map design size. */
.gt-merchant-model canvas{width:120px;height:170px;display:block}

#menu-explorer-view.guild-territory-map .menu-explorer-top>button{position:absolute;right:8px;top:5px}
/* Alchemy (MidasWindow). */
.md-overlay{position:absolute;inset:0;z-index:40;background:#0009;display:grid;place-items:center}
.md-win{position:relative;width:88%;background:linear-gradient(#fff8e8,#f3dfb6);border-radius:18px;padding:16px;display:grid;gap:12px;color:#5a4330;box-shadow:0 6px 18px #0007}
.md-win h2{margin:0;text-align:center;background:linear-gradient(#ffcf5a,#e59a1c);color:#fff;border-radius:12px;padding:6px;text-shadow:0 1px 0 #9a5a10}
.md-close{position:absolute;right:26px;top:20px;border:0;background:none;color:#fff;font-size:22px;cursor:pointer}
.md-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.md-card{display:grid;justify-items:center;gap:6px;background:#fffdf6;border:2px solid #e5c98e;border-radius:14px;padding:10px}.md-card img{height:70px;object-fit:contain}.md-card b{font-size:18px;color:#c46a1a}.md-card small{font-size:12px}
.md-btn{display:flex;align-items:center;gap:6px;border:0;border-radius:12px;background:linear-gradient(#8fe07a,#3fae2f);color:#fff;font-weight:bold;padding:8px 18px;cursor:pointer}.md-btn.gold{background:linear-gradient(#6fb6ff,#2f7fe0)}.md-btn img{width:20px}.md-btn:disabled{opacity:.5;cursor:not-allowed}
.md-note{margin:0;text-align:center;font-size:12px}
.home-currency span:first-child{cursor:pointer}
.detail-fallback{position:absolute!important;left:50%;top:42%;transform:translate(-50%,-50%);width:46%!important;height:auto!important;aspect-ratio:1;border-radius:18px;overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.25);z-index:1}

/* VIP by achievements (LOCAL-050) */
.vip-card h3 b{margin-left:6px;padding:1px 9px;border-radius:9px;background:linear-gradient(#f4d786,#ec9e42);color:#fff;text-shadow:0 1px #a2621f;font-size:13px}
.vip-card .vip-exp{display:block;margin-top:4px;font-size:12px;font-weight:800;color:#5c7b9c}
.vip-list{margin:8px 0 4px;padding:0 0 0 18px;font-size:12px;color:#54708f}
.vip-card .vip-perks{margin-top:6px;min-height:0;font-size:11px;color:#6b8199}
.vip-card small{display:block;margin-top:6px;color:#8a9bb0;font-size:10px}

/* MainWindow chartGroup: chat on the left edge, separate from reward mail. */
.home-stage .home-chat{position:absolute;left:-1%;top:47%;width:9%;z-index:5;display:block}.home-chat img{display:block;width:100%;height:auto;filter:drop-shadow(0 1px 2px #243859)}

#app-frame .home-stage .home-left{display:grid!important;grid-template-columns:1fr 1fr;width:36%!important;gap:5px!important}
.home-stage .home-chat{top:47%;width:5.6%;left:0}

.shard-card-stars.red{color:#ff7b9b;letter-spacing:0;font-weight:900;text-shadow:0 1px 2px #5e1530}

/* Original HeadView icons track applied and removed buffs in the replay. */
.unit-buffs{position:absolute;top:40px;left:0;display:flex;gap:2px;width:100%;z-index:5;pointer-events:auto}
.unit-buff{position:relative;display:inline-block;width:20px;height:20px;flex-shrink:0;filter:drop-shadow(0 1px 1px #182c49)}
.unit-buff img{width:100%;height:100%;object-fit:contain}.unit-buff b{position:absolute;right:-2px;bottom:-3px;font:800 10px system-ui;color:#fff;text-shadow:0 1px 2px #000}

/* Tests: TowerWindow's stacked school floors and TowerCampaignDetailWindow. */
#app-frame #tower-view.tn-view{position:relative;container-type:inline-size;--u:calc(100cqw / 720);height:100%;min-height:100%;padding:0;border:0;background:#bfc9d1;overflow:hidden}
.tn-view .tower-top{position:absolute;inset:0 0 auto;height:calc(76 * var(--u));z-index:6;display:block;background:linear-gradient(#b7d2eb,#e6edf5);border:0;padding:0}
.tn-view .tower-top>img,.tn-view .tower-heading,.tn-view>.oc-enter{display:none}
.tn-view .tower-top>div{position:absolute;left:36%;top:22%;width:28%;height:52%;display:flex;align-items:center;justify-content:center;border:calc(2 * var(--u)) solid #aebfca;border-radius:calc(26 * var(--u));background:#f3f7fb;color:#384852;gap:calc(30 * var(--u));font:800 calc(28 * var(--u)) system-ui}
.tn-view .tower-top>div img{position:absolute;left:calc(15 * var(--u));width:calc(34 * var(--u));height:calc(38 * var(--u));object-fit:contain}
.tn-view #tower-back{position:absolute;right:calc(8 * var(--u));top:calc(8 * var(--u));width:calc(85 * var(--u));height:calc(56 * var(--u))}.tn-view #tower-back img{width:100%;height:100%;object-fit:contain}
.tn-plus{position:absolute;left:59%;top:25%;width:calc(32 * var(--u));height:calc(32 * var(--u));border:0;border-radius:50%;padding:0;background:#54a9e8;color:white;font:500 calc(32 * var(--u))/1 system-ui}
.tn-view #tower-floors{position:absolute;inset:calc(76 * var(--u)) 0 calc(86 * var(--u));display:block;overflow-y:auto;scrollbar-width:none;gap:0;padding:0}.tn-view #tower-floors::-webkit-scrollbar{display:none}
.tn-floor{position:relative;display:block;width:100%;height:calc(365 * var(--u));flex-shrink:0;border:0;border-radius:0;padding:0;background:center/100% 100% no-repeat;color:#fff;cursor:pointer;overflow:hidden}
.tn-floor-number{position:absolute;top:calc(8 * var(--u));width:calc(100 * var(--u));height:calc(40 * var(--u));display:grid;place-items:center;background:url('/assets/tower/tower_icon04.png') center/100% 100% no-repeat;font:800 calc(25 * var(--u)) system-ui;color:#fff2b5;text-shadow:0 1px 2px #764b0c}
.tn-model{position:absolute;right:calc(36 * var(--u));bottom:calc(56 * var(--u));width:calc(270 * var(--u));height:calc(285 * var(--u));pointer-events:none}.tn-model canvas,.tn-model>img{display:block;width:100%;height:100%;object-fit:contain}
.tn-open-door{position:absolute;left:28%;top:calc(48 * var(--u));width:calc(138 * var(--u));height:calc(242 * var(--u));object-fit:contain;opacity:.85;pointer-events:none}
.tn-controls{position:absolute;right:calc(63 * var(--u));top:calc(80 * var(--u));display:flex;gap:calc(10 * var(--u));z-index:5}.tn-controls button,.tn-view #tower-help{width:calc(51 * var(--u));height:calc(51 * var(--u));padding:0;border:0;background:none}.tn-controls img{width:100%;height:100%;object-fit:contain}.tn-view #tower-help{position:absolute;right:calc(5 * var(--u));top:calc(80 * var(--u));z-index:5}.tn-view #tower-help img{width:100%;height:100%}
.tn-reward-tip{position:absolute;left:calc(10 * var(--u));top:calc(105 * var(--u));width:calc(245 * var(--u));padding:calc(10 * var(--u));background:#fffef4;border:calc(2 * var(--u)) solid #abb7b5;border-radius:calc(8 * var(--u));color:#353d48;z-index:4;pointer-events:none}.tn-reward-tip p{margin:0 0 calc(8 * var(--u));font:700 calc(17 * var(--u))/1.15 system-ui;text-align:center}
.tn-awards{display:flex;justify-content:center;gap:calc(10 * var(--u))}.tn-awards>span{position:relative;width:calc(90 * var(--u));height:calc(90 * var(--u));background:#e5edf6 url('/assets/ui/quality_3.png') center/100% 100% no-repeat;padding:calc(7 * var(--u));border-radius:calc(5 * var(--u))}.tn-awards img{width:100%;height:100%;object-fit:contain}.tn-awards b{position:absolute;right:calc(3 * var(--u));bottom:calc(1 * var(--u));font:800 calc(18 * var(--u)) system-ui;color:white;text-shadow:0 0 2px #253756,1px 1px 2px #253756}.tn-reward-tip .tn-awards{gap:calc(5 * var(--u))}.tn-reward-tip .tn-awards>span{width:calc(65 * var(--u));height:calc(65 * var(--u))}.tn-reward-tip .tn-awards b{font-size:calc(14 * var(--u))}
.tn-old,.tn-gift{position:absolute;bottom:calc(112 * var(--u));z-index:4;border:0;background:none;padding:0}.tn-old{left:calc(12 * var(--u));width:calc(190 * var(--u))}.tn-gift{right:calc(14 * var(--u));width:calc(108 * var(--u))}.tn-old img,.tn-gift img{width:100%;height:auto}
#app-frame .tn-nav{position:absolute;bottom:0;left:0;right:0;height:calc(86 * var(--u));z-index:6;margin:0}
.tn-stage.gs-win.plain{width:calc(660 * var(--u));height:calc(740 * var(--u));padding:calc(12 * var(--u)) calc(18 * var(--u));border:calc(12 * var(--u)) solid transparent;border-image:url('/assets/tower/tower_detailbg.png') 20 fill stretch;border-radius:0;background:#f7f8fa;color:#59678c}
.tn-stage .gs-win-body{padding:0;overflow:auto}.tn-stage-head{position:relative;height:calc(54 * var(--u));display:grid;place-items:center;margin-bottom:calc(25 * var(--u));border:calc(3 * var(--u)) solid #ccd0e4;border-radius:calc(10 * var(--u));font:800 calc(28 * var(--u)) system-ui}
.tn-close{position:absolute;right:calc(-18 * var(--u));top:calc(-12 * var(--u));width:calc(52 * var(--u));height:calc(52 * var(--u));border:0;background:url('/assets/detail/sheet/close_btn_2.png') center/contain no-repeat;padding:0}
.tn-power{display:flex;align-items:center;justify-content:center;gap:calc(16 * var(--u));height:calc(74 * var(--u));color:#dd971e;font:800 calc(32 * var(--u)) system-ui}.tn-power>img{width:calc(48 * var(--u));height:calc(56 * var(--u));object-fit:contain}.tn-video{border:calc(3 * var(--u)) solid #b9c9e4;border-radius:50%;background:linear-gradient(#95ecff,#3484dc);color:white;width:calc(50 * var(--u));height:calc(50 * var(--u));font-size:calc(23 * var(--u));padding:0}
.tn-divider{display:flex;align-items:center;gap:calc(12 * var(--u));justify-content:center;margin:calc(30 * var(--u)) 0;font:800 calc(24 * var(--u)) system-ui}.tn-divider:before,.tn-divider:after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,#8491b5)}.tn-divider:after{transform:scaleX(-1)}
.tn-enemies{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:calc(8 * var(--u));margin:calc(20 * var(--u)) 0 calc(55 * var(--u))}.tn-enemies .cf-lv{font-size:calc(16 * var(--u))}
.tn-stage .tn-awards>span{width:calc(100 * var(--u));height:calc(100 * var(--u))}
.tn-fight{display:block;margin:calc(58 * var(--u)) auto calc(10 * var(--u));width:calc(220 * var(--u));height:calc(65 * var(--u));border:calc(18 * var(--u)) solid transparent;border-image:url('/assets/campaign/blue_btn_65_65.png') 19 fill stretch;background:none;padding:0;color:white;font:800 calc(28 * var(--u))/1 system-ui;text-shadow:0 1px 2px #234e97}
/* Tests keeps the shared navigation visible outside Campaign. */
#app-frame .tn-nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;transform:none;background:linear-gradient(#e6f1fc,#c9dff2);border-top:calc(2 * var(--u)) solid #8cbada;padding:0}
.tn-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:0;color:#244567;font-weight:800}.tn-nav .nav-reference-icon{width:calc(76 * var(--u));height:calc(62 * var(--u));margin:0}.tn-nav small{font-size:calc(18 * var(--u))}
.tn-stage.gs-win.plain{border-image:none;border:calc(3 * var(--u)) solid #a5acce;box-shadow:inset 0 0 0 calc(6 * var(--u)) #fff,inset 0 0 0 calc(9 * var(--u)) #d5d9ec;border-radius:calc(4 * var(--u));padding:calc(12 * var(--u)) calc(30 * var(--u))}
.tn-stage-head{background:#fafafa}
.tn-close{border:calc(3 * var(--u)) solid #d9dcec;border-radius:50%;background:radial-gradient(circle at 40% 20%,#ff9e9e,#e55858 70%);box-shadow:0 0 0 calc(2 * var(--u)) #adb7cf;color:white;font:700 calc(40 * var(--u))/1 system-ui;text-shadow:0 1px 2px #922d2d}
.tn-controls button{border-radius:50%;border:calc(3 * var(--u)) solid #c4cde1;background:linear-gradient(#fff,#e9f3fc);box-shadow:inset 0 0 0 calc(2 * var(--u)) #fff;color:#8db2e4;font:700 calc(31 * var(--u))/1 system-ui}
.tn-controls button:nth-child(-n+2) img{display:none}.tn-controls button:first-child:after{content:'★';color:#efc16c}.tn-controls button:nth-child(2):after{content:'▤'}
.tn-view .tower-top .tn-plus{background:#54a9e8;color:#fff;font-size:calc(32 * var(--u));border:0}
#app-frame #tower-view .tn-nav{position:absolute!important;top:auto!important;bottom:0!important}
.tn-stage .gs-win-body{overflow:visible}.tn-close{right:0;top:0}
.tn-keep-out{position:absolute;left:28%;top:calc(100 * var(--u));width:calc(171 * var(--u));height:calc(129 * var(--u));object-fit:contain}

.profile-option{position:relative}
.profile-option.locked{filter:grayscale(.78) brightness(.55);opacity:.7}
.profile-option.locked img{pointer-events:none}
.profile-option .profile-lock{position:absolute;right:5px;bottom:5px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#090b12dd;border:1px solid #ffffff35;font-size:13px}

/* Native currency add affordances, next to the original Gold / Gem counters. */
#home-view .home-currency .home-currency-add{
  display:inline-grid;place-items:center;flex:0 0 auto;width:20px;height:20px;
  padding:0!important;border:1px solid #e8ffff!important;border-radius:6px;
  background:linear-gradient(#72e1ee,#257cce)!important;color:#fff!important;
  font-weight:900;font-size:17px;line-height:1;box-shadow:0 2px 0 #1c4b85;
  text-shadow:0 1px #225c9b;cursor:pointer;pointer-events:auto
}
#home-view .home-currency{z-index:6}
#girl-detail-view #detail-grade-up{margin-left:6px;background:linear-gradient(#ffdf8b,#dc8e30);color:#58310b;border:1px solid #f1c86c}
#girl-detail-view #detail-grade-up[hidden]{display:none!important}
