.menu{height:100%;display:flex;align-items:flex-start;padding:var(--edge);padding-top:max(var(--edge),env(safe-area-inset-top));padding-bottom:max(var(--edge),env(safe-area-inset-bottom));padding-left:max(var(--edge),env(safe-area-inset-left));padding-right:max(var(--edge),env(safe-area-inset-right));overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.menu-card{margin:auto;width:min(760px,100%);max-height:100%;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:rgba(20,34,56,.94);border:1px solid rgba(255,255,255,.09);border-radius:clamp(18px,3vw,30px);padding:clamp(18px,4.5vw,48px);box-shadow:0 30px 90px rgba(0,0,0,.4);text-align:center}
.card-col{overflow-x:hidden;overflow-y:auto}
.scroll-body{min-height:0;overflow:auto;scrollbar-width:none;-webkit-scrollbar:none;overscroll-behavior:contain}
.level-grid{overflow:auto;scrollbar-width:none;-webkit-scrollbar:none}
.side-panel{overflow:auto;scrollbar-width:none;-webkit-scrollbar:none}
.logo{font-size:clamp(38px,9vw,90px);line-height:.9;font-weight:1000;letter-spacing:-.06em;flex:0 0 auto}
.logo .a{color:#ff6b6b}
.logo .b{color:#4db7ff}
.logo .c{color:#ffd447}
.tagline{color:var(--muted);font-weight:700;margin:clamp(10px,2vw,26px) 0;flex:0 0 auto}
.menu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(8px,1.4vw,12px);width:100%;max-width:520px;margin:0 auto;flex:0 0 auto}
.menu-actions .wide{grid-column:1/-1}
.menu-tools{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:clamp(12px,2.2vw,20px);flex:0 0 auto}
.menu-tools .btn{padding:9px 16px}
.fs-icon{font-size:1.15em;line-height:1}
.footer-note{margin:clamp(14px,2.4vw,24px) 0 0;font-size:clamp(11px,1.4vw,14px);flex:0 0 auto}
.back-btn{width:100%;max-width:520px;margin:clamp(12px,2vw,20px) auto 0;flex:0 0 auto;padding:12px 18px;font-size:clamp(14px,1.8vw,17px)}

/* bus drag state */
.vehicle.dragging{z-index:100;transform:scale(1.05)translate3d(0,0,0)!important;transition:transform .1s ease-out}
.vehicle.drag-armed{z-index:100;transform:scale(1.08)!important}
.vehicle{transition:transform .2s ease, z-index .1s}
.row-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:clamp(12px,2.2vw,22px);flex:0 0 auto}
.row-actions .btn{flex:1 1 150px;min-width:0}
.menu-card h1{font-size:clamp(20px,3.6vw,32px);margin:0 0 6px;flex:0 0 auto}
.menu-card p{margin:6px 0}
.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(56px,13vw,84px),1fr));gap:clamp(6px,1vw,10px);margin:clamp(12px,2vw,20px) 0;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;padding:2px}
.level-btn{min-height:clamp(54px,8.5vh,78px);padding:6px 4px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.1}
.level-btn b{font-size:clamp(14px,2.4vw,20px)}
.level-btn small{font-size:clamp(8px,1.3vw,11px);color:var(--muted);white-space:nowrap}
.level-btn[disabled]{opacity:.4;cursor:not-allowed;filter:grayscale(.6)}
.level-btn:not([disabled]):hover{filter:brightness(1.15)}
.stars{color:#ffd447;letter-spacing:1px;font-size:clamp(11px,1.8vw,15px);white-space:nowrap}
.modal-backdrop{position:fixed;inset:0;background:rgba(3,8,15,.72);z-index:100;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,24px)}
.modal{margin:auto;width:min(620px,100%);max-height:100%;overflow:auto;background:#142238;border:1px solid rgba(255,255,255,.09);border-radius:clamp(16px,3vw,24px);padding:clamp(16px,3vw,24px);box-shadow:var(--shadow)}
.modal h2{margin-top:0;font-size:clamp(20px,4vw,30px)}
.setting{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:clamp(8px,1.4vw,12px) 0;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}
.setting span{min-width:0;font-size:clamp(13px,1.6vw,15px)}
.toggle{min-width:82px;flex:0 0 auto}
.tutorial-step{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,2vw,18px);align-items:center;text-align:left}
.demo{height:clamp(140px,26vh,220px);background:#34445a;border-radius:18px;position:relative;overflow:hidden}
.tip{background:#1b2c46;border-radius:15px;padding:clamp(10px,1.8vw,16px)}
.tip h2{font-size:clamp(12px,1.8vw,15px);margin:10px 0 3px;color:var(--accent)}
.tip p{margin:0;font-size:clamp(11px,1.5vw,13px);line-height:1.45}
.complete{display:grid;gap:clamp(8px,1.4vw,14px);text-align:center;align-content:center}
.big-score{font-size:clamp(28px,6vw,40px);font-weight:1000;color:#ffd447;line-height:1}
