/* Стили страницы «air_curtains_factory_calculator». Вынесены из <style> в шаблоне без правки правил.
 * Ссылка стоит ровно там, где стоял блок: порядок в каскаде сохранён. */

/* Без этого hidden проигрывает любому display у соседей. */
      [hidden] { display: none !important; }
        body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
               background: var(--brand-bg); color: var(--slate-900); line-height: 1.6;
               padding: 24px 20px 60px; margin: 0; }
        .container { max-width: 960px; margin: 0 auto; }
        h1 { font-size: 1.5rem; margin-bottom: 4px; }
        .lede { color: var(--slate-600); margin-bottom: 24px; }
        .card { background: var(--white); border: 1px solid var(--slate-200); border-radius: 10px;
                padding: 20px 24px; margin-bottom: 20px; }
        .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
                gap: 14px 20px; }
        label { display: block; font-size: 0.85rem; font-weight: 600;
                color: var(--slate-700); margin-bottom: 4px; }
        input, select { width: 100%; padding: 8px 10px; border: 1px solid var(--slate-300);
                        border-radius: 6px; font-size: 0.95rem; background: var(--white); }
        .btn { padding: 10px 20px; border: 0; border-radius: 6px; font-size: 0.95rem;
               font-weight: 600; cursor: pointer; background: var(--brand); color: var(--white); }
        .btn:disabled { background: var(--slate-400); cursor: default; }
        table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
        th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--slate-200); }
        th { font-weight: 600; color: var(--slate-600); background: var(--slate-50); }
        td.num { text-align: right; font-variant-numeric: tabular-nums; }
        .band-высокая { color: var(--green-700); font-weight: 600; }
        .band-достаточная { color: var(--green-700); }
        .band-низкая { color: var(--amber-700); }
        .band-отсутствует { color: var(--red-700); }
        .muted { color: var(--slate-500); font-size: 0.88rem; }
        .warn { background: var(--amber-50); border: 1px solid var(--amber-300); border-radius: 8px;
                padding: 12px 16px; margin-bottom: 16px; font-size: 0.9rem; }
        details { margin-top: 16px; }
        summary { cursor: pointer; font-weight: 600; color: var(--slate-700); }
        /* AIR-CURTAINS-UI-MOTION-LAYER-01 Шаг 6: opening only, no JS
           controller -- see the matching comment in
           static/pages/air_curtains_project.css. `:not(.nav-group)`:
           this template includes the shared <!-- APP_NAV --> nav, whose
           <details class="nav-group"> dropdowns are Шаг 4 (deferred), NOT
           this step -- a bare `details` selector would have silently
           applied Шаг 6's entrance motion to the nav dropdown too. */
        details:not(.nav-group)[open] > summary ~ * {
            animation: ac-accordion-in var(--motion-normal) var(--ease-motion-out);
        }
        @media (prefers-reduced-motion: reduce) {
            details:not(.nav-group)[open] > summary ~ * { animation-duration: 1ms; }
        }
        @keyframes ac-accordion-in {
            from { opacity: 0; transform: translateY(var(--motion-distance-xs, 4px)); }
            to { opacity: 1; transform: translateY(0); }
        }
        pre { background: var(--slate-50); border: 1px solid var(--slate-200); border-radius: 8px;
              padding: 14px; overflow-x: auto; font-size: 0.82rem;
              white-space: pre-wrap; }
        .rejected td { color: var(--slate-400); }
