/* Locomotora, vagones y vías: cada número es una parada del mismo recorrido. */
.aabn-app.aabn-board .aabn-train-settings { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; margin-bottom:14px; }
.aabn-app.aabn-board .aabn-train-setting { display:flex; align-items:center; gap:9px; color:#315c6c; font-size:18px; font-weight:800; }
.aabn-app.aabn-board .aabn-train-setting select { min-width:100px; min-height:48px; padding:5px 34px 5px 14px; border:2px solid #94bdcb; border-radius:15px; color:#163f53; background:#fff; font:inherit; font-size:25px; font-weight:850; }
.aabn-app.aabn-board .aabn-train-help { position:relative; margin-left:auto; }
.aabn-app.aabn-board .aabn-train-help summary { display:flex; align-items:center; gap:7px; min-height:44px; padding:5px 9px; color:#516d70; font-size:15px; cursor:pointer; list-style:none; }
.aabn-app.aabn-board .aabn-train-help summary::-webkit-details-marker { display:none; }
.aabn-app.aabn-board .aabn-train-help summary .aabn-icon { width:24px; height:24px; }
.aabn-app.aabn-board .aabn-train-help > div { position:absolute; z-index:5; top:100%; right:0; min-width:180px; padding:15px; border:2px solid #c2d8ce; border-radius:17px; background:#fffdf4; color:#315b62; font-size:20px; box-shadow:0 5px 15px #2d636b18; }
.aabn-app.aabn-board .aabn-train-world { position:relative; display:flex; flex:1 0 auto; flex-direction:column; justify-content:center; gap:16px; min-width:0; min-height:480px; padding:20px 26px 35px; isolation:isolate; overflow:hidden; border:2px solid #bfdde2; border-radius:32px; background:linear-gradient(#eaf8ff,#f5fbfd 70%,#eff8ed); }
.aabn-app.aabn-board .aabn-train-scenery { position:absolute; z-index:-1; inset:0; width:100%; height:100%; pointer-events:none; }
.aabn-app.aabn-board .aabn-train-departure { position:relative; display:grid; flex:0 0 auto; grid-template-columns:210px minmax(40px,1fr) 150px; align-items:center; gap:20px; min-width:0; padding:0 10px 0 0; }
.aabn-app.aabn-board .aabn-train-departure::after { position:absolute; z-index:-1; top:144px; left:25px; right:25px; height:8px; content:''; border-top:2px solid #9ab5b7; border-bottom:2px solid #9ab5b7; background:repeating-linear-gradient(90deg,transparent 0 12px,#c6c6af 12px 17px,transparent 17px 29px); opacity:0; }
.aabn-app.aabn-board :is(.is-train-travelling,.is-train-parked) .aabn-train-departure { position:relative; }
.aabn-app.aabn-board :is(.is-train-travelling,.is-train-parked) .aabn-train-departure::after { opacity:1; }
.aabn-app.aabn-board :is(.is-train-travelling,.is-train-parked) .aabn-train-route-sign { visibility:hidden; }
.aabn-app.aabn-board .is-train-parked .aabn-train-locomotive { transform:translateX(var(--train-journey-distance,0px)); }
.aabn-app.aabn-board .is-train-travelling .aabn-train-locomotive { will-change:transform; }
.aabn-app.aabn-board .aabn-train-locomotive { position:relative; min-width:0; width:100%; height:162px; padding-bottom:23px; transition:none !important; }
.aabn-app.aabn-board .aabn-train-locomotive__art { position:relative; z-index:1; display:block; width:100%; height:auto; }
.aabn-app.aabn-board .aabn-train-locomotive__driver { position:absolute; z-index:2; top:17%; left:11%; width:26%; height:36%; pointer-events:none; }
.aabn-app.aabn-board .aabn-train-locomotive__driver > svg { display:block; width:100%; height:100%; object-fit:contain; }
.aabn-app.aabn-board .aabn-train-departure__number { position:absolute; z-index:3; bottom:0; left:14px; right:12px; display:flex; align-items:center; justify-content:center; gap:10px; min-height:39px; padding:0 9px; border:2px solid #9cbab2; border-radius:13px; background:#fffdf2; color:#315b62; box-shadow:0 3px 0 #c8dace; }
.aabn-app.aabn-board .aabn-train-departure__number > span { font-size:15px; font-weight:800; }
.aabn-app.aabn-board .aabn-train-departure__number > strong { color:#17495c; font-size:29px; line-height:1; }
.aabn-app.aabn-board .aabn-train-route-sign { display:flex; align-items:center; gap:10px; width:100%; min-width:0; color:#5d96a3; }
.aabn-app.aabn-board .aabn-train-route-sign > span { padding:4px 11px; border:2px solid #c0dce4; border-radius:14px; color:#276a82; background:#fff; font-size:27px; font-weight:850; }
.aabn-app.aabn-board .aabn-train-route-sign > i { display:block; flex:1; overflow:hidden; border-bottom:3px dashed #aed0d3; font-size:42px; font-style:normal; line-height:.9; text-align:right; }
.aabn-app.aabn-board .aabn-train-station { position:relative; display:grid; justify-items:center; align-content:center; min-width:0; min-height:96px; margin-top:13px; padding:13px 10px 8px; border:3px solid #c99e57; border-bottom-width:7px; border-radius:7px 7px 17px 17px; color:#795325; background:#fff0c9; box-shadow:0 3px 0 #d6d9b7; }
.aabn-app.aabn-board .aabn-train-station > span:not(.aabn-train-station__roof) { font-size:16px; font-weight:850; }
.aabn-app.aabn-board .aabn-train-station > strong { color:#705025; font-size:45px; font-weight:900; line-height:1; }
.aabn-app.aabn-board .aabn-train-station__roof { position:absolute; top:-20px; left:-8px; right:-8px; height:28px; border:3px solid #a87a49; border-radius:90% 90% 7px 7px; background:#dfac77; }
.aabn-app.aabn-board .aabn-train-arrival { margin-top:5px; color:#2f7255; font-size:16px; line-height:1.1; }
.aabn-app.aabn-board .aabn-train-carriages { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-content:center; align-items:end; gap:24px 15px; width:100%; min-width:0; }
.aabn-app.aabn-board .aabn-train-carriage { --carriage-edge:#5c91aa; --carriage-light:#c8eaf5; --carriage-roof:#79bdd4; position:relative; display:flex; flex-direction:column; min-width:0; padding-bottom:28px; }
.aabn-app.aabn-board .aabn-train-carriage--1 { --carriage-edge:#b38a42; --carriage-light:#ffe4a4; --carriage-roof:#e8bc61; }
.aabn-app.aabn-board .aabn-train-carriage--2 { --carriage-edge:#a47ea9; --carriage-light:#ecdcf5; --carriage-roof:#c0a0d3; }
.aabn-app.aabn-board .aabn-train-carriage--3 { --carriage-edge:#6a9f82; --carriage-light:#d0edcd; --carriage-roof:#9dce9c; }
.aabn-app.aabn-board .aabn-train-carriage::before { position:absolute; z-index:-1; bottom:29px; left:-17px; right:-17px; height:7px; content:''; border-radius:5px; background:#8baba8; }
.aabn-app.aabn-board .aabn-train-carriage::after { position:absolute; z-index:-1; bottom:0; left:-9px; right:-9px; height:15px; content:''; border-top:3px solid #8ba7a7; border-bottom:3px solid #8ba7a7; border-radius:3px; background:repeating-linear-gradient(90deg,transparent 0 11px,#b8b9a3 11px 17px,transparent 17px 31px); }
.aabn-app.aabn-board .aabn-train-carriage__ticket { display:flex; align-items:center; justify-content:space-between; gap:5px; height:29px; margin-bottom:8px; color:#416778; font-size:16px; font-weight:850; }
.aabn-app.aabn-board .aabn-train-carriage__ticket > i { padding:1px 8px; border:1px solid #c9dfe1; border-radius:10px; background:#ffffffbf; font-size:18px; font-style:normal; }
.aabn-app.aabn-board .aabn-train-carriage__ticket > b { font-size:21px; line-height:1; }
.aabn-app.aabn-board .aabn-train-carriage__roof { position:relative; z-index:2; flex:0 0 18px; height:18px; margin:0 -5px -2px; border:3px solid var(--carriage-edge); border-radius:70% 70% 5px 5px; background:var(--carriage-roof); }
.aabn-app.aabn-board .aabn-train-carriage__body { display:grid; grid-template-columns:9px minmax(0,1fr) 9px; align-items:center; gap:5px; min-width:0; min-height:88px; padding:10px 7px 13px; border:3px solid var(--carriage-edge); border-radius:4px 4px 10px 10px; background:linear-gradient(transparent 70%,#ffffff42 70% 75%,transparent 75% 83%,#ffffff42 83% 88%,transparent 88%),var(--carriage-light); box-shadow:inset 0 4px 0 #ffffff70; }
.aabn-app.aabn-board .aabn-train-carriage__window { display:block; height:35px; margin-bottom:12px; border:1px solid var(--carriage-edge); border-radius:5px; background:#f5ffffb8; }
.aabn-app.aabn-board input.aabn-train-answer { display:block; width:100%; min-width:44px; min-height:64px; padding:3px 2px; border:3px solid var(--carriage-edge); border-radius:10px; color:#183c55; background:#fff; box-shadow:inset 0 4px 0 #e8f5fb; font-size:clamp(35px,3.5vw,58px); line-height:1; }
.aabn-app.aabn-board input.aabn-train-answer::placeholder { color:#315775; opacity:1; }
.aabn-app.aabn-board input.aabn-train-answer:focus { outline:4px solid #dda52b; outline-offset:2px; }
.aabn-app.aabn-board .aabn-train-carriage__chassis { position:relative; z-index:2; display:block; height:7px; margin:0 -4px; border:2px solid #426e7e; border-radius:4px; background:#6e98a7; }
.aabn-app.aabn-board .aabn-train-carriage__wheels { position:absolute; z-index:3; bottom:11px; left:0; right:0; display:flex; align-items:center; justify-content:space-around; height:29px; }
.aabn-app.aabn-board .aabn-train-carriage__wheels > i { display:block; width:29px; height:29px; border:7px solid #3c6479; border-radius:50%; background:#d6e7e9; box-shadow:0 0 0 2px #f6ffffa1; }
.aabn-app.aabn-board .aabn-train-carriage.is-arrived .aabn-train-carriage__ticket { color:#1b7048; }
.aabn-app.aabn-board .aabn-train-carriage.is-arrived .aabn-train-carriage__ticket > i { color:#1b7048; background:#e4f7e7; border-color:#72ac87; }
@media screen and (min-width:1201px) {
 .aabn-app.aabn-board .aabn-train-carriages:has(> :last-child:nth-child(-n+4)) { grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,680px); margin:auto; }
 .aabn-app.aabn-board .aabn-train-carriages:has(> :last-child:nth-child(1)) { grid-template-columns:minmax(0,300px); justify-content:center; }
 .aabn-app.aabn-board .aabn-train-carriages:has(> :last-child:nth-child(n+5):nth-child(-n+6)) { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .aabn-app.aabn-board .aabn-train-carriages:has(> :last-child:nth-child(n+7):nth-child(-n+8)) { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media screen and (min-width:769px) and (max-width:1200px) {
 .aabn-app.aabn-board .aabn-train-world { min-height:445px; padding:14px 17px 26px; gap:14px; }
 .aabn-app.aabn-board .aabn-train-departure { grid-template-columns:150px minmax(20px,1fr) 110px; gap:12px; padding-right:0; }
 .aabn-app.aabn-board .aabn-train-locomotive { height:126px; padding-bottom:24px; }
 .aabn-app.aabn-board .aabn-train-departure::after { top:104px; left:17px; right:17px; }
 .aabn-app.aabn-board .aabn-train-departure__number { min-height:33px; gap:6px; left:0; right:0; }
 .aabn-app.aabn-board .aabn-train-departure__number > span { font-size:13px; }
 .aabn-app.aabn-board .aabn-train-departure__number > strong { font-size:25px; }
 .aabn-app.aabn-board .aabn-train-station { min-height:78px; padding:8px 5px 5px; }
 .aabn-app.aabn-board .aabn-train-station > strong { font-size:36px; }
 .aabn-app.aabn-board .aabn-train-route-sign > span { padding:3px 7px; font-size:22px; }
 .aabn-app.aabn-board .aabn-train-carriages { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px 13px; }
 .aabn-app.aabn-board .aabn-train-carriages:has(> :last-child:nth-child(-n+4)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .aabn-app.aabn-board .aabn-train-carriage__body { grid-template-columns:4px minmax(0,1fr) 4px; gap:3px; min-height:74px; padding:6px 4px 11px; }
 .aabn-app.aabn-board input.aabn-train-answer { min-height:53px; font-size:33px; border-width:2px; }
 .aabn-app.aabn-board .aabn-train-carriage__roof { height:14px; flex-basis:14px; }
 .aabn-app.aabn-board .aabn-train-carriage__ticket { height:22px; margin-bottom:6px; font-size:12px; }
 .aabn-app.aabn-board .aabn-train-carriage__ticket > i { padding:0 5px; font-size:15px; }
}
@media screen and (min-width:1000px) and (max-width:1200px) {
 .aabn-app.aabn-board .aabn-train-carriages { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@media screen and (min-width:769px) {
 .aabn-app.aabn-board .aabn-train-world.has-many-carriages { min-height:0; padding:8px 17px 9px; gap:6px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-departure { grid-template-columns:114px minmax(20px,1fr) 112px; gap:12px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-locomotive { height:100px; padding-bottom:24px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-departure::after { top:81px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-departure__number { left:0; right:0; min-height:30px; gap:6px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-departure__number > span { font-size:12px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-departure__number > strong { font-size:25px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-station { min-height:72px; padding:7px 5px 5px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-station > strong { font-size:34px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-station > span:not(.aabn-train-station__roof) { font-size:13px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriages { grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px 13px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage { padding-bottom:22px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage__ticket { position:absolute; z-index:4; top:0; left:7px; height:12px; min-width:13px; margin:0; color:#244c61; font-size:10px; line-height:12px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage__ticket > :is(i,b) { display:none; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage__roof { flex-basis:12px; height:12px; border-width:2px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage__body { grid-template-columns:3px minmax(0,1fr) 3px; gap:3px; min-height:48px; padding:0 3px 2px; border-width:2px; }
 .aabn-app.aabn-board .has-many-carriages input.aabn-train-answer { min-height:44px; height:44px; padding:0 2px; border-width:2px; border-radius:8px; font-size:29px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage__window { height:23px; margin:0; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage__chassis { height:4px; margin:0 -2px; border-width:1px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage__wheels { bottom:8px; height:23px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage__wheels > i { width:23px; height:23px; border-width:5px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage::before { bottom:22px; }
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriage::after { height:11px; border-width:2px; }
}
@media screen and (min-width:769px) and (max-width:999px) {
 .aabn-app.aabn-board .has-many-carriages .aabn-train-carriages { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media screen and (max-width:768px) {
 .aabn-app.aabn-board .aabn-train-settings { gap:8px; margin-bottom:10px; }
 .aabn-app.aabn-board .aabn-train-setting { flex:1; flex-direction:column; align-items:flex-start; gap:3px; font-size:14px; }
 .aabn-app.aabn-board .aabn-train-setting select { width:100%; min-width:70px; min-height:44px; padding:3px 24px 3px 9px; font-size:24px; }
 .aabn-app.aabn-board .aabn-train-help { flex:0 0 100%; margin:0; }
 .aabn-app.aabn-board .aabn-train-help summary { min-height:44px; justify-content:flex-end; padding:3px; font-size:13px; }
 .aabn-app.aabn-board .aabn-train-world { min-height:430px; padding:10px 13px 28px; gap:20px; border-radius:25px; }
 .aabn-app.aabn-board .aabn-train-departure { grid-template-columns:minmax(0,1fr) minmax(0,.7fr); gap:13px; padding-right:0; }
 .aabn-app.aabn-board .aabn-train-locomotive { height:auto; min-height:113px; padding-bottom:28px; }
 .aabn-app.aabn-board .aabn-train-route-sign { display:none; }
 .aabn-app.aabn-board .aabn-train-departure__number { left:0; right:0; min-height:31px; gap:5px; padding:0 4px; border-radius:10px; }
 .aabn-app.aabn-board .aabn-train-departure__number > span { font-size:12px; }
 .aabn-app.aabn-board .aabn-train-departure__number > strong { font-size:24px; }
 .aabn-app.aabn-board .aabn-train-station { min-height:75px; padding:10px 4px 5px; border-width:2px; border-bottom-width:5px; }
 .aabn-app.aabn-board .aabn-train-station > span:not(.aabn-train-station__roof) { font-size:12px; }
 .aabn-app.aabn-board .aabn-train-station > strong { font-size:32px; }
 .aabn-app.aabn-board .aabn-train-station__roof { left:-5px; right:-5px; top:-16px; height:22px; border-width:2px; }
 .aabn-app.aabn-board .aabn-train-arrival { font-size:12px; }
 .aabn-app.aabn-board .aabn-train-carriages { grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 14px; }
 .aabn-app.aabn-board .aabn-train-carriage__body { grid-template-columns:3px minmax(0,1fr) 3px; gap:3px; min-height:76px; padding:7px 4px 12px; border-width:2px; }
 .aabn-app.aabn-board .aabn-train-carriage__window { height:28px; }
 .aabn-app.aabn-board .aabn-train-carriage__roof { height:15px; flex-basis:15px; border-width:2px; }
 .aabn-app.aabn-board input.aabn-train-answer { min-height:55px; border-width:2px; border-radius:8px; font-size:clamp(28px,8.6vw,35px); }
 .aabn-app.aabn-board .aabn-train-carriage__ticket { height:23px; margin-bottom:6px; font-size:12px; }
 .aabn-app.aabn-board .aabn-train-carriage__ticket > i { padding:0 5px; font-size:15px; }
 .aabn-app.aabn-board .aabn-train-carriage__ticket > b { font-size:17px; }
 .aabn-app.aabn-board .aabn-train-carriage__wheels > i { width:26px; height:26px; border-width:6px; }
}
@media screen and (max-width:480px) {
 .aabn-app.aabn-board .aabn-train-departure { grid-template-columns:minmax(0,1fr) 67px; gap:9px; }
 .aabn-app.aabn-board .aabn-train-locomotive { width:80px; min-height:96px; height:96px; }
 .aabn-app.aabn-board .aabn-train-departure__number > span { font-size:10px; }
 .aabn-app.aabn-board .aabn-train-departure__number > strong { font-size:20px; }
 .aabn-app.aabn-board .aabn-train-departure__number { gap:3px; min-height:28px; }
 .aabn-app.aabn-board .aabn-train-departure::after { top:77px; left:8px; right:8px; }
}
@media (prefers-reduced-motion:no-preference) {
 .aabn-app.aabn-board .is-new-reward .aabn-train-arrival { animation:aabn-train-welcome .65s ease-out both; }
 @keyframes aabn-train-welcome { from { opacity:0; transform:scale(.75) translateY(4px); } to { opacity:1; transform:none; } }
}
.aabn-app.aabn-board.aabn-reduced-stimuli .aabn-train-scenery { display:none; }
.aabn-app.aabn-board.aabn-reduced-stimuli .aabn-train-world { background:#f3f9f6; }
.aabn-app.aabn-board.aabn-reduced-stimuli .aabn-train-arrival { animation:none; }
.aabn-app.aabn-board.aabn-high-contrast .aabn-train-scenery { display:none; }
.aabn-app.aabn-board.aabn-high-contrast :is(.aabn-train-world,.aabn-train-carriage__body,.aabn-train-carriage__roof,.aabn-train-station,.aabn-train-departure__number,.aabn-train-setting select,input.aabn-train-answer) { color:#000; background:#fff; border-color:#000; box-shadow:none; }
.aabn-app.aabn-board.aabn-high-contrast .aabn-train-world :is(strong,span,i,b),
.aabn-app.aabn-board.aabn-high-contrast input.aabn-train-answer::placeholder { color:#000; }
@media print { .aabn-app.aabn-board .aabn-train-world { display:block; min-height:0; background:#fff; } .aabn-app.aabn-board .aabn-train-scenery { display:none; } .aabn-app.aabn-board .aabn-train-carriages { margin-top:20px; } }
