/* Game routes only. Progress and unlocks remain driven by actual learning data. */
.vet-phone:has(.game-world)>.vet-ai-fab,.vet-phone:has(.game-journey)>.vet-ai-fab{display:none!important}
.game-world,.game-journey{color:#254c40;background:#eff7ee;min-height:75vh}
.game-header{padding:20px 20px 22px;background:linear-gradient(125deg,#177b65,#215e60);color:white;border-radius:0 0 26px 26px;position:relative;z-index:2;box-shadow:0 7px 18px #124c3612}
.game-header .vet-page-head{gap:12px}.game-header .vet-page-head h2{color:white;font-size:23px}.game-header small{color:#d8e9df}.game-header .vet-icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff35;border-radius:14px;background:#ffffff16;flex-shrink:0}
.game-score{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0 12px}.game-score>span:first-child{display:flex;align-items:center;gap:7px;font-size:13px}.game-score>span:last-child{color:#ffe8a2}.game-progress{height:9px;overflow:hidden;border-radius:9px;background:#ffffff24;margin-bottom:10px}.game-progress i{display:block;height:100%;background:linear-gradient(90deg,#e1efab,#f5cf69);border-radius:9px}
.game-map{position:relative;overflow:hidden;padding:20px 22px 28px;background:radial-gradient(ellipse at 5% 32%,#cbe7cf 0,transparent 40%),radial-gradient(ellipse at 95% 80%,#cfE9DF 0,transparent 42%),radial-gradient(#638c6816 1px,transparent 1px);background-size:auto,auto,16px 16px}
.map-caption{text-align:center;font-size:11px;color:#6b8673;letter-spacing:3px;margin:0 0 30px}.game-stop{position:relative;display:flex;align-items:center;gap:18px;min-height:152px;padding:20px 18px}.game-stop.east{flex-direction:row-reverse}.game-stop.east .game-stop-label{text-align:right}
.game-island{position:relative;display:flex;flex-direction:column;align-items:center;width:106px;flex-shrink:0;z-index:1}.game-node{display:grid;place-items:center;width:88px;height:88px;border-radius:30px;border:5px solid #e8f6e2;background:linear-gradient(145deg,#63ab83,#348369);color:#fff;box-shadow:0 7px 0 #26674e,0 13px 0 7px #c4ddbc,0 17px 22px #2856371c;transform:rotate(-7deg);cursor:pointer}.game-node .vet-svg{width:32px;height:32px;transform:rotate(7deg)}.game-node:active{transform:translateY(3px) rotate(-7deg)}
.is-current .game-node{background:linear-gradient(145deg,#ffdf88,#efb447);border-color:#fff7d5;color:#70511b;box-shadow:0 7px 0 #ba8e32,0 13px 0 7px #d9dfb5,0 18px 24px #856a2b20}
.is-locked .game-node{background:#b5c7bd;border-color:#e4ece5;color:#61776a;box-shadow:0 7px 0 #90a699,0 13px 0 7px #d6e3d4;opacity:1;cursor:not-allowed}
.game-flag{position:absolute;top:-25px;background:#286f56;color:#fff;padding:5px 10px;border-radius:9px;font-size:11px;white-space:nowrap;box-shadow:0 3px 7px #315a2420;z-index:2}.game-flag:after{content:'';position:absolute;bottom:-4px;left:45%;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #286f56}
.game-stars{display:inline-flex;gap:5px;white-space:nowrap;font-size:20px}.game-island>.game-stars{margin-top:24px}.game-stars>span{color:#83998a}.game-stars>.earned{color:#ecb338;text-shadow:0 1px 0 #8c671c}.game-header .game-stars>span{color:#aac3b3}.game-header .game-stars>.earned{color:#ffe18c}
.game-stop-label{position:relative;z-index:1;min-width:0;flex:1}.game-stop-label h3{font-size:17px;line-height:1.5;margin:6px 0}.game-stop-label small{font-size:11px;color:#567761}.game-stop-label>span{font-size:11px;color:#607b67;line-height:1.6;display:block}
.game-trail{position:absolute;left:26px;right:26px;top:-80px;width:calc(100% - 52px);height:130px;pointer-events:none}.game-trail path{fill:none;stroke:#acc9aa;stroke-width:5;stroke-dasharray:3 10;stroke-linecap:round}.game-stop.west .game-trail{transform:scaleX(-1)}
.game-finish{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px auto 0;padding:15px;border:1px dashed #acc7ae;border-radius:16px;color:#69806c;font-size:12px;background:#ffffff45}.game-finish .vet-svg{color:#9b803b}
.game-dock{padding:12px 20px 20px;background:#eff7ee}.game-dock .btn{min-height:52px;box-shadow:0 4px 0 #175d4c;font-size:16px}.game-dock .vet-svg{width:18px;height:18px}
.mission-list{display:grid;gap:17px;padding:28px 20px}.mission{display:flex;align-items:center;gap:14px;text-align:left;padding:18px 15px;min-height:108px;border:1px solid #d9e6d8;border-bottom:4px solid #d0dfcd;border-radius:21px;background:#ffffffd9;color:#234e3f;cursor:pointer}.mission.active{border-color:#b5d6bc;background:#f9fff6}.mission-icon{display:grid;place-items:center;width:55px;height:55px;flex-shrink:0;background:#e0f1e3;color:#307959;border-radius:18px}.mission:nth-child(2) .mission-icon{background:#f9ebcc;color:#966e28}.mission:nth-child(3) .mission-icon{background:#e4eafb;color:#536e95}.mission-copy{flex:1;display:grid;gap:5px}.mission-copy strong{font-size:17px}.mission-copy small,.mission-copy>span{font-size:11px;color:#617d69}.mission-reward{font-size:24px;color:#93a393}.mission.done .mission-reward{color:#d9a52a}.mission:active{transform:translateY(2px)}
@media(max-width:360px){.game-map{padding-left:10px;padding-right:10px}.game-stop{padding-left:8px;padding-right:8px;gap:10px}.game-header{padding:18px 14px}.game-stop-label h3{font-size:16px}}
