/* ============================================================
   main.css cleaned and deduplicated
   ============================================================ */


body {
    background-color: #2f3338;
    color: #f2f2f2;
    font-family: "Lato", sans-serif;
}


.table-with-lines {
    margin-bottom: 1px;
    border-collapse: collapse;
    font-family: "Lato", sans-serif;
    overflow-x: auto;
    table-layout: fixed;
    max-width: 100%;
    border: 2px solid #1f2226;
    background-color: #3b4047;
}


.table-no-lines {
    margin-bottom: 1px;
    border-collapse: collapse;
    font-family: "Lato", sans-serif;
    overflow-x: auto;
    table-layout: fixed;
    max-width: 100%;
    border: none;
}


.table-full {
    width: 100%;
}


.table-narrow {
    width: 30%;
    max-width: 100%;
}


th {
    margin-bottom: 1px;
    border: 2px solid #1f2226;
    border-collapse: collapse;
    padding: 5px;
    text-align: center;
    overflow-wrap: break-word;
    word-wrap: break-word;
    min-width: 0;
    color: #f2f2f2;
    background-color: #4a5058;
}


td {
    margin-bottom: 1px;
    border: 2px solid #1f2226;
    border-collapse: collapse;
    padding: 5px;
    text-align: center;
    overflow-wrap: break-word;
    word-wrap: break-word;
    min-width: 0;
    color: #f2f2f2;
    background-color: #3b4047;
}


.th-no-lines {
    border: none;
    padding: 5px;
    text-align: center;
    background-color: transparent;
}


.td-no-lines {
    border: none;
    padding: 5px;
    text-align: center;
    background-color: transparent;
}


button {
    background-color: #6b7280;
    border: none;
    color: #ffffff;
    text-align: center;
    cursor: pointer;
    border-radius: 4px;
    transition: 0.3s;
}


button:hover {
    background-color: #8a919c;
    opacity: 1;
}


.table-button {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: clamp(4px, 1vw, 12px) clamp(6px, 2vw, 20px);
    font-size: clamp(0.7rem, 1vw, 1rem);
    margin: 2px;
    white-space: normal;
    overflow-wrap: break-word;
}


.standard-button {
    padding: 10px 20px;
    font-size: 16px;
    margin: 4px 2px;
}


td input:not([type="radio"]):not([type="checkbox"]) {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-width: 0;
    font-size: clamp(0.7rem, 1vw, 1rem);
    padding: clamp(2px, 0.5vw, 6px);
}


td select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-width: 0;
    font-size: clamp(0.7rem, 1vw, 1rem);
    padding: clamp(2px, 0.5vw, 6px);
}


td textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-width: 0;
    font-size: clamp(0.7rem, 1vw, 1rem);
    padding: clamp(2px, 0.5vw, 6px);
}


input {
    background-color: #eceff1;
    color: #1f2226;
    border: 1px solid #6b7280;
    border-radius: 4px;
}


textarea {
    background-color: #eceff1;
    color: #1f2226;
    border: 1px solid #6b7280;
    border-radius: 4px;
}


input:focus {
    outline: 2px solid #aeb4bd;
}


textarea:focus {
    outline: 2px solid #aeb4bd;
}


select:focus {
    outline: 2px solid #aeb4bd;
}


select {
    background-color: #5b616b;
    color: #ffffff;
    text-align-last: center;
    border-radius: 5px;
    border: 1px solid #8a919c;
}


option {
    position: relative;
    text-align-last: center;
    padding: 5px;
    border-radius: 5px;
    background-color: #f2f2f2;
    color: #1f2226;
}


.sidebar {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: #262a2f;
    overflow-x: hidden;
    transition: 0.5s;
    padding-top: 60px;
}


.sidebar a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 15px;
    color: #f2f2f2;
    display: block;
    transition: 0.3s;
}


.sidebar a:hover {
    color: #cfd4da;
    background-color: #3b4047;
}


.sidebar .closebtn {
    position: absolute;
    top: 0;
    right: 0;

    width: 60px;
    height: 60px;

    text-align: center;
    line-height: 60px;

    font-size: 36px;
    padding: 0;
}


.sidebar .closebtn:hover {
    background-color: #3b4047;
    color: #cfd4da;
}

.openbtn {
    font-size: 15px;
    cursor: pointer;
    background-color: #4a5058;
    color: #ffffff;
    padding: 8px 15px;
    margin: 4px 2px;
    border: none;
    opacity: 1;
}


.openbtn:hover {
    background-color: #6b7280;
}


.signoutbtn {
    font-size: 15px;
    cursor: pointer;
    background-color: #3b4047;
    color: #ffffff;
    padding: 8px 15px;
    margin: 8px 15px;
    border: none;
    opacity: 1;
}


.signoutbtn:hover {
    background-color: #6b7280;
    color: #ffffff;
}


#main {
    transition: margin-left .5s;
    padding: 16px;
}


th.linebreak {
    width: 30%;
    word-wrap: break-word;
    overflow-wrap: break-word;
    text-align: center;
}


.language-flags {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}


img.flag {
    width: 32px;
    height: auto;
}


.col-4 {
    width: 4%;
}


.col-5 {
    width: 5%;
}


.col-7 {
    width: 7%;
}


.col-10 {
    width: 10%;
}


.col-12-5 {
    width: 12.5%;
}


.col-15 {
    width: 15%;
}


.col-16 {
    width: 16%;
}


.col-18 {
    width: 18%;
}


.col-20 {
    width: 20%;
}


.col-21 {
    width: 21%;
}


.col-22 {
    width: 22%;
}


.col-25 {
    width: 25%;
}


.col-28 {
    width: 28%;
}


.col-30 {
    width: 30%;
}


.col-33 {
    width: 33%;
}


.col-34 {
    width: 34%;
}


.col-50 {
    width: 50%;
}


.col-56 {
    width: 56%;
}


.left-aligned {
    text-align: left;
}


.right-aligned {
    text-align: right;
}


.centered {
    text-align: center;
}


.centered table {
    margin-left: auto;
    margin-right: auto;
}


.centered form {
    margin-left: auto;
    margin-right: auto;
}


.holiday-cell {
    background-color: #6f7f6f;
}


.error-red {
    background-color: #FF0000;
    color: #ffffff;
}


.electric-blue {
    background-color: #555c66;
    color: #ffffff;
}


.pink-lace {
    background-color: #555c66;
    color: #ffffff;
}


.pale-lavender {
    background-color: #555c66;
    color: #ffffff;
}


.purple-gray {
    background-color: #555c66;
    color: #ffffff;
}


.pastel-violet {
    background-color: #555c66;
    color: #ffffff;
}


.simple-rose-gold {
    background-color: #555c66;
    color: #ffffff;
}


.mainly-blue {
    background-color: #555c66;
    color: #ffffff;
}


.visually-hidden {
    position: absolute;
    left: -9999px;
}


.section-spacer-30 {
    height: 30px;
}


.section-spacer-60 {
    height: 60px;
}


.schedule-summary {
    margin-bottom: 20px;
}


.button-row {
    margin-bottom: 15px;
}


.button-green {
    background-color: #3f8f4f;
    color: white;
}


.button-green:hover {
    background-color: #4ea85f;
}


.button-orange {
    background-color: #b56b2d;
    color: white;
}


.button-orange:hover {
    background-color: #cc7a34;
}


.admin-index-wrapper {
    max-width: 1150px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.admin-index-planned-tasks {
    margin: 2.5rem auto 2rem auto;
}


.button-link {
    display: inline-block;
    text-decoration: none;
    color: #ffffff;
    background-color: #6b7280;
    border-radius: 4px;
    padding: 10px 20px;
    margin: 4px 2px;
}


.button-link:hover {
    background-color: #8a919c;
}


.section-spacer {
    height: 24px;
}


.section-spacer-small {
    height: 12px;
}


.section-spacer-large {
    height: 48px;
}


.page-header {
    margin-bottom: 1.5rem;
}


.page-section {
    margin: 1.5rem auto;
}


.language-section {
    margin-top: 2.5rem;
}


.admin-index-progress {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}


.planned-task-section-compact {
    margin: 1.5rem auto 2.25rem auto;
}


.users-list-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.users-list-section {
    overflow-x: auto;
}


.users-list-table {
    width: 100%;
    margin: 1.5rem auto;
}


.users-list-table form {
    margin: 0;
}


.calculate-schedule-wrapper {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.calculate-schedule-section {
    margin: 1.5rem auto;
}


.calculate-schedule-table {
    width: 640px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.calculate-schedule-label-cell {
    width: 65%;
    text-align: right;
    white-space: nowrap;
    padding-right: 1rem;
}


.calculate-schedule-input-cell {
    width: 35%;
    text-align: left;
    padding-left: 1rem;
}


.calculate-schedule-input-cell select {
    min-width: 160px;
}


.selected-user-info {
    margin: 1rem auto 1.5rem auto;
}


.password-change-form {
    margin: 0 auto;
}


.password-change-table {
    width: 680px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.password-change-label-cell {
    width: 35%;
    text-align: right;
    white-space: nowrap;
    padding-right: 1rem;
}


.password-change-input-cell {
    width: 35%;
    text-align: left;
}


.password-change-input-cell input {
    width: 100%;
    min-width: 220px;
}


.delete-shift-request-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.delete-shift-request-form {
    margin: 0 auto;
}


.delete-shift-request-table {
    width: 420px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.delete-shift-request-cell {
    text-align: center;
}


.delete-shift-request-cell select {
    min-width: 260px;
}


.delete-user-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.delete-user-form {
    margin: 0 auto;
}


.delete-user-table {
    width: 460px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.delete-user-cell {
    text-align: center;
}


.delete-user-cell select {
    min-width: 300px;
}


.full-stats-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.full-stats-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 1.5rem auto;
}


.full-stats-table {
    min-width: 1100px;
    margin: 0 auto;
}


.full-stats-table th {
    vertical-align: middle;
}


.full-stats-table td {
    vertical-align: middle;
}


.planned-tasks-wrapper {
    max-width: 1150px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.planned-task-section {
    margin: 2.25rem auto 4rem auto;
}


.planned-task-form {
    margin: 0 auto;
}


.planned-task-table {
    width: 760px;
    max-width: 100%;
    margin: 1.25rem auto;
    table-layout: fixed;
}


.planned-task-table th {
    vertical-align: middle;
}


.planned-task-table td {
    vertical-align: middle;
}


.planned-task-label-column {
    width: 65%;
}


.planned-task-value-column {
    width: 35%;
}


.planned-task-table label {
    white-space: nowrap;
}


.planned-task-display-label {
    white-space: nowrap;
}


.planned-task-table select {
    min-width: 90px;
}


.planned-task-error {
    display: block;
    margin-top: 0.35rem;
}


.planned-task-info {
    max-width: 760px;
    margin: 0 auto 1.5rem auto;
}


.register-user-wrapper {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.register-user-form {
    margin: 0 auto;
}


.register-user-table {
    width: 860px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.register-user-label-cell {
    width: 28%;
    text-align: right;
    white-space: nowrap;
    padding-right: 1rem;
}


.register-user-input-cell {
    width: 42%;
    text-align: left;
}


.register-user-input-cell input:not([type="checkbox"]) {
    width: 100%;
    min-width: 260px;
}


.register-user-input-cell select {
    width: 100%;
    min-width: 260px;
}


.register-user-top-aligned {
    vertical-align: top;
}


.schedule-table-wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    margin: 1.5rem auto;
    -webkit-overflow-scrolling: touch;
}


.schedule-edit-table {
    width: max-content;
    min-width: 100%;
    table-layout: auto;
    margin: 0 auto;
}


.schedule-edit-table th {
    min-width: 150px;
    max-width: 180px;
    box-sizing: border-box;
    vertical-align: middle;
}


.schedule-edit-table td {
    min-width: 150px;
    max-width: 180px;
    box-sizing: border-box;
    vertical-align: middle;
}


.schedule-edit-table th:first-child {
    min-width: 70px;
    max-width: 90px;
}


.schedule-edit-table td:first-child {
    min-width: 70px;
    max-width: 90px;
}


.schedule-edit-table select {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    display: block;
}


.schedule-edit-table label {
    display: block;
    width: 100%;
}


.saved-schedule-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.saved-schedule-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 1.5rem auto;
    -webkit-overflow-scrolling: touch;
}


.saved-schedule-table {
    min-width: 900px;
    margin: 0 auto;
}


.saved-schedule-table th {
    vertical-align: middle;
}


.saved-schedule-table td {
    vertical-align: middle;
}


.select-update-user-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.select-update-user-form {
    margin: 0 auto;
}


.select-update-user-table {
    width: 420px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.select-update-user-cell {
    text-align: center;
}


.select-update-user-cell select {
    min-width: 260px;
}


.select-password-user-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.select-password-user-form {
    margin: 0 auto;
}


.select-password-user-table {
    width: 520px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.select-password-user-cell {
    text-align: center;
}


.select-password-user-cell select {
    min-width: 300px;
}


.show-saved-schedules-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.show-saved-schedules-message {
    max-width: 620px;
    margin: 1rem auto;
}


.show-saved-schedules-form {
    margin: 0 auto;
}


.show-saved-schedules-table {
    width: 520px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.show-saved-schedules-label-cell {
    width: 45%;
    text-align: right;
    white-space: nowrap;
    padding-right: 1rem;
}


.show-saved-schedules-input-cell {
    width: 55%;
    text-align: left;
}


.show-saved-schedules-input-cell select {
    min-width: 180px;
}


.update-shift-request-wrapper {
    max-width: 850px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.update-shift-request-form {
    margin: 0 auto;
}


.update-shift-request-table {
    width: 620px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.update-shift-request-label-cell {
    text-align: center;
}


.update-shift-request-input-cell {
    text-align: center;
}


.update-shift-request-input-cell select {
    min-width: 300px;
}


.update-shift-request-error-cell {
    text-align: left;
    min-width: 180px;
}


.update-user-wrapper {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.update-user-form {
    margin: 0 auto;
}


.update-user-table {
    width: 860px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.update-user-label-cell {
    width: 28%;
    text-align: right;
    white-space: nowrap;
    padding-right: 1rem;
}


.update-user-input-cell {
    width: 42%;
    text-align: left;
}


.update-user-input-cell input:not([type="checkbox"]) {
    width: 100%;
    min-width: 260px;
}


.update-user-input-cell select {
    width: 100%;
    min-width: 260px;
}


.update-user-top-aligned {
    vertical-align: top;
}


.checkbox-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: flex-start;
}


.checkbox-list-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}


.success-message {
    max-width: 620px;
    margin: 1rem auto;
}


.change-password-form {
    margin: 0 auto;
}


.change-password-table {
    width: 760px;
    max-width: 100%;
    margin: 1.25rem auto;
}


.change-password-label-cell {
    width: 35%;
    text-align: right;
    white-space: nowrap;
    padding-right: 1rem;
}


.change-password-input-cell {
    width: 35%;
    text-align: left;
}


.change-password-input-cell input {
    width: 100%;
    min-width: 220px;
}


.password-changed-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.password-changed-message {
    max-width: 620px;
    margin: 1.5rem auto;
}


.shift-request-deleted-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.shift-request-deleted-message {
    max-width: 620px;
    margin: 1.5rem auto;
}


.shift-request-summary-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.shift-request-summary-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 1.5rem auto;
    -webkit-overflow-scrolling: touch;
}


.shift-request-summary-table {
    width: 100%;
    min-width: 900px;
    margin: 0 auto;
}


.shift-request-summary-table th {
    vertical-align: middle;
}


.shift-request-summary-table td {
    vertical-align: middle;
}


.shift-request-dates-no {
    margin: 1.5rem auto;
}


.shift-request-dates-no-table {
    width: 760px;
    max-width: 100%;
    margin: 0 auto;
}


.user-index-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.user-index-header {
    margin-bottom: 2rem;
}


.shift-request-form {
    margin: 0 auto;
}


.validation-messages {
    max-width: 900px;
    margin: 1rem auto;
}


.validation-messages p {
    margin: 0.5rem auto;
}


.shift-preference-section {
    margin: 1.75rem auto;
}


.shift-preference-details {
    margin-top: 0.75rem;
}


.user-index-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 0.75rem auto;
    -webkit-overflow-scrolling: touch;
}


.shift-preference-choice-table {
    width: 760px;
    max-width: 100%;
    margin: 0 auto;
}


.dates-no-table {
    width: 760px;
    max-width: 100%;
    margin: 0 auto;
}


.shift-preference-details-table {
    width: 760px;
    max-width: 100%;
    margin: 0 auto;
    min-width: 760px;
}


.current-request-table {
    width: 760px;
    max-width: 100%;
    margin: 0 auto;
    min-width: 900px;
}


.shift-preference-details-table th {
    vertical-align: middle;
}


.shift-preference-details-table td {
    vertical-align: middle;
}


.current-request-table th {
    vertical-align: middle;
}


.current-request-table td {
    vertical-align: middle;
}


.shift-preference-details-table input[type="text"] {
    min-width: 240px;
}


.dates-no-table input[type="text"] {
    min-width: 240px;
}


.shift-preference-details-table select {
    min-width: 80px;
}


.current-request-section {
    margin-top: 2.5rem;
}


.current-request-dates-no {
    margin: 1.5rem auto;
}


.current-request-dates-no-table {
    width: 760px;
    max-width: 100%;
    margin: 0 auto;
}


.access-denied-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.access-denied-message {
    max-width: 620px;
    margin: 1.5rem auto;
}


.login-wrapper {
    max-width: 700px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.login-form {
    width: 360px;
    max-width: 100%;
    margin: 0 auto;
}


.login-field {
    margin: 1rem auto;
}


.login-field input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.65rem;
    font-size: 1rem;
}


.login-message-section {
    min-height: 2rem;
    margin: 1rem auto;
}


.login-message {
    max-width: 420px;
    margin: 0.75rem auto;
    padding: 0.6rem;
    border-radius: 4px;
}


.form-actions {
    text-align: center;
    margin-top: 1.5rem;
}


.planned-task-actions {
    text-align: center;
    margin-top: 1.5rem;
    width: 100%;
    max-width: 900px;
    margin: 1.75rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}


.page-actions {
    margin-top: 1.5rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    width: 100%;
    max-width: 900px;
    margin: 1.75rem auto 0 auto;
    text-align: center;
}


.full-stats-actions {
    margin-top: 3rem;
    width: 100%;
    max-width: 900px;
    margin: 1.75rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    text-align: center;
}


.schedule-button-row {
    display: flex;
    justify-content: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    align-items: center;
    margin: 1.75rem auto 0 auto;
    width: 100%;
    max-width: 900px;
    text-align: center;
}


.saved-schedule-actions {
    margin-top: 3rem;
    width: 100%;
    max-width: 900px;
    margin: 1.75rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    text-align: center;
}


.inline-action-form {
    display: inline-flex;
    margin: 0;
    justify-content: center;
    align-items: center;
}


.page-actions form {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 0;
}


.user-index-actions form {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 0;
}


.schedule-button-row form {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 0;
}


.page-actions .standard-button {
    min-width: 180px;
    text-align: center;
    box-sizing: border-box;
}


.page-actions .button-link {
    min-width: 180px;
    text-align: center;
    box-sizing: border-box;
}


.schedule-button-row .standard-button {
    min-width: 180px;
    text-align: center;
    box-sizing: border-box;
}


.schedule-button-row .button-link {
    min-width: 180px;
    text-align: center;
    box-sizing: border-box;
}


.user-delete-success-wrapper {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.user-update-success-wrapper {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
}


.user-delete-success-actions {
    margin-top: 2rem;
    width: 100%;
    max-width: 760px;
    margin: 1.75rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    text-align: center;
}


.user-update-success-actions {
    width: 100%;
    max-width: 760px;
    margin: 1.75rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    text-align: center;
}


.password-change-wrapper {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
    margin-left: auto;
    margin-right: auto;
}


.change-password-wrapper {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1.5rem 3rem 1.5rem;
    margin-left: auto;
    margin-right: auto;
}


.password-change-wrapper .page-actions {
    width: 100%;
    max-width: 520px;
    margin: 1.75rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    text-align: center;
}


.change-password-wrapper .page-actions {
    width: 100%;
    max-width: 520px;
    margin: 1.75rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    text-align: center;
}


.user-index-actions {
    margin-top: 1.5rem;
    width: 100%;
    max-width: 900px;
    margin: 1.75rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    text-align: center;
}


.user-index-actions .standard-button {
    min-width: 220px;
    text-align: center;
    box-sizing: border-box;
}


.user-index-actions .button-link {
    min-width: 220px;
    text-align: center;
    box-sizing: border-box;
}


.user-index-wrapper > .page-actions:last-of-type {
    max-width: 320px;
}


.dataTables_wrapper {
    color: #f2f2f2 !important;
}


.dataTables_wrapper .dataTables_length {
    color: #f2f2f2 !important;
    margin: 0.75rem 0;
}


.dataTables_wrapper .dataTables_filter {
    color: #f2f2f2 !important;
    margin: 0.75rem 0;
}


.dataTables_wrapper .dataTables_info {
    color: #f2f2f2 !important;
    margin: 0.75rem 0;
}


.dataTables_wrapper .dataTables_paginate {
    color: #f2f2f2 !important;
    margin: 0.75rem 0;
}


.dataTables_wrapper label {
    color: #f2f2f2 !important;
}


.dataTables_wrapper .dataTables_filter input {
    background-color: #3b4047 !important;
    color: #f2f2f2 !important;
    border: 1px solid #8a919c !important;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
}


.dataTables_wrapper .dataTables_length select {
    background-color: #3b4047 !important;
    color: #f2f2f2 !important;
    border: 1px solid #8a919c !important;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
}


.dataTables_wrapper .dataTables_length select option {
    background-color: #3b4047;
    color: #f2f2f2;
}


.dataTables_wrapper .dataTables_filter input::placeholder {
    color: #cfd4da;
}


.dataTables_wrapper .dataTables_paginate .paginate_button {
    color: #f2f2f2 !important;
    background-color: #4a5058;
    border: 1px solid #1f2226 !important;
    border-radius: 4px !important;
    margin: 0 0.15rem;
    background: #4a5058 !important;
}


.dataTables_wrapper .dataTables_paginate .paginate_button.current {
    color: #ffffff !important;
    background: #6b7280 !important;
    border: 1px solid #8a919c !important;
}


.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    color: #ffffff !important;
    background: #6b7280 !important;
    border: 1px solid #8a919c !important;
}


.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    color: #ffffff !important;
    background: #8a919c !important;
    border: 1px solid #8a919c !important;
}


.dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
    color: #8a919c !important;
    background: transparent !important;
    border-color: transparent !important;
}


.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
    color: #8a919c !important;
    background: transparent !important;
    border-color: transparent !important;
}


.password-change-error-cell {
    width: 30%;
    text-align: left;
    max-width: 340px;
    white-space: normal;
    overflow-wrap: break-word;
}


.register-user-error-cell {
    width: 30%;
    text-align: left;
    background-color: #ff0000;
    color: #ffffff;
    padding: 0.65rem;
    line-height: 1.25;
    max-width: 340px;
    white-space: normal;
    overflow-wrap: break-word;
}


.update-user-error-cell {
    width: 30%;
    text-align: left;
    background-color: #ff0000;
    color: #ffffff;
    padding: 0.65rem;
    line-height: 1.25;
    max-width: 340px;
    white-space: normal;
    overflow-wrap: break-word;
}


.change-password-error-cell {
    width: 30%;
    text-align: left;
    max-width: 340px;
    white-space: normal;
    overflow-wrap: break-word;
}


@media (max-width: 850px) {


    .users-list-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .users-list-table {
        min-width: 760px;
    }


    .full-stats-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .planned-tasks-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .planned-task-table {
        width: 96%;
    }


    .planned-task-table label {
        white-space: normal;
    }


    .planned-task-display-label {
        white-space: normal;
    }


    .register-user-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .register-user-table {
        width: 96%;
    }


    .register-user-label-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .register-user-input-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .register-user-error-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .register-user-input-cell input:not([type="checkbox"]) {
        min-width: 0;
        width: 100%;
    }


    .register-user-input-cell select {
        min-width: 0;
        width: 100%;
    }


    .schedule-table-wrapper {
        width: 100%;
        overflow-x: auto;
    }


    .schedule-edit-table {
        min-width: max-content;
    }


    .schedule-edit-table th {
        min-width: 145px;
        max-width: 170px;
    }


    .schedule-edit-table td {
        min-width: 145px;
        max-width: 170px;
    }


    .schedule-edit-table th:first-child {
        min-width: 60px;
        max-width: 80px;
    }


    .schedule-edit-table td:first-child {
        min-width: 60px;
        max-width: 80px;
    }


    .schedule-edit-table select {
        font-size: 0.85rem;
        padding: 4px;
    }


    .saved-schedule-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .saved-schedule-table {
        min-width: 760px;
    }


    .update-user-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .update-user-table {
        width: 96%;
    }


    .update-user-label-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .update-user-input-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .update-user-error-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .update-user-input-cell input:not([type="checkbox"]) {
        min-width: 0;
        width: 100%;
    }


    .update-user-input-cell select {
        min-width: 0;
        width: 100%;
    }


    .checkbox-list {
        align-items: center;
    }


    .checkbox-list-item {
        white-space: normal;
    }


    .shift-request-summary-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .shift-request-summary-table {
        min-width: 760px;
    }


    .shift-request-dates-no-table {
        width: 96%;
    }


    .user-index-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .shift-preference-choice-table {
        width: 96%;
    }


    .dates-no-table {
        width: 96%;
    }


    .current-request-dates-no-table {
        width: 96%;
    }


    .shift-preference-details-table {
        min-width: 680px;
    }


    .current-request-table {
        min-width: 760px;
    }


    .shift-preference-details-table input[type="text"] {
        min-width: 200px;
    }


    .dates-no-table input[type="text"] {
        min-width: 200px;
    }

}


@media screen and (max-height: 450px) {


    .sidebar {
        padding-top: 15px;
    }


    .sidebar a {
        font-size: 18px;
    }

}


@media (max-width: 650px) {


    .admin-index-progress {
        flex-direction: column;
    }


    .update-shift-request-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .update-shift-request-table {
        width: 96%;
    }


    .update-shift-request-input-cell {
        display: block;
        width: 100%;
        text-align: center;
    }


    .update-shift-request-error-cell {
        display: block;
        width: 100%;
        text-align: center;
    }


    .update-shift-request-input-cell select {
        min-width: 0;
        width: 100%;
    }

}


@media (max-width: 700px) {


    .calculate-schedule-table {
        width: 96%;
    }


    .calculate-schedule-label-cell {
        width: 50%;
        white-space: normal;
    }


    .calculate-schedule-input-cell {
        width: 50%;
        white-space: normal;
    }


    .calculate-schedule-input-cell select {
        min-width: 120px;
    }


    .checkbox-list-item {
        white-space: normal;
    }


    .page-actions {
        max-width: 100%;
        flex-direction: column;
        gap: 0.75rem;
    }


    .user-update-success-actions {
        max-width: 100%;
        flex-direction: column;
        gap: 0.75rem;
    }


    .user-delete-success-actions {
        max-width: 100%;
        flex-direction: column;
        gap: 0.75rem;
    }


    .user-index-actions {
        max-width: 100%;
        flex-direction: column;
        gap: 0.75rem;
    }


    .schedule-button-row {
        max-width: 100%;
        flex-direction: column;
        gap: 0.75rem;
    }


    .page-actions .standard-button {
        width: 100%;
        max-width: 320px;
    }


    .page-actions .button-link {
        width: 100%;
        max-width: 320px;
    }


    .user-index-actions .standard-button {
        width: 100%;
        max-width: 320px;
    }


    .user-index-actions .button-link {
        width: 100%;
        max-width: 320px;
    }


    .schedule-button-row .standard-button {
        width: 100%;
        max-width: 320px;
    }


    .schedule-button-row .button-link {
        width: 100%;
        max-width: 320px;
    }

}


@media (max-width: 750px) {


    .password-change-table {
        width: 96%;
    }


    .password-change-label-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .password-change-input-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .password-change-error-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .password-change-input-cell input {
        min-width: 0;
    }


    .change-password-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .change-password-table {
        width: 96%;
    }


    .change-password-label-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .change-password-input-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .change-password-error-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .change-password-input-cell input {
        min-width: 0;
    }

}


@media (max-width: 550px) {


    .delete-shift-request-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .delete-shift-request-table {
        width: 96%;
    }


    .delete-shift-request-cell select {
        min-width: 0;
        width: 100%;
    }


    .delete-user-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .delete-user-table {
        width: 96%;
    }


    .delete-user-cell select {
        min-width: 0;
        width: 100%;
    }


    .select-update-user-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .select-update-user-table {
        width: 96%;
    }


    .select-update-user-cell select {
        min-width: 0;
        width: 100%;
    }

}


@media (max-width: 500px) {


    .schedule-edit-table th {
        min-width: 135px;
        max-width: 160px;
    }


    .schedule-edit-table td {
        min-width: 135px;
        max-width: 160px;
    }


    .schedule-edit-table select {
        font-size: 0.8rem;
        padding: 3px;
    }


    .shift-preference-details-table {
        min-width: 620px;
    }


    .current-request-table {
        min-width: 700px;
    }


    .shift-preference-details-table input[type="text"] {
        min-width: 170px;
    }


    .dates-no-table input[type="text"] {
        min-width: 170px;
    }


    .login-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .login-form {
        width: 96%;
    }

}


@media (max-width: 600px) {


    .select-password-user-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .select-password-user-table {
        width: 96%;
    }


    .select-password-user-cell select {
        min-width: 0;
        width: 100%;
    }


    .show-saved-schedules-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .show-saved-schedules-table {
        width: 96%;
    }


    .show-saved-schedules-label-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .show-saved-schedules-input-cell {
        display: block;
        width: 100%;
        text-align: center;
        padding-right: 0;
    }


    .show-saved-schedules-input-cell select {
        min-width: 0;
        width: 100%;
    }


    .user-delete-success-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .password-changed-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .shift-request-deleted-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }


    .access-denied-wrapper {
        padding: 0 0.75rem 2rem 0.75rem;
    }

}

.confirmation-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 1rem;
    background: rgba(0, 0, 0, 0.65);
}

.confirmation-modal {
    width: min(34rem, 100%);
    padding: 2rem;

    text-align: center;
    background: #30343b;
    border: 1px solid #8b93a1;
    border-radius: 0.5rem;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.5);
}

.confirmation-modal h2 {
    margin-top: 0;
}

.confirmation-modal-actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 2rem;
}

.confirmation-modal-actions form {
    margin: 0;
}

#calculationProgressMessage {
    margin-bottom: 1.5rem;
    font-weight: 600;
}

button:disabled {
    cursor: wait;
    opacity: 0.65;
}

.calculation-form-busy {
    pointer-events: none;
    opacity: 0.65;
    cursor: wait;
}

.calculation-progress {
    margin-bottom: 1.5rem;
    font-weight: 600;
    text-align: center;
}
