/* ============================================================
 * base.css — Reset rules, loading screen, view system
 * My Travel History v2.0 — Modular CSS
 * ============================================================ */

/* ========== Reset ========== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{height:100%;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--g100);color:var(--g800);font-size:15px;
  line-height:1.55;height:100svh;height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased;
  overscroll-behavior:none;letter-spacing:-.01em}
input,select,textarea,button{font-family:inherit;font-size:inherit;-webkit-appearance:none;appearance:none}
.tv-body,.dv-side,.modal{overscroll-behavior:contain}
button,.btn,.tcard,.aitem,.eitem,.cl-item,.dv-bnav-item,.dv-bnav-fab{touch-action:manipulation}
button{cursor:pointer;border:none;background:none}
.budget-input-row.hide{display:none}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-thumb{background:var(--g300);border-radius:3px}

/* ========== Loading ========== */
#loading{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:url('../img/login-bg.webp') center/cover no-repeat #1a1a2e;color:var(--white);transition:opacity .4s}
#loading.hide{opacity:0;pointer-events:none}
.ld-spin{width:40px;height:40px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}

/* ========== View System ========== */
.view{position:fixed;inset:0;z-index:10;display:none}
.view.on{display:flex;flex-direction:column}
