/*
  reset.css, Jaspr OS minimal reset
  ---------------------------------------------------------------------------
  A tiny, deliberate reset. NOT a heavy normalize: the OS shell owns every
  pixel, so we only need to strip the browser defaults that fight a
  full-viewport desktop (page margins, box-sizing surprises, tap highlights,
  text selection on chrome). App content inside iframes is untouched by this,
  it lives in its own document.
*/

/* Border-box everywhere so width/height include padding + border. The whole
   window-manager geometry maths assumes this. */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  overflow: hidden;              /* the desktop never page-scrolls; windows scroll internally */
  overscroll-behavior: none;     /* kill pull-to-refresh / rubber-banding on mobile */
}

body {
  /* System font stack: fast, no web-font fetch, works offline out of the box.
     An app is free to load its own fonts inside its iframe. */
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--os-text);
  /* Prevent iOS text auto-zoom shrinking our chrome. */
  -webkit-text-size-adjust: 100%;
  /* The shell chrome is not selectable text; it reads as an app surface.
     Individual app documents re-enable selection as normal. */
  user-select: none;
  -webkit-user-select: none;
  /* Remove the grey tap flash on mobile so buttons feel native. */
  -webkit-tap-highlight-color: transparent;
}

/* Buttons in the shell inherit type and carry no UA chrome by default; each
   component styles its own. */
button {
  font: inherit;
  color: inherit;
  border: 0;
  background: none;
  cursor: pointer;
  padding: 0;
}

/* Inputs (start-menu search, settings fields) should be selectable + inherit
   the shell font. */
input,
textarea,
select {
  font: inherit;
  color: inherit;
  user-select: text;
  -webkit-user-select: text;
}

img,
svg {
  display: block;
  max-width: 100%;
}

/* Full-bleed iframes: app windows host their content edge-to-edge. */
iframe {
  border: 0;
  display: block;
}
