@import url('variables.css');
@import url('density.css');
@import url('components.css');
@import url('forms.css');
@import url('tables.css');
@import url('page-fit.css');
@import url('dashboard.css');
@import url('timeline.css');
@import url('job-workspace.css');
@import url('utilities.css');
@import url('saas.css');
@import url('dashboard-executive.css');
@import url('platform.css');
@import url('responsive.css');
@import url('darkmode.css');

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; overflow-x: hidden; max-width: 100%; }

body.ems-app {
  font-family: var(--font);
  font-size: var(--fs-body);
  color: var(--ems-text);
  background: var(--ems-bg);
  min-height: 100vh;
  margin: 0;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  max-width: 100%;
}

body.ems-app.sidebar-open { overflow: hidden; }

a { color: var(--ems-primary); text-decoration: none; }
a:hover { color: var(--ems-primary-hover); }

.ems-h1 { font-size: var(--fs-h1); font-weight: 700; color: var(--ems-text); margin: 0; line-height: 1.25; }
.ems-h2 { font-size: var(--fs-h2); font-weight: 600; color: var(--ems-text); margin: 0; line-height: 1.3; }
.ems-h3 { font-size: var(--fs-h3); font-weight: 600; color: var(--ems-text); margin: 0; line-height: 1.3; }
.ems-body { font-size: var(--fs-body); color: var(--ems-text); }
.ems-caption { font-size: var(--fs-caption); color: var(--ems-muted); }
.ems-secondary { font-size: var(--fs-secondary); color: var(--ems-muted); }
.ems-muted { color: var(--ems-muted) !important; }

.ems-shell {
  display: flex;
  min-height: 100vh;
  background: var(--ems-bg);
  max-width: 100%;
}

.ems-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  max-width: 100%;
  margin-left: var(--sidebar-width);
  width: calc(100% - var(--sidebar-width));
}

.ems-content {
  flex: 1;
  padding: var(--section-gap) var(--card-padding);
  max-width: min(var(--page-max), 100%);
  width: 100%;
  margin: 0 auto;
  min-width: 0;
  overflow-x: hidden;
}

.ems-content--wide {
  max-width: 100%;
}

.ems-page-wrap {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: var(--section-gap) var(--card-padding);
}

/* Focus / a11y */
:focus-visible {
  outline: 2px solid var(--ems-info);
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--ems-primary);
  color: #fff;
  padding: 0.5rem 1rem;
  z-index: 9999;
}
.skip-link:focus { left: 0; }
