:root {
    --color-bg: #f4f9fc;
    --color-ink: #16334a;
    --color-ink-muted: #627c8e;
    --color-primary: #126493;
    --color-primary-dark: #103f67;
    --color-water: #2ca4bf;
    --color-sediment: #8bd2de;
    --color-border: #dcebf1;
    --color-border-strong: #bcd4df;
}
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
body { background: radial-gradient(circle at 90% 0, #e5f4fa 0, transparent 34rem), var(--color-bg); }
.site-header { border-bottom-color: #d9eaf2; }
.site-header__brand small { color: #5b7a8c; }
.brand-icon { background: #e5f6fc; }
.site-nav a:hover, .nav-logout button:hover { background: #e9f6fb; color: var(--color-primary); }
.site-nav a.site-nav__cta { background: #156a97; }
.site-footer { background: #103f67; }
.btn--secondary:hover, .btn--light:hover { background: #e9f7fb; }
.section-kicker, .eyebrow { color: #1783a5; }
.eyebrow { background: #fff9; border-color: #cce7f0; }
.eyebrow__dot { background: #2ea8ba; }
.hero { background: linear-gradient(120deg, #e9f7fc, #d8f0f6 55%, #cce6f0); }
.hero h1 { color: #143f64; }
.hero h1 em { color: #1785aa; }
.hero__copy > p { color: #52738a; }
.hero__note { color: #45738c; }
.hero__note span { color: #249bb7; }
.scene__sun { background: #bfeef8; box-shadow: 0 0 0 22px #ffffff65; }
.scene__hill--back { background: #97d2dc; }
.scene__hill--front { background: #66b5c5; }
.scene__field { background: repeating-linear-gradient(173deg, #287e9f 0 15px, #3793b3 15px 27px, #65b3c8 27px 34px); }
.scene__well-shaft { background: linear-gradient(90deg, #235c80, #478dad 50%, #215b80); }
.scene__well-top { border-color: #226c91; }
.scene__lines i { background: #a1dce9; }
.scene__lines i:nth-child(2) { background: #3997b8; }
.scene__lines i:nth-child(3) { background: #73c4d4; }
.trust-strip__icon, .step-card__number { background: #e6f6fa; color: #2285a4; }
.home-banner { background: linear-gradient(115deg, #13466d, #156e96); }
.home-banner .section-kicker { color: #b2e8f3; }
.home-banner p { color: #d8f2f8; }
.panel, .step-card, .trust-strip > div { box-shadow: 0 14px 45px #164e7310; }
.panel__title, h1, h2, h3 { color: #174562; }
.form-row__label, .result-block__title { color: #155b81; }
input:focus, select:focus, textarea:focus { border-color: #258db0; box-shadow: 0 0 0 3px #ccecf5; }
input[type="checkbox"] { accent-color: #187da7; }
.diagnosis-index a { background: #e8f6fb; border-color: #cae5ee; color: #215c7d; }
.diagnosis-sections .box { border-top-color: #63b5cb; }
.diagnosis-sections .form-section__title { color: #155b81; }
.map { background: #eaf4f8; }
.meter--incrustation .meter__fill { background: #2998b9; }
.meter--aquifer .meter__fill { background: #5ab6cc; }
.meter--other .meter__fill { background: #94c8d7; }
.data-table th { background: #eaf5fa; }

/* Progressive five-step wizard: no JavaScript keeps every section visible. */
.wizard { background: #fff; border: 1px solid var(--color-border); border-radius: 24px; padding: clamp(1.1rem, 3vw, 2.5rem); box-shadow: 0 20px 55px #164e7310; }
.wizard__heading h1 { font-size: clamp(1.6rem, 3vw, 2.4rem); margin: .25rem 0; }
.wizard__heading p { color: var(--color-ink-muted); margin: 0 0 1.5rem; }
.wizard__nav { display: flex; flex-wrap: wrap; gap: .55rem; padding: .75rem; border-radius: 16px; background: #edf7fb; margin-bottom: 1.75rem; scroll-margin-top: 1rem; }
.wizard__tab { display: flex; align-items: center; gap: .4rem; text-align: right; color: #4c7087; border: 0; background: none; border-radius: 10px; padding: .65rem .55rem; cursor: pointer; font-size: .83rem; white-space: nowrap; }
.wizard__tab span { display: grid; place-items: center; flex: none; width: 25px; height: 25px; border: 1px solid #bcdce7; border-radius: 50%; }
.wizard__tab:hover { color: #145c83; background: #dcedf5; }
.wizard__tab.is-active { background: #fff; color: #125e88; font-weight: 700; box-shadow: 0 4px 12px #164e7313; }
.wizard__tab.is-active span { color: #fff; border-color: #1787ac; background: #1787ac; }
.wizard__step { border: 1px solid var(--color-border); border-radius: 16px; padding: clamp(1rem, 3vw, 2rem); margin-bottom: 1rem; }
.wizard--ready .wizard__step[hidden], .wizard [hidden] { display: none !important; }
.step-heading { display: flex; gap: .9rem; align-items: flex-start; padding-bottom: 1.2rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--color-border); }
.step-heading__icon { width: 50px; height: 50px; flex: none; background: #e4f5fa; color: #198bad; border-radius: 13px; display: grid; place-items: center; }
.step-heading__icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.step-heading small { color: #288fa9; }
.step-heading h2 { font-size: 1.35rem; margin: 0; }
.step-heading p { color: var(--color-ink-muted); font-size: .87rem; margin: .2rem 0 0; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .5rem 1.2rem; }
.field-grid .form-row { min-width: 0; position: relative; }
.field-grid .form-row[hidden] { display: none; }
.form-row__live { display: block; color: #aa513a; font-size: .78rem; min-height: 0; }
.field-invalid input, .field-invalid select { border-color: #b15c42; background: #fffaf8; }
.location-panel { margin-top: 1rem; padding: 1.2rem; border: 1px solid #d6e9f1; border-radius: 13px; background: #f8fcfe; }
.location-panel p { color: var(--color-ink-muted); font-size: .85rem; margin: .2rem 0 1rem; }
.location-panel .map { height: 320px; margin-top: 1rem; background: linear-gradient(120deg,#d8edf4,#f5fbfd); }
.wizard__actions { display: flex; align-items: center; gap: .7rem; border-top: 1px solid var(--color-border); padding-top: 1.35rem; }
.wizard__actions #step-count { margin-inline: auto; }
.calendar-trigger { position: absolute; left: .2rem; bottom: .1rem; border: 0; color: #167ba3; background: none; padding: .45rem .65rem; cursor: pointer; font-size: 1.25rem; }
.jalali-date { padding-left: 2.5rem !important; }
.jalali-picker { position: absolute; z-index: 9999; width: 292px; background: white; border: 1px solid #b9d9e6; border-radius: 14px; box-shadow: 0 16px 36px #163e6030; padding: .7rem; direction: rtl; }
.jalali-picker[hidden] { display: none; }
.jalali-picker__head { display: flex; justify-content: space-between; align-items: center; color: #164f76; margin-bottom: .6rem; }
.jalali-picker button { cursor: pointer; border: 0; background: none; color: inherit; border-radius: 7px; min-width: 32px; min-height: 32px; }
.jalali-picker button:hover, .jalali-picker button:focus-visible { background: #dff3fa; }
.jalali-picker__grid { display: grid; grid-template-columns: repeat(7,1fr); text-align: center; gap: 2px; }
.jalali-picker__grid b { font-size: .72rem; color: #7694a5; }
.jalali-picker__grid button { font-size: .8rem; }
@media (max-width: 900px) { .wizard__nav { display: flex; overflow-x: auto; } .wizard__tab { flex: none; } }
@media (max-width: 620px) {
    .field-grid { grid-template-columns: 1fr; }
    .wizard__actions { flex-wrap: wrap; }
    .wizard__actions #step-count { order: -1; width: 100%; text-align: center; }
    .wizard__actions .btn { flex: 1; }
    .step-heading__icon { width: 42px; height: 42px; }
    .location-panel .map { height: 250px; }
}
@media (prefers-reduced-motion: no-preference) {
    .hero__scene { animation: appear .65s ease both; }
    .wizard__step:not([hidden]) { animation: appear .22s ease both; }
    .btn, .wizard__tab { transition: background-color .18s ease, color .18s ease, transform .18s ease; }
    @keyframes appear { from { opacity: .65; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
}
