/* Mobile dashboard header: keep edit/settings beside the title, work actions below. */
.matrika-dashboard-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: .5rem;
    row-gap: .55rem;
    width: 100%;
    padding: 1.5rem 0;
}

.matrika-dashboard-toolbar {
    display: contents;
}

.matrika-dashboard-toolbar__primary {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .2rem;
}

.matrika-dashboard-toolbar__secondary {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem;
    min-width: 0;
}

.matrika-dashboard-toolbar__layout-switchers,
.matrika-dashboard-toolbar__edit-actions,
.matrika-dashboard-toolbar__other-actions,
.matrika-dashboard-toolbar__edit-toggle,
.matrika-dashboard-toolbar__settings {
    display: flex;
    align-items: center;
    gap: .2rem;
}

@media (min-width: 768px) {
    .matrika-dashboard-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: 2rem 0;
    }

    .matrika-dashboard-toolbar {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: .2rem;
        width: auto;
    }

    .matrika-dashboard-toolbar__primary,
    .matrika-dashboard-toolbar__secondary {
        display: contents;
    }

    .matrika-dashboard-toolbar__layout-switchers {
        order: 0;
    }

    .matrika-dashboard-toolbar__edit-actions {
        order: 1;
    }

    .matrika-dashboard-toolbar__edit-toggle {
        order: 2;
    }

    .matrika-dashboard-toolbar__other-actions {
        order: 3;
    }

    .matrika-dashboard-toolbar__settings {
        order: 4;
    }
}

/*
 * Compact edit controls for the customizable dashboard.
 *
 * The layout-manager behavior stays plugin-driven, but the visible controls are
 * rendered by our Blade wrapper. Keep them visually consistent and compact so
 * they read as one toolbar instead of loose text glyphs.
 */
.layout-manager-edit-controls {
    align-items: center;
    gap: .22rem !important;
}

.matrika-dashboard-edit-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    min-width: 1.6rem;
    flex: 0 0 1.6rem;
    border: 1px solid transparent;
    border-radius: .42rem;
    background: transparent;
    color: var(--matrika-muted, #64748b);
    padding: 0;
    line-height: 1;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}

button.matrika-dashboard-edit-control {
    cursor: pointer;
}

.matrika-dashboard-edit-control:hover,
.matrika-dashboard-edit-control:focus-visible {
    border-color: var(--matrika-card-border, #e2e8f0);
    background: var(--matrika-primary-soft, #f8fafc);
    color: var(--matrika-text, #0f172a);
}

.matrika-dashboard-edit-control:focus-visible {
    outline: 2px solid var(--matrika-primary, #2563eb);
    outline-offset: 1px;
}

.matrika-dashboard-edit-control svg {
    width: .95rem;
    height: .95rem;
}

.matrika-dashboard-edit-settings {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    margin-left: .08rem;
    transform: translateY(.1rem);
}

.matrika-dashboard-edit-settings button {
    width: 1.6rem !important;
    height: 1.6rem !important;
    min-width: 1.6rem !important;
    padding: 0 !important;
    border-radius: .42rem !important;
}

.matrika-dashboard-edit-settings svg {
    width: .95rem !important;
    height: .95rem !important;
}

/* Make outline Heroicons read more clearly without increasing their footprint. */
.matrika-dashboard-edit-control svg,
.matrika-dashboard-edit-control svg *,
.matrika-dashboard-edit-settings svg,
.matrika-dashboard-edit-settings svg * {
    stroke-width: 2.25;
}

/* Graphical multi-select catalog used by the single "Pridať widget" action. */
.matrika-dashboard-widget-picker {
    display: grid;
    gap: 1.15rem;
}

.matrika-dashboard-widget-picker__section {
    display: grid;
    gap: .55rem;
}

.matrika-dashboard-widget-picker__section-heading {
    display: flex;
    align-items: baseline;
    gap: .5rem;
}

.matrika-dashboard-widget-picker__section-heading h3 {
    margin: 0;
    color: var(--matrika-text, #0f172a);
    font-size: .85rem;
    font-weight: 800;
}

.matrika-dashboard-widget-picker__section-heading span {
    color: var(--matrika-muted, #64748b);
    font-size: .68rem;
    font-weight: 700;
}

.matrika-dashboard-widget-picker__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
}

.matrika-dashboard-widget-picker__option {
    position: relative;
    display: block;
    min-width: 0;
    cursor: pointer;
}

.matrika-dashboard-widget-picker__option.is-disabled {
    cursor: not-allowed;
}

.matrika-dashboard-widget-picker__input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.matrika-dashboard-widget-picker__card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: .7rem;
    min-height: 6.7rem;
    border: 1px solid var(--matrika-card-border, #e2e8f0);
    border-radius: .85rem;
    background: var(--matrika-card-bg, #fff);
    padding: .82rem;
    box-shadow: 0 3px 10px rgba(15, 23, 42, .035);
    transition: border-color .14s ease, background .14s ease, box-shadow .14s ease, transform .14s ease;
}

.matrika-dashboard-widget-picker__option:not(.is-disabled):hover .matrika-dashboard-widget-picker__card {
    border-color: var(--matrika-primary-border, #bfdbfe);
    box-shadow: 0 7px 18px rgba(15, 23, 42, .07);
    transform: translateY(-1px);
}

.matrika-dashboard-widget-picker__input:focus-visible + .matrika-dashboard-widget-picker__card {
    outline: 2px solid var(--matrika-primary, #2563eb);
    outline-offset: 2px;
}

.matrika-dashboard-widget-picker__input:checked + .matrika-dashboard-widget-picker__card {
    border-color: var(--matrika-primary, #2563eb);
    background: var(--matrika-primary-soft, #eff6ff);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--matrika-primary, #2563eb) 18%, transparent);
}

.matrika-dashboard-widget-picker__option.is-disabled .matrika-dashboard-widget-picker__card {
    opacity: .55;
    background: var(--matrika-primary-soft, #f8fafc);
    box-shadow: none;
}

.matrika-dashboard-widget-picker__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: .65rem;
    background: var(--matrika-primary-soft, #f8fafc);
    color: var(--matrika-primary, #2563eb);
}

.matrika-dashboard-widget-picker__icon svg {
    width: 1.15rem;
    height: 1.15rem;
    stroke-width: 2;
}

.matrika-dashboard-widget-picker__copy {
    display: grid;
    gap: .22rem;
    min-width: 0;
}

.matrika-dashboard-widget-picker__copy strong {
    color: var(--matrika-text, #0f172a);
    font-size: .8rem;
    font-weight: 800;
    line-height: 1.25;
}

.matrika-dashboard-widget-picker__copy small {
    color: var(--matrika-muted, #64748b);
    font-size: .7rem;
    line-height: 1.35;
}

.matrika-dashboard-widget-picker__copy em {
    width: fit-content;
    margin-top: .12rem;
    border-radius: 999px;
    background: var(--matrika-primary-soft, #f1f5f9);
    color: var(--matrika-muted, #64748b);
    padding: .12rem .38rem;
    font-size: .61rem;
    font-style: normal;
    font-weight: 750;
}

.matrika-dashboard-widget-picker__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    border: 1px solid var(--matrika-card-border, #cbd5e1);
    border-radius: 999px;
    background: var(--matrika-card-bg, #fff);
    color: transparent;
    transition: border-color .14s ease, background .14s ease, color .14s ease;
}

.matrika-dashboard-widget-picker__check svg {
    width: .78rem;
    height: .78rem;
    stroke-width: 2.4;
}

.matrika-dashboard-widget-picker__input:checked + .matrika-dashboard-widget-picker__card .matrika-dashboard-widget-picker__check {
    border-color: var(--matrika-primary, #2563eb);
    background: var(--matrika-primary, #2563eb);
    color: #fff;
}

.matrika-dashboard-widget-picker__summary {
    display: flex;
    align-items: center;
    gap: .42rem;
    border-top: 1px solid var(--matrika-card-border, #e2e8f0);
    padding-top: .75rem;
    color: var(--matrika-muted, #64748b);
    font-size: .75rem;
}

.matrika-dashboard-widget-picker__summary svg {
    width: 1rem;
    height: 1rem;
    color: var(--matrika-primary, #2563eb);
}

@media (max-width: 1024px) {
    .matrika-dashboard-widget-picker__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/*
 * Mobile contract for the customizable dashboard.
 *
 * The layout-manager plugin only declares its desktop column count with the
 * Tailwind `md:grid-cols-*` class, while each widget keeps an inline
 * `grid-column: span N`. Below the md breakpoint that can create implicit grid
 * columns wider than the viewport. Force one real column on phones and let the
 * saved desktop span take over again from 768px upwards.
 */
@media (max-width: 767px) {
    .layout-manager-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100%;
        min-width: 0;
    }

    .layout-manager-grid > .layout-manager-widget {
        grid-column: 1 / -1 !important;
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .layout-manager-widget > *,
    .matrika-dashboard-widget-host {
        min-width: 0;
        max-width: 100%;
    }
}

@media (max-width: 640px) {
    .matrika-dashboard-widget-picker__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .matrika-dashboard-widget-picker__card {
        min-height: 0;
    }
}
