html,
    body {
        margin: 0;
        padding: 0;
        background: #000000 !important;
    }

    body {
        overflow: hidden;
    }

    .usat-screen {
        position: fixed;
        inset: 0;
        z-index: 9999;
        width: 100%;
        min-height: 100vh;
        min-height: 100dvh;
        overflow-y: auto;
        background: #000000;
        color: #ffffff;
    }

    .usat-view {
        width: 100%;
        min-height: 100vh;
        min-height: 100dvh;
        box-sizing: border-box;
        padding: 28px 18px 40px;
    }

    .usat-welcome-view,
    .usat-question-view,
    .usat-saved-view,
    .usat-prior-view {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    /* Welcome */

    .usat-yellow-circle {
        width: clamp(290px, 72vmin, 520px);
        height: clamp(290px, 72vmin, 520px);
        flex: 0 0 auto;
        box-sizing: border-box;
        border-radius: 50%;
        background: #ffd84a;
        color: #111111;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: clamp(30px, 7vmin, 58px);
        text-align: center;
        cursor: pointer;
        box-shadow:
            0 0 0 8px rgba(255, 216, 61, 0.08),
            0 20px 60px rgba(255, 216, 61, 0.22);
        transition: transform 0.18s ease;
    }

    .usat-yellow-circle:hover,
    .usat-yellow-circle:focus {
        transform: scale(1.02);
        outline: none;
    }

    .usat-yellow-circle:active {
        transform: scale(0.99);
    }

    .usat-yellow-circle h1 {
        margin: 0;
        color: #111111 !important;
        font-size: clamp(27px, 5.4vmin, 45px);
        font-weight: 900;
        line-height: 1.16;
    }

    .usat-yellow-circle p {
        margin: 20px 0 0;
        color: #111111 !important;
        font-size: clamp(17px, 2.9vmin, 25px);
        font-weight: 700;
        line-height: 1.3;
    }

    .usat-prior-button,
    .usat-results-link,
    .usat-home-button {
        width: 100%;
        max-width: 430px;
        box-sizing: border-box;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        text-decoration: none;
        font-weight: 800;
    }

    .usat-prior-button {
        min-height: 58px;
        margin-top: 26px;
        padding: 10px 20px;
        border: 2px solid #ff9f1c;
        border-radius: 14px;
        background: #d96b00;
        color: #ffffff;
        font-size: 18px;
        cursor: pointer;
    }

    .usat-results-link {
        min-height: 50px;
        margin-top: 14px;
        padding: 9px 20px;
        border: 1px solid #555555;
        border-radius: 12px;
        background: #1d1d1d;
        color: #ffffff;
    }

    .usat-results-link.usat-hidden {
        display: none;
    }

    .usat-home-button {
        min-height: 56px;
        margin-top: 14px;
        padding: 10px 18px;
        border: 2px solid #4b8cff;
        border-radius: 14px;
        background: #0f172a;
        color: #ffffff;
        font-size: 17px;
    }

    /* Prior date */

    .usat-prior-card {
        width: 100%;
        max-width: 620px;
        box-sizing: border-box;
        padding: 28px;
        border: 2px solid #ff9f1c;
        border-radius: 20px;
        background: #111111;
        color: #ffffff;
    }

    .usat-prior-card h2 {
        margin: 0 0 10px;
        color: #ffae42 !important;
        font-size: 30px;
        text-align: center;
    }

    .usat-prior-subtitle {
        margin: 0;
        color: #dddddd;
        text-align: center;
        line-height: 1.5;
    }

    .usat-prior-label {
        display: block;
        margin: 22px 0 9px;
        color: #ffffff;
        font-size: 17px;
        font-weight: 800;
    }

    .usat-prior-date {
        width: 100%;
        min-height: 54px;
        box-sizing: border-box;
        padding: 10px 12px;
        border: 1px solid #777777;
        border-radius: 11px;
        background: #ffffff;
        color: #111111;
        font-size: 17px;
    }


    .usat-time-label {
        margin: 20px 0 9px;
        color: #ffffff;
        font-size: 17px;
        font-weight: 800;
    }

    .usat-time-select-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px;
    }

    .usat-time-select-grid label {
        min-width: 0;
    }

    .usat-time-select-grid label span {
        display: block;
        margin-bottom: 6px;
        color: #d7dde3;
        font-size: 13px;
        font-weight: 700;
    }

    .usat-time-select {
        width: 100%;
        min-height: 54px;
        box-sizing: border-box;
        padding: 8px 10px;
        border: 1px solid #777777;
        border-radius: 11px;
        background: #ffffff;
        color: #111111;
        font-size: 17px;
    }

    @media (max-width: 520px) {
        .usat-time-select-grid {
            grid-template-columns: 1fr 1fr;
        }

        .usat-time-select-grid label:last-child {
            grid-column: 1 / -1;
        }
    }

    .usat-use-datetime-button {
        width: 100%;
        min-height: 56px;
        margin-top: 14px;
        border: 2px solid #ff9f1c;
        border-radius: 12px;
        background: #d96b00;
        color: #ffffff;
        font-size: 17px;
        font-weight: 800;
        cursor: pointer;
    }

    .usat-use-datetime-button:hover {
        background: #f07a00;
    }


    .usat-validation {
        margin-top: 16px;
        padding: 12px 14px;
        border: 1px solid #ffb066;
        border-radius: 10px;
        background: #3a2108;
        color: #ffd7ad;
        font-weight: 700;
    }

    .usat-prior-cancel {
        width: 100%;
        min-height: 52px;
        margin-top: 20px;
        border: 1px solid #666666;
        border-radius: 12px;
        background: #252525;
        color: #ffffff;
        font-size: 17px;
        font-weight: 800;
        cursor: pointer;
    }

    .usat-privacy-note {
        margin: 16px 0 0;
        color: #aaaaaa;
        font-size: 13px;
        text-align: center;
    }

    /* Questions */

    .usat-question-card {
        width: 100%;
        max-width: 820px;
        box-sizing: border-box;
        background: #000000 !important;
        color: #ffffff !important;
        text-align: center;
    }

    .usat-question-progress {
        margin-bottom: 18px;
        color: #bcbcbc;
        font-size: 15px;
        font-weight: 700;
    }

    .usat-question-text {
        min-height: 210px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 0;
        background: #000000 !important;
        color: #ffffff !important;
        border: none !important;
        box-shadow: none !important;
        font-size: clamp(31px, 6vw, 49px);
        font-weight: 800;
        line-height: 1.3;
        text-align: center;
    }

    .usat-answer-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 18px;
        width: 100%;
        margin-top: 34px;
    }

    .usat-answer-yes,
    .usat-answer-no {
        min-height: 112px;
        border: none;
        border-radius: 18px;
        color: #ffffff;
        font-size: 32px;
        font-weight: 900;
        cursor: pointer;
    }

    .usat-answer-yes {
        background: #178447;
    }

    .usat-answer-no {
        background: #c62f3f;
    }

    .usat-small-controls {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 20px;
    }

    .usat-small-control {
        min-height: 42px;
        padding: 9px 14px;
        border: 1px solid #555555;
        border-radius: 10px;
        background: #151515;
        color: #ffffff;
        font-size: 14px;
        cursor: pointer;
    }

    .usat-small-control.usat-muted {
        color: #bcbcbc;
        background: #0d0d0d;
    }

    /* Saved */

    .usat-saved-card {
        width: 100%;
        max-width: 620px;
        text-align: center;
    }

    .usat-saved-check {
        width: 82px;
        height: 82px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0 auto 18px;
        border: 3px solid #28a35a;
        border-radius: 50%;
        color: #28a35a;
        font-size: 48px;
        font-weight: 900;
    }

    .usat-saved-card h1 {
        margin: 0;
        color: #ffffff !important;
        font-size: clamp(28px, 5vw, 46px);
        font-weight: 900;
    }

    .usat-completion-actions {
        display: grid;
        gap: 12px;
        width: 100%;
        max-width: 520px;
        margin: 28px auto 0;
    }

    .usat-completion-actions button {
        min-height: 58px;
        border-radius: 14px;
        color: #ffffff;
        font-size: 18px;
        font-weight: 800;
        cursor: pointer;
    }

    .usat-completion-primary {
        border: none;
        background: #178447;
    }

    .usat-completion-secondary {
        border: 1px solid #666666;
        background: #171717;
    }

    .usat-completion-home {
        border: 2px solid #4b8cff;
        background: #0f172a;
    }

    @media (max-width: 600px) {
        .usat-welcome-view {
            justify-content: flex-start;
            padding-top: 34px;
        }

        .usat-yellow-circle {
            width: clamp(280px, 88vw, 410px);
            height: clamp(280px, 88vw, 410px);
            padding: 32px;
        }

        .usat-yellow-circle h1 {
            font-size: clamp(25px, 8vw, 36px);
        }

        .usat-yellow-circle p {
            font-size: clamp(16px, 4.8vw, 21px);
        }

        .usat-prior-view,
        .usat-question-view {
            justify-content: flex-start;
            padding-top: 34px;
        }

        .usat-prior-card {
            padding: 22px 17px;
        }

        .usat-question-text {
            min-height: 240px;
            font-size: clamp(29px, 8vw, 40px);
        }

        .usat-answer-grid {
            gap: 12px;
            margin-top: 28px;
        }

        .usat-answer-yes,
        .usat-answer-no {
            min-height: 98px;
            font-size: 28px;
        }
    }
