/* Genba Nippo v1.7.0 — approved Claude Design, foreman eight-screen layer. */
.app-view:has(#tab-sites.gn170-foreman-root:not([hidden])) > .app-header,
.app-view:has(#tab-sites.gn170-foreman-root:not([hidden])) > #update-banner,
.app-view:has(#tab-sites.gn170-foreman-root:not([hidden])) > #net-badge {
  display: none !important;
}

.app-view:has(#tab-sites.gn170-foreman-root:not([hidden])) > .tab-stage {
  padding-inline: 0 !important;
}

.app-view #tab-sites.gn170-foreman-root,
.app-view #tab-sites.gn170-foreman-root button,
.app-view #tab-sites.gn170-foreman-root input,
.app-view #tab-sites.gn170-foreman-root select,
.app-view #tab-sites.gn170-foreman-root textarea {
  box-sizing: border-box;
  font-family: var(--gn-font-sans);
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root {
  --gn170-paper: var(--gn-surface, #fbfcfd);
  --gn170-soft: var(--gn-surface-soft, #eef4fa);
  --gn170-text: var(--gn-text, #12304d);
  --gn170-number: var(--gn-number, #0a2540);
  --gn170-muted: var(--gn-text-muted, #4a6178);
  --gn170-quiet: var(--gn-text-quiet, var(--gn-text-muted, #5b7186));
  --gn170-navy: var(--gn-navy, #0a2540);
  --gn170-accent: var(--gn-accent-text, var(--gn-accent, #0874b8));
  --gn170-warning: var(--gn-warning-text, var(--gn-warning, #b94f0b));
  --gn170-hair: var(--gn-hairline, rgb(18 48 77 / 7%));
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 calc(78px + var(--gn-safe-bottom, env(safe-area-inset-bottom, 0px)));
  overflow: visible;
  background: var(--gn170-paper);
  color: var(--gn170-text);
  color-scheme: light;
}

.app-view #tab-sites.gn170-foreman-root > .foreman-segments,
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-section-paper > .gn170-foreman-inner > .section-head,
.app-view #tab-sites.gn170-foreman-root #site-wizard .wizard-head,
.app-view #tab-sites.gn170-foreman-root #site-wizard > .gn170-foreman-paper .back-button {
  display: none !important;
}

.app-view #tab-sites.gn170-foreman-root [hidden] { display: none !important; }

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-view {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: var(--gn170-paper);
  color: var(--gn170-text);
  overflow: clip;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero,
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-landing-hero {
  position: relative;
  display: flex;
  min-height: 300px;
  background-color: #0a2540;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  color: #f2f7fb;
  isolation: isolate;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-landing-hero {
  min-height: 340px;
  background-image: url('/assets/pwa/site-industrial.jpg');
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero--attendance { background-image: url('/assets/pwa/site-interior.jpg'); }
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero--sites { background-image: url('/assets/pwa/site-industrial.jpg'); }
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero--calendar { background-image: url('/assets/pwa/company-calendar-hero.jpg'); }
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero--site-editor { background-image: var(--pwa-photo-url, url('/assets/pwa/site-urban.jpg')); }
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero--gps { min-height: 300px; }
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero--delete { min-height: 340px; background-image: url('/assets/pwa/site-industrial.jpg'); }

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero::before,
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-landing-hero::before {
  position: absolute;
  inset: 0;
  z-index: -2;
  content: '';
  background: inherit;
  background-position: inherit;
  background-size: inherit;
  filter: var(--gn-photo-filter, saturate(.55) contrast(.92) brightness(.95));
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(to bottom, rgb(10 37 64 / 74%) 0%, rgb(10 37 64 / 66%) 32%, rgb(10 37 64 / 78%) 74%, #0a2540 100%),
    var(--gn-photo-overlay, rgb(10 37 64 / 12%));
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero-content,
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-landing-content {
  position: relative;
  display: flex;
  flex: 1;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  padding: calc(28px + env(safe-area-inset-top, 0px)) 26px 46px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
  gap: 12px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-back,
.app-view #tab-sites.gn170-foreman-root .gn170-calendar-nav button {
  display: grid;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  place-items: center;
  border: 1px solid rgb(242 247 251 / 30%);
  border-radius: 50%;
  background: rgb(10 37 64 / 64%);
  color: #f2f7fb;
  -webkit-text-fill-color: #f2f7fb;
  box-shadow: none;
  font-size: 20px;
  line-height: 1;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero-meta {
  min-width: 0;
  overflow: hidden;
  color: rgb(242 247 251 / 88%);
  font-size: 10px;
  letter-spacing: var(--gn-label-tracking, .28em);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-calendar-nav {
  display: flex;
  margin-left: auto;
  gap: 4px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero-spacer { flex: 1; min-height: 54px; }

.app-view #tab-sites.gn170-foreman-root .gn170-eyebrow {
  margin: 0;
  color: inherit;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: var(--gn-label-tracking, .28em);
  line-height: 1.5;
  text-transform: uppercase;
}

.app-view #tab-sites.gn170-foreman-root .gn170-eyebrow--muted { color: var(--gn170-quiet); }

.app-view #tab-sites.gn170-foreman-root :is(.gn170-foreman-hero, .gn170-foreman-landing-hero) h1 {
  margin: 14px 0 0;
  color: #f2f7fb;
  -webkit-text-fill-color: #f2f7fb;
  font-family: var(--gn-font-mincho);
  font-size: clamp(32px, 9.2vw, 36px);
  font-weight: 400;
  letter-spacing: -.01em;
  line-height: 1.26;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-paper {
  position: relative;
  z-index: 2;
  margin-top: -30px;
  padding-top: 40px;
  border-radius: 34px 34px 0 0;
  background: var(--gn170-paper);
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-inner {
  width: 100%;
  min-width: 0;
  padding: 0 26px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-identity {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 11px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-identity img {
  display: block;
  width: 36px;
  height: 36px;
  flex: none;
  border-radius: 50%;
  object-fit: contain;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-identity span {
  display: block;
  overflow: hidden;
  font-family: var(--gn-font-mincho);
  font-size: 15px;
  letter-spacing: .06em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-identity small {
  display: block;
  margin-top: 4px;
  color: rgb(242 247 251 / 88%);
  font-size: 9px;
  letter-spacing: var(--gn-label-tracking, .28em);
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-meta {
  display: flex;
  margin: 22px 0 0;
  color: rgb(242 247 251 / 88%);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--gn-label-tracking, .28em);
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-statuses,
.app-view #tab-sites.gn170-foreman-root .gn170-attendance-counts {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 12px 0 0;
  padding: 0;
  border: 0 !important;
  outline: 0;
  background: transparent;
  box-shadow: none;
}

.app-view #tab-sites.gn170-foreman-root :is(.gn170-foreman-statuses, .gn170-attendance-counts) > :is(button, .summary-card) {
  display: flex;
  width: 100%;
  min-height: 82px;
  align-items: baseline;
  justify-content: space-between;
  margin: 0;
  padding: 20px 0;
  border: 0 !important;
  border-bottom: 1px solid var(--gn170-hair) !important;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--gn170-text);
  text-align: left;
}

.app-view #tab-sites.gn170-foreman-root :is(.gn170-foreman-statuses, .gn170-attendance-counts) > :is(button, .summary-card):not([hidden]):not(:has(~ :is(button, .summary-card):not([hidden]))) {
  border-bottom: 0 !important;
}

.app-view #tab-sites.gn170-foreman-root :is(.gn170-foreman-statuses, .gn170-attendance-counts) > :is(button, .summary-card) > span {
  order: 0;
  color: var(--gn170-quiet);
  -webkit-text-fill-color: var(--gn170-quiet);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: var(--gn-label-tracking, .28em);
}

.app-view #tab-sites.gn170-foreman-root :is(.gn170-foreman-statuses, .gn170-attendance-counts) > :is(button, .summary-card) > b {
  order: 1;
  color: var(--gn170-number);
  -webkit-text-fill-color: var(--gn170-number);
  font-size: clamp(40px, 14vw, 58px);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.03em;
  line-height: 1;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-statuses > button:first-child > span,
.app-view #tab-sites.gn170-foreman-root .gn170-attendance-counts > .summary-card:not([hidden]):first-of-type > span { color: var(--gn170-accent); -webkit-text-fill-color: var(--gn170-accent); }

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-statuses > button:nth-child(2) > span { color: var(--gn170-warning); -webkit-text-fill-color: var(--gn170-warning); }

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-statuses b small {
  margin-left: 6px;
  color: var(--gn170-quiet);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
}

.app-view #tab-sites.gn170-foreman-root .gn170-attendance-counts b small {
  margin-left: 6px;
  color: var(--gn170-quiet);
  -webkit-text-fill-color: var(--gn170-quiet);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-feature-label { margin-top: 40px; }

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-features {
  display: flex;
  flex-direction: column;
  margin-top: 14px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-features > :is(button, div) {
  display: flex;
  min-width: 0;
  min-height: 82px;
  align-items: baseline;
  gap: 20px;
  padding: 20px 0;
  border: 0;
  border-bottom: 1px solid var(--gn170-hair);
  border-radius: 0;
  background: transparent;
  color: var(--gn170-text);
  text-align: left;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-features > :is(button, div) > span:first-child {
  flex: none;
  color: var(--gn170-quiet);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .2em;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-features b,
.app-view #tab-sites.gn170-foreman-root .gn170-foreman-features small {
  display: block;
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-features b {
  overflow: hidden;
  font-family: var(--gn-font-mincho);
  font-size: 21px;
  letter-spacing: .04em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-features small {
  margin-top: 8px;
  color: var(--gn170-quiet);
  font-size: 11px;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-feature-disabled { opacity: .72; }

.app-view #tab-sites.gn170-foreman-root .gn170-delete-actions {
  position: relative;
  z-index: 1;
  bottom: auto;
  margin: 24px 0 12px;
  padding: 0;
  background: transparent;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-sticky-action {
  position: static;
  margin: 0;
  padding: 20px 0 2px;
  background: transparent;
}

.app-view #tab-sites.gn170-foreman-root .gn170-foreman-sticky-action p {
  margin: 0 0 12px;
  color: var(--gn170-muted);
  font-size: 11px;
  text-align: center;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-primary,
.app-view #tab-sites.gn170-foreman-root .wizard-actions .btn-primary {
  display: flex;
  width: 100%;
  min-height: var(--gn-main-action-height, 62px);
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  border: 0;
  border-radius: var(--gn-main-action-radius, 31px);
  background: var(--gn-primary-bg, #0a2540) !important;
  color: var(--gn-primary-fg, #f2f7fb) !important;
  -webkit-text-fill-color: var(--gn-primary-fg, #f2f7fb) !important;
  box-shadow: 0 20px 46px rgb(10 37 64 / 34%), 0 4px 14px rgb(10 37 64 / 18%);
  font-family: var(--gn-font-mincho);
  font-size: 20px;
  font-weight: 400;
  letter-spacing: .08em;
}

/* All-site attendance: the API remains read-only and its full filters stay below the four reference counters. */
.app-view #tab-sites.gn170-foreman-root #foreman-attendance .filter-grid,
.app-view #tab-sites.gn170-foreman-root #foreman-attendance .search-field {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 30px 0 10px;
}

.app-view #tab-sites.gn170-foreman-root #foreman-attendance .search-field { display: block; margin-top: 10px; }

.app-view #tab-sites.gn170-foreman-root :is(#foreman-attendance, #sites-overview) .search-field > span[aria-hidden="true"] {
  color: var(--gn170-quiet);
  -webkit-text-fill-color: var(--gn170-quiet);
  opacity: 1;
}

.app-view #tab-sites.gn170-foreman-root #btn-foreman-refresh.gn170-attendance-refresh {
  display: flex;
  width: max-content;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin: 10px 0 0 auto;
  padding: 0 18px;
  border: 1px solid var(--gn170-hair);
  border-radius: 22px;
  background: var(--gn170-soft);
  color: var(--gn170-text);
  -webkit-text-fill-color: var(--gn170-text);
  box-shadow: none;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .12em;
}

.app-view #tab-sites.gn170-foreman-root :is(#foreman-attendance, #foreman-calendar, #site-wizard) :is(input, select, textarea),
.app-view #tab-sites.gn170-foreman-root #sites-overview .search-field input {
  width: 100%;
  min-height: 52px;
  padding: 0 20px;
  border: 1px solid var(--gn170-hair) !important;
  border-radius: 26px;
  background: var(--gn170-soft) !important;
  color: var(--gn170-text) !important;
  -webkit-text-fill-color: var(--gn170-text) !important;
  box-shadow: none;
  font-size: 16px;
  font-weight: 400;
  opacity: 1;
}

.app-view #tab-sites.gn170-foreman-root :is(#foreman-attendance-status, #new-site-radius) {
  padding-right: 46px;
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--gn170-soft) !important;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--gn170-muted) 50%),
    linear-gradient(135deg, var(--gn170-muted) 50%, transparent 50%) !important;
  background-position:
    calc(100% - 22px) 50%,
    calc(100% - 16px) 50% !important;
  background-repeat: no-repeat !important;
  background-size: 6px 6px, 6px 6px !important;
}

.app-view #tab-sites.gn170-foreman-root :is(input, textarea)::placeholder {
  color: var(--gn170-muted) !important;
  -webkit-text-fill-color: var(--gn170-muted) !important;
  opacity: 1;
}

.app-view #tab-sites.gn170-foreman-root .gn170-attendance-site-breakdown { margin-top: 40px; }

.app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row {
  display: flex;
  min-width: 0;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 22px 0;
  border-bottom: 1px solid var(--gn170-hair);
}

.app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row:first-of-type { margin-top: 12px; }

.app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row h2,
.app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row p { margin: 0; font-weight: 400; }

.app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row h2 {
  overflow: hidden;
  font-family: var(--gn-font-mincho);
  font-size: 21px;
  letter-spacing: .04em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row p {
  margin-top: 12px;
  overflow: hidden;
  color: var(--gn170-quiet);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .16em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row > b {
  flex: none;
  color: var(--gn170-number);
  font-size: 28px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}

.app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row > b small {
  margin-left: 4px;
  color: var(--gn170-quiet);
  font-size: 12px;
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root #foreman-attendance-list {
  display: grid;
  margin-top: 30px;
  gap: 0;
}

.app-view #tab-sites.gn170-foreman-root #foreman-attendance-list::before {
  margin-bottom: 12px;
  color: var(--gn170-quiet);
  content: '作業員（読み取り専用）';
  font-size: 10px;
  letter-spacing: var(--gn-label-tracking, .28em);
}

.app-view #tab-sites.gn170-foreman-root #foreman-attendance-list .list-card {
  min-width: 0;
  margin: 0;
  padding: 20px 0;
  border: 0;
  border-bottom: 1px solid var(--gn170-hair);
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  color: var(--gn170-text);
}

.app-view #tab-sites.gn170-foreman-root #foreman-attendance-list .list-card h3 {
  color: var(--gn170-text) !important;
  -webkit-text-fill-color: var(--gn170-text) !important;
  font-family: var(--gn-font-mincho);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: .04em;
}

.app-view #tab-sites.gn170-foreman-root #foreman-attendance-list .list-card p {
  color: var(--gn170-muted) !important;
  -webkit-text-fill-color: var(--gn170-muted) !important;
  font-size: 11px;
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root .gn170-helper {
  margin: 26px 0 0;
  color: var(--gn170-muted) !important;
  -webkit-text-fill-color: var(--gn170-muted) !important;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.9;
}

/* Site management list. */
.app-view #tab-sites.gn170-foreman-root #sites-overview .search-field {
  display: block;
  margin: 0 0 32px;
}

.app-view #tab-sites.gn170-foreman-root #foreman-site-list.gn170-site-list {
  display: grid;
  gap: 0;
}

.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row,
.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row[data-pwa-photo-ready='true'] {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 100px;
  grid-template-columns: 56px minmax(0, 1fr) 20px;
  grid-template-rows: auto;
  align-items: center;
  column-gap: 16px;
  row-gap: 0;
  margin: 0;
  padding: 22px 0;
  border: 0;
  border-bottom: 1px solid var(--gn170-hair);
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  color: var(--gn170-text) !important;
}

.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row::after {
  grid-column: 3;
  grid-row: 1;
  color: var(--gn170-quiet);
  content: '›';
  font-size: 18px;
  text-align: center;
}

.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row .pwa-site-card-image {
  width: 56px;
  height: 56px;
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  border-radius: 18px;
  background-color: var(--gn170-soft);
  background-position: center;
  background-size: cover;
  filter: var(--gn-photo-filter, saturate(.55) contrast(.92) brightness(.95));
}

.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row > .list-card-head {
  display: block;
  min-width: 0;
  grid-column: 2;
  grid-row: 1;
}

.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row h3 {
  overflow: hidden;
  margin: 0;
  color: var(--gn170-text) !important;
  -webkit-text-fill-color: var(--gn170-text) !important;
  font-family: var(--gn-font-mincho);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: .04em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row .list-card-head p {
  overflow: hidden;
  margin: 9px 0 0;
  color: var(--gn170-quiet) !important;
  -webkit-text-fill-color: var(--gn170-quiet) !important;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .14em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row :is(.status-label, .radius, .site-card-actions, .pwa-site-photo-controls),
.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row > p {
  display: none !important;
}

.app-view #tab-sites.gn170-foreman-root #btn-new-site {
  position: fixed;
  z-index: 80;
  right: auto;
  bottom: calc(var(--gn-shell-nav-height, 72px) + var(--gn-safe-bottom, env(safe-area-inset-bottom, 0px)) + 12px);
  left: 50%;
  display: flex;
  width: min(calc(100vw - 32px), 528px);
  min-height: 62px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 24px;
  border: 0;
  border-radius: 31px;
  background: var(--gn-primary-bg, #0a2540);
  color: var(--gn-primary-fg, #f2f7fb);
  -webkit-text-fill-color: var(--gn-primary-fg, #f2f7fb);
  box-shadow: 0 20px 46px rgb(10 37 64 / 34%), 0 4px 14px rgb(10 37 64 / 18%);
  font-family: var(--gn-font-mincho);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: .1em;
  transform: translateX(-50%);
}

/* Reserve the initial-fold action lane after the first three real sites. */
.app-view #tab-sites.gn170-foreman-root #foreman-site-list .gn170-site-row:nth-of-type(4) {
  margin-top: 90px;
}

/* Site add/edit wizard and real GPS map. */
.app-view #tab-sites.gn170-foreman-root #site-wizard .wizard-step {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  color: var(--gn170-text) !important;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .wizard-step > h3 {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .field { margin: 0 0 34px; }

.app-view #tab-sites.gn170-foreman-root #site-wizard :is(.field > span, .coord-grid label) {
  margin-bottom: 14px;
  color: var(--gn170-quiet) !important;
  -webkit-text-fill-color: var(--gn170-quiet) !important;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: var(--gn-label-tracking, .28em);
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .field :is(input, select, textarea),
.app-view #tab-sites.gn170-foreman-root #site-wizard .coord-grid input {
  min-height: 60px;
  padding: 0 24px;
  border: 1px solid var(--gn170-hair) !important;
  border-radius: 30px;
  background: var(--gn170-soft) !important;
  color: var(--gn170-text) !important;
  -webkit-text-fill-color: var(--gn170-text) !important;
  font-family: var(--gn-font-mincho);
  font-size: 17px;
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .gn170-site-photo-editor,
.app-view #tab-sites.gn170-foreman-root #site-wizard .gn170-site-radius-editor { margin-top: 34px; }

.app-view #tab-sites.gn170-foreman-root .gn170-site-photo-row {
  display: flex;
  align-items: center;
  margin-top: 14px;
  gap: 14px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-site-photo-preview {
  width: 104px;
  height: 104px;
  flex: none;
  border-radius: 24px;
  background-color: var(--gn170-soft);
  background-image: var(--pwa-photo-url, url('/assets/pwa/site-industrial.jpg'));
  background-position: center;
  background-size: cover;
  box-shadow: 0 14px 34px rgb(18 48 77 / 12%);
  filter: var(--gn-photo-filter, saturate(.55) contrast(.92) brightness(.95));
}

.app-view #tab-sites.gn170-foreman-root #gn170-site-photo-button {
  min-width: 0;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--gn170-hair);
  border-radius: 22px;
  background: var(--gn170-soft);
  color: var(--gn170-text);
  -webkit-text-fill-color: var(--gn170-text);
  font-family: var(--gn-font-mincho);
  font-size: 17px;
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root .gn170-radius-value {
  display: flex;
  min-width: 0;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-top: 16px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-radius-value > span {
  color: var(--gn170-quiet);
  font-size: 11px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-radius-value > b {
  flex: none;
  color: var(--gn170-number);
  font-size: 40px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
  line-height: 1;
}

.app-view #tab-sites.gn170-foreman-root .gn170-radius-value > b small {
  margin-left: 5px;
  color: var(--gn170-quiet);
  font-size: 14px;
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root #gn170-radius-range {
  height: 44px;
  margin: 12px 0 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  accent-color: var(--gn170-navy);
  background: transparent !important;
}

.app-view #tab-sites.gn170-foreman-root .gn170-radius-scale {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  color: var(--gn170-quiet);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .18em;
}

.app-view #tab-sites.gn170-foreman-root .gn170-editor-row {
  display: flex;
  width: 100%;
  min-height: 88px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 24px 0 0;
  padding: 20px 0;
  border: 0;
  border-top: 1px solid var(--gn170-hair);
  border-bottom: 1px solid var(--gn170-hair);
  border-radius: 0;
  background: transparent;
  color: var(--gn170-text);
  text-align: left;
}

.app-view #tab-sites.gn170-foreman-root .gn170-editor-row + .gn170-editor-row { margin-top: 0; border-top: 0; }

.app-view #tab-sites.gn170-foreman-root .gn170-editor-row b,
.app-view #tab-sites.gn170-foreman-root .gn170-editor-row small { display: block; font-weight: 400; }
.app-view #tab-sites.gn170-foreman-root .gn170-editor-row b { font-family: var(--gn-font-mincho); font-size: 19px; letter-spacing: .04em; }
.app-view #tab-sites.gn170-foreman-root .gn170-editor-row small { margin-top: 8px; color: var(--gn170-quiet); font-size: 11px; }
.app-view #tab-sites.gn170-foreman-root .gn170-editor-row i { color: var(--gn170-quiet); font-size: 18px; font-style: normal; }
.app-view #tab-sites.gn170-foreman-root .gn170-editor-row--danger b { color: var(--gn170-warning); }

.app-view #tab-sites.gn170-foreman-root #site-wizard .map-toolbar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin-bottom: 12px;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .map-toolbar button,
.app-view #tab-sites.gn170-foreman-root #site-wizard .btn-secondary,
.app-view #tab-sites.gn170-foreman-root #site-wizard .text-button {
  min-width: 0;
  min-height: 44px;
  border: 1px solid var(--gn170-hair);
  border-radius: 22px;
  background: var(--gn170-soft);
  color: var(--gn170-text) !important;
  -webkit-text-fill-color: var(--gn170-text) !important;
  box-shadow: none;
  font-size: 11px;
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .map-toolbar button.is-active {
  background: var(--gn170-navy) !important;
  color: #f2f7fb !important;
  -webkit-text-fill-color: #f2f7fb !important;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .map-wrap {
  height: 220px;
  min-height: 220px;
  border: 1px solid var(--gn170-hair);
  border-radius: 24px;
  background: var(--gn170-soft);
  overflow: hidden;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard[data-gn170-wizard-step="2"] .wizard-step[data-step="2"] > .muted {
  color: var(--gn170-quiet) !important;
  -webkit-text-fill-color: var(--gn170-quiet) !important;
  opacity: 1;
}

/* Leaflet's defaults are 30px. Keep the true map operations at the approved
   44px target while leaving source-attribution links intact and readable. */
.app-view #tab-sites.gn170-foreman-root #site-wizard[data-gn170-wizard-step="2"] :is(.leaflet-control-zoom-in, .leaflet-control-zoom-out) {
  display: grid !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  place-items: center;
  line-height: 1 !important;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard[data-gn170-wizard-step="2"] .leaflet-marker-icon {
  pointer-events: none !important;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard[data-gn170-wizard-step="2"] .leaflet-control-attribution {
  padding: 1px 4px !important;
  background: var(--gn170-paper) !important;
  color: var(--gn170-muted) !important;
  -webkit-text-fill-color: var(--gn170-muted) !important;
  font-size: 10px !important;
  line-height: 16px !important;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard[data-gn170-wizard-step="2"] .leaflet-control-attribution a {
  color: var(--gn170-text) !important;
  -webkit-text-fill-color: var(--gn170-text) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .coord-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 24px; }

.app-view #tab-sites.gn170-foreman-root #site-wizard .wizard-actions {
  position: relative;
  z-index: 1;
  bottom: auto;
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  gap: 12px;
  margin: 24px 0 12px;
  padding: 0;
  background: transparent;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .wizard-actions .btn-secondary {
  min-height: 62px;
  border: 0;
  border-radius: 31px;
  background: var(--gn170-soft);
  font-family: var(--gn-font-mincho);
  font-size: 18px;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .wizard-actions .btn-primary:only-child,
.app-view #tab-sites.gn170-foreman-root #site-wizard .wizard-actions .btn-primary[hidden] + .btn-primary:not([hidden]) { grid-column: auto; }

.app-view #tab-sites.gn170-foreman-root #site-wizard[data-gn170-wizard-step="1"] .wizard-actions {
  grid-template-columns: minmax(0, 1fr);
}

.app-view #tab-sites.gn170-foreman-root #site-wizard[data-gn170-wizard-step="1"] #btn-wizard-next {
  grid-column: 1 / -1;
}

.app-view #tab-sites.gn170-foreman-root #site-wizard .confirm-card {
  border: 0;
  border-radius: 24px;
  background: var(--gn170-soft);
  color: var(--gn170-text);
}

/* Company calendar editor. */
.app-view #tab-sites.gn170-foreman-root #foreman-calendar .filter-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin: 0 0 14px;
}

.app-view #tab-sites.gn170-foreman-root #foreman-calendar .filter-grid button {
  min-height: 52px;
  padding: 0 18px;
  border: 1px solid var(--gn170-hair);
  border-radius: 26px;
  background: var(--gn170-soft) !important;
  color: var(--gn170-text) !important;
  -webkit-text-fill-color: var(--gn170-text) !important;
  font-weight: 400;
}

.app-view #tab-sites.gn170-foreman-root .gn170-calendar-weekdays,
.app-view #tab-sites.gn170-foreman-root #foreman-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0;
}

.app-view #tab-sites.gn170-foreman-root .gn170-calendar-weekdays { margin-top: 20px; }

.app-view #tab-sites.gn170-foreman-root .gn170-calendar-weekdays span {
  display: flex;
  height: 26px;
  align-items: center;
  justify-content: center;
  color: var(--gn170-quiet);
  font-size: 9px;
  letter-spacing: .2em;
}

.app-view #tab-sites.gn170-foreman-root #foreman-calendar-grid { margin: 0 0 26px; }

/* Site deletion confirmation. */
.app-view #tab-sites.gn170-foreman-root .gn170-delete-warning {
  display: flex;
  gap: 14px;
  padding: 22px;
  border: 1px solid color-mix(in srgb, var(--gn170-warning) 34%, transparent);
  border-radius: 28px;
  background: color-mix(in srgb, var(--gn170-warning) 3%, transparent);
}

.app-view #tab-sites.gn170-foreman-root .gn170-delete-warning > i {
  width: 8px;
  height: 8px;
  flex: none;
  margin-top: 8px;
  border-radius: 50%;
  background: var(--gn170-warning);
}

.app-view #tab-sites.gn170-foreman-root .gn170-delete-warning h2,
.app-view #tab-sites.gn170-foreman-root .gn170-delete-warning p { margin: 0; font-weight: 400; }
.app-view #tab-sites.gn170-foreman-root .gn170-delete-warning h2 { color: var(--gn170-warning); font-family: var(--gn-font-mincho); font-size: 21px; letter-spacing: .04em; }
.app-view #tab-sites.gn170-foreman-root .gn170-delete-warning p { margin-top: 12px; color: var(--gn170-muted); font-size: 12px; line-height: 1.9; }
.app-view #tab-sites.gn170-foreman-root .gn170-delete-label { margin-top: 40px; }

.app-view #tab-sites.gn170-foreman-root .gn170-delete-site {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 16px;
  margin-top: 12px;
  padding: 22px 0;
  border-bottom: 1px solid var(--gn170-hair);
}

.app-view #tab-sites.gn170-foreman-root #gn170-delete-photo {
  width: 56px;
  height: 56px;
  flex: none;
  border-radius: 18px;
  background-position: center;
  background-size: cover;
  filter: var(--gn-photo-filter, saturate(.55) contrast(.92) brightness(.95));
}

.app-view #tab-sites.gn170-foreman-root .gn170-delete-site h2,
.app-view #tab-sites.gn170-foreman-root .gn170-delete-site p { overflow: hidden; margin: 0; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.app-view #tab-sites.gn170-foreman-root .gn170-delete-site h2 { font-family: var(--gn-font-mincho); font-size: 19px; letter-spacing: .04em; }
.app-view #tab-sites.gn170-foreman-root .gn170-delete-site p { margin-top: 9px; color: var(--gn170-quiet); font-size: 10px; letter-spacing: .14em; }

.app-view #tab-sites.gn170-foreman-root .gn170-delete-facts { margin: 0; }
.app-view #tab-sites.gn170-foreman-root .gn170-delete-facts > div { display: flex; min-height: 74px; align-items: baseline; justify-content: space-between; gap: 12px; padding: 20px 0; border-bottom: 1px solid var(--gn170-hair); }
.app-view #tab-sites.gn170-foreman-root .gn170-delete-facts dt { font-family: var(--gn-font-mincho); font-size: 19px; letter-spacing: .04em; }
.app-view #tab-sites.gn170-foreman-root .gn170-delete-facts dd { margin: 0; color: var(--gn170-number); font-size: 24px; font-variant-numeric: tabular-nums; }

.app-view #tab-sites.gn170-foreman-root .gn170-delete-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.app-view #tab-sites.gn170-foreman-root .gn170-delete-actions button {
  min-width: 0;
  min-height: 62px;
  border: 0;
  border-radius: 31px;
  background: var(--gn170-soft);
  color: var(--gn170-muted);
  -webkit-text-fill-color: var(--gn170-muted);
  font-family: var(--gn-font-mincho);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: .08em;
}

.app-view #tab-sites.gn170-foreman-root .gn170-delete-actions #gn170-delete-confirm {
  background: var(--gn170-warning);
  color: #fbfcfd;
  -webkit-text-fill-color: #fbfcfd;
  box-shadow: 0 20px 46px color-mix(in srgb, var(--gn170-warning) 34%, transparent), 0 4px 14px color-mix(in srgb, var(--gn170-warning) 20%, transparent);
}

.app-view #tab-sites.gn170-foreman-root .gn170-delete-actions #gn170-delete-confirm:disabled {
  background: var(--gn170-soft);
  color: var(--gn170-muted);
  -webkit-text-fill-color: var(--gn170-muted);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 1;
}

@media (max-width: 390px) {
  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero-content,
  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-landing-content { padding-inline: 22px; }
  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-inner { padding-inline: 22px; }
  .app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row p { letter-spacing: .1em; }
}

@media (max-width: 360px) {
  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero-content,
  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-landing-content,
  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-inner { padding-inline: 18px; }
  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-features b { font-size: 19px; }
  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-features small { font-size: 10px; }
  .app-view #tab-sites.gn170-foreman-root #foreman-attendance .filter-grid { grid-template-columns: 1fr; }
  .app-view #tab-sites.gn170-foreman-root .gn170-site-breakdown-row h2 { font-size: 19px; }
  .app-view #tab-sites.gn170-foreman-root .gn170-radius-value > span { max-width: 150px; }
  .app-view #tab-sites.gn170-foreman-root #site-wizard .coord-grid { grid-template-columns: 1fr; }
}

@media (prefers-color-scheme: dark) and (prefers-color-scheme: light) {
  .app-view #tab-sites.gn170-foreman-root {
    --gn170-paper: #0c2136;
    --gn170-soft: #12304d;
    --gn170-text: #eaf3fa;
    --gn170-number: #f2f7fb;
    --gn170-muted: #9db4c8;
    --gn170-quiet: #8299af;
    --gn170-navy: #12304d;
    --gn170-accent: #309de2;
    --gn170-warning: #e08b4a;
    --gn170-hair: rgb(234 243 250 / 10%);
    background: #06172a;
    color-scheme: dark;
  }

  .app-view #tab-sites.gn170-foreman-root .gn170-foreman-hero-shade {
    background: linear-gradient(to bottom, rgb(6 23 42 / 76%) 0%, rgb(6 23 42 / 68%) 32%, rgb(6 23 42 / 84%) 74%, #06172a 100%);
  }

  .app-view #tab-sites.gn170-foreman-root :is(#foreman-attendance, #foreman-calendar, #site-wizard) :is(input, select, textarea),
  .app-view #tab-sites.gn170-foreman-root #sites-overview .search-field input {
    color-scheme: dark;
  }

  .app-view #tab-sites.gn170-foreman-root .gn170-primary,
  .app-view #tab-sites.gn170-foreman-root .wizard-actions .btn-primary,
  .app-view #tab-sites.gn170-foreman-root #btn-new-site {
    box-shadow: none;
  }

  .app-view #tab-sites.gn170-foreman-root .gn170-delete-actions #gn170-delete-confirm {
    color: #06172a;
    -webkit-text-fill-color: #06172a;
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-view #tab-sites.gn170-foreman-root,
  .app-view #tab-sites.gn170-foreman-root * {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }
}
