.irrigation-app {
    --irrigation-ink: #082a4b;
    --irrigation-muted: #536b82;
    --irrigation-line: #d8e2eb;
    --irrigation-soft: #f2f6fa;
    --irrigation-accent: #017efc;
    --irrigation-green: #247b61;
    padding: 2.5rem 1rem 5rem;
    color: var(--irrigation-ink);
    background: #f7f9fc;
}

/* Triedy ako .irrigation-button nastavujú display a prebíjajú predvolené
   skrytie cez atribút [hidden] – preto musí byť [hidden] explicitné. */
.irrigation-app [hidden] {
    display: none !important;
}

.irrigation-shell {
    max-width: 1320px;
    margin: 0 auto;
}

.irrigation-intro,
.irrigation-panel-heading,
.irrigation-navigation,
.irrigation-map-caption,
.irrigation-summary-stat,
.irrigation-summary-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.irrigation-intro {
    align-items: flex-end;
    margin-bottom: 2rem;
}

.irrigation-intro-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.irrigation-share-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.75rem;
    border: 1px solid #cfe0f2;
    border-left: 3px solid var(--irrigation-accent);
    border-radius: 0 12px 12px 0;
    padding: .9rem 1.1rem;
    background: #f0f7ff;
    line-height: 1.55;
}

.irrigation-share-banner div {
    display: grid;
    gap: .15rem;
}

.irrigation-share-banner span {
    color: var(--irrigation-muted);
}

.irrigation-share-banner a {
    color: var(--irrigation-accent);
    font-weight: 650;
}

.irrigation-share-panel {
    margin-bottom: 1.75rem;
    border: 1px solid var(--irrigation-line);
    border-radius: 14px;
    padding: 1rem 1.1rem;
    background: #fff;
    box-shadow: 0 14px 34px rgba(8, 42, 75, .09);
}

.irrigation-share-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .65rem;
}

.irrigation-share-close {
    border: 0;
    padding: 0 .2rem;
    color: var(--irrigation-muted);
    background: none;
    font-size: 1.45rem;
    line-height: 1;
    cursor: pointer;
}

.irrigation-share-row {
    display: flex;
    gap: .6rem;
}

.irrigation-share-row input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 46px;
    border: 1px solid #bbc9d6;
    border-radius: 8px;
    padding: .62rem .7rem;
    color: var(--irrigation-ink);
    background: var(--irrigation-soft);
    font: inherit;
}

.irrigation-share-hint {
    margin: .65rem 0 0;
    color: var(--irrigation-muted);
    font-size: .92rem;
}

.irrigation-share-hint a {
    color: var(--irrigation-accent);
    font-weight: 650;
}

.irrigation-kicker {
    margin: 0 0 .65rem;
    color: var(--irrigation-accent);
    font-size: .82rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.irrigation-intro h1 {
    max-width: 760px;
    margin: 0;
    color: var(--irrigation-ink);
    font-size: clamp(2rem, 4vw, 3.35rem);
    font-weight: 760;
    letter-spacing: -.045em;
    line-height: 1.08;
}

.irrigation-lead {
    max-width: 650px;
    margin: .85rem 0 0;
    color: var(--irrigation-muted);
    font-size: 1.05rem;
    line-height: 1.6;
}

.irrigation-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 10px;
    padding: .7rem 1.15rem;
    font: inherit;
    font-weight: 700;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.irrigation-button:active {
    transform: translateY(1px);
}

.irrigation-button:disabled {
    opacity: .55;
    cursor: progress;
}

.irrigation-button:focus-visible,
.irrigation-steps button:focus-visible,
.irrigation-variant-tile:focus-visible,
.irrigation-app input:focus-visible,
.irrigation-app select:focus-visible,
.irrigation-app svg:focus-visible {
    outline: 3px solid #70b6ff;
    outline-offset: 2px;
}

.irrigation-button-primary {
    color: #fff;
    background: var(--irrigation-ink);
}

.irrigation-button-primary:hover {
    background: #0d3d6b;
}

.irrigation-button-secondary {
    color: var(--irrigation-ink);
    border-color: var(--irrigation-line);
    background: #fff;
}

.irrigation-button-secondary:hover {
    border-color: #9ab1c7;
    background: #f4f8fc;
}

.irrigation-steps {
    margin-bottom: 1.5rem;
    border: 1px solid var(--irrigation-line);
    border-radius: 14px;
    padding: 1rem 1.25rem .85rem;
    background: #fff;
}

.irrigation-steps ol {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.irrigation-steps button {
    display: flex;
    width: 100%;
    align-items: center;
    gap: .6rem;
    border: 0;
    padding: .25rem .35rem;
    color: #64788b;
    background: transparent;
    font: inherit;
    font-size: .9rem;
    font-weight: 650;
    text-align: left;
    cursor: pointer;
}

.irrigation-steps button span {
    display: inline-flex;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--irrigation-muted);
    background: #edf2f7;
    font-size: .78rem;
}

.irrigation-steps button[aria-current="step"],
.irrigation-steps button.is-complete {
    color: var(--irrigation-ink);
}

.irrigation-steps button[aria-current="step"] span,
.irrigation-steps button.is-complete span {
    color: #fff;
    background: var(--irrigation-accent);
}

.irrigation-progress-track {
    height: 3px;
    overflow: hidden;
    margin: .85rem .35rem 0;
    border-radius: 3px;
    background: #e8eef4;
}

.irrigation-progress-track span {
    display: block;
    width: 20%;
    height: 100%;
    background: var(--irrigation-accent);
    transition: width .2s ease;
}

.irrigation-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: start;
    gap: 1.35rem;
}

.irrigation-main,
.irrigation-summary {
    border: 1px solid var(--irrigation-line);
    border-radius: 14px;
    background: #fff;
}

.irrigation-main {
    min-width: 0;
    padding: clamp(1.1rem, 2.6vw, 2rem);
}

.irrigation-panel-heading {
    align-items: flex-start;
    margin-bottom: 1.5rem;
}

.irrigation-panel-heading h2,
.irrigation-summary h2 {
    margin: 0;
    color: var(--irrigation-ink);
    font-size: clamp(1.3rem, 2.4vw, 1.75rem);
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.25;
}

.irrigation-panel-heading p {
    max-width: 700px;
    margin: .5rem 0 0;
    color: var(--irrigation-muted);
    line-height: 1.55;
}

.irrigation-area-list {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-bottom: 1.25rem;
}

.irrigation-area-chip {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    gap: .45rem;
    border: 1px solid var(--irrigation-line);
    border-radius: 8px;
    padding: .4rem .7rem;
    color: var(--irrigation-ink);
    background: #fff;
    font: inherit;
    font-size: .88rem;
    cursor: pointer;
}

.irrigation-area-chip[aria-pressed="true"] {
    border-color: var(--irrigation-accent);
    background: #eef7ff;
}

.irrigation-area-chip-remove {
    border: 0;
    padding: 0 .1rem;
    color: #6b7f91;
    background: transparent;
    font-size: 1.05rem;
    cursor: pointer;
}

.irrigation-area-editor {
    display: grid;
    grid-template-columns: minmax(230px, .82fr) minmax(0, 1.18fr);
    gap: 1.5rem;
    align-items: start;
}

.irrigation-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.irrigation-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .45rem;
    color: var(--irrigation-ink);
    font-size: .91rem;
    font-weight: 650;
}

.irrigation-field input,
.irrigation-field select {
    width: 100%;
    min-height: 45px;
    border: 1px solid #bbc9d6;
    border-radius: 8px;
    padding: .62rem .7rem;
    color: var(--irrigation-ink);
    background: #fff;
    font: inherit;
    font-weight: 450;
}

.irrigation-shape-field,
.irrigation-measurement {
    min-width: 0;
    margin: 0;
    border: 1px solid var(--irrigation-line);
    border-radius: 10px;
    padding: .8rem;
}

.irrigation-shape-field legend,
.irrigation-measurement legend {
    padding: 0 .3rem;
    font-size: .88rem;
    font-weight: 700;
}

.irrigation-choice-row {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.irrigation-choice-row label,
.irrigation-check {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--irrigation-ink);
    font-size: .9rem;
}

.irrigation-choice-row input,
.irrigation-check input {
    accent-color: var(--irrigation-accent);
}

.irrigation-map-wrap {
    min-width: 0;
    border: 1px solid var(--irrigation-line);
    border-radius: 12px;
    padding: .85rem;
    background: #fbfdff;
}

.irrigation-map-caption {
    margin-bottom: .65rem;
    font-size: .9rem;
    font-weight: 700;
}

.irrigation-map-caption span:last-child,
.irrigation-map-note {
    color: var(--irrigation-muted);
    font-size: .78rem;
    font-weight: 450;
}

.irrigation-map-wrap svg,
.irrigation-result-map svg {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.irrigation-map-ground {
    fill: #f6faf7;
    stroke: #c8d8cd;
}

.irrigation-map-area {
    fill: rgba(1, 126, 252, .2);
    stroke: #017efc;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.irrigation-map-area.is-active {
    fill: rgba(1, 126, 252, .28);
    stroke: #082a4b;
    stroke-width: 3;
}

.irrigation-map-point {
    fill: #fff;
    stroke: #017efc;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
    pointer-events: none;
}

.irrigation-map-point.is-selected {
    fill: #017efc;
    stroke: #fff;
    stroke-width: 3;
}

.irrigation-map-point.is-dragging {
    fill: #082a4b;
    stroke: #fff;
}

.irrigation-map-point-hit {
    fill: transparent;
    stroke: none;
    cursor: grab;
    pointer-events: all;
}

.irrigation-map-point-hit:active {
    cursor: grabbing;
}

.irrigation-map-point-hit:focus-visible {
    outline: none;
    fill: rgba(1, 126, 252, .12);
}

.irrigation-map-point-label {
    fill: #082a4b;
    font-size: 10px;
    font-weight: 700;
    pointer-events: none;
}

.irrigation-draw-hint button {
    margin-left: 8px;
    border: 1px solid rgba(1, 126, 252, .4);
    border-radius: 999px;
    background: #fff;
    padding: 3px 10px;
    font-size: .78rem;
    font-weight: 700;
    color: #017efc;
    cursor: pointer;
}

.irrigation-draw-hint button:hover {
    background: rgba(1, 126, 252, .08);
}

.irrigation-map-wrap.is-drawing svg {
    cursor: crosshair;
}

.irrigation-map-note {
    margin: .65rem 0 0;
    line-height: 1.45;
}

.irrigation-variant-field {
    min-width: 230px;
    font-weight: 600;
}

.irrigation-product-params {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .5rem;
    margin: .35rem 0 .5rem;
}

.irrigation-product-param {
    display: inline-block;
    border-radius: 6px;
    padding: .15rem .4rem;
    color: #41586e;
    background: #eef4fa;
    font-size: .74rem;
}

.irrigation-warning-text {
    margin: .35rem 0;
    color: #8a4b0c;
}

.irrigation-draw-hint {
    grid-column: 1 / -1;
    color: var(--irrigation-muted);
    font-size: .84rem;
    line-height: 1.45;
}

.irrigation-draw-hint button {
    margin-left: .3rem;
    border: 0;
    color: #005fbf;
    background: transparent;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.irrigation-water-fields {
    max-width: 850px;
    margin-bottom: 1.25rem;
}

.irrigation-measurement {
    margin-bottom: 1.1rem;
    background: #fbfdff;
}

.irrigation-measurement > p {
    margin: 0 0 1rem;
    color: var(--irrigation-muted);
    line-height: 1.5;
}

.irrigation-measurement-fields {
    max-width: 560px;
}

.irrigation-flow-result {
    display: block;
    min-height: 1.5rem;
    margin-top: .85rem;
    color: var(--irrigation-ink);
    font-weight: 700;
}

.irrigation-check {
    margin: .25rem 0 1rem;
    font-weight: 650;
}

.irrigation-info-note {
    display: grid;
    gap: .3rem;
    border-left: 3px solid var(--irrigation-accent);
    border-radius: 0 8px 8px 0;
    padding: .9rem 1rem;
    color: var(--irrigation-ink);
    background: #f0f7ff;
    line-height: 1.5;
}

.irrigation-info-note span {
    color: var(--irrigation-muted);
}

.irrigation-warning-note {
    border-left-color: #b66a13;
    background: #fff8ed;
}

.irrigation-warning-note strong {
    color: #75430d;
}

.irrigation-warning-note span {
    color: #634f39;
}

.irrigation-method-list {
    display: grid;
    gap: .7rem;
    margin-bottom: 1.5rem;
}

.irrigation-method-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    border-bottom: 1px solid #e8eef3;
    padding: .8rem 0;
}

.irrigation-method-row strong {
    display: block;
}

.irrigation-method-row span {
    display: block;
    margin-top: .2rem;
    color: var(--irrigation-muted);
    font-size: .87rem;
}

.irrigation-method-row select {
    min-height: 42px;
    border: 1px solid #bbc9d6;
    border-radius: 8px;
    padding: .5rem .65rem;
    color: var(--irrigation-ink);
    background: #fff;
    font: inherit;
}

.irrigation-result-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(200px, .9fr);
    align-items: center;
    gap: 1.4rem;
    margin-bottom: 1.25rem;
}

.irrigation-result-map {
    border: 1px solid var(--irrigation-line);
    border-radius: 12px;
    padding: .6rem;
    background: #fbfdff;
}

.irrigation-result-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.irrigation-stat {
    border-radius: 10px;
    padding: .85rem;
    background: var(--irrigation-soft);
}

.irrigation-stat span,
.irrigation-stat strong {
    display: block;
}

.irrigation-stat span {
    color: var(--irrigation-muted);
    font-size: .8rem;
    line-height: 1.35;
}

.irrigation-stat strong {
    margin-top: .35rem;
    font-size: 1.15rem;
}

.irrigation-validation {
    margin-bottom: 1.2rem;
    color: var(--irrigation-muted);
    line-height: 1.55;
}

.irrigation-catalog-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, .55fr);
    gap: 1rem;
    margin-bottom: .75rem;
}

.irrigation-catalog-status {
    min-height: 1.4rem;
    margin: 0 0 .8rem;
    color: var(--irrigation-muted);
    font-size: .9rem;
}

.irrigation-product-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.irrigation-product {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: .8rem;
    border: 1px solid var(--irrigation-line);
    border-radius: 10px;
    padding: .75rem;
}

.irrigation-product img,
.irrigation-product-placeholder {
    width: 74px;
    height: 74px;
    border-radius: 7px;
    object-fit: contain;
    background: #f3f6f9;
}

.irrigation-product-placeholder {
    display: grid;
    place-items: center;
    color: var(--irrigation-muted);
    font-size: .72rem;
    text-align: center;
}

.irrigation-product h3 {
    margin: 0;
    color: var(--irrigation-ink);
    font-size: .94rem;
    line-height: 1.35;
}

.irrigation-product-meta {
    margin: .28rem 0;
    color: var(--irrigation-muted);
    font-size: .78rem;
    line-height: 1.4;
}

.irrigation-product-price {
    display: inline-block;
    margin: .15rem .5rem .25rem 0;
    font-weight: 750;
}

.irrigation-product-add {
    min-height: 34px;
    border: 1px solid var(--irrigation-accent);
    border-radius: 7px;
    padding: .35rem .6rem;
    color: #005fbf;
    background: #fff;
    font: inherit;
    font-size: .8rem;
    font-weight: 700;
    cursor: pointer;
}

.irrigation-product-add:disabled {
    color: #6c7884;
    border-color: #d4dce4;
    cursor: not-allowed;
}

.irrigation-navigation {
    justify-content: flex-end;
    margin-top: 1.6rem;
    border-top: 1px solid #e8eef3;
    padding-top: 1.2rem;
}

.irrigation-navigation #step-message {
    flex: 1;
    color: var(--irrigation-muted);
    font-size: .86rem;
}

.irrigation-inline-error {
    margin: 1rem 0 0;
    color: #a42f2a;
    font-weight: 650;
}

.irrigation-summary {
    position: sticky;
    top: 1rem;
    padding: 1.25rem;
}

.irrigation-summary h2 {
    margin-bottom: 1.1rem;
    font-size: 1.25rem;
}

.irrigation-summary-stat {
    align-items: flex-start;
    border-bottom: 1px solid #e8eef3;
    padding: .8rem 0;
    color: var(--irrigation-muted);
    font-size: .88rem;
}

.irrigation-summary-stat strong {
    max-width: 52%;
    color: var(--irrigation-ink);
    text-align: right;
}

.irrigation-summary-total {
    align-items: flex-start;
    margin-top: .25rem;
    padding-top: .9rem;
    font-size: .92rem;
}

.irrigation-summary-total strong {
    text-align: right;
}

.irrigation-summary > p {
    margin: .9rem 0;
    color: var(--irrigation-muted);
    font-size: .82rem;
    line-height: 1.5;
}

.irrigation-layout-panel {
    margin-bottom: 22px;
    padding: 18px;
    border: 1px solid rgba(8, 42, 75, .12);
    border-radius: 14px;
    background: #fff;
}

.irrigation-layout-fullscreen {
    border: 1px solid var(--irrigation-line);
    border-radius: 8px;
    padding: .35rem .7rem;
    color: var(--irrigation-ink);
    background: #fff;
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .18s ease, background-color .18s ease;
}

.irrigation-layout-fullscreen:hover {
    border-color: #9ab1c7;
    background: #f4f8fc;
}

/* Skryté meracie SVG – musí mať layout, aby sa dali zmerať šírky popiskov. */
.irrigation-layout-measure {
    position: absolute;
    top: 0;
    left: -10000px;
    width: 480px;
    height: 384px;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
}

/* ── Celá obrazovka pre výkres ───────────────────────────────────── */

html.irrigation-fullscreen-open,
html.irrigation-fullscreen-open body {
    overflow: hidden;
}

.irrigation-layout-panel.is-fullscreen {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin: 0;
    border: 0;
    border-radius: 0;
    padding: 1rem 1.25rem .75rem;
    background: #fff;
    overflow: hidden;
}

.irrigation-layout-panel.is-fullscreen .irrigation-map-caption {
    flex: 0 0 auto;
}

.irrigation-layout-panel.is-fullscreen #layout-map {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    margin: 0;
}

.irrigation-layout-panel.is-fullscreen .irrigation-map-note {
    display: none;
}

.irrigation-layout-panel.is-fullscreen .irrigation-legend {
    flex: 0 0 auto;
    margin-top: auto;
    border-top: 1px solid var(--irrigation-line);
    border-radius: 0;
    padding: .55rem 0 0;
    background: #fff;
}

.irrigation-layout-panel.is-fullscreen .irrigation-legend-bar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.irrigation-layout-panel.is-fullscreen .irrigation-legend-heading {
    /* V zasunutej lište stačí samotné tlačidlo „Legenda“ so šípkou. */
    display: none;
}

.irrigation-layout-panel.is-fullscreen .irrigation-legend-toggle {
    display: inline-flex;
}

.irrigation-layout-panel.is-fullscreen .irrigation-legend-list {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    max-height: 0;
    padding-top: 0;
    overflow: hidden;
    transition: max-height .28s ease, padding-top .28s ease;
}

.irrigation-layout-panel.is-fullscreen .irrigation-legend.is-open .irrigation-legend-list {
    max-height: 46vh;
    padding-top: .7rem;
    overflow-y: auto;
}

.irrigation-layout-panel #layout-map {
    display: block;
    width: 100%;
    max-width: 760px;
    height: auto;
    margin: 0 auto;
    border-radius: 10px;
}

.irrigation-layout-area {
    /* Hranica plochy je len obrys – tenká a svetlá, aby sa neplietla
       s potrubím a hadicou, ktoré sa kreslia dovnútra. */
    stroke-width: 1.5;
    stroke-opacity: .55;
    vector-effect: non-scaling-stroke;
}

.irrigation-layout-coverage {
    opacity: .16;
}

.irrigation-layout-head {
    stroke: #fff;
    stroke-width: 1.4;
}

.irrigation-layout-head-number {
    fill: var(--irrigation-ink);
    font-size: 6.6px;
    font-weight: 750;
}

.irrigation-layout-drip {
    stroke-width: 3;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
    opacity: .75;
}

.irrigation-layout-dripper {
    stroke: #fff;
    stroke-width: 1;
}

.irrigation-layout-pipe {
    fill: none;
    stroke: #8fa6bd;
    stroke-width: 2;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

.irrigation-layout-pipe.is-main {
    stroke: #082a4b;
    stroke-width: 3;
}

/* Hadica k postrekovačom (laterál) v ploche – čiarkovane a farbou atramentu
   (nie farbou zóny, ktorá kreslí obrys plochy), aby sa dala odlíšiť od hranice
   plochy aj od tuhého rozvodu. */
.irrigation-layout-pipe.is-hose {
    stroke: #082a4b;
    stroke-width: 1.6;
    stroke-dasharray: 7 5;
}

/* Ovládací kábel od riadiacej jednotky k elektromagnetickým ventilom. */
.irrigation-layout-signal {
    fill: none;
    stroke: #8fa6bd;
    stroke-width: 1.2;
    stroke-dasharray: 2 4;
}

.irrigation-layout-valve {
    stroke: #fff;
    stroke-width: 1;
}

.irrigation-layout-valve-label,
.irrigation-layout-label {
    fill: #082a4b;
    font-size: 11px;
    font-weight: 700;
}

/* ── Porovnanie variantov ───────────────────────────────────────── */

.irrigation-variant-compare {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1.1rem;
}

.irrigation-variant-tile {
    display: grid;
    gap: .15rem;
    border: 1px solid var(--irrigation-line);
    border-radius: 12px;
    padding: .8rem .95rem;
    color: var(--irrigation-ink);
    background: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.irrigation-variant-tile:hover {
    border-color: var(--irrigation-accent);
}

.irrigation-variant-tile:active {
    transform: translateY(1px);
}

.irrigation-variant-tile.is-active {
    border-color: var(--irrigation-accent);
    background: #f2f8ff;
    box-shadow: inset 0 0 0 1px var(--irrigation-accent);
}

.irrigation-variant-name {
    color: var(--irrigation-muted);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.irrigation-variant-tile.is-active .irrigation-variant-name {
    color: #005fbf;
}

.irrigation-variant-tile strong {
    font-size: 1.15rem;
}

.irrigation-variant-note {
    color: var(--irrigation-muted);
    font-size: .76rem;
    line-height: 1.4;
}

.irrigation-compute-status {
    margin: 0 0 .9rem;
    color: var(--irrigation-muted);
    font-size: .86rem;
}

.irrigation-compute-status:empty {
    display: none;
}

/* ── Technický výkres a legenda značiek ─────────────────────────── */

.irrigation-layout-frame-line {
    fill: none;
    stroke: #c3d3e2;
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.irrigation-layout-title {
    fill: var(--irrigation-ink);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .08em;
}

.irrigation-layout-subtitle {
    fill: var(--irrigation-muted);
    font-size: 9.5px;
}

.irrigation-layout-symbol {
    fill: none;
    stroke: #082a4b;
    stroke-width: 1.3;
    vector-effect: non-scaling-stroke;
}

.irrigation-layout-symbol-line {
    fill: none;
    stroke: #082a4b;
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.irrigation-layout-symbol-fill {
    fill: #082a4b;
}

.irrigation-layout-rotor {
    fill: none;
    stroke: #082a4b;
    stroke-width: 1.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
    opacity: .8;
}

.irrigation-layout-dim,
.irrigation-layout-dim-text {
    fill: var(--irrigation-muted);
    stroke: #8fa6bd;
    stroke-width: .8;
    vector-effect: non-scaling-stroke;
}

.irrigation-layout-dim-text {
    stroke: none;
    font-size: 8.5px;
    font-weight: 600;
}

.irrigation-layout-equipment-label {
    fill: var(--irrigation-ink);
    font-size: 8px;
    font-weight: 700;
}

.irrigation-scale-fill {
    fill: #082a4b;
    stroke: #082a4b;
    stroke-width: .6;
}

.irrigation-scale-empty {
    fill: #fff;
    stroke: #082a4b;
    stroke-width: .6;
}

.irrigation-legend {
    margin-top: .85rem;
    border-top: 1px solid var(--irrigation-line);
    padding-top: .85rem;
}

.irrigation-legend-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.irrigation-legend-toggle {
    display: none;
    align-items: center;
    gap: .4rem;
    border: 1px solid var(--irrigation-line);
    border-radius: 999px;
    padding: .35rem .85rem;
    color: var(--irrigation-ink);
    background: #fff;
    font: inherit;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
}

.irrigation-legend-toggle svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .2s ease;
}

.irrigation-legend.is-open .irrigation-legend-toggle svg {
    transform: rotate(180deg);
}

.irrigation-legend-heading {
    margin: 0 0 .55rem;
    color: var(--irrigation-muted);
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.irrigation-legend-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem 1.1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.irrigation-legend-item {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: .5rem;
}

.irrigation-legend-symbol {
    width: 44px;
    height: 30px;
    border: 1px solid var(--irrigation-line);
    border-radius: 6px;
    background: #fff;
}

.irrigation-legend-text {
    display: grid;
    gap: .1rem;
    color: var(--irrigation-ink);
    font-size: .8rem;
    line-height: 1.35;
}

.irrigation-legend-text strong {
    font-weight: 650;
}

.irrigation-legend-text span {
    color: var(--irrigation-muted);
    font-size: .75rem;
}

@media (max-width: 767px) {
    .irrigation-legend-list {
        grid-template-columns: 1fr;
    }
}

/* ── Zostava rozdelená podľa plôch ──────────────────────────────── */

.irrigation-assembly-actions {
    display: flex;
    justify-content: flex-start;
    gap: .6rem;
    margin-bottom: 1rem;
}

.irrigation-assembly-block {
    margin-bottom: 22px;
    padding: 18px;
    border: 1px solid rgba(8, 42, 75, .12);
    border-radius: 14px;
    background: #fff;
}

.irrigation-assembly-block .irrigation-map-caption {
    flex-wrap: wrap;
    gap: .3rem 1rem;
}

.irrigation-assembly-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.irrigation-assembly {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--irrigation-line);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.irrigation-assembly.is-shared {
    grid-column: 1 / -1;
    background: var(--irrigation-soft);
}

.irrigation-assembly-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 4px 12px;
    border-bottom: 1px solid var(--irrigation-line);
    padding: 14px 16px;
}

.irrigation-assembly-badge {
    grid-column: 1 / -1;
    justify-self: start;
    border: 1px solid var(--irrigation-line);
    border-radius: 999px;
    padding: 3px 10px;
    color: var(--irrigation-ink);
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.irrigation-assembly-head h3 {
    margin: 0;
    color: var(--irrigation-ink);
    font-size: 1.02rem;
    line-height: 1.3;
}

.irrigation-assembly-meta,
.irrigation-assembly-summary {
    margin: 0;
    color: var(--irrigation-muted);
    font-size: .8rem;
    line-height: 1.45;
}

.irrigation-assembly-meta {
    margin-top: .2rem;
}

.irrigation-assembly-subtotal {
    grid-column: 2;
    grid-row: 2 / span 3;
    align-self: start;
    color: var(--irrigation-ink);
    font-size: 1rem;
    font-weight: 800;
    text-align: right;
    white-space: nowrap;
}

.irrigation-assembly-products {
    margin: 0;
    padding: 4px 16px 10px;
    list-style: none;
}

.irrigation-assembly-products li {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid #e8eef3;
    padding: 10px 0;
}

.irrigation-assembly-products li:last-child {
    border-bottom: 0;
}

.irrigation-assembly-thumb {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 8px;
    background: #f3f6f9;
    color: var(--irrigation-muted);
    font-size: .64rem;
    line-height: 1.2;
    text-align: center;
    overflow: hidden;
}

.irrigation-assembly-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.irrigation-assembly-product-body {
    display: grid;
    gap: 3px;
}

.irrigation-assembly-product-body a {
    color: var(--irrigation-ink);
    font-size: .88rem;
    font-weight: 650;
    line-height: 1.35;
    text-decoration: none;
}

.irrigation-assembly-product-body a:hover {
    text-decoration: underline;
}

.irrigation-assembly-product-meta {
    color: var(--irrigation-muted);
    font-size: .76rem;
    line-height: 1.4;
}

.irrigation-assembly-product-total {
    color: var(--irrigation-ink);
    white-space: nowrap;
}

.irrigation-assembly-empty {
    margin: 0;
    padding: 12px 16px;
    color: var(--irrigation-muted);
    font-size: .82rem;
    line-height: 1.5;
}

.irrigation-qty-stepper {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .4rem;
}

.irrigation-qty-btn {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid #bbc9d6;
    border-radius: 8px;
    color: var(--irrigation-ink);
    background: #fff;
    font: inherit;
    font-size: 1.05rem;
    line-height: 1;
    cursor: pointer;
}

.irrigation-qty-btn:hover:not(:disabled) {
    background: var(--irrigation-soft);
}

.irrigation-qty-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.irrigation-qty-value {
    min-width: 2.4rem;
    text-align: center;
    color: var(--irrigation-ink);
    font-size: .85rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.irrigation-assembly-remove {
    justify-self: start;
    border: 0;
    padding: 0;
    color: #8a3b39;
    background: transparent;
    font: inherit;
    font-size: .76rem;
    cursor: pointer;
    text-decoration: underline;
}

.irrigation-assembly-remove:hover {
    text-decoration: none;
}

@media (max-width: 1000px) {
    .irrigation-workspace {
        grid-template-columns: minmax(0, 1fr) 260px;
    }

    .irrigation-area-editor {
        grid-template-columns: 1fr;
    }

    .irrigation-assembly-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .irrigation-app {
        padding: 1.4rem .75rem 3rem;
    }

    .irrigation-intro {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
        margin-bottom: 1.25rem;
    }

    .irrigation-intro h1 {
        font-size: clamp(1.8rem, 8vw, 2.6rem);
    }

    .irrigation-share-row {
        flex-direction: column;
    }

    .irrigation-layout-panel .irrigation-map-caption {
        flex-wrap: wrap;
        gap: .5rem 1rem;
    }

    .irrigation-steps {
        overflow-x: auto;
        padding: .75rem .65rem;
    }

    .irrigation-steps ol {
        min-width: 540px;
        gap: .15rem;
    }

    .irrigation-steps button {
        gap: .4rem;
        font-size: .8rem;
    }

    .irrigation-steps button span {
        width: 25px;
        height: 25px;
        flex-basis: 25px;
    }

    .irrigation-workspace {
        grid-template-columns: 1fr;
    }

    .irrigation-main {
        padding: 1rem;
    }

    .irrigation-panel-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .85rem;
    }

    .irrigation-fields,
    .irrigation-result-grid,
    .irrigation-catalog-controls,
    .irrigation-product-grid {
        grid-template-columns: 1fr;
    }

    .irrigation-variant-compare {
        grid-template-columns: 1fr;
    }

    .irrigation-shape-field {
        grid-column: auto;
    }

    .irrigation-summary {
        position: static;
        order: -1;
    }

    .irrigation-navigation {
        flex-wrap: wrap;
    }

    .irrigation-navigation #step-message {
        flex-basis: 100%;
        order: 3;
    }

    .irrigation-navigation .irrigation-button {
        flex: 1;
    }

    .irrigation-assembly-head {
        grid-template-columns: minmax(0, 1fr);
    }

    .irrigation-assembly-subtotal {
        grid-column: 1;
        grid-row: auto;
        justify-self: start;
        text-align: left;
    }

    .irrigation-assembly-products li {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .irrigation-assembly-thumb {
        width: 48px;
        height: 48px;
    }

    .irrigation-assembly-product-total {
        grid-column: 2;
    }
}

@media (prefers-reduced-motion: reduce) {
    .irrigation-app *,
    .irrigation-app *::before,
    .irrigation-app *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
