﻿@import url('bootstrap-icons/bootstrap-icons.min.css');


/* ============================================================
   APP COLOR TOKENS
   Change a color here once and it updates everywhere it's used.
   To recolor every primary button/link, edit --app-primary.
   ============================================================ */
:root {
    --app-primary: #207cc4; /* changed from #1b6ec2 */
    --app-primary-hover: #1a6195; /* a slightly darker shade for hover */
    --app-brand: #207cc4;
    --app-link: #0366d6;
}

/* Device font: Segoe UI on Windows, San Francisco on iPhone/Mac, Roboto on Android.
   Old line (to go back): font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; */
html, body {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

a, .btn-link {
    color: var(--app-link);
}

/* Bootstrap .table repaints cell backgrounds via var(--bs-body-bg),
   which can cover a button's color. This keeps primary buttons
   inside tables their intended color. */
.table .btn-primary {
    background-color: var(--app-primary) !important;
    border-color: var(--app-primary) !important;
    color: #fff !important;
}

    .table .btn-primary:hover {
        background-color: var(--app-primary-hover) !important;
        border-color: var(--app-primary-hover) !important;
        color: #fff !important;
    }

/* Let the dropdown escape the scroll container */
.table-responsive {
    overflow: visible !important;
}
/* Keep vertical scroll on an inner wrapper instead */

.my-btn-outline-light {
    color: #e0e3e3 !important; /* text color */
    border-color: #f0f0f0 !important; /* border color */
}

    .my-btn-outline-light:hover,
    .my-btn-outline-light:focus {
        background-color: #e0e3e3 !important; /* hover background */
        color: #000 !important; /* hover text color */
    }

.content {
    padding-top: 1.1rem;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}


#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }


/* 
    Custom CSS
*/

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
}



/* Blazor's <FocusOnNavigate Selector="h1"> focuses the page title after each
   navigation so screen readers announce the new page. Keep that, but don't
   draw a focus ring on elements that are only focused by code. */
h1:focus,
h1:focus-visible,
[tabindex="-1"]:focus,
[tabindex="-1"]:focus-visible {
    outline: none;
    box-shadow: none;
}


.accordion-rounded-button {
    height: 60px;
    margin-top: 5px;
    margin-bottom: 5px;
    padding: 10px 20px; /* Vertical and horizontal padding */
    border: none; /* Remove default border */
    border-radius: 40px; /* Makes the button fully rounded */
    font-size: 18px; /* Font size */
    cursor: pointer; /* Changes cursor to pointer on hover */
    transition: background-color 0.3s; /* Smooth transition for background color */
}

    .accordion-rounded-button:hover {
        background-color: #0056b3; /* Darker blue on hover */
        color: white;
        text-decoration: none;
    }

    .accordion-rounded-button:focus {
        outline: none; /* Removes the focus outline */
    }



.my-rounded-button {
    background-color: lightseagreen;
    color: white; /* Text color */
    padding: 10px 20px; /* Vertical and horizontal padding */
    border: none; /* Remove default border */
    border-radius: 50px; /* Makes the button fully rounded */
    font-size: 16px; /* Font size */
    cursor: pointer; /* Changes cursor to pointer on hover */
    transition: background-color 0.3s; /* Smooth transition for background color */
}

    .my-rounded-button:hover {
        background-color: #0056b3; /* Darker blue on hover */
    }

    .my-rounded-button:focus {
        outline: none; /* Removes the focus outline */
    }

    .my-rounded-button:disabled {
        background-color: #0056b3; /*Dark blue background */
    }

.my-rounded-button-add {
    background-color: dodgerblue;
    color: white; /* Text color */
    padding: 10px 20px; /* Vertical and horizontal padding */
    border: none; /* Remove default border */
    border-radius: 50px; /* Makes the button fully rounded */
    font-size: 16px; /* Font size */
    cursor: pointer; /* Changes cursor to pointer on hover */
    transition: background-color 0.3s; /* Smooth transition for background color */
}

.my-rounded-button-Back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    border-radius: 999px;
    padding: 0.55rem 1.1rem;
    font-weight: 600;
}


.my-rounded-button-add:hover {
    background-color: #0056b3; /* Darker blue on hover */
}

.my-rounded-button-add:focus {
    outline: none; /* Removes the focus outline */
}


.rounded-button-grey {
    background-color: lightgray;
    color: white; /* Text color */
    padding: 10px 20px; /* Vertical and horizontal padding */
    border: none; /* Remove default border */
    border-radius: 50px; /* Makes the button fully rounded */
    font-size: 16px; /* Font size */
    cursor: pointer; /* Changes cursor to pointer on hover */
    transition: background-color 0.3s; /* Smooth transition for background color */
}

    .rounded-button-grey:hover {
        background-color: #0056b3; /* Darker blue on hover */
    }

    .rounded-button-grey:focus {
        outline: none; /* Removes the focus outline */
    }

    .rounded-button-grey:disabled {
        background-color: #0056b3; /*Dark blue background */
    }

.rounded-button-add {
    background-color: dodgerblue;
    color: white; /* Text color */
    padding: 10px 20px; /* Vertical and horizontal padding */
    border: none; /* Remove default border */
    border-radius: 50px; /* Makes the button fully rounded */
    font-size: 16px; /* Font size */
    cursor: pointer; /* Changes cursor to pointer on hover */
    transition: background-color 0.3s; /* Smooth transition for background color */
}

    .rounded-button-add:hover {
        background-color: #0056b3; /* Darker blue on hover */
    }

    .rounded-button-add:focus {
        outline: none; /* Removes the focus outline */
    }

.tagdialog-box {
    background: white;
    padding: 20px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2);
    width: 300px;
}

.tagdialog-input {
    width: 100%;
    padding: 5px;
    margin: 10px 0;
    border: 1px solid #ccc;
    border-radius: 5px;
}

.tagdialog-placeholder {
    font-style: italic; /* Keeps italic */
    opacity: 0.6;
    transition: opacity 0.3s;
}


.pass-rounded-button {
    background-color: #007bff;
    color: white; /* Text color */
    padding: 10px 20px; /* Vertical and horizontal padding */
    border: none; /* Remove default border */
    border-radius: 50px; /* Makes the button fully rounded */
    font-size: 16px; /* Font size */
    cursor: pointer; /* Changes cursor to pointer on hover */
    transition: background-color 0.3s; /* Smooth transition for background color */
}

    .pass-rounded-button:hover {
        background-color: #0056b3; /* Darker blue on hover */
    }

    .pass-rounded-button:focus {
        outline: none; /* Removes the focus outline */
    }

.pass-vertical-center {
    display: flex;
    align-items: center;
    justify-content: center;
}


.my-white-space-pre-wrap {
    white-space: pre-wrap;
}

.my-cursor-pointer {
    cursor: pointer;
}

.my-float-start {
    float: left;
}

.my-float-end {
    float: right;
}

.my-border-solid-black-1px {
    border: 1px solid black;
}

.my-border-none {
    border: none;
}

.my-border-color-dimgrey {
    border-color: dimgrey;
}


/* 
    Font 
*/
.my-font-size-0-5rem {
    font-size: 0.5rem;
}

.my-font-size-0-75rem {
    font-size: 0.75rem;
}

.my-font-size-13px {
    font-size: 13px;
}

.my-font-size-15px {
    font-size: 15px;
}

.my-font-size-20px {
    font-size: 20px;
}

.my-font-size-30px {
    font-size: 30px;
}

.my-font-size-40px {
    font-size: 40px;
}

.my-font-size-50px {
    font-size: 50px;
}

.my-font-size-60px {
    font-size: 60px;
}

.my-font-size-xx-large {
    font-size: xx-large;
}

.my-font-size-x-large {
    font-size: x-large;
}

.my-font-size-large {
    font-size: large;
}

.my-font-size-larger {
    font-size: larger;
}

.my-font-size-medium {
    font-size: medium;
}

.my-font-size-small {
    font-size: small;
}

.my-font-size-smaller {
    font-size: smaller;
}

.my-font-size-x-small {
    font-size: x-small;
}

.my-font-size-xx-small {
    font-size: xx-small;
}

.my-font-family-Arial {
    font-family: Arial;
}

.my-font-family-sans-serif {
    font-family: sans-serif;
}

.my-font-style-italic {
    font-style: italic;
}


/* 
    Padding
*/

.my-padding-left-1em {
    padding-left: 1em;
}

/* 
    Text Alignment
*/
.my-text-align-justify {
    text-align: justify;
}

.my-text-align-left {
    text-align: left;
}

.my-text-align-right {
    text-align: right;
}

.my-text-align-center {
    text-align: center;
}

.my-fw-bold {
    font-weight: bold;
}

.my-vertical-align-top {
    vertical-align: top;
}

.my-vertical-align-middle {
    vertical-align: middle;
}

.my-vertical-align-bottom {
    vertical-align: bottom;
}


.my-align-items-center {
    align-items: center;
}

.my-align-content-center {
    align-content: center;
}

.my-align-content-stretch {
    align-content: stretch;
}

.my-justify-content-center {
    justify-content: center;
}

.my-text-transform-uppercase {
    text-transform: uppercase;
}


/* 
    Width
*/

.my-width-auto {
    width: auto;
}

.my-width-100px {
    width: 100px;
}

.my-width-100pc {
    width: 100%;
}

.my-width-70pc {
    width: 70%;
}

.my-width-55pc {
    width: 55%;
}

.my-width-50pc {
    width: 50%;
}

.my-width-40pc {
    width: 40%;
}

.my-width-30pc {
    width: 30%;
}

.my-width-25pc {
    width: 25%;
}

.my-width-20pc {
    width: 20%;
}

.my-width-15pc {
    width: 15%;
}

.my-width-10pc {
    width: 10%;
}

.my-width-10px {
    width: 10px;
}

.my-min-width-100pc {
    min-width: 100%;
}

.my-max-width-80px {
    max-width: 80px;
}


/* 
    Height
*/
.my-line-height-18px {
    line-height: 18px;
}

.my-line-height-21px {
    line-height: 21px;
}



.my-height-auto {
    height: auto;
}

.my-height-100pc {
    height: 100%;
}


.my-height-8px {
    height: 8px;
}

.my-height-25px {
    height: 25px;
}

.my-height-30px {
    height: 30px;
}

.my-height-38px {
    height: 38px;
}

.my-height-50px {
    height: 50px;
}

.my-height-80px {
    height: 80px;
}

.my-height-100px {
    height: 100px;
}

.my-height-180px {
    height: 180px;
}

.my-height-200px {
    height: 200px;
}

.my-height-300px {
    height: 300px;
}

.my-height-350px {
    height: 350px;
}

.my-height-400px {
    height: 400px;
}

.my-height-450px {
    height: 450px;
}

.my-height-500px {
    height: 500px;
}

.my-height-600px {
    height: 600px;
}

.my-min-height-150px {
    min-height: 150px;
}

.my-min-height-200px {
    min-height: 200px;
}

.my-min-height-250px {
    min-height: 250px;
}

.my-min-height-300pc {
    min-height: 300%;
}

.my-max-height-30px {
    max-height: 30px;
}

.my-max-height-50px {
    max-height: 50px;
}

.my-max-height-80px {
    max-height: 80px;
}

.my-max-height-200px {
    max-height: 200px;
}

.my-max-height-250px {
    max-height: 250px;
}

.my-max-height-300px {
    max-height: 300px;
}

.my-max-height-600px {
    max-height: 600px;
}


.my-table-layout-fixed {
    table-layout: fixed;
}
/* 
    Display / Transform
*/
.my-position-sticky {
    position: sticky;
}

.my-position-absolute {
    position: absolute;
}

.my-position-relative {
    position: relative;
}

.my-top-0 {
    top: 0;
}

.my-top-5px {
    top: 5px;
}

.my-top-25px {
    top: 25px;
}

.my-top-45px {
    top: 45px;
}

.my-right-25px {
    right: 25px;
}

.my-display-flex {
    display: flex;
}

.my-display-block {
    display: block;
}

.my-display-none {
    display: none;
}

.my-overflow-hidden {
    overflow: hidden;
}

.my-overflow-auto {
    overflow: auto;
}

.my-overflow-y-auto {
    overflow-y: auto;
}

.my-overflow-y-scroll {
    overflow-y: scroll;
}

.my-overflow-x-hidden {
    overflow-x: hidden;
}

.my-transform-translateY-20pc {
    transform: translateY(-20%);
}

.my-transform-translateY-10pc {
    transform: translateY(-10%);
}


/* 
    Color
*/
.digitizevote-color {
    color: var(--app-brand);
}

.my-color-white {
    color: white;
}

.my-color-grey {
    color: gray;
}

.my-color-blue {
    color: blue;
}

.my-color-red {
    color: red;
}


/* color use by Attendance Listing */
.my-bg-color-grey-808b96 {
    background-color: #808b96;
}

/* color use by Dashboard / In Progress Control*/
.my-bg-color-btn-progress-control {
    background-color: #2471a3;
    color: white;
}

.my-dashboard-btn-outline-secondary {
    color: #6c757d;
    border: 1px solid #6c757d;
    background-color: transparent;
}

    .my-dashboard-btn-outline-secondary:hover,
    .my-dashboard-btn-outline-secondary:focus,
    .my-dashboard-btn-outline-secondary:active {
        color: #6c757d;
        background-color: transparent;
        border-color: #6c757d;
        box-shadow: none;
        outline: none;
        border: 2px solid #6c757d;
    }



/* color use by Dashboard / In Progress Summary*/
.my-bg-color-btn-progress-summary {
    background-color: #36A2EB;
    color: white;
}


/* color use by Dashboard / Account to Monitor*/
.my-bg-color-btn-account-to-monitor {
    background-color: #4BC0C0;
    color: white;
}
/* color use by Dashboard / Account to Monitor*/
.my-bg-color-btn-attendance-list {
    background-color: #808b96;
    color: white;
}


/* color use by Dashboard / Poll Result*/
.my-bg-color-btn-poll-result {
    background-color: #FF6384;
    color: white;
}


.my-bg-color-transparent {
    background-color: transparent;
}

    .my-bg-color-transparent:hover {
        color: #6c757d; /* keep text same */
        background-color: transparent; /* no background change */
        border-color: #007bff; /* change border to highlight (blue) */
        box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); /* optional glow */
    }


/* Table Header*/

.my-thead-poll-result {
    position: sticky;
    z-index: 1;
    top: 0;
    background-color: #808b96;
}






.my-signature-div1 {
    padding: 0;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.my-signature-div2 {
    padding: 0;
    max-height: 80px;
    height: 100%;
    vertical-align: middle;
}

.my-signature-div3 {
    padding: 0;
    max-height: 30px;
    height: 100%;
    vertical-align: middle;
}

.my-btn-tap-to-sign {
    padding: 0;
    height: 80px;
    font-style: italic;
    background-color: transparent;
}

.my-btn-tap-to-sign2 {
    padding: 0;
    height: 30px;
    font-style: italic;
    font-size: x-small;
    background-color: transparent;
}


.my-signature-image {
    max-height: 80px;
    width: auto;
    object-fit: contain;
    height: auto;
}

.my-signature-image2 {
    max-height: 30px;
    width: auto;
    object-fit: contain;
    height: auto;
}


.my-table-database-utility {
    font-size: small;
    max-height: 600px;
    overflow: auto;
    display: inline-block;
}


.layout-footer-copyright-bg-color {
    background-color: var(--app-brand);
    color: white;
}

.layout-footer-copyright-link-color {
    color: white;
}

/*Unknown category*/

.z-index-1 {
    z-index: 1;
}


.z-index-2 {
    z-index: 2;
}

.my-object-fit-contain {
    object-fit: contain;
}


/*Event card-hader*/
.my-event-card-header {
    background-color: #717D7E;
    color: white;
}

/*EProxyForm*/
.eproxyform-container {
    height: 500px;
    overflow-x: hidden;
    overflow-y: auto;
}

.eproxyform-card {
    width: 100%;
    background-color: #F7F9F9;
}

.eproxyform-card-body {
    width: 100%;
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
}

.eproxyform-card-thead {
    background-color: #5F6A6A;
    color: white;
}


.eproxyform-card-thead-th-btn {
    background-color: #5cb85c;
    color: white;
}

.eproxyform-display-flex {
    display: flex;
}

.eproxyform-display-block {
    display: block;
}

.eproxyform-display-none {
    display: none;
}

.eproxyform-btn-for {
    background-color: white !important;
    color: #5cb85c !important;
}

.eproxyform-btn-for-prevoted {
    background-color: #5cb85c !important;
    color: white !important;
}

.eproxyform-btn-for-voted {
    border: 5px solid #5cb85c !important;
    background-color: #5cb85c !important;
    color: black !important;
}

.eproxyform-btn-against {
    background-color: white !important;
    color: #d9534f !important;
}

.eproxyform-btn-against-prevoted {
    background-color: #d9534f !important;
    color: white !important;
}

.eproxyform-btn-against-voted {
    border: 2px solid #d9534f !important;
    background-color: #d9534f !important;
    color: black !important;
}

.eproxyform-btn-abstain {
    background-color: white !important;
    color: #f0ad4e !important;
}

.eproxyform-btn-abstain-prevoted {
    background-color: #f0ad4e !important;
    color: white !important;
}

.eproxyform-btn-abstain-voted {
    border: 2px solid #f0ad4e !important;
    background-color: #f0ad4e !important;
    color: black !important;
}

.eproxyform-btn-no-indication {
    border: 2px solid white !important;
    background-color: white !important;
    color: lightgrey !important;
}

.eproxyform-btn-election-for {
    background-color: white !important;
    color: lightgrey !important;
}

.eproxyform-btn-election-for-prevoted {
    background-color: #5cb85c !important;
    color: white !important;
}

.question-card-bg-color {
    background-color: #F7F9F9;
}

.sessionvote-card {
    width: 100%;
    background-color: #F7F9F9 !important;
}

.sessionvote-card-header {
    background-color: #F7F9F9 !important;
    color: black !important;
}

.sessionvote-card-body {
    width: 100%;
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
}

.sessionvote-thead-th-color {
    background-color: #5F6A6A !important;
    color: white !important;
}

.sessionvote-thead-th-btn-color {
    background-color: #5cb85c !important;
    color: white !important;
}

.sessionvote-btn-for {
    background-color: white !important;
    color: #5cb85c !important;
}

.sessionvote-btn-for-prevoted {
    background-color: #5cb85c !important;
    color: white !important;
}

.sessionvote-btn-for-voted {
    border: 5px solid #5cb85c !important;
    background-color: #5cb85c !important;
    color: black !important;
}

.sessionvote-btn-against {
    background-color: white !important;
    color: #d9534f !important;
}

.sessionvote-btn-against-prevoted {
    background-color: #d9534f !important;
    color: white !important;
}

.sessionvote-btn-against-voted {
    border: 2px solid #d9534f !important;
    background-color: #d9534f !important;
    color: black !important;
}

.sessionvote-btn-abstain {
    background-color: white !important;
    color: #f0ad4e !important;
}

.sessionvote-btn-abstain-prevoted {
    background-color: #f0ad4e !important;
    color: white !important;
}

.sessionvote-btn-abstain-voted {
    border: 2px solid #f0ad4e !important;
    background-color: #f0ad4e !important;
    color: black !important;
}

.sessionvote-btn-no-indication {
    border: 2px solid white !important;
    background-color: white !important;
    color: lightgrey !important;
}

.sessionvote-btn-election-for {
    background-color: white !important;
    color: lightgrey !important;
}

.sessionvote-btn-election-for-prevoted {
    background-color: #5cb85c !important;
    color: white !important;
}

.vgresolution-table {
    font-size: small;
    max-height: 200px;
    overflow: auto;
    display: inline-block;
}

.vgresolution-reso-table {
    font-size: small;
    max-height: 400px;
    overflow: auto;
    display: inline-block;
}

.vgresolution-reso-table-thead {
    position: sticky;
    z-index: 1;
    top: 0;
}

.usereventmanager-card-header {
    background-color: #717D7E;
    color: white;
}

.tnvpollvote-card {
    width: 100%;
    background-color: #F7F9F9 !important;
}

.tnvpollvote-card-header {
    background-color: #F7F9F9 !important;
    color: black;
}

.tnvpollvote-card-body {
    width: 100%;
    padding-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.tnvpollvote-table-thead {
    background-color: #5F6A6A !important;
    color: white !important;
}

.tnvpollvote-btn-for {
    background-color: white !important;
    color: #5cb85c !important;
}

.tnvpollvote-btn-for-prevoted {
    background-color: #5cb85c !important;
    color: white !important;
}

.tnvpollvote-btn-for-voted {
    border: 5px solid #5cb85c !important;
    background-color: #5cb85c !important;
    color: black !important;
}

.tnvpollvote-btn-against {
    background-color: white !important;
    color: #d9534f !important;
}

.tnvpollvote-btn-against-prevoted {
    background-color: #d9534f !important;
    color: white !important;
}

.tnvpollvote-btn-against-voted {
    border: 2px solid #d9534f !important;
    background-color: #d9534f !important;
    color: black !important;
}

.tnvpollvote-btn-abstain {
    background-color: white !important;
    color: #f0ad4e !important;
}

.tnvpollvote-btn-abstain-prevoted {
    background-color: #f0ad4e !important;
    color: white !important;
}

.tnvpollvote-btn-abstain-voted {
    border: 2px solid #f0ad4e !important;
    background-color: #f0ad4e !important;
    color: black !important;
}

.tnvpollvote-btn-no-indication {
    border: 2px solid white !important;
    background-color: white !important;
    color: lightgrey !important;
}

.tnvpollvote-btn-election-for {
    background-color: white !important;
    color: lightgrey !important;
}

.tnvpollvote-btn-election-for-prevoted {
    background-color: #5cb85c !important;
    color: white !important;
}

.displaypollresult-table th {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}

.displaypollresult-table td {
    padding-top: 3px !important;
    padding-bottom: 3px !important;
}

.download-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.download-box {
    background: white;
    padding: 20px;
    border-radius: 10px;
    text-align: center;
}

.progress-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.progress-box {
    background: white;
    padding: 20px;
    border-radius: 10px;
    text-align: center;
}


/* -------------- */
/* Signing canvas */
/* -------------- */

.canvas-wrapper {
    display: flex;
    justify-content: center; /* Horizontally center */
    align-items: center; /* Vertically center */
    position: relative;
    width: 500px;
    height: 200px;
}

/* Canvas Styling */
#drawingCanvas, #overlayCanvas {
    max-width: 100%;
    max-height: 100%;
    width: 500px; /* Fixed width */
    height: 200px; /* Fixed height */
    border: 1px solid black; /* Optional: Canvas border */
}

#drawingCanvas {
    position: relative;
    z-index: 1; /* Main canvas at the bottom */
}

#overlayCanvas {
    z-index: 2; /* Overlay canvas on top */
    pointer-events: none; /* Ensures overlay doesn't interfere with drawing */
}

.signing-canvas {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
}
/* -------------- */



.my-bg-color-F7F9F9 {
    background-color: #F7F9F9;
}

.proxyadd-card {
    width: 100%;
    background-color: #F7F9F9;
}

.proxyadd-card-body {
    width: 100%;
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
}

.proxyadd-table-thead {
    background-color: #5F6A6A;
    color: white;
    position: sticky;
    z-index: 1;
    top: 0;
}

.proxyadd-table-thead-btn {
    background-color: #5cb85c;
    color: white;
}

.proxyadd-btn-for {
    background-color: white !important;
    color: #5cb85c !important;
}

.proxyadd-btn-for-prevoted {
    background-color: #5cb85c !important;
    color: white !important;
}

    .proxyadd-btn-for-prevoted:hover {
        background-color: #5cb85c;
        color: white;
    }

.proxyadd-btn-for-voted {
    border: 5px solid #5cb85c !important;
    background-color: #5cb85c !important;
    color: black !important;
}

    .proxyadd-btn-for-voted:hover {
        background-color: #5cb85c;
        color: black;
    }

.proxyadd-btn-against {
    background-color: white !important;
    color: #d9534f !important;
}

.proxyadd-btn-against-prevoted {
    background-color: #d9534f !important;
    color: white !important;
}

    .proxyadd-btn-against-prevoted:hover {
        background-color: #d9534f;
        color: white;
    }


.proxyadd-btn-against-voted {
    border: 2px solid #d9534f !important;
    background-color: #d9534f !important;
    color: black !important;
}

    .proxyadd-btn-against-voted:hover {
        background-color: #d9534f;
        color: black;
    }

.proxyadd-btn-abstain {
    background-color: white !important;
    color: #f0ad4e !important;
}

.proxyadd-btn-abstain-prevoted {
    background-color: #f0ad4e !important;
    color: white !important;
}

    .proxyadd-btn-abstain-prevoted:hover {
        background-color: #f0ad4e;
        color: white;
    }

.proxyadd-btn-abstain-voted {
    border: 2px solid #f0ad4e !important;
    background-color: #f0ad4e !important;
    color: black !important;
}

    .proxyadd-btn-abstain-voted:hover {
        background-color: #f0ad4e;
        color: black;
    }

.proxyadd-btn-no-indication {
    border: 2px solid white !important;
    background-color: white !important;
    color: lightgrey !important;
}

.proxyform-btn-no-indication1 {
    border: 2px solid #E5E8E8 !important;
    background-color: #E5E8E8 !important;
    color: black !important;
}

.proxyform-btn-no-indication2 {
    border: 2px solid white !important;
    background-color: white !important;
    color: #E5E8E8 !important;
}


.proxyadd-btn-election-for {
    background-color: white !important;
    color: lightgrey !important;
}

.proxyadd-btn-election-for-prevoted {
    background-color: #5cb85c !important;
    color: white !important;
}



/* Solid Buttons */
.my-btn-primary {
    color: #fff;
    background-color: #0d6efd;
    border-color: #0d6efd;
}

    .my-btn-primary:hover {
        color: #fff;
        background-color: #0a58ca;
        border-color: #0a58ca;
    }

    .my-btn-primary:focus,
    .my-btn-primary.focus {
        color: #fff;
        background-color: #0a58ca;
        box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.5);
        outline: 0;
    }

    .my-btn-primary:active,
    .my-btn-primary.active,
    .show > .my-btn-primary.dropdown-toggle {
        color: #fff;
        background-color: #0a58ca;
        border-color: #0a58ca;
    }

        .my-btn-primary:active:focus,
        .my-btn-primary.active:focus,
        .show > .my-btn-primary.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.5);
        }

.my-btn-secondary {
    color: #fff;
    background-color: #6c757d;
    border-color: #6c757d;
}

    .my-btn-secondary:hover {
        color: #fff;
        background-color: #5a6268;
        border-color: #545b62;
    }

    .my-btn-secondary:focus,
    .my-btn-secondary.focus {
        color: #fff;
        background-color: #5a6268;
        box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
        outline: 0;
    }

    .my-btn-secondary:active,
    .my-btn-secondary.active,
    .show > .my-btn-secondary.dropdown-toggle {
        color: #fff;
        background-color: #545b62;
        border-color: #4e555b;
    }

        .my-btn-secondary:active:focus,
        .my-btn-secondary.active:focus,
        .show > .my-btn-secondary.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
        }

.my-btn-success {
    color: #fff;
    background-color: #198754;
    border-color: #198754;
}

    .my-btn-success:hover {
        color: #fff;
        background-color: #157347;
        border-color: #146c43;
    }

    .my-btn-success:focus,
    .my-btn-success.focus {
        color: #fff;
        background-color: #157347;
        box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.5);
        outline: 0;
    }

    .my-btn-success:active,
    .my-btn-success.active,
    .show > .my-btn-success.dropdown-toggle {
        color: #fff;
        background-color: #146c43;
        border-color: #13653f;
    }

        .my-btn-success:active:focus,
        .my-btn-success.active:focus,
        .show > .my-btn-success.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.5);
        }

.my-btn-danger {
    color: #fff;
    background-color: #dc3545;
    border-color: #dc3545;
}

    .my-btn-danger:hover {
        color: #fff;
        background-color: #c82333;
        border-color: #bd2130;
    }

    .my-btn-danger:focus,
    .my-btn-danger.focus {
        color: #fff;
        background-color: #c82333;
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
        outline: 0;
    }

    .my-btn-danger:active,
    .my-btn-danger.active,
    .show > .my-btn-danger.dropdown-toggle {
        color: #fff;
        background-color: #bd2130;
        border-color: #b21f2d;
    }

        .my-btn-danger:active:focus,
        .my-btn-danger.active:focus,
        .show > .my-btn-danger.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
        }

.my-btn-warning {
    color: #212529;
    background-color: #ffc107;
    border-color: #ffc107;
}

    .my-btn-warning:hover {
        color: #212529;
        background-color: #e0a800;
        border-color: #d39e00;
    }

    .my-btn-warning:focus,
    .my-btn-warning.focus {
        color: #212529;
        background-color: #e0a800;
        box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
        outline: 0;
    }

    .my-btn-warning:active,
    .my-btn-warning.active,
    .show > .my-btn-warning.dropdown-toggle {
        color: #212529;
        background-color: #d39e00;
        border-color: #c69500;
    }

        .my-btn-warning:active:focus,
        .my-btn-warning.active:focus,
        .show > .my-btn-warning.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
        }

.my-btn-info {
    color: #fff;
    background-color: #17a2b8;
    border-color: #17a2b8;
}

    .my-btn-info:hover {
        color: #fff;
        background-color: #138496;
        border-color: #117a8b;
    }

    .my-btn-info:focus,
    .my-btn-info.focus {
        color: #fff;
        background-color: #138496;
        box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
        outline: 0;
    }

    .my-btn-info:active,
    .my-btn-info.active,
    .show > .my-btn-info.dropdown-toggle {
        color: #fff;
        background-color: #117a8b;
        border-color: #0e6c74;
    }

        .my-btn-info:active:focus,
        .my-btn-info.active:focus,
        .show > .my-btn-info.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
        }

.my-btn-dark {
    color: #fff;
    background-color: #343a40;
    border-color: #343a40;
}

    .my-btn-dark:hover {
        color: #fff;
        background-color: #23272b;
        border-color: #1d2124;
    }

    .my-btn-dark:focus,
    .my-btn-dark.focus {
        color: #fff;
        background-color: #23272b;
        box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
        outline: 0;
    }

    .my-btn-dark:active,
    .my-btn-dark.active,
    .show > .my-btn-dark.dropdown-toggle {
        color: #fff;
        background-color: #23272b;
        border-color: #1d2124;
    }

        .my-btn-dark:active:focus,
        .my-btn-dark.active:focus,
        .show > .my-btn-dark.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
        }

/* Outline Buttons */
.my-btn-outline-primary {
    color: #0d6efd;
    background-color: transparent;
    border-color: #0d6efd;
}

    .my-btn-outline-primary:hover {
        color: #fff;
        background-color: #0d6efd;
        border-color: #0d6efd;
    }

    .my-btn-outline-primary:focus,
    .my-btn-outline-primary.focus {
        box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.5);
        outline: 0;
    }

    .my-btn-outline-primary:active,
    .my-btn-outline-primary.active,
    .show > .my-btn-outline-primary.dropdown-toggle {
        color: #fff;
        background-color: #0d6efd;
        border-color: #0d6efd;
    }

        .my-btn-outline-primary:active:focus,
        .my-btn-outline-primary.active:focus,
        .show > .my-btn-outline-primary.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.5);
        }

.my-btn-outline-secondary {
    color: #6c757d;
    background-color: transparent;
    border-color: #6c757d;
}

    .my-btn-outline-secondary:hover {
        color: #fff;
        background-color: #6c757d;
        border-color: #6c757d;
    }

    .my-btn-outline-secondary:focus,
    .my-btn-outline-secondary.focus {
        box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
        outline: 0;
    }

    .my-btn-outline-secondary:active,
    .my-btn-outline-secondary.active,
    .show > .my-btn-outline-secondary.dropdown-toggle {
        color: #fff;
        background-color: #6c757d;
        border-color: #6c757d;
    }

        .my-btn-outline-secondary:active:focus,
        .my-btn-outline-secondary.active:focus,
        .show > .my-btn-outline-secondary.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
        }

.my-btn-outline-success {
    color: #198754;
    background-color: transparent;
    border-color: #198754;
}

    .my-btn-outline-success:hover {
        color: #fff;
        background-color: #198754;
        border-color: #198754;
    }

    .my-btn-outline-success:focus,
    .my-btn-outline-success.focus {
        box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.5);
        outline: 0;
    }

    .my-btn-outline-success:active,
    .my-btn-outline-success.active,
    .show > .my-btn-outline-success.dropdown-toggle {
        color: #fff;
        background-color: #198754;
        border-color: #198754;
    }

        .my-btn-outline-success:active:focus,
        .my-btn-outline-success.active:focus,
        .show > .my-btn-outline-success.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.5);
        }

.my-btn-outline-danger {
    color: #dc3545;
    background-color: transparent;
    border-color: #dc3545;
}

    .my-btn-outline-danger:hover {
        color: #fff;
        background-color: #dc3545;
        border-color: #dc3545;
    }

    .my-btn-outline-danger:focus,
    .my-btn-outline-danger.focus {
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
        outline: 0;
    }

    .my-btn-outline-danger:active,
    .my-btn-outline-danger.active,
    .show > .my-btn-outline-danger.dropdown-toggle {
        color: #fff;
        background-color: #dc3545;
        border-color: #dc3545;
    }

        .my-btn-outline-danger:active:focus,
        .my-btn-outline-danger.active:focus,
        .show > .my-btn-outline-danger.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
        }

.my-btn-outline-warning {
    color: #ffc107;
    background-color: transparent;
    border-color: #ffc107;
}

    .my-btn-outline-warning:hover {
        color: #212529;
        background-color: #ffc107;
        border-color: #ffc107;
    }

    .my-btn-outline-warning:focus,
    .my-btn-outline-warning.focus {
        box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
        outline: 0;
    }

    .my-btn-outline-warning:active,
    .my-btn-outline-warning.active,
    .show > .my-btn-outline-warning.dropdown-toggle {
        color: #212529;
        background-color: #ffc107;
        border-color: #ffc107;
    }

        .my-btn-outline-warning:active:focus,
        .my-btn-outline-warning.active:focus,
        .show > .my-btn-outline-warning.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
        }

.my-btn-outline-info {
    color: #17a2b8;
    background-color: transparent;
    border-color: #17a2b8;
}

    .my-btn-outline-info:hover {
        color: #fff;
        background-color: #17a2b8;
        border-color: #17a2b8;
    }

    .my-btn-outline-info:focus,
    .my-btn-outline-info.focus {
        box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
        outline: 0;
    }

    .my-btn-outline-info:active,
    .my-btn-outline-info.active,
    .show > .my-btn-outline-info.dropdown-toggle {
        color: #fff;
        background-color: #17a2b8;
        border-color: #17a2b8;
    }

        .my-btn-outline-info:active:focus,
        .my-btn-outline-info.active:focus,
        .show > .my-btn-outline-info.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
        }

.my-btn-outline-dark {
    color: #343a40;
    background-color: transparent;
    border-color: #343a40;
}

    .my-btn-outline-dark:hover {
        color: #fff;
        background-color: #343a40;
        border-color: #343a40;
    }

    .my-btn-outline-dark:focus,
    .my-btn-outline-dark.focus {
        box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
        outline: 0;
    }

    .my-btn-outline-dark:active,
    .my-btn-outline-dark.active,
    .show > .my-btn-outline-dark.dropdown-toggle {
        color: #fff;
        background-color: #343a40;
        border-color: #343a40;
    }

        .my-btn-outline-dark:active:focus,
        .my-btn-outline-dark.active:focus,
        .show > .my-btn-outline-dark.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
        }




/* for display of question and poll result*/

.question-display-textarea {
    height: 80vh;
    width: 100%;
    resize: none;
}






.display-font-size-9 {
    font-size: 9px;
}

.display-font-size-10 {
    font-size: 10px;
}

.display-font-size-11 {
    font-size: 11px;
}

.display-font-size-12 {
    font-size: 12px;
}

.display-font-size-13 {
    font-size: 13px;
}

.display-font-size-14 {
    font-size: 14px;
}

.display-font-size-15 {
    font-size: 15px;
}

.display-font-size-16 {
    font-size: 16px;
}

.display-font-size-17 {
    font-size: 17px;
}

.display-font-size-18 {
    font-size: 18px;
}

.display-font-size-19 {
    font-size: 19px;
}

.display-font-size-20 {
    font-size: 20px;
}

.display-font-size-21 {
    font-size: 21px;
}

.display-font-size-22 {
    font-size: 22px;
}

.display-font-size-23 {
    font-size: 23px;
}

.display-font-size-24 {
    font-size: 24px;
}

.display-font-size-25 {
    font-size: 25px;
}

.display-font-size-26 {
    font-size: 26px;
}

.display-font-size-27 {
    font-size: 27px;
}

.display-font-size-28 {
    font-size: 28px;
}

.display-font-size-29 {
    font-size: 29px;
}

.display-font-size-30 {
    font-size: 30px;
}

.display-font-size-31 {
    font-size: 31px;
}

.display-font-size-32 {
    font-size: 32px;
}

.display-font-size-33 {
    font-size: 33px;
}

.display-font-size-34 {
    font-size: 34px;
}

.display-font-size-35 {
    font-size: 35px;
}

.display-font-size-36 {
    font-size: 36px;
}

.display-font-size-37 {
    font-size: 37px;
}

.display-font-size-38 {
    font-size: 38px;
}

.display-font-size-39 {
    font-size: 39px;
}

.display-font-size-40 {
    font-size: 40px;
}

.display-font-size-41 {
    font-size: 41px;
}

.display-font-size-42 {
    font-size: 42px;
}

.display-font-size-43 {
    font-size: 43px;
}

.display-font-size-44 {
    font-size: 44px;
}

.display-font-size-45 {
    font-size: 45px;
}

.display-font-size-46 {
    font-size: 46px;
}

.display-font-size-47 {
    font-size: 47px;
}

.display-font-size-48 {
    font-size: 48px;
}

.display-font-size-49 {
    font-size: 49px;
}

.display-font-size-50 {
    font-size: 50px;
}


.my-border-collapse-collapse {
    border-collapse: collapse;
}



.clickable {
    cursor: pointer;
}

.image-upload-box {
    margin-left: 0;
    text-align: left;
    border: 2px dashed #bbb; /* dashed instead of solid */
    border-radius: 10px;
    width: 100%;
    max-width: 400px;
    height: 250px;
    cursor: pointer;
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fafafa; /* subtle bg */
}

    .image-upload-box.dragover {
        border-color: #0d6efd;
        background-color: #e7f1ff;
    }

.upload-placeholder {
    text-align: center;
    color: #555; /* darker for readability */
    pointer-events: none;
}

    .upload-placeholder p {
        margin: 0;
        font-size: 16px;
    }

.image-upload-box img {
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
    display: none; /* keeps empty img hidden */
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

.bottom-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background-color: var(--app-brand);
    color: var(--app-brand);
    display: flex;
    align-items: center;
    justify-content: center;
}


.my-qr-scan-button {
    background-color: white;
    color: white; /* Text color */
    border: 1px solid #707b7c; /* Thick border */
    height: 45px;
    width: 45px;
    border-radius: 9px; /*Makes the button fully rounded */
    font-size: 16px; /* Font size */
    cursor: pointer; /* Changes cursor to pointer on hover */
    transition: background-color 0.3s; /* Smooth transition for background color */
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

    .my-qr-scan-button:hover {
        background-color: #0056b3; /* Darker blue on hover */
    }

    .my-qr-scan-button:focus {
        outline: none; /* Removes the focus outline */
    }

    .my-qr-scan-button:disabled {
        background-color: #0056b3; /*Dark blue background */
    }


.my-meeting-container {
    max-width: 1600px;
    margin: 15px auto;
    padding: 10px;
    background-color: #f0f2f5;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    display: flex;
    justify-content: center;
    width: 100%;
    height: auto;
}

.my-meeting-card {
    background-color: white;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    padding: 10px;
    width: 100%;
    max-width: 360px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.my-meeting-card-header {
    display: flex;
    justify-content: center;
    align-items: center;
}

.my-meeting-card-company-name {
    font-size: 1.0rem;
    font-weight: bold;
}

.my-meeting-card-title {
    font-size: 0.8rem;
    color: #333;
    display: flex;
    align-items: center;
    gap: 8px;
}


.my-meeting-card-participants {
    display: flex;
    gap: 8px;
}

.my-meeting-card-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #ccc;
}

.my-meeting-card-action {
    align-self: flex-end;
}

.my-meeting-card-select-btn {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.3s;
}

    .my-meeting-card-select-btn:hover {
        background-color: #0056b3;
    }







/*For file upload window.setupDropZone = function () in site.js Javascript */
.active-drop-zone {
    border-color: #007bff !important;
}

.visible {
    display: block !important;
}

.hidden {
    display: none !important;
}


.proxy-new-entry-no {
    border: 5px;
    background-color: #5cb85c;
    color: black;
}


tr.rowborder-shareholder-prevote {
    border: 2px solid #ffc107;
}

tr.rowborder-allocate {
    border: 2px solid #b3e0e5;
}

tr.rowborder-unallocate {
    border: 2px solid #0dcaf0;
}

tr.rowborder-total {
    border: 2px solid #6c757d;
}

/* Group column (Shareholding / Allocated Pre-vote / Un-Allocated) */
td.group {
    background-color: #b3e0e5;
    font-weight: bold;
    text-align: left;
    vertical-align: middle;
}

/* Allocation Unit column */
td.allocation-col {
    text-align: right;
    vertical-align: middle;
}

/* Type column */
td.type-col {
    background-color: #66cccc;
    font-weight: bold;
    text-align: center;
    vertical-align: middle;
}

/* Attendant Type column */
td.attendant-col {
    text-align: center;
    vertical-align: middle;
}

/* A/c Registered Qty column */
td.registered-col {
    text-align: right;
    vertical-align: middle;
}






/* ── Login Page ────────────────────────────────────────── */
.my-login-wrapper {
    display: flex;
    min-height: 480px;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #dee2e6;
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
    background: #fff;
}

/* Left hero panel */
.my-login-hero {
    flex: 1;
    background: #f0f6ff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 2rem;
    gap: 1.25rem;
}

    .my-login-hero img {
        max-width: 180px;
        width: 100%;
        height: auto;
    }

.my-login-hero-title {
    font-size: 1.1rem;
    font-weight: bold;
    color: #1a1a2e;
    text-align: center;
}

.my-login-hero-sub {
    font-size: 0.85rem;
    color: #555;
    text-align: center;
    line-height: 1.6;
    max-width: 220px;
}

/* Divider between panels */
.my-login-divider {
    width: 1px;
    background: #dee2e6;
    align-self: stretch;
}

/* Right form panel */
.my-login-form-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2.5rem 2rem;
}

.my-login-heading {
    font-size: 1.2rem;
    font-weight: bold;
    color: #1a1a2e;
    margin-bottom: 4px;
}

.my-login-subheading {
    font-size: 0.8rem;
    color: #666;
    margin-bottom: 1.25rem;
}

.my-login-form-panel hr {
    border: none;
    border-top: 1px solid #dee2e6;
    margin-bottom: 1.25rem;
}

/* Error alert */
.my-login-alert {
    background: #fff3f3;
    border: 1px solid #f5c1c1;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 0.8rem;
    color: #a32d2d;
    margin-bottom: 1rem;
}

/* Form fields */
.my-login-field {
    margin-bottom: 1rem;
}

    .my-login-field label {
        display: block;
        font-size: 0.8rem;
        font-weight: bold;
        color: #444;
        margin-bottom: 5px;
    }

    .my-login-field .form-control {
        border-radius: 8px;
        border: 1px solid #ced4da;
        font-size: 0.85rem;
        transition: border-color 0.2s, box-shadow 0.2s;
    }

        .my-login-field .form-control:focus {
            border-color: #007bff;
            box-shadow: 0 0 0 3px rgba(0,123,255,0.12);
        }

/* Submit button — reuses your existing card button style */
.my-login-btn {
    width: 100%;
    background-color: #007bff;
    color: white;
    border: none;
    padding: 10px 16px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: bold;
    transition: background-color 0.3s;
    margin-top: 0.25rem;
}

    .my-login-btn:hover {
        background-color: #0056b3;
    }

/* Links */
.my-login-links {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid #dee2e6;
}

    .my-login-links a {
        font-size: 0.8rem;
        color: #007bff;
        text-decoration: none;
    }

        .my-login-links a:hover {
            text-decoration: underline;
        }

/* Hide hero on small screens */
@media (max-width: 767px) {
    .my-login-hero,
    .my-login-divider {
        display: none;
    }

    .legal-scroll {
        padding: 1rem;
    }

    .legal-doc {
        font-size: .95rem;
    }
}

.my-login-btn:disabled {
    background-color: #6c9fd8;
    cursor: not-allowed;
}

.my-login-spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #ffffff;
    border-radius: 50%;
    vertical-align: middle;
    margin-right: 6px;
}

.my-hidden {
    display: none !important;
}

.my-validation-msg {
    font-size: 0.75rem;
}

/* Animation only triggers when spinner is visible */
#loginSpinner.active .my-login-spinner {
    animation: login-spin 0.7s linear infinite;
}

@keyframes login-spin {
    to {
        transform: rotate(360deg);
    }
}



/* Scheduled Events Table */
.ev-wrap {
    padding: 1.5rem 0;
}

.ev-title {
    font-size: 1.1rem;
    font-weight: 500;
    color: #1a1a2e;
    margin: 0 0 1.25rem;
}

.ev-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

    .ev-table thead tr {
        border-bottom: 1px solid #dee2e6;
    }

    .ev-table th {
        font-size: 0.75rem;
        font-weight: 500;
        color: #6c757d;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        padding: 0 12px 10px;
        text-align: left;
    }

        .ev-table th.center {
            text-align: center;
        }

    .ev-table td {
        padding: 14px 12px;
        color: #1a1a2e;
        border-bottom: 1px solid #f0f0f0;
        vertical-align: middle;
    }

    .ev-table tbody tr:last-child td {
        border-bottom: none;
    }

    .ev-table tbody tr:hover {
        background-color: #f8f9fa;
    }

.ev-meeting {
    font-weight: 500;
    font-size: 0.875rem;
}

.ev-datetime {
    font-size: 0.8rem;
    color: #6c757d;
    white-space: nowrap;
}

/* Meeting type badges */
.ev-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 8px;
}

    .ev-badge.virtual {
        background-color: #E6F1FB;
        color: #0C447C;
    }

    .ev-badge.physical {
        background-color: #EAF3DE;
        color: #27500A;
    }

    .ev-badge.hybrid {
        background-color: #FAEEDA;
        color: #633806;
    }

/* Action column */
.ev-action {
    text-align: center;
}

.ev-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 500;
    padding: 7px 16px;
    border-radius: 8px;
    border: 1px solid #ced4da;
    background: transparent;
    color: #1a1a2e;
    cursor: pointer;
    transition: background-color 0.15s;
}

    .ev-btn:hover {
        background-color: #f8f9fa;
    }

    .ev-btn:active {
        transform: scale(0.98);
    }




.idle-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5); /* semi-transparent */
    z-index: 1050;
    display: flex;
    justify-content: center;
    align-items: center;
}


.legal-doc {
    font-family: "Segoe UI", system-ui, sans-serif;
    color: #1d2733;
    line-height: 1.6;
    max-width: 820px;
    margin: 0 auto;
    padding: 8px 4px;
}

    .legal-doc h5 {
        text-align: center;
        font-weight: 700;
        margin-bottom: 16px;
    }

    .legal-doc .effective {
        text-align: center;
        color: #5a6b7b;
        font-size: .82rem;
        margin-bottom: 20px;
    }

    .legal-doc .intro p {
        text-align: justify;
        margin-bottom: 12px;
    }

    .legal-doc ol.clauses {
        padding-left: 1.4rem;
    }

        .legal-doc ol.clauses > li {
            margin-bottom: 14px;
            text-align: justify;
        }

            .legal-doc ol.clauses > li p {
                margin: 0 0 8px;
            }

    .legal-doc ul.sub {
        margin-top: 6px;
    }

        .legal-doc ul.sub > li {
            margin-bottom: 4px;
            text-align: left;
        }

    .legal-doc .contact {
        font-weight: 600;
    }

.legal-scroll {
    height: min(60vh, 650px);
    overflow-y: auto;
    border: 1px solid #d8dee4;
    padding: 1.25rem;
    border-radius: .75rem;
    background: #fff;
    scroll-behavior: smooth;
}

.legal-divider {
    border: 0;
    border-top: 2px dashed #cfd8e0;
    margin: 28px 0;
}

.scroll-hint {
    font-size: .85rem;
    color: #6c757d;
    text-align: center;
    margin-top: .75rem;
}


.camera-scanner-video {
    width: 100%;
    border-radius: 0.375rem;
}

.my-scanner-modal {
    z-index: 20000;
}

.my-scanner-backdrop {
    z-index: 19990;
}

/* Signature pad: prevent browser touch gestures on the canvases */
#drawingCanvas, #overlayCanvas {
    touch - action: none;
}





/* Rod Progress Indicator */
.rod-progress-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.rod-progress-box {
    background: #fff;
    padding: 24px 32px;
    border-radius: 8px;
    min-width: 340px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
}

.rod-progress-message {
    margin: 0 0 12px;
    font-weight: 500;
}

.rod-progress-bar {
    width: 100%;
    height: 18px;
}

.rod-progress-percent {
    margin: 8px 0 0;
    font-size: 0.9rem;
    color: #555;
}






.my-mykad-modal {
    z-index: 20000;
}

.my-mykad-backdrop {
    z-index: 19990;
}

.my-width-150px {
    width: 150px;
}

/*(The guide box uses the SAME fractions as GUIDE in mykad-ocr.js:
 left 8%, top 30%, width 60%, height 16%. If you change one, change both.)
*/
.my-mykad-video-wrap {
    position: relative;
    width: 100%;
    line-height: 0; /* remove inline-video gap */
}

.my-mykad-video {
    width: 100%;
    /* aspect-ratio: 16 / 9;   <-- REMOVE this line */
    display: block;
    border-radius: .375rem;
    background: #000;
}

.my-mykad-guide {
    left: 6%;
    top: 22%;
    width: 64%;
    height: 28%;
    position: absolute;
    border: 3px solid #00e0ff;
    border-radius: 6px;
    box-shadow: 0 0 0 100vmax rgba(0,0,0,0.35); /* dim outside the box */
    pointer-events: none;
}

.my-mykad-guide-label {
    position: absolute;
    left: 6%;
    top: calc(22% - 24px);
    color: #00e0ff;
    font-size: .8rem;
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0,0,0,0.8);
    pointer-events: none;
}

/* Disable pointer events and reduce opacity for busy state */
.busy {
    pointer-events: none;
    cursor: default;
    opacity: 0.5;
}



.rody-float {
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    width: 320px;
    max-height: 70vh;
    overflow-y: auto;
    z-index: 1050;
}


/* Extend Bootstrap's btn-sm with glow animation */
.my-btn-glow-info {
    --bs-btn-bg: #0dcaf0; /* Override background */
    --bs-btn-color: #000; /* Dark text (Bootstrap default for info) */
    --bs-btn-border-color: #0dcaf0;
    --bs-btn-hover-bg: #0bc2e6;
    --bs-btn-hover-border-color: #0abdd9;
    position: relative;
    overflow: visible;
    animation: info-glow 2.5s ease-in-out infinite;
}

/* Reuse the same animation */
@keyframes info-glow {
    0% {
        box-shadow: 0 0 0 0 rgba(13, 202, 240, 0.3);
    }

    70% {
        box-shadow: 0 0 15px 6px rgba(13, 202, 240, 0.6), 0 0 25px 10px rgba(13, 202, 240, 0.3);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(13, 202, 240, 0);
    }
}

.my-btn-glow-info:hover {
    animation-play-state: paused;
}


/* Bootstrap's for ThankYouModal */

.my-dv-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    animation: my-dvFadeIn 0.25s ease;
}

.my-dv-modal-box {
    background: #fff;
    padding: 36px 48px;
    border-radius: 14px;
    box-shadow: 0 12px 45px rgba(0, 0, 0, 0.25);
    font-family: sans-serif;
    text-align: center;
    max-width: 340px;
}

.my-dv-thanks {
    font-size: 34px;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
}

.my-dv-subtext {
    font-size: 20px;
    color: #666;
    margin-bottom: 24px;
}

.my-dv-logo-img {
    max-width: 90px;
    height: auto;
    opacity: 0.9;
}

.my-dv-powered {
    font-size: 12px;
    color: #999;
    margin-top: 8px;
}

    .my-dv-powered strong {
        color: #555;
    }

@@keyframes my-dvFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.my-dv-modal-overlay.hide {
    opacity: 0;
    transition: opacity 0.3s ease;
}



/* Bootstrap's Handheld Barcode Scanner Dialog */
.my-scanner-dialog {
    max-width: 380px;
}

.my-scanner-content {
    border-radius: 14px;
    overflow: hidden;
}

    .my-scanner-content .modal-header {
        border-top-left-radius: 14px;
        border-top-right-radius: 14px;
    }

.my-scan-input {
    border: 2px solid #dee2e6;
    border-radius: 8px;
    padding: 10px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

    .my-scan-input:focus {
        border-color: var(--bs-primary, #0d6efd);
        box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
    }

.my-scanner-footer {
    background: #f8f9fa;
    flex-direction: column;
    gap: 1px;
    padding-top: 6px;
    padding-bottom: 6px;
    border-top: 1px solid #e9ecef;
    margin-top: 4px;
}

    .my-scanner-footer .my-dv-logo-img {
        max-width: 32px; /* was 48px */
        height: auto;
        opacity: 0.85;
        margin-bottom: 0;
    }

    .my-scanner-footer .my-dv-powered {
        font-size: 10px;
        color: #999;
        margin: 0;
    }

        .my-scanner-footer .my-dv-powered strong {
            color: #555;
        }

    .my-scanner-footer .my-dv-company {
        font-size: 10px;
        color: #aab;
        margin: 0;
    }
/* Bootstrap's Camera Scanner Dialog */
.my-scanner-dialog-camera {
    max-width: 480px;
}

/* Bootstrap's Signing Dialog */
.my-signing-header {
    background: #f8f9fa;
    border-bottom: 1px solid #e9ecef;
    margin: -1.5rem -1.5rem 1rem; /* pull flush to modal edges */
    border-top-left-radius: 14px;
    border-top-right-radius: 14px;
}

/* Flat toolbar buttons */
.my-tool-btn {
    border: none;
    background: transparent;
    color: #6c757d;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 8px;
    transition: background-color 0.15s ease, color 0.15s ease;
}

    .my-tool-btn:hover {
        background: #eceef1;
    }

    .my-tool-btn i {
        margin-right: 3px;
    }

/* Color cues on hover per action */
.my-tool-save:hover {
    background: #d1e7dd;
    color: #146c43;
}

.my-tool-erase:hover {
    background: #fff3cd;
    color: #997404;
}

.my-tool-close {
    padding: 4px 8px; /* icon-only, tighter */
}

    .my-tool-close i {
        margin-right: 0;
    }

    .my-tool-close:hover {
        background: #f8d7da;
        color: #b02a37;
    }


.my-z-index-1055 {
    z-index: 1055
}

.my-z-index-1050 {
    z-index: 1050
}

.my-z-index-1065 {
    z-index: 1065
}

.my-z-index-1070 {
    z-index: 1070
}

/* HTML Editor */

.my-html-editor {
    border: 1px solid #ced4da;
    border-radius: .375rem;
    overflow: hidden;
    display: flex;
    flex-direction: column; /* toolbar on top, content fills the rest */
    height: 400px; /* default; overridden when a height class is passed via Class */
}

.my-html-editor-toolbar {
    display: flex;
    align-items: center;
    gap: .15rem;
    flex-wrap: wrap;
    padding: .35rem .5rem;
    background: #f8f9fa;
    border-bottom: 1px solid #ced4da;
    flex: 0 0 auto; /* natural height, never shrinks or scrolls */
}

    .my-html-editor-toolbar button {
        border: 1px solid transparent;
        background: transparent;
        border-radius: .25rem;
        padding: .2rem .45rem;
        line-height: 1;
        color: #495057;
        cursor: pointer;
    }

        .my-html-editor-toolbar button:hover {
            background: #e9ecef;
            border-color: #ced4da;
        }

        .my-html-editor-toolbar button.is-active {
            background: #d0ebff;
            border-color: #74c0fc;
            color: #1c7ed6;
        }

    .my-html-editor-toolbar select {
        border: 1px solid #ced4da;
        border-radius: .25rem;
        background: #fff;
        font-size: .85rem;
        padding: .15rem .3rem;
        color: #495057;
        cursor: pointer;
    }

.my-html-editor-sep {
    width: 1px;
    height: 1.2rem;
    background: #ced4da;
    margin: 0 .25rem;
}

.my-html-editor-color {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    padding: .2rem .3rem;
    border-radius: .25rem;
    cursor: pointer;
    color: #495057;
}

    .my-html-editor-color:hover {
        background: #e9ecef;
    }
    /* shrink the native color swatch to a small chip under the icon */
    .my-html-editor-color input[type="color"] {
        width: 18px;
        height: 14px;
        border: none;
        padding: 0;
        background: none;
        cursor: pointer;
    }

.my-html-editor-size {
    border: 1px solid #ced4da;
    border-radius: .25rem;
    background: #fff;
    font-size: .85rem;
    padding: .15rem .3rem;
    color: #495057;
    cursor: pointer;
}

.my-html-editor-content {
    flex: 1 1 auto; /* takes all remaining height under the toolbar */
    min-height: 0; /* critical: lets the flex child scroll instead of growing */
    overflow-y: auto; /* the body scrolls, toolbar stays put */
    padding: .6rem .75rem;
    outline: none;
    background: #fff;
}

    .my-html-editor-content:empty::before {
        content: "Compose your message…";
        color: #adb5bd;
    }






/* PollStation.razor  */
/* Scoped styles for VoteActions.razor (Bootstrap 5.3 + Bootstrap Icons) */

.vote-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    flex-wrap: nowrap;
}

/* Main action has a fixed minimum width so every row lines up */
.vote-main {
    min-width: 7.5rem;
    font-weight: 500;
}

/* Status pills — read as status, not as clickable buttons */
.vote-pill {
    display: inline-flex;
    align-items: center;
    min-width: 7.5rem;
    justify-content: center;
    padding: .45em .8em;
    font-size: .8rem;
    font-weight: 500;
}

.vote-pill--done {
    background-color: var(--bs-success-bg-subtle);
    color: var(--bs-success-text-emphasis);
    border: 1px solid var(--bs-success-border-subtle);
}

.vote-pill--muted {
    background-color: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    border: 1px solid var(--bs-border-color);
}

/* Compact square "more" button */
.vote-more {
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Mobile card: main button / pill fills the row, menu sits at the end */
.vote-actions--compact {
    justify-content: stretch;
}

    .vote-actions--compact .vote-main,
    .vote-actions--compact .vote-pill {
        flex: 1 1 auto;
        min-height: 2.5rem; /* comfortable tap target */
    }





/* CustomInputDateTime styles. Link once in App.razor:
   <link rel="stylesheet" href="css/custom-input-datetime.css" /> */

.cdt {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 2.35rem;
    border: 1.5px solid #cfd6df;
    border-radius: 8px;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
}

    /* State colours */
    .cdt.is-set {
        border-color: #6fbf97; /* green: has a value */
    }

    .cdt.is-empty {
        border-color: #cfd6df; /* grey: not set */
        background: #fbfcfd;
    }

    .cdt:focus-within {
        border-color: #1f4e8c; /* blue: editing */
        box-shadow: 0 0 0 3px rgba(31, 78, 140, 0.15);
    }

    .cdt.is-disabled {
        border-style: dashed;
        border-color: #d5dbe3;
        background: #f5f7fa;
    }

/* The native input sits inside the frame without its own border */
.cdt-input,
.cdt-input.form-control,
.cdt-input.form-control:focus {
    flex: 1 1 auto;
    min-width: 0;
    height: auto;
    padding: 0.35rem 0.4rem 0.35rem 0.7rem;
    border: 0;
    border-radius: 8px;
    outline: 0;
    box-shadow: none;
    background: transparent;
    color: #1c2430;
    font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
}

.cdt.is-empty .cdt-input {
    color: #8a94a3;
}

.cdt-input:disabled {
    color: #5b6675;
    cursor: not-allowed;
}

/* Clear button */
.cdt-clear {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin-right: 0.2rem;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #8a94a3;
    font-size: 0.8rem;
}

    .cdt-clear:hover {
        background: #fdecea;
        color: #b42318;
    }

    .cdt-clear:focus-visible {
        outline: 2px solid #1f4e8c;
        outline-offset: 1px;
    }

/* Browser's calendar icon */
.cdt-input::-webkit-calendar-picker-indicator {
    opacity: 0.55;
    cursor: pointer;
}

.cdt.is-set .cdt-input::-webkit-calendar-picker-indicator,
.cdt:focus-within .cdt-input::-webkit-calendar-picker-indicator {
    opacity: 0.85;
}


/* ==================================================================
   ModalDialog.razor  –  mdl-
   Self-contained (own colours), so it looks the same on every page.
   Paste into site.css (like the CustomInputDateTime styles).
   ================================================================== */

.mdl {
    --mdl-ink: #1c2430;
    --mdl-ink-soft: #5b6675;
    --mdl-line: #dde2e8;
    --mdl-surface: #ffffff;
    --mdl-accent: #1f4e8c;
    --mdl-accent-soft: #e8eef7;
    --mdl-success: #1e7a4f;
    --mdl-success-soft: #e6f3ec;
    --mdl-warning: #9a5b00;
    --mdl-warning-soft: #fdf1dc;
    --mdl-danger: #b42318;
    --mdl-danger-soft: #fdecea;
    z-index: 1060;
}

.mdl-backdrop {
    z-index: 1055;
    background: #0f1722;
}

    .mdl-backdrop.show {
        opacity: 0.45;
    }

.mdl-dialog {
    max-width: 420px;
}

.mdl-content {
    position: relative;
    border: 0;
    border-radius: 20px;
    background: var(--mdl-surface);
    color: var(--mdl-ink);
    box-shadow: 0 24px 60px rgba(15, 23, 34, 0.28);
    animation: mdl-pop 0.18s ease-out;
}

@keyframes mdl-pop {
    from {
        transform: translateY(8px) scale(0.98);
        opacity: 0;
    }

    to {
        transform: none;
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mdl-content {
        animation: none;
    }
}

.mdl-close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--mdl-ink-soft);
    font-size: 0.9rem;
}

    .mdl-close:hover {
        background: #eef1f5;
        color: var(--mdl-ink);
    }

    .mdl-close:focus-visible {
        outline: 2px solid var(--mdl-accent);
        outline-offset: 2px;
    }

.mdl-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.75rem 1.5rem 1.25rem;
    text-align: center;
}

.mdl-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    margin-bottom: 0.4rem;
    border-radius: 50%;
    font-size: 1.5rem;
}

.mdl-icon-info,
.mdl-icon-question {
    background: var(--mdl-accent-soft);
    color: var(--mdl-accent);
    box-shadow: 0 0 0 6px #f3f6fb;
}

.mdl-icon-success {
    background: var(--mdl-success-soft);
    color: var(--mdl-success);
    box-shadow: 0 0 0 6px #f1f9f4;
}

.mdl-icon-warning {
    background: var(--mdl-warning-soft);
    color: var(--mdl-warning);
    box-shadow: 0 0 0 6px #fef8ee;
}

.mdl-icon-error {
    background: var(--mdl-danger-soft);
    color: var(--mdl-danger);
    box-shadow: 0 0 0 6px #fef5f4;
}

.mdl-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--mdl-ink);
}

.mdl-text {
    margin: 0;
    font-size: 0.925rem;
    line-height: 1.5;
    color: var(--mdl-ink-soft);
    white-space: pre-line; /* keeps \n line breaks from the message */
    overflow-wrap: anywhere;
}

/* Buttons: secondary on the left, main action on the right */
.mdl-actions {
    display: grid;
    gap: 0.6rem;
    padding: 0 1.5rem 1.5rem;
}

.mdl-actions-1 {
    grid-template-columns: 1fr;
}

.mdl-actions-2 {
    grid-template-columns: 1fr 1fr;
}

.mdl-actions-3 {
    grid-template-columns: 1fr 1fr 1fr;
}

.mdl-btn {
    width: 100%;
    min-height: 2.75rem;
    border-radius: 999px;
    font-weight: 600;
}

@media (max-width: 575.98px) {
    .mdl-dialog {
        margin: 0.75rem;
    }

    .mdl-body {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .mdl-actions {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    /* Three buttons: main action on top, full width */
    .mdl-actions-3 {
        grid-template-columns: 1fr 1fr;
    }

        .mdl-actions-3 .mdl-btn:last-child {
            grid-column: 1 / -1;
            grid-row: 1;
        }
}


/* ── Footer at the bottom of the screen on short pages ── */
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

    body > footer {
        margin-top: auto; /* pushes the footer down when the content is short */
    }

/* ── Footer (both layouts): light, like the top bar ── */
.dv-foot {
    padding: 1rem 0;
    border-top: 1px solid #dde2e8;
    background: #fff;
    font-size: 0.8rem;
    color: #5b6675;
}

.dv-foot-in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.4rem 1rem;
}

.dv-foot a {
    color: #5b6675;
    text-decoration: none;
}

    .dv-foot a:hover {
        color: #3169b1;
        text-decoration: underline;
    }

.dv-foot-links {
    display: flex;
    gap: 1.1rem;
}

/* Phones: two centred lines */
@media (max-width: 575.98px) {
    .dv-foot-in {
        flex-direction: column;
        justify-content: center;
        text-align: center;
    }
}


/* "powered by" + DigitizeVote logo, on one line (signing and scanner dialogs) */
.my-scanner-footer.my-dv-by {
    flex-direction: row;
    align-items: center;
    gap: 6px;
}

.my-dv-by-text {
    font-size: 11px;
    color: #8a94a6;
}

.my-dv-by-logo {
    display: block;
    height: 14px;
    width: auto;
}

/* Thank-you box: the same "powered by" line, centred under the text */
.my-dv-by-line {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
}
