/*
 * Controls Styles
 * Navigation buttons, control buttons, settings controls
 */

/* ==========================================================================
   Navigation Button Links
   ========================================================================== */

.nav-group {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.nav-group + .nav-group {
    margin-left: 0.5rem;
    padding-left: 0.5rem;
    border-left: 1px solid var(--pico-muted-border-color);
}

.nav-btn {
    margin: 0;
    padding: 0.5rem;
    font-size: 0.9rem;
    line-height: 1;
    border: 1px solid var(--pico-muted-border-color);
    border-radius: var(--pico-border-radius);
    background-color: transparent;
    color: #373c44;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    white-space: nowrap;
    min-height: 44px;
}

/* Dark mode colors for navigation buttons */
[data-theme="dark"] .nav-btn {
    color: #c2c7d0;
    border-color: #4a4f5a;
}

.nav-btn:hover,
.nav-btn:focus {
    border-color: var(--pico-primary);
    text-decoration: none;
    outline: none;
}

.nav-btn:focus-visible {
    outline: 2px solid var(--pico-primary);
    outline-offset: 2px;
}

.nav-btn-primary {
    background: var(--pico-primary);
    border-color: var(--pico-primary);
    color: var(--pico-primary-inverse);
}

.nav-btn-primary:hover,
.nav-btn-primary:focus {
    background: var(--pico-primary-hover);
    border-color: var(--pico-primary-hover);
    color: var(--pico-primary-inverse);
    outline: none;
}

.nav-btn-primary:focus-visible {
    outline: 2px solid var(--pico-primary);
    outline-offset: 2px;
}

.nav-btn-muted {
    opacity: 0.7;
    border-color: transparent;
}

.nav-btn-muted:hover {
    opacity: 1;
    border-color: var(--pico-muted-border-color);
}

/* Fix button_to forms in nav (Rails generates a form wrapper) */
.nav-group form {
    display: contents;
}

/* Override Pico's button styles for nav buttons generated by button_to */
.nav-auth form button.nav-btn {
    padding: 0.5rem !important;
    margin: 0 !important;
    font-size: 0.9rem !important;
    line-height: 1 !important;
    min-height: 44px;
    height: auto !important;
    width: auto !important;
}

/* Streak badge in nav button */
.nav-btn .streak-badge {
    margin-left: 0;
    font-size: 0.8rem;
}

/* ==========================================================================
   Controls Navigation Bar
   ========================================================================== */

.controls-nav {
    background: var(--pico-background-color);
    border-bottom: 1px solid var(--pico-muted-border-color);
    padding: 0.5rem 0;
    position: sticky;
    top: 0;
    z-index: 100;
}

.controls-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.controls-wrapper .control-group {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* Font size controls within centered nav */
.controls-wrapper .font-size-controls {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* ==========================================================================
   Control Buttons
   ========================================================================== */

/* Control buttons - mobile friendly sizing (44px touch target) */
/* Use high specificity to override Pico's button styles */
.site-header button.control-btn,
button.control-btn,
.controls-wrapper .control-btn {
    padding: 0.375rem;
    font-size: 0.85rem;
    line-height: 1;
    border: 1px solid var(--pico-muted-border-color);
    border-radius: var(--pico-border-radius);
    background-color: transparent;
    color: #373c44;
    cursor: pointer;
    min-width: 32px;
    min-height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    text-decoration: none;
}

/* Today button - shows the day number */
.controls-wrapper a.control-btn {
    font-weight: bold;
    font-size: 0.9rem;
    color: inherit;
    text-decoration: none;
}

/* Dark mode colors for control buttons */
[data-theme="dark"] .site-header button.control-btn,
[data-theme="dark"] button.control-btn,
[data-theme="dark"] .controls-wrapper .control-btn {
    color: #c2c7d0;
    border-color: #4a4f5a;
}

.site-header button.control-btn:hover,
button.control-btn:hover,
.site-header button.control-btn:focus,
button.control-btn:focus,
.controls-wrapper .control-btn:hover,
.controls-wrapper .control-btn:focus {
    border-color: var(--pico-primary) !important;
    outline: none;
}

.site-header button.control-btn:focus-visible,
button.control-btn:focus-visible,
.controls-wrapper .control-btn:focus-visible {
    outline: 2px solid var(--pico-primary) !important;
    outline-offset: 2px;
}

/* ==========================================================================
   Responsive Controls
   ========================================================================== */

/* Small screens */
@media (max-width: 380px) {
    .controls-wrapper {
        gap: 0.25rem;
    }

    .controls-wrapper .control-btn {
        min-width: 32px;
        min-height: 32px;
        font-size: 0.8rem;
    }
}

/* Tablet and up (768px+) */
@media (min-width: 768px) {
    /* Controls nav - adjust padding on larger screens */
    .controls-nav {
        padding: 0.75rem 0;
    }

    .controls-wrapper {
        gap: 0.375rem;
    }

    /* Larger button sizes on desktop */
    .site-header button.control-btn,
    button.control-btn {
        min-width: 44px;
        min-height: 44px;
    }

    /* Controls nav buttons on desktop */
    .controls-wrapper .control-btn {
        min-width: 40px;
        min-height: 40px;
    }
}

/* Desktop (992px+) */
@media (min-width: 992px) {
    .nav-group + .nav-group {
        margin-left: 0.75rem;
        padding-left: 0.75rem;
    }
}
