/* Phase 4 smart irrigation */
.phase4-irrigation-page { gap: var(--space-md); }
.phase4-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--space-md); flex: 0 0 104px; }
.phase4-summary-card { position: relative; min-width: 0; padding: var(--space-md) var(--space-lg); overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-bg-surface); }
.phase4-summary-card::before { content: ""; position: absolute; top: 0; left: 0; width: 76px; height: 2px; background: linear-gradient(90deg,var(--color-primary),transparent); }
.phase4-summary-card.is-accent::before { background: linear-gradient(90deg,var(--color-accent),transparent); }
.phase4-summary-card.is-warning::before { background: linear-gradient(90deg,var(--color-warning),transparent); }
.phase4-summary-card__label { color: var(--color-text-tertiary); font-size: var(--text-small); }
.phase4-summary-card__value { margin-top: 5px; color: var(--color-text-primary); font-family: var(--font-mono); font-size: 28px; font-weight: 700; line-height: 1; }
.phase4-summary-card__unit { margin-left: 5px; color: var(--color-text-secondary); font-family: var(--font-sans); font-size: var(--text-small); font-weight: 400; }
.phase4-summary-card__note { margin-top: 6px; overflow: hidden; color: var(--color-text-tertiary); font-size: var(--text-micro); text-overflow: ellipsis; white-space: nowrap; }
.phase4-workspace { display: grid; grid-template-columns: minmax(0,1.46fr) minmax(390px,.72fr); grid-template-rows: minmax(0,1fr) 310px; gap: var(--space-md); min-height: 0; }
.phase4-card { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding-bottom: var(--space-md); }
.phase4-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); }
.phase4-heading__left { display: flex; align-items: center; min-width: 0; }
.phase4-heading__left::before { content: ""; width: 4px; height: 22px; margin-right: var(--space-sm); border-radius: 2px; background: var(--color-primary); }
.phase4-heading__title { color: var(--color-text-primary); font-size: var(--text-h3); font-weight: 700; }
.phase4-heading__meta { margin-left: var(--space-sm); color: var(--color-text-tertiary); font-size: var(--text-micro); }
.phase4-readonly { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border: 1px solid var(--color-border); border-radius: 999px; color: var(--color-text-tertiary); background: var(--color-bg-elevated); font-size: var(--text-micro); }
.phase4-readonly::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--color-info); }
.phase4-map-panel { position: relative; flex: 1; min-height: 0; margin-top: var(--space-sm); overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: linear-gradient(var(--color-border) 1px,transparent 1px),linear-gradient(90deg,var(--color-border) 1px,transparent 1px),var(--color-bg-elevated); background-size: 48px 48px; }
.phase4-map-panel::before { content: ""; position: absolute; z-index: 0; left: 8%; right: 8%; top: 49%; height: 5px; border-radius: 4px; background: var(--color-accent); opacity: .36; }
.phase4-map-panel::after { content: ""; position: absolute; z-index: 0; top: 10%; bottom: 10%; left: 50%; width: 5px; border-radius: 4px; background: var(--color-accent); opacity: .28; }
.phase4-map-panel::before,.phase4-map-panel::after { display: none; }
.phase4-zone-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(0,1fr)); gap: 14px 18px; height: 100%; padding: 26px 30px; }
.phase4-zone { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-width: 0; min-height: 0; padding: 14px 16px; overflow: hidden; border: 1px solid var(--color-primary-border); border-radius: 18px 7px 18px 7px; background: color-mix(in srgb,var(--color-success-bg) 88%,var(--color-bg-surface)); cursor: pointer; outline: none; transition: transform var(--duration-fast),border-color var(--duration-fast),box-shadow var(--duration-fast); }
.phase4-zone:nth-child(even) { border-radius: 7px 18px 7px 18px; }
.phase4-zone:hover,.phase4-zone:focus-visible,.phase4-zone.is-selected { z-index: 2; transform: translateY(-2px); border-color: var(--color-primary); box-shadow: 0 0 18px var(--color-primary-glow),inset 3px 0 0 var(--color-primary); }
.phase4-zone.is-warning { border-color: var(--color-warning-border); background: var(--color-warning-bg); }
.phase4-zone.is-complete { border-color: var(--color-info-border); background: var(--color-info-bg); }
.phase4-zone__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.phase4-zone__name { color: var(--color-text-primary); font-size: var(--text-body); font-weight: 700; }
.phase4-zone__area { margin-top: 3px; color: var(--color-text-tertiary); font-size: var(--text-micro); }
.phase4-zone__status { flex-shrink: 0; padding: 2px 7px; border-radius: 999px; color: var(--color-primary); background: var(--color-success-bg); font-size: 10px; }
.phase4-zone.is-warning .phase4-zone__status { color: var(--color-warning); background: var(--color-warning-bg); }
.phase4-zone.is-complete .phase4-zone__status { color: var(--color-info); background: var(--color-info-bg); }
.phase4-zone__metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 7px; }
.phase4-zone__metric-label { color: var(--color-text-tertiary); font-size: 10px; }
.phase4-zone__metric-value { margin-top: 1px; color: var(--color-text-primary); font-family: var(--font-mono); font-size: var(--text-small); }
.phase4-progress { height: 6px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: var(--color-bg-active); }
.phase4-progress__bar { height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--color-accent),var(--color-primary)); }
.phase4-zone.is-warning .phase4-progress__bar { background: linear-gradient(90deg,var(--color-warning),var(--color-danger)); }
.phase4-map-legend { position: absolute; z-index: 3; right: 8px; bottom: 7px; display: flex; gap: 10px; padding: 5px 8px; border-radius: 5px; color: var(--color-text-secondary); background: var(--color-visual-label-bg); font-size: 10px; }
.phase4-map-legend span { display: inline-flex; align-items: center; gap: 4px; }
.phase4-map-legend i { width: 8px; height: 8px; border-radius: 2px; background: var(--color-primary); }
.phase4-map-legend .wait { background: var(--color-info); }
.phase4-map-legend .warning { background: var(--color-warning); }
.phase4-detail { flex: 1; min-height: 0; margin-top: var(--space-sm); overflow-y: auto; }
.phase4-detail-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-md); padding: var(--space-md); border: 1px solid var(--color-primary-border); border-radius: var(--radius-md); background: var(--color-success-bg); }
.phase4-detail-hero__name { color: var(--color-text-primary); font-size: var(--text-h3); font-weight: 700; }
.phase4-detail-hero__meta { margin-top: 4px; color: var(--color-text-secondary); font-size: var(--text-small); }
.phase4-task-progress { margin: var(--space-md) 0; padding: var(--space-md); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-bg-elevated); }
.phase4-task-progress__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); color: var(--color-text-secondary); font-size: var(--text-small); }
.phase4-task-progress__value { color: var(--color-primary); font-family: var(--font-mono); font-size: var(--text-body); font-weight: 700; }
.phase4-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.phase4-detail-field { padding: 9px 10px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg-elevated); }
.phase4-detail-field__label { color: var(--color-text-tertiary); font-size: var(--text-micro); }
.phase4-detail-field__value { margin-top: 3px; color: var(--color-text-primary); font-size: var(--text-small); font-weight: 600; }
.phase4-device-list { display: flex; flex-direction: column; gap: 6px; margin-top: var(--space-md); }
.phase4-device { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding: 8px 10px; border-radius: var(--radius-sm); background: var(--color-bg-elevated); }
.phase4-device__name { color: var(--color-text-secondary); font-size: var(--text-small); }
.phase4-device__id { margin-left: 5px; color: var(--color-text-tertiary); font-family: var(--font-mono); font-size: 10px; }
.phase4-device__status { color: var(--color-primary); font-size: var(--text-micro); }
.phase4-device__status.is-warning { color: var(--color-warning); }
.phase4-range-controls,.phase4-alert-filters { display: flex; gap: 4px; padding: 3px; border-radius: var(--radius-sm); background: var(--color-bg-elevated); }
.phase4-control-btn { min-height: 30px; padding: 0 10px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--color-text-secondary); font: inherit; font-size: var(--text-micro); cursor: pointer; }
.phase4-control-btn:hover { color: var(--color-text-primary); background: var(--color-bg-hover); }
.phase4-control-btn.is-active { color: var(--color-primary); border-color: var(--color-primary-border); background: var(--color-success-bg); }
.phase4-chart-summary { display: flex; align-items: center; gap: var(--space-lg); margin: var(--space-sm) 0 2px; color: var(--color-text-tertiary); font-size: var(--text-micro); }
.phase4-chart-summary strong { margin-left: 4px; color: var(--color-text-primary); font-family: var(--font-mono); font-size: var(--text-small); }
.phase4-water-chart { flex: 1; width: 100%; min-height: 150px; }
.phase4-chart-grid line { stroke: var(--color-border); stroke-width: 1; }
.phase4-chart-axis { fill: var(--color-text-tertiary); font-size: 10px; }
.phase4-chart-area { fill: var(--color-primary-glow); }
.phase4-chart-line { fill: none; stroke: var(--color-primary); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.phase4-chart-point { cursor: pointer; outline: none; }
.phase4-chart-point circle { fill: var(--color-bg-surface); stroke: var(--color-primary); stroke-width: 2; transition: r var(--duration-fast); }
.phase4-chart-point:hover circle,.phase4-chart-point:focus circle,.phase4-chart-point.is-selected circle { r: 6; fill: var(--color-primary); }
.phase4-chart-selection { min-height: 20px; color: var(--color-text-secondary); font-size: var(--text-micro); }
.phase4-alert-list { display: flex; flex-direction: column; gap: 7px; min-height: 0; margin-top: var(--space-sm); overflow-y: auto; }
.phase4-alert { display: grid; grid-template-columns: 6px minmax(0,1fr) auto; gap: 9px; align-items: stretch; padding: 9px 10px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg-elevated); cursor: pointer; }
.phase4-alert:hover,.phase4-alert.is-selected { border-color: var(--color-primary-border); background: var(--color-bg-hover); }
.phase4-alert__bar { border-radius: 3px; background: var(--color-warning); }
.phase4-alert.is-danger .phase4-alert__bar { background: var(--color-danger); }
.phase4-alert.is-resolved .phase4-alert__bar { background: var(--color-primary); }
.phase4-alert__title { color: var(--color-text-primary); font-size: var(--text-small); font-weight: 600; }
.phase4-alert__meta { margin-top: 3px; overflow: hidden; color: var(--color-text-tertiary); font-size: var(--text-micro); text-overflow: ellipsis; white-space: nowrap; }
.phase4-alert__side { text-align: right; }
.phase4-alert__status { color: var(--color-warning); font-size: 10px; }
.phase4-alert.is-resolved .phase4-alert__status { color: var(--color-primary); }
.phase4-alert__time { margin-top: 5px; color: var(--color-text-tertiary); font-family: var(--font-mono); font-size: 10px; }
.phase4-home-card { cursor: pointer; }
.phase4-home-card:hover { border-color: var(--color-primary-border); background: var(--color-bg-hover); }
:root[data-theme="light"] .phase4-summary-card,:root[data-theme="light"] .phase4-card { background: rgba(255,255,255,.94); }
:root[data-theme="light"] .phase4-map-legend { color: #486057; background: rgba(255,255,255,.92); box-shadow: 0 1px 5px rgba(34,62,51,.12); }
