/* css/base.css */

/* Minimal reset */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

/* HARD RULE: body does not scroll */
html, body {
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

/* App root fills viewport and also does not scroll by default */
#app {
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Common primitives */
.ui-fill { flex: 1 1 0%; min-height: 0; min-width: 0; } /* min-0 is crucial for nested flex */
.ui-row  { display: flex; flex-direction: row; min-height: 0; min-width: 0; }
.ui-col  { display: flex; flex-direction: column; min-height: 0; min-width: 0; }

/* Explicit scroll container */
.ui-scroll {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  min-height: 0;
  min-width: 0;
}

/* Absolute/“native frame” positioning inside a relative root */
.ui-rel { position: relative; min-height: 0; min-width: 0; }
.ui-abs { position: absolute; }

/* Optional: nicer defaults for “app feel” */
body {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  background: #0b0b0c;
  color: #f3f3f4;
}
a { color: inherit; }
