styles.css 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. :root { --bg:#0e1116; --card:#171c24; --fg:#e6e9ef; --mut:#8b95a7; --acc:#4f8cff; --ok:#39d98a; --err:#ff6b6b; }
  2. * { box-sizing:border-box; }
  3. html,body { margin:0; height:100%; background:var(--bg); color:var(--fg);
  4. font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif; -webkit-tap-highlight-color:transparent; }
  5. #topbar { display:flex; align-items:center; gap:.5rem; padding:.7rem 1rem; font-weight:700;
  6. border-bottom:1px solid #222a36; }
  7. #topbar .logo { color:var(--acc); font-size:1.3rem; }
  8. #topbar small { color:var(--mut); font-weight:400; margin-left:.25rem; }
  9. #app { position:relative; height:calc(100% - 49px); }
  10. .view { display:none; position:absolute; inset:0; }
  11. .view.active { display:flex; }
  12. #view-upload, #view-progress { align-items:center; justify-content:center; padding:1rem; overflow:auto; }
  13. .card { background:var(--card); border:1px solid #232b38; border-radius:16px; padding:1.5rem;
  14. width:min(560px,100%); }
  15. h1 { font-size:1.5rem; margin:.2rem 0 .6rem; }
  16. h2 { margin:.2rem 0 1rem; }
  17. .muted { color:var(--mut); } .small { font-size:.85rem; }
  18. #drop { display:block; border:2px dashed #33405a; border-radius:14px; padding:2rem 1rem; text-align:center;
  19. cursor:pointer; transition:.15s; margin:1rem 0; }
  20. #drop:hover, #drop.drag { border-color:var(--acc); background:#1b2330; }
  21. #drop .big { font-size:2.4rem; color:var(--acc); }
  22. button { font:inherit; border:none; border-radius:10px; padding:.7rem 1.1rem; cursor:pointer; }
  23. button.ghost { background:transparent; color:var(--fg); border:1px solid #33405a; width:100%; }
  24. button.ghost:hover { border-color:var(--acc); }
  25. #stages { list-style:none; padding:0; margin:0 0 1rem; }
  26. #stages li { display:flex; align-items:center; gap:.6rem; padding:.35rem 0; color:var(--mut); }
  27. #stages li .dot { width:18px; height:18px; border-radius:50%; border:2px solid #33405a; flex:0 0 auto; }
  28. #stages li.active { color:var(--fg); } #stages li.active .dot { border-color:var(--acc); }
  29. #stages li.done { color:var(--ok); } #stages li.done .dot { background:var(--ok); border-color:var(--ok); }
  30. .bar { height:8px; background:#222a36; border-radius:6px; overflow:hidden; }
  31. #bar-fill { height:100%; width:0; background:linear-gradient(90deg,var(--acc),#6fa8ff); transition:width .4s; }
  32. #progress-msg { margin:.6rem 0; }
  33. #progress-msg.error { color:var(--err); }
  34. pre#log { max-height:180px; overflow:auto; background:#0b0e13; padding:.6rem; border-radius:8px;
  35. font-size:.75rem; color:#9fb0c8; white-space:pre-wrap; }
  36. details { margin:.5rem 0 1rem; }
  37. #view-viewer { padding:0; }
  38. #viewer-canvas { position:absolute; inset:0; }
  39. #viewer-canvas canvas { display:block; }
  40. #hud-help { position:absolute; top:10px; left:50%; transform:translateX(-50%); background:#000a; color:#fff;
  41. padding:.4rem .8rem; border-radius:20px; font-size:.8rem; pointer-events:none; }
  42. #btn-recenter { position:absolute; right:14px; bottom:14px; width:48px; height:48px; border-radius:50%;
  43. background:#000a; color:#fff; font-size:1.3rem; }
  44. #btn-new { position:absolute; left:14px; bottom:14px; width:auto; background:#000a; color:#fff;
  45. border:1px solid #33405a; }
  46. #joystick { position:absolute; left:18px; bottom:78px; width:120px; height:120px; border-radius:50%;
  47. background:#ffffff14; border:1px solid #ffffff22; display:none; touch-action:none; }
  48. #joystick-knob { position:absolute; left:35px; top:35px; width:50px; height:50px; border-radius:50%;
  49. background:#ffffff55; }
  50. body.touch #joystick { display:block; }
  51. body.touch #hud-help { font-size:.72rem; }