/* ======================================================= */
/* GLOBAL & LAYOUT
/* ======================================================= */
html, body {
    height: 100%;
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background-color: #f0f2f5;
    color: #333;
    overflow: hidden; /* NO SCROLLING */
}

.kiosk-page {
    height: 100%;
    display: none;
}
.kiosk-page.active {
    display: block;
}

/* Utility class */
.hidden {
    display: none !important;
}

.kiosk-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start; 
    height: 100%; 
    padding: 40px;
    box-sizing: border-box;
    gap: 20px;
}

/* Welcome page needs to be centered */
#page-welcome .kiosk-container {
     justify-content: space-between;
}

/* ======================================================= */
/* HEADER (Logo & Clock)
/* ======================================================= */
header {
    width: 100%;
    text-align: center;
    flex-shrink: 0; 
}

#logo-container {
    font-size: 2.5em;
    font-weight: bold;
    color: #111;
}

.logo-container-small {
    font-size: 1.5em;
    font-weight: 600;
    color: #333;
}

#datetime {
    font-size: 1.2em;
    color: #555;
    margin-top: 10px;
}
/* --- UPDATED: Limit Logo Image Size (< 100px tall) --- */
#logo-container img,
.logo-container-small img {
    max-height: 90px; /* Keep it slightly under 100px for padding/margin */
    width: auto;      /* Maintain aspect ratio */
    display: block;   /* Helps prevent extra space below image */
    margin: 0 auto;   /* Center the logo horizontally */
}

/* Optional: Make the small logo smaller */
.logo-container-small img {
    max-height: 60px; /* Adjust if needed */
}
/* --- END UPDATED --- */


/* ======================================================= */
/* MAIN CONTENT (Buttons & Forms)
/* ======================================================= */
main {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center; 
    justify-content: center;
    flex-shrink: 1; 
    flex-grow: 1; 
    overflow-y: auto;
    overflow-x: hidden;
}

/* --- Welcome Screen Buttons --- */
.kiosk-button-row-welcome {
    display: flex;
    gap: 30px;
    width: 100%;
    align-items: center;
    justify-content: center;
}

/* Make the two welcome buttons share available space and stay identical */
.kiosk-button-row-welcome .kiosk-button {
    flex: 1 1 0;             /* equal flexible width */
    min-width: 220px;       /* prevent collapsing on small screens */
    max-width: 480px;       /* constrain maximum size on very large screens */
    padding: 24px 18px;     /* vertical padding emphasized, horizontal reduced for balance */
    font-size: 1.9em;       /* consistent readable size */
    text-align: center;
    box-sizing: border-box;
}

/* Slight spacing inside buttons so text doesn't wrap too early */
.kiosk-button-row-welcome .kiosk-button.sign-in,
.kiosk-button-row-welcome .kiosk-button.sign-out {
    padding-left: 16px;
    padding-right: 16px;
}

/* Ensure any existing page-specific welcome button rule doesn't override the above */
#page-welcome .kiosk-button {
    /* Keep colors from .sign-in / .sign-out; size handled by .kiosk-button-row-welcome */
}

/* --- Larger Welcome Title above buttons (updated) --- */
/* Target common heading elements or a .welcome-title element inside the welcome container */
#page-welcome .kiosk-container .welcome-title,
#page-welcome .kiosk-container h1,
#page-welcome .kiosk-container h2 {
    order: 0; /* ensure title is above button row if using flex ordering */
    font-size: 4.2em;      /* increased size */
    line-height: 1.02;
    font-weight: 900;
    margin: 18px 0 12px;
    text-align: center;
    color: #111;
    width: 100%;
    align-self: center;    /* center the title within the flex column */
}

/* Reduce vertical gap between title and buttons for a tighter welcome block */
.kiosk-button-row-welcome {
    order: 1;
    display: flex;
    gap: 30px;
    width: 100%;
    align-items: center;
    justify-content: center;
    margin-top: 6px;
}

/* Make the two welcome buttons share available space and stay identical */
.kiosk-button-row-welcome .kiosk-button {
    flex: 1 1 0;             /* equal flexible width */
    min-width: 220px;       /* prevent collapsing on small screens */
    max-width: 480px;       /* constrain maximum size on very large screens */
    padding: 24px 18px;     /* vertical padding emphasized, horizontal reduced for balance */
    font-size: 1.9em;       /* consistent readable size */
    text-align: center;
    box-sizing: border-box;
}

/* Responsive adjustments for the larger title */
@media (max-width: 720px) {
    #page-welcome .kiosk-container .welcome-title,
    #page-welcome .kiosk-container h1,
    #page-welcome .kiosk-container h2 {
        font-size: 2.6em; /* scale down on small screens */
    }
    .kiosk-button-row-welcome .kiosk-button {
        font-size: 1.4em;
        padding: 18px 12px;
        min-width: 140px;
    }
}

/* --- WELCOME TITLE + INTRO (placed above buttons) --- */
#page-welcome .kiosk-container main {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    width: 100%;
}

/* Big title */
#page-welcome .kiosk-container .welcome-title,
#page-welcome .kiosk-container h1,
#page-welcome .kiosk-container h2 {
    order: 0;
    font-size: 4.0em;        /* large title */
    line-height: 1.03;
    font-weight: 800;
    margin: 0;
    text-align: center;
    color: #111;
    width: 100%;
}

/* Intro paragraph immediately under the title */
#page-welcome .kiosk-container .welcome-subtext {
    order: 1;
    font-size: 1.35em;       /* readable supporting text */
    color: #444;
    text-align: center;
    max-width: 1000px;
    margin: 6px 12px 0;
    padding: 0 8px;
}

/* Button row (below the intro text) */
.kiosk-button-row-welcome {
    order: 2;
    display: flex;
    gap: 28px;
    width: 100%;
    max-width: 980px;
    align-items: center;
    justify-content: center;
}

/* Make the two welcome buttons identical and large (finger-friendly) */
.kiosk-button-row-welcome .kiosk-button {
    flex: 1 1 0;
    min-width: 220px;
    max-width: 480px;
    padding: 26px 18px;
    font-size: 1.9em;
    box-sizing: border-box;
}

/* Slightly smaller on narrow screens */
@media (max-width: 720px) {
    #page-welcome .kiosk-container .welcome-title {
        font-size: 2.6em;
    }
    #page-welcome .kiosk-container .welcome-subtext {
        font-size: 1.05em;
    }
    .kiosk-button-row-welcome .kiosk-button {
        font-size: 1.35em;
        padding: 18px 12px;
        min-width: 140px;
    }
}

/* --- Shared Form Styles --- */
.kiosk-form {
    background: #ffffff;
    padding: 20px 30px; 
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    width: 100%;
    max-width: 600px;
    box-sizing: border-box;
}

.kiosk-form h2 {
    text-align: center;
    margin-top: 0;
    margin-bottom: 15px;
    font-size: 2em;
    color: #111;
}

.form-description {
    text-align: center;
    font-size: 1.1em;
    color: #555;
    margin-top: -10px;
    margin-bottom: 20px;
}

.form-group {
    margin-bottom: 12px; 
}

.form-group label {
    display: block;
    font-size: 1.0em;
    font-weight: 600;
    margin-bottom: 6px;
    color: #333;
}

.form-group input,
.form-group select {
    width: 100%;
    padding: 12px;
    font-size: 1.1em;
    border: 1px solid #ccc;
    border-radius: 8px;
    box-sizing: border-box;
    background-color: white;
}

.form-group-checkbox {
    display: flex;
    align-items: center;
    gap: 12px;
    background-color: #f9f9f9;
    padding: 12px;
    border-radius: 8px;
    margin-top: 15px;
    border: 1px solid #eee;
}

.form-group-checkbox label {
    font-size: 1.1em;
    font-weight: 600;
    margin: 0;
    cursor: pointer;
}

.form-group-checkbox input[type="checkbox"] {
    width: 24px;
    height: 24px;
    cursor: pointer;
}

.form-group-radio {
    display: flex;
    align-items: center;
    gap: 12px;
    background-color: #fdfdfd;
    padding: 15px;
    border-radius: 8px;
    margin-top: 10px;
    border: 1px solid #eee;
    cursor: pointer;
}

.form-group-radio label {
    font-size: 1.1em;
    font-weight: 500;
    margin: 0;
    cursor: pointer;
}

.form-group-radio input[type="radio"] {
    width: 22px;
    height: 22px;
    cursor: pointer;
}

#key-details-container {
    border-top: 2px solid #eee;
    margin-top: 15px;
    padding-top: 15px;
}

/* --- House Rules Box --- */
.rules-box {
    height: 40vh;
    overflow-y: auto;
    border: 1px solid #ddd;
    background: #f9f9f9;
    padding: 15px;
    border-radius: 8px;
    font-size: 0.9em;
    color: #333;
    line-height: 1.6;
}

/* --- Sign-Out Results List --- */
.results-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 40vh;
    overflow-y: auto;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 10px;
}

.result-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f9f9f9;
    padding: 15px;
    border-radius: 8px;
}

.result-info {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.result-name {
    font-size: 1.2em;
    font-weight: 600;
    color: #111;
}

.result-business {
    font-size: 1.0em;
    color: #555;
}

.kiosk-button.sign-out-small {
    padding: 12px 20px;
    font-size: 1.0em;
    background-color: #d9534f;
    color: white;
}

/* --- OHS Video Styles --- */
.video-placeholder {
    position: relative;
    width: 100%;
    height: 30vh;              /* keeps consistent area for video */
    max-height: 60vh;
    overflow: hidden;         /* prevent video from spilling out */
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;         /* optional: matches typical video background */
    border-radius: 8px;
    box-sizing: border-box;
    padding: 0;
}

.video-placeholder video {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;      /* preserve aspect ratio and fit inside the box */
    background: black;
}

/* --- NEW: SIGNATURE PAD (Final Alignment Fix) --- */
.signature-pad {
    width: 100%; 
    height: 25vh; 
    background: #fdfdfd;
    border: 2px dashed #ccc;
    border-radius: 8px;
    cursor: crosshair;
    /* FIX: Prevents browser from doing its own touch manipulation */
    touch-action: none; 
}


/* ======================================================= */
/* FOOTER (Info Text & Buttons)
/* ======================================================= */
footer {
    width: 100%;
    max-width: 600px;
    text-align: center;
    flex-shrink: 0; 
}

.info-text {
    font-size: 1em;
    color: #666;
    margin: 0;
}

.button-row {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

#page-signout-results .button-row,
#page-ohs-video .button-row {
    justify-content: center;
}

/* ======================================================= */
/* SHARED BUTTON STYLES
/* ======================================================= */
.kiosk-button {
    padding: 20px 40px;
    font-size: 1.5em;
    font-weight: 600;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: transform 0.1s ease;
}

.kiosk-button:active {
    transform: scale(0.98);
    opacity: 0.9;
}

/* keep color variants but sizing handled above for welcome */
.kiosk-button.sign-in {
    background-color: #007aff;
    color: white;
}

.kiosk-button.sign-out {
    background-color: #555;
    color: white;
}

/* Make "This is me" / sign-out action finger-friendly inside results */
.signout-result {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px;
    background: #fff;
    border-radius: 10px;
    border: 1px solid #eee;
}

.signout-result .result-info {
    flex: 1 1 auto;
    min-width: 0; /* allow truncation if needed */
}

.signout-result .kiosk-button.result-action {
    flex: 0 0 auto;
    padding: 14px 20px;   /* larger touch area */
    font-size: 1.05em;    /* slightly bigger text for touch */
    border-radius: 10px;
    min-width: 140px;     /* ensure tappable width */
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

/* Ensure good spacing on small screens */
@media (max-width: 720px) {
    .signout-result {
        flex-direction: column;
        align-items: stretch;
    }
    .signout-result .kiosk-button.result-action {
        width: 100%;
        min-width: 0;
        padding: 16px;
    }
}