/* ================================================================
   Settings page (nastaveni.html)
   Re-uses the app shell (sidebar, header, breadcrumb) from styles.css
   ================================================================ */
.settings-tab {
    cursor: pointer;
    text-align: left;
}

.settings-tab[aria-selected="true"] {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-on-primary);
}

.settings-tab[aria-selected="true"] img {
    filter: brightness(0) invert(1);
}

.settings-tab-lock {
    margin-left: auto;
    opacity: 0.7;
}

.settings-tab-lock[hidden] {
    display: none;
}

.settings-panel {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.settings-panel[hidden] {
    display: none;
}

.settings-card {
    box-sizing: border-box;
    padding: 1.5rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
}

.settings-title {
    margin: 0 0 0.5rem;
    font-size: 1.25rem;
    color: var(--color-secondary);
}

.settings-subtitle {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    color: var(--color-secondary);
}

.settings-hint {
    margin: 0 0 1.25rem;
    font-size: var(--font-size-sm);
    line-height: 1.5;
    color: var(--color-gray-dark);
}

.settings-warning {
    margin: 1rem 0 0;
    font-size: var(--font-size-sm);
    color: var(--color-red);
}

.settings-divider {
    margin: 1.5rem 0;
    border: 0;
    border-top: 1px solid var(--color-border);
}

.settings-group {
    margin: 0 0 1.5rem;
    padding: 0;
    border: 0;
    min-width: 0;
}

.settings-group legend {
    padding: 0;
    margin-bottom: 0.625rem;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-secondary);
}

/* ---------- Choice cards (theme, text size, density) ---------- */
.choice-grid {
    display: grid;
    gap: 0.75rem;
}

.choice-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.choice-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.choice-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.choice-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.625rem;
    background: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.choice-card:hover {
    border-color: var(--color-gray-light);
}

.choice-card input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.choice-card.is-selected {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}

.choice-card:focus-within {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.choice-title {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-secondary);
}

.choice-title small {
    display: block;
    margin-top: 0.125rem;
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-gray-dark);
}

.choice-card--text {
    align-items: center;
    text-align: center;
}

.choice-sample {
    font-weight: 700;
    line-height: 1.6;
    color: var(--color-secondary);
}

.choice-preview {
    display: flex;
    flex-direction: column;
    gap: 0.3125rem;
    padding: 0.5rem;
    height: 4.5rem;
    border-radius: 0.375rem;
    border: 1px solid rgba(128, 128, 128, 0.35);
    box-sizing: border-box;
}

.choice-preview i {
    display: block;
    height: 0.5rem;
    border-radius: 0.1875rem;
}
.density-preview { background: var(--color-white); }
.density-preview i { background: var(--color-gray-light); opacity: 0.55; }
.density-preview--comfortable { justify-content: space-evenly; }
.density-preview--compact { justify-content: flex-start; gap: 0.1875rem; }
.density-preview--compact i { height: 0.375rem; }

/* ---------- Segmented switch (theme) ---------- */
.segmented {
    display: inline-flex;
    max-width: 100%;
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
}

.segmented-option {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    height: 2.375rem;
    padding: 0 1rem;
    font-size: var(--font-size-sm);
    color: var(--color-gray-dark);
    cursor: pointer;
    white-space: nowrap;
}

.segmented-option + .segmented-option {
    border-left: 1px solid var(--color-border);
}

.segmented-option input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.segmented-option.is-selected {
    background: var(--color-primary);
    color: var(--color-on-primary);
}

.segmented-option.is-selected img {
    filter: brightness(0) invert(1);
}

.segmented-option:focus-within {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
}
/* ---------- Switches and checkboxes ---------- */
.switch-row,
.check-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
}

.switch-row {
    justify-content: space-between;
    padding: 0.75rem 0;
    border-top: 1px solid var(--color-border);
}

.switch-row:first-of-type {
    border-top: 0;
}

.switch-text strong {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-secondary);
}

.switch-text small {
    display: block;
    margin-top: 0.125rem;
    font-size: var(--font-size-xs);
    line-height: 1.4;
    color: var(--color-gray-dark);
}

.page-settings input[type="checkbox"].switch {
    position: relative;
    flex-shrink: 0;
    width: 2.5rem;
    height: 1.4rem;
    border-radius: 999px;
    background: var(--color-gray-light);
    border: 0;
    transition: background 0.2s;
}

.page-settings input[type="checkbox"].switch::after {
    content: "";
    position: absolute;
    top: 0.15rem;
    left: 0.15rem;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    background: #FFFFFF;
    transition: transform 0.2s;
}

.page-settings input[type="checkbox"].switch:checked {
    background: var(--color-primary);
}

.page-settings input[type="checkbox"].switch:checked::after {
    transform: translateX(1.1rem);
}

.page-settings input[type="checkbox"].switch:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.check-row {
    margin-bottom: 0.75rem;
    font-size: var(--font-size-sm);
    color: var(--color-secondary);
}

/* ---------- Forms ---------- */
.settings-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 1rem;
    max-width: 28rem;
}

.settings-field label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-secondary);
}

.settings-select,
.settings-input {
    box-sizing: border-box;
    width: 100%;
    height: 2.5rem;
    padding: 0 0.75rem;
    font: inherit;
    font-size: var(--font-size-sm);
    color: var(--color-secondary);
    background: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: 0.375rem;
}

.settings-select:focus,
.settings-input:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 1px;
}

/* Same button + panel dropdown as the month and year selectors (see enhanceSelect in nastaveni.js) */
.settings-dropdown {
    position: relative;
}

.settings-dropdown-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    box-sizing: border-box;
    width: 100%;
    height: 2.5rem;
    padding: 0 0.75rem;
    font: inherit;
    font-size: var(--font-size-sm);
    text-align: left;
}

.settings-dropdown-trigger:hover {
    background: var(--color-background);
}

.settings-dropdown-trigger:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 1px;
}

.settings-dropdown-trigger svg {
    flex-shrink: 0;
    transition: transform 0.2s;
}

.settings-dropdown.is-open .settings-dropdown-trigger svg {
    transform: rotate(180deg);
}

.settings-dropdown .dropdown-panel {
    box-sizing: border-box;
    width: 100%;
    max-height: 20rem;
    overflow-y: auto;
}

.settings-dropdown .filter-option:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
}

.settings-dropdown .filter-option.is-selected {
    background: var(--color-background);
}

.settings-dropdown .filter-option.is-selected span {
    font-weight: 600;
}

.settings-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    margin-top: 1.25rem;
}

.settings-button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    height: 2.5rem;
    padding: 0 1.125rem;
    font: inherit;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-on-primary);
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: 0.375rem;
    cursor: pointer;
}

.settings-button:hover {
    filter: brightness(1.1);
    background: var(--color-primary);
}

.settings-button--ghost {
    color: var(--color-secondary);
    background: transparent;
    border-color: var(--color-border);
}

.settings-button--ghost:hover {
    background: var(--color-background);
    filter: none;
}

.settings-button--danger {
    color: var(--color-red);
    background: transparent;
    border-color: var(--color-red);
}

.settings-button--danger:hover {
    background: rgba(255, 86, 48, 0.1);
    filter: none;
}

.settings-details {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.625rem 1.5rem;
    margin: 0;
}

.settings-details dt {
    font-size: var(--font-size-sm);
    color: var(--color-gray-dark);
}

.settings-details dd {
    margin: 0;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-secondary);
    overflow-wrap: anywhere;
}

.settings-locked {
    padding: 1rem;
    margin-bottom: 0.5rem;
    font-size: var(--font-size-sm);
    color: var(--color-secondary);
    background: var(--color-background);
    border: 1px dashed var(--color-border);
    border-radius: var(--border-radius);
}

.settings-locked[hidden],
.settings-body[hidden] {
    display: none;
}

.settings-locked .settings-button {
    margin-top: 0.75rem;
    text-decoration: none;
}

.transition-options {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 28rem;
}

.transition-options .auth-submit-transition {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.75rem;
    text-align: left;
    color: var(--color-secondary);
    background: var(--color-background);
    cursor: pointer;
}

.page-settings .auth-message[hidden] {
    display: none;
}

/* ---------- Live preview ---------- */
.settings-preview-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.75rem;
}

.settings-preview-cards .task-card {
    cursor: default;
}

/* ---------- Narrow screens: tabs become a scrollable row above the content ---------- */
@media (max-width: 56.25rem) {
    .settings-tabs {
        flex-direction: row;
        overflow-x: auto;
        gap: 0.5rem;
        scrollbar-width: thin;
    }

    .settings-tabs .sidebar-item {
        flex: 0 0 auto;
        width: auto;
        white-space: nowrap;
    }

    .settings-sidebar .sidebar-bottom {
        display: none;
    }

    .settings-panel {
        max-width: none;
    }

    .choice-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .choice-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 36rem) {
    .choice-grid { gap: 0.5rem; }
    .segmented { display: flex; width: 100%; }
    .segmented-option { flex: 1; justify-content: center; padding: 0 0.5rem; }
    .segmented-option img { display: none; }
    .choice-preview { height: 3.5rem; padding: 0.375rem; }
    .settings-card { padding: 1rem; }
    .page-settings .user-box { width: auto; }
}

.settings-hint--below {
    margin: 0.625rem 0 0;
}

/* ---------- Footer on narrow screens ----------
   These pages are not .page-mobile, so the desktop footer row (logos next to the licence) would overflow
   sideways. Below the same breakpoint as the layout above it stacks and centres, like the mobile pages. */
@media (max-width: 56.25rem) {
    .page-settings .page-footer,
    .page-support .page-footer {
        flex-direction: column;
        gap: 0.75rem;
        text-align: center;
    }

    .page-settings .page-footer-brand,
    .page-support .page-footer-brand {
        flex-direction: column;
        gap: 0.75rem;
    }

    .page-settings .project-logos,
    .page-support .project-logos {
        justify-content: center;
    }

    .page-settings .project-logos img,
    .page-support .project-logos img {
        width: 100%;
        max-width: 22.5rem;
        height: auto;
    }

    .page-settings .footer-certificate,
    .page-support .footer-certificate {
        flex-shrink: 1;
        justify-content: center;
    }

    .page-settings .footer-certificate-text,
    .page-support .footer-certificate-text {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.25rem;
        text-align: left;
    }

    .page-settings .footer-certificate-text a,
    .page-support .footer-certificate-text a {
        font-weight: normal;
    }
}
