#app{background:#05070f}
.hud>*{position:fixed;z-index:10}
.stagebox{left:12px;top:58px;padding:10px 14px;min-width:200px}
.stagebox h2{margin:0 0 6px;font-size:22px}
.stagebox .chips{display:flex;gap:6px;flex-wrap:wrap}
.clockbox{left:50%;transform:translateX(-50%);top:10px;padding:8px 14px;text-align:center}
.clock{font-size:24px;font-weight:700;color:var(--accent2);font-variant-numeric:tabular-nums;line-height:1.2}
.speed{display:flex;gap:4px;justify-content:center;margin-top:6px}
.speed .btn{padding:2px 9px;font-size:13px}
.speed .btn.on{background:var(--accent);border-color:var(--accent);color:#04121a}

.me{right:12px;top:58px;width:290px;padding:12px 14px;max-height:calc(100% - 140px);overflow:auto}
.me-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:8px}
.me-head b{font-size:17px}
.mass{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.nrow{margin:7px 0}
.nrow .top{display:flex;justify-content:space-between;font-size:13px}
.nrow .top span:last-child{font-variant-numeric:tabular-nums;color:var(--muted)}
.nbar{position:relative;height:7px;border-radius:4px;background:#1a2340;overflow:hidden;margin:3px 0 2px}
.nbar i{position:absolute;inset:0 auto 0 0;background:var(--c);transition:width .4s}
.nbar u{position:absolute;inset:0 0 0 auto;background:repeating-linear-gradient(45deg,#ffffff22 0 3px,transparent 3px 6px);text-decoration:none}
.nrow .form{font-size:12px;color:#b9c6e6}
.kcal{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-size:14px}
.kcal b{color:var(--accent);font-size:18px}
.enz{margin-top:8px;color:var(--muted)}
.enz i{font-style:normal;color:var(--c)}

.mapbox{left:12px;bottom:58px;padding:8px 10px 6px;width:210px}
.mapbox canvas{width:190px;height:240px;display:block}

.caption{left:50%;transform:translateX(-50%);bottom:92px;width:min(680px,calc(100% - 520px));min-width:300px;background:rgba(6,10,22,.82);border:1px solid var(--line);border-radius:14px;padding:12px 16px;font-size:15.5px;line-height:1.55;opacity:0;transition:opacity .5s;pointer-events:none}
.caption.on{opacity:1}
.act{left:50%;transform:translateX(-50%);bottom:200px;display:flex;gap:10px;white-space:nowrap}
.act .btn{font-size:17px;padding:12px 22px;border-radius:14px;box-shadow:0 6px 30px #0008}
.act .count{align-self:center;color:var(--muted);font-size:14px;background:#0009;padding:4px 10px;border-radius:8px}
.strip{left:50%;transform:translateX(-50%);bottom:14px;display:flex;gap:4px;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 24px)}
.strip button{background:rgba(14,20,38,.86);border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-size:12.5px;color:var(--muted)}
.strip button.done{color:#c9d3ea;border-color:#3a4870}
.strip button.on{background:var(--accent);border-color:var(--accent);color:#04121a;font-weight:600}

.overlay{position:fixed;inset:0;display:grid;place-items:center;z-index:40;background:rgba(3,5,12,.72);backdrop-filter:blur(4px);padding:16px}
.overlay[hidden]{display:none}
.dialog{max-width:720px;width:100%;padding:22px 24px;max-height:calc(100% - 20px);overflow:auto}
.dialog h1{margin:0 0 8px;font-size:30px}
.dialog h2{margin:0 0 8px}
.dialog p{margin:0 0 12px}
.foods{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:14px 0 8px}
.food{text-align:left;background:#121b33;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.food:hover{border-color:var(--accent);background:#152240}
.food b{display:block;font-size:16px;margin-bottom:2px}
.food .what{font-size:12.5px;color:var(--muted)}
.food .mix{display:flex;height:8px;border-radius:4px;overflow:hidden;margin:10px 0 6px}
.food .mix i{display:block;height:100%}
.food .nums{font-size:12px;color:#b9c6e6;font-variant-numeric:tabular-nums}
.alt{margin-top:10px}
.sum{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0 16px;font-size:14.5px}
.sum b{font-variant-numeric:tabular-nums;white-space:nowrap}
.dialog .row{display:flex;gap:8px;flex-wrap:wrap}

@media (max-width:900px){
  .me{width:230px;font-size:13px}
  .caption{width:calc(100% - 270px);left:12px;transform:none;min-width:0;font-size:14px}
  .mapbox{bottom:auto;top:150px;width:130px}
  .mapbox canvas{width:110px;height:140px}
}
@media (max-width:600px){
  .topbar{padding:8px 10px}
  .topbar .nav a{padding:4px 9px;font-size:13px}
  .stagebox{top:48px;left:8px;padding:6px 10px;min-width:0}
  .stagebox h2{font-size:16px;margin:0 0 4px}
  .stagebox .chips{display:none}
  .clockbox{top:48px;right:8px;left:auto;transform:none;padding:6px 10px}
  .clockbox .small{display:none}
  .clock{font-size:17px}
  .mapbox{top:118px;left:8px;width:auto;padding:6px}
  .mapbox .small{display:none}
  .mapbox canvas{width:96px;height:124px}
  .me{top:118px;right:8px;width:168px;max-height:calc(100% - 330px);padding:8px 10px;font-size:12px}
  .me .form,.me .enz,.me-head .small{display:none}
  .me-head b{font-size:14px}
  .nrow{margin:4px 0}
  .kcal{font-size:12px}.kcal b{font-size:15px}
  .caption{left:8px;right:8px;width:auto;bottom:52px;font-size:13.5px;padding:10px 12px}
  .strip{left:8px;right:8px;transform:none;bottom:8px;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;max-width:none;scrollbar-width:none}
  .strip button{flex:none}
  .act{bottom:auto;top:45%}
  .credit{display:none}
}
