﻿/* Wrapping element */
/* Set some basic padding to keep content from hitting the edges */
.body-content {
    margin-top: 15px;
    padding-left: 15px;
    padding-right: 15px;
}

/* Set widths on the form inputs since otherwise they're 100% wide */
input,
select,
textarea {
    max-width: 280px;
}

/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
    .body-content {
        padding: 0;
    }
    * {
        box-sizing: border-box;
    }
    html,
    body {
        margin: 0;
        padding: 0;
        min-height: 100%;
        font-family: "Segoe UI", Arial, sans-serif;
        background: #eef2f7;
        color: #1f2937;
    }

    body {
        overflow-x: hidden;
    }

    /* Master Page */

    .hct-app-shell {
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        background: #eef2f7;
    }

    .hct-topbar {
        background: linear-gradient(135deg, #0f172a, #1e40af);
        color: white;
        box-shadow: 0 8px 24px rgba(15, 23, 42, 0.22);
        position: sticky;
        top: 0;
        z-index: 1000;
    }

    .hct-nav-container {
        max-width: 1350px;
        margin: 0 auto;
        padding: 14px 28px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
    }

    .hct-brand {
        display: flex;
        align-items: center;
        gap: 12px;
        color: white;
        text-decoration: none;
        font-weight: 700;
        font-size: 20px;
    }

        .hct-brand:hover {
            color: #dbeafe;
            text-decoration: none;
        }

    .hct-brand-mark {
        width: 42px;
        height: 42px;
        border-radius: 14px;
        background: rgba(255, 255, 255, 0.14);
        border: 1px solid rgba(255, 255, 255, 0.24);
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 800;
    }

    .hct-brand-text {
        display: flex;
        flex-direction: column;
        line-height: 1.15;
    }

        .hct-brand-text small {
            font-size: 12px;
            font-weight: 500;
            color: #bfdbfe;
            margin-top: 3px;
        }

    .hct-nav-links {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .hct-nav-link {
        display: inline-block;
        color: #dbeafe;
        text-decoration: none;
        padding: 10px 14px;
        border-radius: 12px;
        font-size: 14px;
        font-weight: 600;
    }

        .hct-nav-link:hover {
            background: rgba(255, 255, 255, 0.12);
            color: white;
            text-decoration: none;
        }

    .hct-main-wrapper {
        flex: 1;
        width: 100%;
    }

    .hct-main-content {
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .hct-footer {
        max-width: 1350px;
        width: calc(100% - 56px);
        margin: 24px auto;
        padding: 18px 22px;
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 16px;
        color: #6b7280;
        font-size: 13px;
        box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        flex-wrap: wrap;
    }

        .hct-footer p {
            margin: 0;
        }

        .hct-footer strong {
            color: #374151;
        }

    /* General Page Layout */

    .lab-page-shell {
        min-height: 100vh;
        padding: 28px;
        background: #eef2f7;
        color: #1f2937;
        font-family: "Segoe UI", Arial, sans-serif;
    }

    .lab-page-header {
        max-width: 1350px;
        margin: 0 auto 20px auto;
        background: linear-gradient(135deg, #0f172a, #1e40af);
        color: white;
        padding: 28px 32px;
        border-radius: 18px;
        box-shadow: 0 12px 30px rgba(15, 23, 42, 0.22);
    }

        .lab-page-header h1 {
            margin: 0;
            font-size: 30px;
            font-weight: 700;
        }

        .lab-page-header p {
            margin: 8px 0 0 0;
            color: #dbeafe;
            font-size: 15px;
        }

    .lab-main-layout {
        max-width: 1350px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: 360px 1fr;
        gap: 20px;
    }

    .lab-card {
        background: white;
        border-radius: 18px;
        box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
        border: 1px solid #e5e7eb;
    }

    .lab-card-header {
        padding: 18px 20px;
        border-bottom: 1px solid #e5e7eb;
    }

        .lab-card-header h2 {
            margin: 0;
            font-size: 18px;
            color: #111827;
        }

        .lab-card-header span {
            display: block;
            margin-top: 5px;
            font-size: 13px;
            color: #6b7280;
        }

    .lab-card-body {
        padding: 20px;
    }

    .lab-search-panel {
        position: sticky;
        top: 20px;
    }

    .lab-form-label {
        display: block;
        font-weight: 600;
        margin-bottom: 8px;
        font-size: 14px;
        color: #374151;
    }

    /* Inputs and Buttons */

    .question-box {
        width: 100%;
        min-height: 150px;
        resize: vertical;
        border: 1px solid #cbd5e1;
        border-radius: 12px;
        padding: 12px;
        font-size: 14px;
        font-family: "Segoe UI", Arial, sans-serif;
        outline: none;
        background: #f9fafb;
    }

        .question-box:focus {
            border-color: #2563eb;
            background: white;
            box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
        }

    .lab-hint-box {
        margin-top: 12px;
        padding: 12px;
        background: #eff6ff;
        border: 1px solid #bfdbfe;
        border-radius: 12px;
        font-size: 13px;
        color: #1e3a8a;
        line-height: 1.5;
    }

    .lab-button-row {
        margin-top: 16px;
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
    }

    .lab-btn {
        border: none;
        border-radius: 12px;
        padding: 11px 16px;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
    }

    .lab-btn-primary {
        background: #2563eb;
        color: white;
        width: 100%;
    }

        .lab-btn-primary:hover {
            background: #1d4ed8;
        }

    .lab-btn-success {
        background: #16a34a;
        color: white;
    }

        .lab-btn-success:hover {
            background: #15803d;
        }

    .lab-btn:disabled {
        opacity: 0.55;
        cursor: not-allowed;
    }

    .output-box {
        display: block;
        margin-bottom: 16px;
        padding: 14px 16px;
        background: #f8fafc;
        border-left: 5px solid #2563eb;
        border-radius: 12px;
        font-size: 14px;
        line-height: 1.6;
        color: #334155;
    }

    /* Grid */

    .lab-grid-wrapper {
        width: 100%;
        overflow-x: auto;
        border: 1px solid #e5e7eb;
        border-radius: 14px;
        background: white;
    }

    .grid {
        width: 100%;
        border-collapse: collapse;
        min-width: 1050px;
    }

        .grid th {
            background: #111827;
            color: white;
            text-align: left;
            padding: 11px 10px;
            font-size: 13px;
            white-space: nowrap;
        }

        .grid td {
            padding: 10px;
            border-bottom: 1px solid #e5e7eb;
            font-size: 13px;
            color: #374151;
            white-space: nowrap;
        }

        .grid tr:nth-child(even) td {
            background: #f9fafb;
        }

        .grid tr:hover td {
            background: #eff6ff;
        }

        .grid a {
            display: inline-block;
            background: #2563eb;
            color: white;
            padding: 6px 10px;
            border-radius: 8px;
            text-decoration: none;
            font-size: 12px;
            font-weight: 600;
        }

    /* Booking */

    .lab-booking-box {
        margin-top: 18px;
        padding: 18px;
        border: 1px solid #bbf7d0;
        background: #f0fdf4;
        border-radius: 16px;
    }

    .selected-info {
        display: block;
        margin-bottom: 14px;
        color: #166534;
        font-weight: 700;
        line-height: 1.6;
    }

    .lab-date-options {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 12px;
        font-size: 14px;
        color: #374151;
    }

    .lab-date-range {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px;
        margin: 12px 0;
    }

    .lab-date-field label {
        display: block;
        font-weight: 600;
        font-size: 13px;
        margin-bottom: 6px;
        color: #374151;
    }

    .date-input {
        width: 100%;
        border: 1px solid #cbd5e1;
        border-radius: 10px;
        padding: 9px 10px;
        font-size: 14px;
        background: white;
    }

    .lab-hidden-fields {
        display: none;
    }

    /* Mobile */

    @media (max-width: 950px) {
        .lab-main-layout {
            grid-template-columns: 1fr;
        }

        .lab-search-panel {
            position: static;
        }

        .lab-date-range {
            grid-template-columns: 1fr;
        }
    }
}
