/* Professional lab skin for the life calculator; functional layout stays intact. */

.lab-page {
    --primary-color: #176b75;
    --primary-dark: #0f4f5b;
    --secondary-color: #73d2d6;
    --danger-color: #a84d44;
    --light-gray: #f1efe8;
    --medium-gray: #d5d9d5;
    --dark-gray: #5c6c72;
    --text-color: #142a37;
    --border-radius: 3px;
    --box-shadow: 0 18px 45px rgba(8, 24, 39, 0.1);
    --lab-ink: #081827;
    --lab-navy: #0d2638;
    --lab-cyan: #73d2d6;
    --lab-copper: #c88452;
    --lab-paper: #f3f0e8;
    color: var(--text-color);
    background:
        linear-gradient(rgba(28, 72, 82, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 72, 82, 0.035) 1px, transparent 1px),
        var(--lab-paper) !important;
    background-size: 32px 32px;
}

.lab-page > header {
    position: relative;
    z-index: 10;
    color: #f8f6ef;
    background: var(--lab-ink);
    border-bottom: 1px solid rgba(115, 210, 214, 0.22);
    box-shadow: 0 12px 35px rgba(2, 12, 20, 0.24);
}

.lab-page .navbar {
    min-height: 88px;
    height: auto;
    padding: 1rem max(2rem, calc((100vw - 1160px) / 2));
    background:
        radial-gradient(circle at 78% -80%, rgba(115, 210, 214, 0.22), transparent 26rem),
        transparent;
    border-bottom: 0;
    box-shadow: none;
}

.lab-kicker {
    margin-bottom: 0.28rem;
    color: var(--lab-copper);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.lab-page .site-title {
    color: #f8f6ef;
    font-size: 1.65rem;
    letter-spacing: -0.025em;
}

.lab-page .site-subtitle {
    color: rgba(236, 243, 240, 0.62);
    font-size: 0.88rem;
}

.lab-page .navbar-right {
    gap: 0.6rem;
}

.lab-page .nav-link {
    color: rgba(248, 246, 239, 0.76);
    padding: 0.55rem 0.9rem;
    border: 1px solid rgba(115, 210, 214, 0.18);
    border-radius: 2px;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
}

.lab-page .nav-link:hover {
    color: var(--lab-ink);
    background: var(--lab-cyan);
    border-color: var(--lab-cyan);
}

.lab-page > main.container {
    max-width: 1160px;
    padding-top: clamp(3.5rem, 7vw, 6rem);
}

.lab-page h2,
.lab-page h3 {
    color: var(--lab-ink);
}

.lab-page .intro {
    position: relative;
    max-width: 900px;
    margin-bottom: clamp(3rem, 7vw, 5.5rem);
    padding-left: clamp(1rem, 4vw, 3rem);
    text-align: left;
    border-left: 3px solid var(--lab-copper);
}

.lab-page .intro::before {
    content: "LIFETIME · 80Y · DAILY RESOLUTION";
    display: block;
    margin-bottom: 0.9rem;
    color: #5a777d;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.13em;
}

.lab-page .intro h2 {
    margin-bottom: 0.9rem;
    font-size: clamp(2.1rem, 5vw, 3.8rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.045em;
}

.lab-page .intro p {
    max-width: 760px;
    color: var(--dark-gray);
    font-size: 1rem;
    line-height: 1.85;
}

.lab-page .grid-container,
.lab-page .export-options {
    background: rgba(250, 248, 242, 0.96);
    border: 1px solid rgba(32, 76, 91, 0.2);
    border-radius: 3px;
    box-shadow: var(--box-shadow);
}

.lab-page .grid-container {
    padding: clamp(1rem, 4vw, 2rem);
}

.lab-page .controls {
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(32, 76, 91, 0.14);
}

.lab-page .zoom-controls::before {
    content: "VIEW SCALE";
    margin-right: 0.8rem;
    color: #668087;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
}

.lab-page .zoom-controls button {
    color: var(--lab-navy);
    background: transparent;
    border-color: rgba(32, 76, 91, 0.28);
    border-radius: 2px;
    box-shadow: none;
}

.lab-page .zoom-controls button:hover {
    color: #f8f6ef;
    background: var(--lab-navy);
    transform: none;
}

.lab-page .grid-scroll {
    background-color: #ffffff;
    border-color: rgba(32, 76, 91, 0.25);
    border-radius: 2px;
    box-shadow: inset 0 0 0 1px rgba(115, 210, 214, 0.08);
}

.lab-page .activity-legend {
    padding-top: 1.2rem;
    border-top: 1px solid rgba(32, 76, 91, 0.14);
}

.lab-page .activity-legend h3,
.lab-page .format-selection h3,
.lab-page .range-selection h3,
.lab-page .extra-options h3 {
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lab-page .color-box {
    border-radius: 2px;
}

.lab-page .activity-panel,
.lab-page .export-section {
    position: relative;
    margin-bottom: clamp(4rem, 8vw, 6.5rem);
}

.lab-page .activity-panel > h2,
.lab-page .export-section > h2 {
    margin-bottom: 1.5rem;
    font-size: clamp(1.7rem, 4vw, 2.4rem);
    font-weight: 700;
    letter-spacing: -0.035em;
}

.lab-page .activity-panel > h2::before,
.lab-page .export-section > h2::before {
    display: block;
    margin-bottom: 0.5rem;
    color: var(--lab-copper);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.62rem;
    letter-spacing: 0.14em;
}

.lab-page .activity-panel > h2::before {
    content: "MODULE · 02";
}

.lab-page .export-section > h2::before {
    content: "MODULE · 03";
}

.lab-page .btn-primary,
.lab-page .btn-secondary,
.lab-page .btn-danger {
    min-height: 42px;
    border-radius: 2px;
    box-shadow: none;
    font-weight: 600;
}

.lab-page .btn-primary {
    background: var(--lab-navy);
    border: 1px solid var(--lab-navy);
}

.lab-page .btn-primary:hover {
    color: var(--lab-ink);
    background: var(--lab-cyan);
    border-color: var(--lab-cyan);
    box-shadow: none;
    transform: none;
}

.lab-page .btn-secondary {
    color: var(--lab-navy);
    background: transparent;
    border: 1px solid rgba(32, 76, 91, 0.28);
}

.lab-page .btn-danger {
    background: #8f403a;
}

.lab-page .activities-list {
    border-color: rgba(32, 76, 91, 0.2);
    border-radius: 2px;
    box-shadow: var(--box-shadow);
}

.lab-page .activity-item {
    background: rgba(250, 248, 242, 0.96);
    border-bottom-color: rgba(32, 76, 91, 0.14);
}

.lab-page .activity-item:hover {
    background: #e9f1ef;
}

.lab-page .edit-activity {
    color: #1d6871;
}

.lab-page .export-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    padding: clamp(1.25rem, 4vw, 2.2rem);
}

.lab-page .format-selection,
.lab-page .range-selection,
.lab-page .extra-options {
    min-width: 0;
    margin: 0;
    padding: 1.1rem;
    border: 1px solid rgba(32, 76, 91, 0.14);
}

.lab-page #export-btn {
    grid-column: 1 / -1;
    justify-self: start;
}

.lab-page .custom-range {
    background: #ffffff;
    border-color: rgba(32, 76, 91, 0.22);
    border-radius: 2px;
}

.lab-page input[type="text"],
.lab-page input[type="number"] {
    color: var(--lab-ink);
    background: #ffffff;
    border-color: rgba(32, 76, 91, 0.28);
    border-radius: 2px;
}

.lab-page .modal {
    background: rgba(3, 15, 24, 0.78);
}

.lab-page .modal-content {
    background: var(--lab-paper);
    border: 1px solid rgba(115, 210, 214, 0.35);
    border-radius: 3px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.38);
}

.lab-page .close-modal {
    border: 0;
    background: transparent;
}

.lab-page .form-actions {
    background: var(--lab-paper);
}

.lab-page .color-option {
    border-radius: 2px;
}

.lab-page footer,
.lab-page .footer-bar {
    color: rgba(248, 246, 239, 0.62);
    background: var(--lab-ink);
    border-top-color: rgba(115, 210, 214, 0.18);
    box-shadow: none;
}

.lab-page .footer-links a {
    color: var(--lab-cyan);
}

.lab-page :is(a, button, input):focus-visible,
.lab-page .color-option:focus-visible {
    outline: 3px solid var(--lab-copper);
    outline-offset: 3px;
}

.lab-page ::selection {
    color: var(--lab-ink);
    background: #b8e6e5;
}

@media (max-width: 820px) {
    .lab-page .navbar {
        align-items: flex-start;
        padding: 1rem 1.25rem;
    }

    .lab-page .navbar-left {
        margin-bottom: 0.8rem;
    }

    .lab-page .export-options {
        grid-template-columns: 1fr;
    }

    .lab-page #export-btn {
        grid-column: 1;
    }
}

@media (max-width: 420px) {
    .lab-page > main.container {
        padding-inline: 1rem;
        padding-top: 3rem;
    }

    .lab-page .navbar-right {
        width: 100%;
        gap: 0.5rem;
    }

    .lab-page .nav-link {
        flex: 1;
        text-align: center;
    }

    .lab-page .site-subtitle {
        max-width: 19rem;
        line-height: 1.55;
    }

    .lab-page .intro {
        padding-left: 1rem;
    }

    .lab-page .grid-container {
        padding: 0.75rem;
    }

    .lab-page .grid-wrapper {
        min-height: 340px;
        max-height: 62vh;
    }

    .lab-page .grid-scroll {
        width: 100%;
        max-height: 60vh;
        overflow-x: auto;
    }

    .lab-page .zoom-controls::before {
        display: none;
    }

    .lab-page #legend-items {
        gap: 0.6rem;
    }

    .lab-page .modal-content {
        width: calc(100% - 1rem);
        max-width: none;
        padding: 1.25rem;
    }

    .lab-page .export-options {
        padding: 0.75rem;
    }

    .lab-page .format-selection,
    .lab-page .range-selection,
    .lab-page .extra-options {
        padding: 0.9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lab-page *,
    .lab-page *::before,
    .lab-page *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
