/* css/v5-layout.css */

/* ============================================================
   LAYOUT — каркас страницы
   ============================================================ */

.v5-app {
    display: flex;
    flex-direction: column;
    height: 100vh;        /* fallback для старых Android */
    height: 100dvh;       /* современные браузеры (Chrome 108+, Firefox 101+, Safari 15.4+) */
    background: var(--v5-primary-bg);
    color: var(--v5-primary-base);
}


.v5-header {
    flex-shrink: 0;
    overflow: hidden;
}

.v5-main {
    flex: 1;
    display: flex;
    flex-direction: row;
    overflow: hidden;
}



/* ============================================================
   ЦЕНТРАЛЬНАЯ ПАНЕЛЬ
   ============================================================ */

.v5-center-panel {
    display: flex;
    flex-direction: column;
    width: 33vw;
    min-width: 33vw;
    max-width: 33vw;
    flex-shrink: 0;
    height: 100%;
    overflow: hidden;
    border-right: var(--v5-border-width) solid var(--v5-primary-base);
}

/* ============================================================
   ПРАВАЯ ПАНЕЛЬ
   ============================================================ */

.v5-right-panel {
    flex: 1;
    height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* ============================================================
   ЛОГ-ПАНЕЛЬ
   ============================================================ */

.v5-log-panel {
    display: none;
    flex-direction: column;
    width: 25vw;
    min-width: 200px;
    max-width: 400px;
    flex-shrink: 0;
    height: 100%;
    overflow: hidden;
    border-left: var(--v5-border-width) solid var(--v5-primary-base);
}

.v5-footer {
    flex-shrink: 0;
    overflow: auto;
    background: var(--v5-primary-dark);
}

/* ============================================================
   СОСТОЯНИЕ DISABLED
   ============================================================ */


.v5-center-panel.v5-disabled,
.v5-right-panel.v5-disabled,
.v5-log-panel.v5-disabled {
    opacity: 0.6;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

/* ============================================================
   LOG ENTRIES — записи лог-панели
   ============================================================ */

.v5-log-entry {
    padding: var(--v5-gap-min);
    font-size: var(--v5-font-little);
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    border-bottom: var(--v5-border-width) solid var(--v5-primary-light);
    word-break: break-word;
}

.v5-log-entry-info    { color: var(--v5-primary-base); }
.v5-log-entry-success { color: var(--v5-success-base); }
.v5-log-entry-warning { color: var(--v5-info-base); }
.v5-log-entry-error   { color: var(--v5-error-base); }

/* ============================================================
   ПОРТРЕТНАЯ ОРИЕНТАЦИЯ
   ============================================================ */

@media (orientation: portrait) {

    /* ---- MAIN: колонка ---- */
    .v5-main {
        flex-direction: column;
    }



    /* ---- ЦЕНТРАЛЬНАЯ ПАНЕЛЬ: 35vh ---- */
    .v5-center-panel {
        width: 100% !important;
        min-width: unset;
        max-width: unset;
        height: 40vh;
        min-height: 40vh;
        max-height: 40vh;
        flex-shrink: 0;
        border-right: none;
        border-bottom: var(--v5-border-width) solid var(--v5-primary-base);
    }

    .v5-center-panel .v5-frame-body .v5-btn {
        width: var(--v5-btn-fix-width);
        min-width: var(--v5-btn-fix-width);
        max-width: var(--v5-btn-fix-width);
        justify-content: flex-start;
        flex-shrink: 0;
    }

    .v5-center-panel .v5-frame-footer .v5-btn {
        width: var(--v5-btn-fix-width);
        min-width: var(--v5-btn-fix-width);
        max-width: var(--v5-btn-fix-width);
        justify-content: flex-start;
        flex-shrink: 0;
    }

    /* ---- ПРАВАЯ ПАНЕЛЬ: flex: 1 ---- */
    .v5-right-panel {
        width: 100% !important;
        min-width: unset;
        max-width: unset;
        flex: 1;
        min-height: 0;
    }

    /* ---- ЛОГ-ПАНЕЛЬ: 25vh ---- */
    .v5-log-panel {
        width: 100% !important;
        min-width: unset;
        max-width: unset;
        flex-shrink: 0;
        height: 30vh;
        min-height: 30vh;
        max-height: 30vh;
        border-left: none;
        border-top: var(--v5-border-width) solid var(--v5-primary-base);
    }

    #actionsContainer .v5-btn {
        width: 100%;
        min-width: auto;
        max-width: none;
        flex-shrink: 1;
    }
}