@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(217,119,6,.6)}50%{box-shadow:0 0 12px 4px rgba(217,119,6,.4)}}:root{--menu-bg:#ffffff;--menu-surface:#ffffff;--menu-text:#1f2937;--menu-text-secondary:#6b7280;--menu-border:#e5e7eb;--menu-primary:#d97706;--menu-primary-dark:#b45309;--menu-amber:#fef3c7;--menu-amber-border:#f59e0b;--menu-danger:#dc2626;--menu-radius:16px;--menu-shadow:0 1px 3px rgba(0, 0, 0, 0.05)}*,::after,::before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--menu-bg);color:var(--menu-text);-webkit-font-smoothing:antialiased}.menu-page{min-height:100vh;padding:calc(env(safe-area-inset-top,16px) + 20px) 16px calc(env(safe-area-inset-bottom,16px) + 16px);display:flex;flex-direction:column;justify-content:center;align-items:center}.menu-nav{position:fixed;top:calc(16px + env(safe-area-inset-top,0));left:16px;z-index:10}.back-link{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:20px;color:#374151;background:#f3f4f6;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s}.back-link:hover{background:#e5e7eb;color:#1f2937}.back-link svg{flex-shrink:0}.menu-bento{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:500px;width:100%}.menu-bento__footer,.updates-banner{grid-column:1/-1}.updates-banner.hidden{display:none}.updates-banner__btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 16px;background:#f0fdf4;border:2px solid #86efac;border-radius:var(--menu-radius);color:#16a34a;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.updates-banner__btn:hover{background:#dcfce7}.updates-banner__btn:active{transform:scale(.99)}.updates-banner__btn svg{width:20px;height:20px;flex-shrink:0}.updates-banner__text{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.updates-banner__title{font-size:14px;font-weight:600}.updates-banner__desc{font-size:11px;opacity:.8}.menu-bento__brand{background:var(--menu-surface);border-radius:var(--menu-radius);padding:20px;display:flex;align-items:center;justify-content:center;box-shadow:var(--menu-shadow);border:1px solid var(--menu-border)}.brand-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand-logo{width:44px;height:44px}.brand-title{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--menu-text)}.half-tile{border-radius:var(--menu-radius);padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;transition:transform .1s}.half-tile:hover{transform:scale(1.01)}.half-tile:active{transform:scale(.99)}.half-tile svg,.half-tile__icon{width:22px;height:22px;flex-shrink:0}.half-tile__title{font-size:13px;font-weight:700}.half-tile__desc{font-size:10px;text-align:center;line-height:1.3}.half-tile--leaderboard{background:var(--menu-amber);border:2px solid var(--menu-amber-border);color:var(--menu-text)}.half-tile--leaderboard svg{color:#b45309}.half-tile--leaderboard .half-tile__desc{color:var(--menu-text-secondary)}.half-tile--guide{background:linear-gradient(135deg,#4f46e5 0,#7c3aed 100%);color:#fff}.half-tile--guide svg{opacity:.9}.half-tile--guide .half-tile__desc{color:rgba(255,255,255,.75)}.action-row{grid-column:1/-1;border-radius:var(--menu-radius);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.action-row--route{background:linear-gradient(135deg,#0d9488 0,#14b8a6 100%);color:#fff}.action-row--route .action-row__label{color:#fff}.action-row--route .action-row__icon{color:rgba(255,255,255,.9)}.action-row--route .action-row__select{background:rgba(255,255,255,.95);color:#0d9488;border:0}.action-row--route .action-row__select:focus{outline:2px solid rgba(255,255,255,.5)}.action-row--leafshell{background:linear-gradient(135deg,#84cc16 0,#a3e635 100%)}.action-row--leafshell .action-row__label{color:#365314}.action-row__header{display:flex;align-items:center;gap:10px}.action-row__icon{width:28px;height:28px}.action-row__img{width:32px;height:32px}.action-row__label{font-size:16px;font-weight:700;letter-spacing:-.01em}.action-row__select{flex:1;max-width:200px;padding:10px 14px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer}.action-row__buttons{display:flex;gap:8px}.action-row__btn{padding:10px 16px;border-radius:8px;font-size:13px;font-weight:600;text-align:center;text-decoration:none;color:#365314;background:rgba(255,255,255,.9);transition:background .15s}.action-row__btn:active{background:#fff}.action-row__btn--alt{background:rgba(255,255,255,.6)}.nav-stack,.nav-tile{display:flex;flex-direction:column;gap:8px}.nav-tile{background:var(--menu-surface);border:1px solid var(--menu-border);border-radius:var(--menu-radius);padding:16px 12px;align-items:center;gap:6px;text-decoration:none;color:var(--menu-text);box-shadow:var(--menu-shadow);transition:transform .1s,box-shadow .15s}.nav-tile:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.nav-tile:active{transform:scale(.98)}.nav-tile__icon{width:24px;height:24px;color:var(--menu-text-secondary)}.nav-tile span{font-size:13px;font-weight:600}.help-tile{background:var(--menu-amber);border:2px solid var(--menu-amber-border);border-radius:var(--menu-radius);padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--menu-text);transition:transform .1s}.help-tile:hover{transform:scale(1.01)}.help-tile:active{transform:scale(.99)}.help-tile__icon{width:24px;height:24px;color:#b45309}.help-tile__title{font-size:13px;font-weight:700}.help-tile__desc{font-size:10px;color:var(--menu-text-secondary);text-align:center;line-height:1.3}.coffee-tile{background:var(--menu-primary);border-radius:var(--menu-radius);padding:16px;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:#fff;font-size:14px;font-weight:600;transition:background .15s}.coffee-tile:hover{background:var(--menu-primary-dark)}.coffee-tile svg{width:20px;height:20px}.controls-stack{grid-column:1/-1;display:flex;gap:12px}.control-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 16px;background:var(--menu-surface);border:1px solid var(--menu-border);border-radius:12px;font-size:14px;font-weight:600;color:var(--menu-text);cursor:pointer;transition:all .15s}.control-btn svg{width:16px;height:16px}.control-btn:hover{border-color:var(--menu-text-secondary)}.control-btn:active{transform:scale(.98)}.control-btn--danger{color:var(--menu-danger)}.control-btn--danger:hover{border-color:var(--menu-danger);background:#fef2f2}.control-btn.has-app-update{animation:pulse-glow 2s ease-in-out infinite;border-color:#d97706}.app-update-hint{grid-column:1/-1;text-align:center;font-size:13px;font-weight:600;color:#d97706;margin:-4px 0 0}.menu-bento__footer{text-align:center;padding:12px 0 4px}.footer-copyright,.footer-version{font-size:11px;color:var(--menu-text-secondary)}.footer-copyright a{color:inherit}.footer-version{margin-top:2px}.footer-version a{color:var(--menu-primary);text-decoration:none}.footer-version a:hover{text-decoration:underline}.action-row--prefetch{background:linear-gradient(135deg,#2563eb 0,#3b82f6 100%);color:#fff;flex-direction:column;gap:0}.action-row--prefetch .action-row__icon{color:rgba(255,255,255,.9)}.action-row--prefetch .action-row__label{color:#fff}.prefetch-tile__default{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px}.action-row__btn--prefetch{background:rgba(255,255,255,.95);color:#2563eb;font-weight:700;border:0;cursor:pointer;padding:10px 20px;border-radius:8px;font-size:14px;transition:background .15s}.action-row__btn--prefetch:active{background:#fff}.prefetch-tile__progress{width:100%;display:flex;flex-direction:column;gap:10px}.prefetch-tile__info{display:flex;justify-content:space-between;align-items:center}.prefetch-tile__label{font-size:13px;font-weight:600}.prefetch-tile__stats{font-size:12px;opacity:.8}.prefetch-tile__bar-track{width:100%;height:6px;background:rgba(255,255,255,.2);border-radius:3px;overflow:hidden}.prefetch-tile__bar-fill{height:100%;background:#fff;border-radius:3px;width:0;transition:width .3s ease}.prefetch-tile__cancel{align-self:flex-end;padding:6px 14px;background:rgba(255,255,255,.15);border:0;border-radius:8px;color:rgba(255,255,255,.9);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.prefetch-tile__cancel:hover{background:rgba(255,255,255,.25)}