/* Variables - Ocean Depths Theme */
:root {
    /* Ocean Depths Core Colors */
    --ocean-deep-dark: #001f3f;
    --ocean-deep-mid: #003d5c;
    --ocean-deep-light: #006494;
    --ocean-accent: #008ec4;
    --ocean-bright: #00bcd4;
    --ocean-cyan: #b3e5fc;
    --ocean-glow: rgba(0, 188, 212, 0.5);
    
    /* Text Colors */
    --color-text: #b3e5fc;
    --color-text-glow: 0 0 1.5cqh rgba(0, 188, 212, 0.5);
    
    /* Container Styling */
    --main-bg: linear-gradient(-30deg, red, yellow);
    --main-bg: linear-gradient(-30deg, var(--ocean-deep-mid), var(--ocean-deep-light));

    --container-border: red 0.3cqh solid; 
    --container-border: none;

    /* Button Styling */
    --button-bg: linear-gradient(135deg, #006494 0%, #0088cc 100%);
    --button-bg-hover: linear-gradient(135deg, #0088cc 0%, #00bcd4 100%);
    --button-border: 0.2cqh solid #00bcd4;
    --button-shadow: 0 0.4cqh 2cqh rgba(0, 188, 212, 0.5), inset 0 0.1cqh 0 rgba(255, 255, 255, 0.2);
    --button-shadow-hover: 0 0.6cqh 2.4cqh rgba(0, 188, 212, 0.6);
    
    --button-delete-bg: red;
    --button-delete-border: darkred solid 1cqh;

    /* Input Styling */
    --input-bg: rgba(0, 61, 92, 0.6);
    --input-border: 0.2cqh solid #008ec4;
    --input-shadow: inset 0 0 1.5cqh rgba(0, 142, 196, 0.3);
    --input-shadow-focus: 0 0 2cqh rgba(0, 188, 212, 0.5), inset 0 0 1.5cqh rgba(0, 142, 196, 0.3);
    
    /* Phase Colors */
    --phase-prepare-bg: rgba(0, 100, 148, 0.3);
    --phase-active-bg: rgba(46, 234, 29, 0.625);
    --phase-active-glow: rgba(165, 214, 167, 0.5);
    --phase-active-color: #2eea1d;
    --phase-prepare-color: #00bcd4;
    
    /* Progress Bar */
    --progress-bg: rgba(0, 61, 92, 0.8);
    --progress-fill: linear-gradient(90deg, #006494 0%, #00bcd4 100%);

    /* Workarounds */
    --text-translateY: -0.05em;
    --text-translateY-footer: -0.1em;
}

/* Reset */
* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box;
    scrollbar-width: auto;
    scrollbar-color: var(--ocean-bright) var(--ocean-deep-mid);
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

/* ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ */
/* # Main Grid          */
/* ==================== */
.main-grid-container {
    width: 100dvw;
    height: 100dvh;
    
    display: grid;
    grid-template-columns: 100dvw;
    grid-template-rows: 12dvh 4dvh 8dvh 72dvh 4dvh;
    
    background: var(--main-bg);
}

/* ===================== */
/* # Main Grid - Header  */
/* ===================== */
.main-grid-header {
    container-type: size;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;

    border: var(--container-border);
    border-bottom: 0.1dvh solid var(--color-text);
}

.main-grid-header > span {
    transform: translateY(var(--text-translateY));
    white-space: nowrap;

    font-size: 60cqh;
    font-weight: 600;

    color: var(--color-text);
    text-shadow: var(--color-text-glow);
}

/* =============================== */
/* # Main Grid - Selected Workout  */
/* =============================== */
.main-grid-selected-workout {
    container-type: size;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    
    border: var(--container-border);
}

.main-grid-selected-workout > span {
    transform: translateY(var(--text-translateY));
    white-space: nowrap;
    
    font-size: 60cqh;
    font-weight: 400;

    color: var(--color-text);
    text-shadow: var(--color-text-glow);
}

/* ==================== */
/* # Main Grid - Menu   */
/* ==================== */
.main-grid-menu {
    container-type: size;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;

}

.navigation-menu {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    width: 100%;
    height: 100%;
}

.nav-tab {
    container-type: size;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;

    background: var(--ocean-deep-mid);
    border: var(--button-border);
    border-radius: 30cqh 30cqh 0 0;

    cursor: pointer;
    transition: all 0.2s;
}

.nav-tab:hover {
    background: none;
}

.nav-tab.active {
    background: none;
    border-bottom: none;
}

.nav-tab span {
    white-space: nowrap;

    font-size: 45cqh;
    font-weight: 600;
}

/* ====================== */
/* # Main Grid - Content  */
/* ====================== */
.main-grid-content {
    container-type: size;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    overflow: hidden;
    
    /* Visual styling */
    border: var(--container-border);
}

/* View Wrappers - Establish grid for each view */
.view-timer-wrapper,
.view-collection-wrapper,
.view-config-wrapper {
    container-type: size;

    width: 96cqw;
    height: 96cqh;
    margin: 2cqh 2cqw;
}

/* ===================== */
/* # Main Grid - Footer  */
/* ===================== */
.main-grid-footer {
    container-type: size;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;

    border: var(--container-border);
    border-top: 0.1dvh solid var(--color-text);
}

.main-grid-footer > span {
    transform: translateY(var(--text-translateY-footer));
    white-space: nowrap;

    text-shadow: var(--color-text-glow);
    font-size: 45cqh;

    color: var(--color-text);
    text-shadow: var(--color-text-glow);
}

/* ============================= */
/* # View Button Containers      */
/* ============================= */

.view-workout-configuration-buttons,
.view-workout-collection-buttons,
.view-timer-buttons {
    width: 100%;
    height: 100%;
}

.view-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    gap: 1cqh;
    width: 100%;
    height: 100%;
}

/* Timer view override - single button takes full width */
.view-timer-buttons .view-buttons {
    grid-template-columns: 1fr;
}

.btn-view {
    width: 100%;
    height: 100%;
    container-type: size;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s;
    background: var(--button-bg);
    border: var(--button-border);
    border-radius: 2cqh;
    box-shadow: var(--button-shadow);
    color: white;
}

.btn-view span {
    font-size: 40cqh;
    font-weight: 600;
    white-space: nowrap;
}

.btn-view:hover {
    background: var(--button-bg-hover);
    box-shadow: var(--button-shadow-hover);
    transform: translateY(-0.1cqh);
}

.btn-view:active {
    transform: translateY(0);
}

.btn-view:disabled {
    background: var(--ocean-deep-mid);
    color: rgba(179, 229, 252, 0.4);
    cursor: not-allowed;
    opacity: 0.6;
    box-shadow: none;
    transform: none;
}

.btn-view:disabled:hover {
    background: var(--ocean-deep-mid);
    transform: none;
}

/* =============== */
/* # View: Modal   */
/* =============== */
.modal-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9999;
    backdrop-filter: blur(0.2cqh);
    animation: fadeIn 0.2s ease;
}

.modal-backdrop.show {
    display: flex;
    justify-content: center;
    align-items: center;
}

.modal-container {
    background: var(--main-bg);
    border: var(--container-border);
    border-radius: 1dvh;
    width: 50dvh;
    max-height: 80dvh;
    display: flex;
    flex-direction: column;
    animation: slideUp 0.3s ease;
}

.modal-header {
    padding: 1dvh;
    border-bottom: 0.2dvh solid var(--ocean-accent);
}

.modal-title {
    font-size: 4dvh;
    font-weight: 600;
    color: var(--color-text);
    text-shadow: var(--color-text-glow);
    margin: 0;
}

.modal-body {
    padding: 1dvh;
    overflow-y: auto;
}

.modal-message {
    font-size: 3dvh;
    color: var(--color-text);
    text-shadow: var(--color-text-glow);
    line-height: 1.6;
    margin: 0;
}

.modal-input {
    width: 100%;
    padding: 1dvh;
    margin-top: 1dvh;
    background: var(--input-bg);
    border: var(--input-border);
    border-radius: 1dvh;
    font-size: 3dvh;
    color: var(--color-text);
    font-weight: 500;
    transition: all 0.2s;
    box-shadow: var(--input-shadow);
}

.modal-input:focus {
    outline: none;
    border-color: var(--ocean-bright);
    box-shadow: var(--input-shadow-focus);
}

.modal-footer {
    padding: 1dvh;
    border-top: 0.2dvh solid var(--ocean-accent);
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    gap: 1dvh;
    height: 8dvh;
}

.btn-modal {
    container-type: size;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s;
    background: var(--button-bg);
    border: var(--button-border);
    border-radius: 1dvh;
    box-shadow: var(--button-shadow);
    color: white;
}

#modal-ok-btn {
    grid-column: 2;
}

.btn-modal span {
    font-size: 40cqh;
    font-weight: 700;
    white-space: nowrap;
}

.btn-modal:hover {
    background: var(--button-bg-hover);
    box-shadow: var(--button-shadow-hover);
    transform: translateY(-0.1cqh);
}

.btn-modal:active { 
    transform: translateY(0); 
}

/* Modal Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideUp {
    from {
        transform: translateY(2cqh);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
