/* Production-only integration for the approved G2.1 prototype theme. */
.app-shell.web-shell { margin-top: 0; min-height: 100dvh; }
.primary-nav.web-primary-nav { top: 0; height: 100dvh; }
.workspace.web-workspace { min-width: 0; }
.web-main { padding: 0; outline: 0; }
.web-main:focus, .web-main:focus-visible { outline: 0; }
.web-page { width: 100%; min-height: 0; margin: 0; padding: 0; }
.web-main > .p0-preview-meta { width: 100%; margin: 28px auto 0; padding: 16px 0; border-top: 1px solid var(--line); color: var(--muted); }
.web-live { max-width: 1200px; }
.web-live:empty { display: none; }
.web-primary-nav .web-nav-button { color: var(--muted); background: transparent; }
.web-primary-nav .web-nav-button.active { color: var(--ink); background: var(--domain-soft); }
.secondary-nav.web-secondary-nav[hidden], .page-header[hidden] { display: none; }
.secondary-nav.web-secondary-nav .web-segment { color: var(--muted); background: transparent; }
.secondary-nav.web-secondary-nav .web-segment.active { color: var(--ink); background: #fff; box-shadow: 0 3px 12px rgb(242 111 82 / 14%); }
.web-route-host > .p0-app, .web-route-host .p0-main { min-height: 0; padding: 0; color: inherit; background: transparent; }
.web-domain-page, .web-section, .web-form, .web-list { gap: 20px; }
.web-card, .p0-card, .web-subcard {
  border-color: var(--line);
  color: var(--ink);
  background: var(--surface);
  box-shadow: var(--shadow);
}
.web-card, .p0-card { padding: 18px; border-radius: var(--radius); }
.web-subcard { border-radius: 14px; box-shadow: none; }
.web-button, .web-icon-button, .web-segment, .p0-button, .p0-icon-button, .p0-status-button, .p0-segment {
  min-height: 44px;
  border-color: var(--line);
  border-radius: 12px;
  color: var(--ink);
  background: #fff;
}
.p0-filter-grid > input, .p0-filter-grid > select { min-height: 44px; }
.web-period-controls > input { min-height: 44px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font: inherit; }
.web-link-button { min-height: 44px; }
.btn.small { min-width: 44px; }
#app button { min-width: 44px; min-height: 44px; }
#app input:not([type="checkbox"]):not([type="radio"]), #app select, #app textarea { min-height: 44px; }
.web-button-primary, .p0-button-primary, .btn.primary { border-color: #df5d43; color: #fff; background: linear-gradient(135deg, var(--coral), #ef8760); box-shadow: 0 6px 13px rgb(242 111 82 / 18%); }
.web-button-primary:hover:not(:disabled), .p0-button-primary:hover:not(:disabled), .btn.primary:hover:not(:disabled) { background: linear-gradient(135deg, #e95f45, var(--coral)); box-shadow: 0 8px 16px rgb(242 111 82 / 24%); }
.web-button-danger, .p0-button-danger, .btn.danger { border-color: #e2b9b5; color: #9b3f3a; background: #fff7f6; box-shadow: none; }
.web-segmented, .p0-segmented { max-width: max-content; gap: 4px; padding: 4px; border-radius: 12px; background: var(--soft); }
.web-segment, .p0-segment { min-height: 38px; padding: 7px 14px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; }
.web-segmented .web-segment, .p0-segmented .p0-segment { min-width: 44px; min-height: 44px; }
.web-segment.is-active, .p0-segment.is-active { color: var(--ink); background: #fff; box-shadow: 0 3px 12px rgb(242 111 82 / 14%); }
.segmented button.active { color: var(--ink); background: #fff; box-shadow: 0 3px 12px rgb(242 111 82 / 14%); }
.web-muted, .web-field-hint, .p0-muted, .p0-eyebrow { color: var(--muted); }
.web-badge { color: var(--green-strong); background: var(--green-soft); }
.web-kpi, .p0-metrics > * { border-radius: 14px; background: var(--soft); }
.p0-task-card.task-row { display: grid; }
.p0-task-card.task-row .p0-status-button { padding: 0; border: 0; background: transparent; }
.p0-task-card.task-row .p0-status-button { min-width: 44px; }
.p0-task-card.task-row .p0-status-button:disabled { opacity: .48; }
.p0-task-card.task-row .p0-icon-button { min-width: 44px; }
.p0-task-card.task-row .task-title { margin: 0; }
.p0-subtasks.subtasks { grid-column: 2 / 4; margin: 0; padding-top: 10px; }
.parity-scope-card .pill { float: right; }
.parity-full-button { width: 100%; margin-top: 12px; }
.parity-crop-preview { text-align: center; }
.parity-preview-plant { width: 150px; margin: 8px auto; }
.parity-preview-plant svg, .crop-card svg, .farm svg { display: block; width: 100%; height: auto; }
.parity-focus-setup .crop-card { border: 1px solid var(--line); background: #fff; }
.parity-focus-setup .crop-card.selected { border-color: var(--green); background: var(--green-soft); }
.parity-focus-actions { justify-content: center; }
.parity-complete-metrics, .parity-invalid-metrics { margin-top: 18px; }
.web-habit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.web-habit-card .habit-main { display: flex; min-width: 0; min-height: 44px; align-items: center; gap: 12px; padding: 0; border: 0; color: inherit; background: transparent; text-align: left; }
.web-habit-card .habit-main > span:last-child { min-width: 0; }
.web-habit-card .habit-main .helper { display: block; margin-top: 3px; }
.web-habit-card > .btn { min-width: 92px; }
.web-domain-page > .web-page-header { margin-bottom: 0; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.web-domain-page > .web-page-header .web-eyebrow { margin: 0 0 6px; color: var(--green-strong); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.web-domain-page > .web-period-controls, .web-domain-page > .web-filter-row { padding: 14px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.parity-settings-card { display: grid; gap: 22px; }
.parity-settings-group { display: grid; gap: 10px; padding-top: 18px; border-top: 1px solid var(--line); }
.parity-settings-group .section-head { margin-bottom: 0; }
.parity-category-status { display: block; margin-top: 3px; }
.parity-category-actions { flex-wrap: nowrap; justify-content: flex-end; }
.parity-pinned-attributes { display: grid; gap: 10px; }
.parity-attribute-row { grid-template-columns: 14px minmax(0, 1fr) auto; }
.parity-editor-title { margin-top: 8px; }
.parity-task-editor { align-items: start; }
.parity-task-editor .card { min-width: 0; }
.parity-all-day { margin: 14px 0 8px; }
.parity-time-fields { margin-bottom: 8px; }
.parity-subtask-editor { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.parity-editor-actions { margin-top: 18px; }
.parity-task-editor .p0-recurrence-fields { display: grid; gap: 12px; margin-top: 12px; }
.web-data-list { display: grid; grid-template-columns: minmax(140px, 220px) minmax(0, 1fr); gap: 8px 18px; align-items: start; }
.web-data-list dt { color: var(--muted); font-weight: 800; }
.web-data-list dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.web-shell.is-immersive { display: block; width: 100%; border: 0; background: var(--canvas); }
.web-shell.is-immersive .workspace { padding: 0; }
.web-shell.is-immersive .primary-nav, .web-shell.is-immersive .page-header, .web-shell.is-immersive .secondary-nav, .web-shell.is-immersive .p0-preview-meta { display: none !important; }
.web-shell.is-immersive .p0-alert-success { display: none; }
.web-shell.is-immersive .focus-stage-shell { min-height: 100vh; margin: 0; padding: 24px; }
.p0-calendar-month-grid.p0-calendar-month-board { display: block; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; }
.p0-calendar-month-week { min-height: var(--row-height, 112px); }

@media(max-width:899px) {
  .app-shell.web-shell { margin-top: 0; }
  .primary-nav.web-primary-nav { top: auto; height: calc(74px + env(safe-area-inset-bottom)); }
  .web-habit-grid { grid-template-columns: 1fr; }
}

@media(max-width:719px) {
  .parity-settings-group .category-row { grid-template-columns: 34px minmax(0, 1fr); }
  .parity-settings-group .parity-category-actions { grid-column: 1 / -1; flex-wrap: wrap; justify-content: flex-end; }
  .web-data-list { grid-template-columns: 1fr; gap: 4px; }
  .web-data-list dd + dt { margin-top: 8px; }
}
