/* === RESPONSIVE.CSS ===
 * assets/css/responsive.css
 * НАЗНАЧЕНИЕ: Адаптивные слои Mindway - compact shell, rail layout, mobile 320px, desktop hierarchy
 * СВЯЗИ: main.css, widgets.css, themes.css
 * РАЗМЕР: ~200 строк
 */

.panel-card-wide,
.metric-grid-narrow {
    grid-column: 1 / -1;
}

.source-toolbar,
.field-inline {
    align-items: stretch;
}

.filter-bar,
.filter-bar.filter-bar-wide {
    display: grid;
    gap: var(--space-2);
    align-items: stretch;
}

.source-toolbar > *,
.field-inline > *,
.filter-bar > *,
.filter-bar.filter-bar-wide > * {
    min-width: 0;
}

.public-grid,
.dashboard-grid,
.detail-grid,
.sources-grid,
.dashboard-layout,
.recommendations-layout,
.settings-layout,
.people-workspace,
.sources-hero__stats,
.dashboard-status-list {
    grid-template-columns: 1fr;
}

@media (max-width: 719px) {
    .mindway-public,
    .auth-shell {
        padding: 12px;
    }

    .hero-panel,
    .auth-card,
    .cabinet-rail,
    .cabinet-toolbar {
        padding: 14px;
    }

    .cabinet-shell {
        width: calc(100% - 20px);
        padding: 10px 0;
    }

    .rail-copy,
    .rail-context {
        display: none;
    }

    .rail-brand {
        gap: 10px;
    }

    .rail-brand h1 {
        font-size: 1.05rem;
        max-width: none;
    }

    .cabinet-toolbar {
        display: grid;
        gap: 12px;
    }

    .toolbar-actions {
        justify-content: flex-start;
    }

    .toolbar-status {
        max-width: none;
        width: 100%;
        text-align: left;
    }

    .rail-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .rail-nav .tab-button {
        justify-content: center;
        text-align: center;
        padding: 10px 8px;
        font-size: 0.86rem;
    }

    .panel-card,
    .source-card,
    .timeline-card,
    .stack-item {
        padding: 12px;
    }

    .people-roster__head {
        grid-template-columns: 1fr auto;
        align-items: start;
    }

    .people-action-rail {
        order: 2;
    }

    .people-focus {
        order: 3;
    }

    .person-focus-card__meta {
        grid-template-columns: 1fr;
    }

    .source-toolbar {
        display: grid;
        gap: var(--space-2);
    }

    .toolbar-actions .button,
    .toolbar-actions .theme-toggle {
        flex: 1 1 calc(50% - 5px);
    }

    .section-intro-card__copy h3,
    .person-focus-card h2,
    .toolbar-copy h2 {
        font-size: 1.4rem;
    }
}

@media (min-width: 720px) {
    .metric-strip,
    .metric-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .public-grid,
    .dashboard-grid,
    .detail-grid,
    .sources-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-shell {
        grid-template-columns: 1.15fr 0.85fr;
        align-items: end;
    }

    .cabinet-shell {
        grid-template-columns: minmax(250px, 280px) minmax(0, 1fr);
        align-items: start;
    }

    .cabinet-rail {
        position: sticky;
        top: var(--space-2);
        min-height: calc(100vh - (var(--space-2) * 2));
    }

    .dashboard-status-list,
    .sources-hero__stats,
    .person-focus-card__meta {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .dashboard-layout,
    .recommendations-layout {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    }

    .settings-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .filter-bar {
        grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: center;
    }

    .filter-bar.filter-bar-wide {
        grid-template-columns: minmax(0, 1fr) 220px auto auto;
        align-items: center;
    }
}

@media (min-width: 980px) {
    .people-workspace {
        grid-template-columns: 300px minmax(0, 1.1fr) 340px;
        align-items: start;
    }

    .people-roster,
    .people-action-rail {
        position: sticky;
        top: 96px;
    }

    .sources-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .dashboard-hero {
        grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
        align-items: start;
    }
}

@media (min-width: 1280px) {
    .public-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
