/* Shared visual foundations. Homepage keeps its own component styling. */
.eco-app {
    --eco-bg: #091c23;
    --eco-panel: #10272e;
    --eco-raised: #15323a;
    --eco-ink: #f0f5f3;
    --eco-muted: #a0b4b9;
    --eco-mint: #82e4cd;
    --eco-line: #ffffff12;
    --eco-border: #ffffff20;
    --eco-danger: #ffb1ab;
    --eco-warning: #e8cc91;
    --bs-body-font-family: Vazirmatn, Tahoma, sans-serif;
    font-family: var(--bs-body-font-family);
    -webkit-font-smoothing: antialiased;
}
.eco-app:not(.eco-home) {
    color-scheme: dark;
    background: var(--eco-bg);
    color: var(--eco-ink);
    --bs-body-color: var(--eco-ink);
    --bs-body-bg: var(--eco-bg);
    --bs-secondary-color: var(--eco-muted);
    --bs-tertiary-bg: var(--eco-panel);
    --bs-border-color: var(--eco-border);
    --bs-primary: var(--eco-mint);
    --bs-primary-rgb: 130, 228, 205;
    --bs-link-color: var(--eco-mint);
    --bs-link-hover-color: #b0f1e1;
}
.eco-app :is(button, input, select, textarea) { font-family: inherit; }
.eco-app :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid #82e4cd;
    outline-offset: 4px;
}
.eco-app :is(input, select, textarea):focus-visible { outline-offset: 2px; }
.eco-app :is(main, section, article, aside, .row > *) { min-width: 0; }
.eco-app :is(h1, h2, h3, h4) { text-wrap: pretty; }
.eco-app-skip {
    position: fixed;
    inset: -100px 16px auto auto;
    z-index: 3000;
    padding: 12px 20px;
    background: var(--eco-mint);
    color: #092c2a;
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none;
}
.eco-app-skip:focus { top: 12px; color: #092c2a; }
.eco-app:not(.eco-home) .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 8px;
    line-height: 1.7;
    white-space: normal;
    text-decoration: none;
    box-shadow: none;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.eco-app:not(.eco-home) :is(.btn-primary, .btn-glow) {
    --bs-btn-disabled-bg: #476b64;
    --bs-btn-disabled-border-color: #476b64;
    background: var(--eco-mint);
    border-color: var(--eco-mint);
    color: #092c2a;
    font-weight: 700;
    text-shadow: none;
    box-shadow: none;
}
.eco-app:not(.eco-home) :is(.btn-primary, .btn-glow):hover {
    background: #a3efdb;
    border-color: #a3efdb;
    color: #092c2a;
    transform: none;
}
.eco-app:not(.eco-home) :is(.btn-glass, .btn-outline-primary, .btn-outline-light, .btn-outline-secondary) {
    background: transparent;
    border-color: var(--eco-border);
    color: #d5e0e1;
    box-shadow: none;
}
.eco-app:not(.eco-home) :is(.btn-glass, .btn-outline-primary, .btn-outline-light, .btn-outline-secondary):hover {
    background: #82e4cd0c;
    border-color: #82e4cd70;
    color: var(--eco-mint);
    transform: none;
}
.eco-app:not(.eco-home) :is(.form-control, .form-select) {
    min-height: 48px;
    border: 1px solid #ffffff30;
    border-radius: 8px;
    background-color: #0c2028;
    color: var(--eco-ink);
    box-shadow: none;
}
.eco-app:not(.eco-home) :is(.form-control, .form-select):focus {
    background-color: #10272e;
    border-color: var(--eco-mint);
    color: var(--eco-ink);
    box-shadow: 0 0 0 3px #82e4cd15;
}
.eco-app:not(.eco-home) .form-select {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a0b4b9' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.eco-app:not(.eco-home) .form-control::placeholder { color: #8fa8af; opacity: 1; }
.eco-app:not(.eco-home) :is(.form-control, .form-select):disabled { background-color: #19313a; color: #a0b4b9; }
.eco-app:not(.eco-home) :is(.form-control, .form-select).is-invalid { border-color: var(--eco-danger); }
.eco-app:not(.eco-home) .invalid-feedback { color: var(--eco-danger); line-height: 1.8; }
.eco-app:not(.eco-home) .form-label { margin-bottom: 8px; color: #d5e0e1; line-height: 1.8; }
.eco-app:not(.eco-home) .form-check-input { width: 1.15em; height: 1.15em; border-color: #6b8991; }
.eco-app:not(.eco-home) .form-check-input:checked { background-color: #287b69; border-color: var(--eco-mint); }
.eco-app:not(.eco-home) .form-check-label { line-height: 1.9; cursor: pointer; }
.eco-app:not(.eco-home) :is(.text-muted, .text-body-secondary, .form-text) { color: var(--eco-muted) !important; }
.eco-app:not(.eco-home) .page-link {
    min-width: 44px;
    min-height: 44px;
    display: grid;
    place-items: center;
    background: var(--eco-panel);
    color: #d5e0e1;
    border-color: var(--eco-border);
}
.eco-app:not(.eco-home) .active > .page-link { background: var(--eco-mint); color: #092c2a; border-color: var(--eco-mint); }
.eco-app:not(.eco-home) .disabled > .page-link { background: #10272e; color: #728c94; }
.eco-app:not(.eco-home) .pagination { flex-wrap: wrap; gap: 4px; }
.eco-app:not(.eco-home) .table-responsive { max-width: 100%; border-radius: 10px; overscroll-behavior-inline: contain; }
.eco-app:not(.eco-home) .modal-content { color: var(--eco-ink); background: var(--eco-panel); border: 1px solid var(--eco-border); border-radius: 14px; }
.eco-app:not(.eco-home) .modal-content .btn-close { filter: invert(1) grayscale(1); }
.eco-app:not(.eco-home) .dropdown-menu { background: #10272e; color: var(--eco-ink); border-color: var(--eco-border); }
.eco-app:not(.eco-home) .dropdown-item { color: var(--eco-ink); min-height: 44px; display: flex; align-items: center; }
.eco-app:not(.eco-home) .dropdown-item:hover { background: #82e4cd12; color: var(--eco-mint); }
/* Same destinations and quiet hierarchy as the homepage header. */
.eco-app .home-navbar {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 24px;
    min-height: 100px;
    padding: 12px 0;
    margin: 0 0 40px;
    border: 0;
    border-bottom: 1px solid var(--eco-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    position: relative;
    z-index: 20;
}
.eco-app .home-navbar a { text-decoration: none; }
.eco-app .home-navbar-brand { grid-column: 1; grid-row: 1; display: flex; }
.eco-app .home-navbar .brand-logo { width: 142px; height: 48px; object-fit: contain; }
.eco-app .home-navbar-mobile-row { display: contents; }
.eco-app .home-navbar-actions { grid-column: 3; grid-row: 1; display: flex; gap: 12px; align-items: center; }
.eco-app .home-navbar-actions .btn { font-size: 13px; width: auto; padding: 10px 15px; white-space: nowrap; }
.eco-app .home-navbar-actions .btn-glass { border-color: transparent; }
.eco-app .home-navbar-links { grid-column: 2; grid-row: 1; display: flex; justify-content: center; gap: 6px; align-items: center; }
.eco-app .home-navbar-links a { padding: 12px 9px; min-height: 44px; border-radius: 6px; color: #c2cfd1; font-size: 13px; white-space: nowrap; }
.eco-app .home-navbar-links a:hover { color: var(--eco-mint); background: #82e4cd08; }
.eco-app .home-navbar-links a[aria-current="page"] { color: var(--eco-mint); background: #82e4cd0e; }
.eco-app .home-navbar-links i { margin-inline-end: 4px; }
.eco-app .home-navbar-toggler { display: none; }
/* Footer content and destinations are shared with the homepage. */
.eco-app:not(.eco-home) .site-footer { margin-top: 48px; padding-top: 28px !important; background: transparent; color: var(--eco-muted); font-size: 13px; }
.eco-app:not(.eco-home) .site-footer :is(a, .footer-address, .company-link) { color: var(--eco-muted); line-height: 1.9; white-space: normal; }
.eco-app:not(.eco-home) .site-footer :is(a:hover, a i, .footer-address i, .footer-social-link svg) { color: var(--eco-mint); }
.eco-app .site-footer .footer-links { min-width: 0; }
.eco-app .site-footer .footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.eco-app:not(.eco-home) .site-footer .site-footer-divider { border-color: var(--eco-line); }
.eco-app:not(.eco-home) .site-footer .footer-social-link { border-color: var(--eco-border); border-radius: 8px; padding: 8px 14px; }
.eco-app .pwa-update-bar { background: #15323a; border-color: #82e4cd40; color: var(--eco-ink); box-shadow: 0 15px 40px #0004; }
.eco-app .pwa-update-bar button { min-height: 44px; }
.eco-app .pwa-update-refresh { background: var(--eco-mint); color: #092c2a; }
@media (max-width: 1199.98px) {
    .eco-app .home-navbar { gap: 12px; grid-template-columns: auto 1fr auto; min-height: 88px; margin-bottom: 28px; }
    .eco-app .home-navbar-actions { grid-column: 2; justify-self: end; }
    .eco-app .home-navbar-toggler { grid-column: 3; grid-row: 1; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: transparent; color: #d5e0e1; border: 1px solid var(--eco-border); border-radius: 8px; }
    .eco-app .home-navbar-icon-close { display: none; }
    .eco-app .home-navbar-toggler[aria-expanded="true"] .home-navbar-icon-close { display: inline; }
    .eco-app .home-navbar-toggler[aria-expanded="true"] .home-navbar-icon-menu { display: none; }
    .eco-app .home-navbar-links { grid-column: 1 / -1; grid-row: 2; flex-direction: column; align-items: stretch; padding-bottom: 12px; }
    .eco-app .home-navbar-links.collapse:not(.show) { display: none; }
    .eco-app .home-navbar-links a { padding: 12px 16px; }
}
@media (max-width: 575.98px) {
    .eco-app .home-navbar { gap: 8px; min-height: 80px; }
    .eco-app .home-navbar .brand-logo { width: 96px; height: 40px; }
    .eco-app .home-navbar-actions { gap: 4px; }
    .eco-app .home-navbar-actions .btn { padding: 8px 9px; font-size: 12px; }
    .eco-app:not(.eco-home) .site-footer { margin-top: 28px; }
    .eco-app:not(.eco-home) :is(.form-control, .form-select) { font-size: 16px; }
}
/* Keep text fields readable without automatic focus zoom on mobile browsers. */
@media (max-width: 767.98px) {
    body.eco-app:not(.eco-home) :is(input:not([type="checkbox"], [type="radio"], [type="hidden"], [autocomplete="one-time-code"]), select, textarea) { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .eco-app *, .eco-app *::before, .eco-app *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
