:root {
    --panel-body: #405258;
    --panel-dark: #2f3e42;
    --panel-dark-2: #273439;
    --panel-mid: #315862;
    --panel-border: #2f3d43;
    --panel-content: #e4e7e9;
    --panel-content-light: #f8f8f8;
    --panel-text: #656b6d;
    --panel-muted: #8a989f;
    --panel-link: #267da6;
    --panel-link-hover: #2193c8;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    background:
        linear-gradient(rgba(255, 255, 255, 0.02), rgba(0, 0, 0, 0.08)),
        var(--panel-body);
    color: var(--panel-text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
}

a {
    color: var(--panel-link);
    text-decoration: none;
}

a:hover,
a:focus {
    color: var(--panel-link-hover);
}

.admin-shell {
    margin: 3rem auto 1.5rem;
    max-width: 1240px;
    min-height: calc(100vh - 4.5rem);
}

.container-xxl {
    max-width: 1180px;
}

.grid_24,
.grid_12,
.grid_6 {
    width: 100%;
}

.userpanel {
    color: #fff;
    font-size: 0.86rem;
    font-weight: 700;
    min-height: 39px;
    padding: 0 1.25rem;
    text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.45);
}

.legacy-tab {
    align-items: center;
    background:
        linear-gradient(rgba(255, 255, 255, 0.08), rgba(0, 0, 0, 0.08)),
        var(--panel-mid);
    border: 1px solid var(--panel-border);
    border-bottom: 0;
    border-radius: 5px 5px 0 0;
    color: #f4f7f8;
    display: inline-flex;
    gap: 0.5rem;
    min-height: 39px;
    padding: 0.55rem 1.1rem;
    text-transform: uppercase;
}

.legacy-tab:hover,
.legacy-tab:focus {
    color: #fff;
}

.dropdown-menu {
    background:
        linear-gradient(rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.08)),
        var(--panel-dark);
    border: 1px solid var(--panel-border);
    border-radius: 5px;
    box-shadow: 3px 3px 0 3px rgba(0, 0, 0, 0.06);
    padding: 0.45rem;
}

.dropdown-item {
    align-items: center;
    border-radius: 4px;
    color: #d1d5d8;
    display: flex;
    font-size: 0.82rem;
    gap: 0.65rem;
    min-width: 180px;
    padding: 0.45rem 0.65rem;
}

.dropdown-item i {
    color: #a9c5d2;
    width: 1.1rem;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.main-header {
    background:
        linear-gradient(rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.12)),
        var(--panel-dark);
    border: 1px solid var(--panel-border);
    border-radius: 5px;
    box-shadow: 0 10px 0 rgba(0, 0, 0, 0.08);
    min-height: 67px;
    padding: 1rem 1.5rem;
    text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.5);
}

.brand {
    color: #fff;
    display: inline-flex;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0;
}

.brand:hover {
    color: #fff;
}

#navigation {
    font-size: 1rem;
    font-weight: 700;
}

#navigation .nav-link {
    color: #c5cbce;
    padding-left: 2rem;
    position: relative;
}

#navigation .nav-link::before {
    color: #9ab5c1;
    content: "\f15b";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    left: 0.3rem;
    position: absolute;
}

#navigation .nav-link:hover,
#navigation .nav-link:focus {
    color: #fff;
}

.navbar-toggler {
    background: #dfe8ec;
    border-color: rgba(255, 255, 255, 0.3);
}

.shortcut-bar {
    background:
        linear-gradient(rgba(255, 255, 255, 0.06), rgba(0, 0, 0, 0.06)),
        var(--panel-mid);
    border: 1px solid var(--panel-border);
    border-top: 0;
    border-radius: 0 0 5px 5px;
    box-shadow:
        0 10px 0 rgba(0, 0, 0, 0.08),
        inset 0 10px 0 rgba(0, 0, 0, 0.08);
    margin: 0 1.25rem 0.7rem;
    min-height: 39px;
    padding: 0.6rem 1rem;
    text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.45);
}

.shortcut-list,
.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
}

.shortcut-list a,
.preview-link {
    align-items: center;
    color: #c5cdcf;
    display: inline-flex;
    font-size: 0.74rem;
    font-weight: 800;
    gap: 0.42rem;
    text-transform: uppercase;
}

.shortcut-list a:hover,
.preview-link:hover {
    color: #fff;
}

.content-wrap {
    padding: 0 1.25rem 1rem;
}

.panel-container {
    padding-left: 0;
    padding-right: 0;
}

.panel-box {
    margin-top: 1.55rem;
}

.notice {
    border: 1px solid #c9d4da;
    border-radius: 5px;
    box-shadow: 0 3px 2px rgba(0, 0, 0, 0.04);
    margin: 1.15rem 0 0.8rem;
    padding: 0.85rem 1rem;
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.65);
}

.notice p {
    margin: 0;
}

.notice-info {
    background: #ccdbe3;
    color: #585c5f;
}

.notice-success {
    background: #e6efc2;
    color: #264409;
}

.notice-error {
    background: #ffcdcd;
    color: #735757;
}

.alertify .ajs-dimmer {
    background: rgba(27, 38, 42, 0.58);
}

.alertify,
.alertify *,
.alertify-notifier,
.alertify-notifier * {
    text-shadow: none !important;
}

.alertify .ajs-modal {
    padding: 1rem;
}

.alertify .ajs-dialog {
    background: var(--panel-content);
    border: 1px solid var(--panel-border);
    border-radius: 5px;
    box-shadow:
        0 14px 0 rgba(0, 0, 0, 0.08),
        0 24px 55px rgba(0, 0, 0, 0.28);
    max-width: 460px;
    overflow: hidden;
    padding: 0;
}

.alertify .ajs-header {
    background:
        linear-gradient(rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.12)),
        var(--panel-dark);
    border: 0;
    color: #fff;
    font-size: 0.98rem;
    font-weight: 700;
    margin: 0;
    padding: 1rem 1.25rem;
}

.alertify .ajs-header::before {
    color: #a9c5d2;
    content: "\f06a";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    margin-right: 0.55rem;
}

.alertify .ajs-body {
    color: var(--panel-text);
    margin: 0;
    min-height: 0;
    padding: 0;
}

.alertify .ajs-content {
    font-size: 0.88rem;
    line-height: 1.5;
    padding: 1.2rem 1.25rem;
}

.alertify .ajs-footer {
    background: #f4f6f7;
    border-top: 1px solid #ccd2d5;
    margin: 0;
    padding: 0.85rem 1.25rem;
}

.alertify .ajs-footer .ajs-buttons .ajs-button {
    border-radius: 4px;
    box-shadow: none;
    font-size: 0.82rem;
    font-weight: 700;
    min-height: 36px;
    padding: 0.42rem 0.95rem;
    text-shadow: none;
}

.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok {
    background: #343a40;
    border: 1px solid #343a40;
    color: #fff;
}

.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok:hover,
.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok:focus {
    background: #23272b;
    border-color: #23272b;
    color: #fff;
}

.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-cancel {
    background: transparent;
    border: 1px solid #343a40;
    color: #343a40;
}

.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-cancel:hover,
.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-cancel:focus {
    background: #343a40;
    color: #fff;
}

.alertify-notifier .ajs-message {
    border: 1px solid #c9d4da;
    border-radius: 5px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.16);
    color: #4f5a5e;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.4;
    min-width: min(420px, calc(100vw - 2rem));
    padding: 0.85rem 1.1rem;
    text-align: center;
    text-shadow: none;
}

.alertify-notifier.ajs-top.ajs-center {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: auto;
}

.alertify-notifier .ajs-message.ajs-success {
    background: #e6efc2;
    border-color: #d3dfa6;
    color: #264409;
}

.alertify-notifier .ajs-message.ajs-error {
    background: #ffcdcd;
    border-color: #efb8b8;
    color: #735757;
}

.panel-confirm-modal .modal-content {
    background: var(--panel-content);
    border: 1px solid var(--panel-border);
    border-radius: 5px;
    box-shadow:
        0 14px 0 rgba(0, 0, 0, 0.08),
        0 24px 55px rgba(0, 0, 0, 0.28);
    overflow: hidden;
}

.panel-confirm-modal .modal-header {
    background:
        linear-gradient(rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.12)),
        var(--panel-dark);
    border-bottom: 0;
    color: #fff;
    padding: 1rem 1.25rem;
}

.panel-confirm-modal .modal-title {
    align-items: center;
    display: inline-flex;
    font-size: 0.98rem;
    font-weight: 700;
    gap: 0.55rem;
    margin: 0;
}

.panel-confirm-modal .modal-title::before {
    color: #a9c5d2;
    content: "\f06a";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.panel-confirm-modal .modal-body {
    box-shadow: inset 0 0 20px 5px rgba(0, 0, 0, 0.08);
    color: var(--panel-text);
    font-size: 0.9rem;
    line-height: 1.5;
    padding: 1.25rem;
}

.panel-confirm-modal .modal-body p {
    margin: 0;
}

.panel-confirm-danger {
    border: 1px solid #b02a37;
    border-radius: 4px;
    font-size: 0.86rem;
    font-weight: 900;
    letter-spacing: 0;
    margin: 1rem 0 0;
    padding: 0.85rem 0.95rem;
    text-transform: uppercase;
}

.panel-confirm-modal .modal-footer {
    background: #f4f6f7;
    border-top: 1px solid #ccd2d5;
    gap: 0.5rem;
    padding: 0.85rem 1.25rem;
}

.panel-confirm-modal .btn {
    font-size: 0.82rem;
    font-weight: 700;
    min-height: 36px;
}

.box_top {
    align-items: center;
    background:
        linear-gradient(rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.12)),
        var(--panel-dark);
    border: 1px solid var(--panel-border);
    border-radius: 5px 5px 0 0;
    box-shadow: 0 10px 0 rgba(0, 0, 0, 0.08);
    color: #fff;
    display: flex;
    justify-content: space-between;
    min-height: 65px;
    padding: 0.95rem 1.5rem;
    text-shadow: -1px -1px 0 #1f1f1f;
}

.box_top h1,
.box_top h2 {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
}

.box_top p {
    color: #b8c3c8;
    font-size: 0.78rem;
    margin: 0.25rem 0 0;
}

.box_top .sorting {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.box_top .sorting li {
    margin: 0;
    padding: 0;
}

.box_top .sorting a,
.box_top .sorting button {
    background:
        linear-gradient(rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.1)),
        rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 5px;
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.22);
    color: #bfc6ca;
    display: block;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.2;
    padding: 0.32rem 0.7rem;
    text-transform: uppercase;
}

.box_top .sorting a:hover,
.box_top .sorting button:hover,
.box_top .sorting .active {
    color: #fff;
}

.box_content {
    background: var(--panel-content);
    border: 1px solid var(--panel-border);
    border-top: 0;
    border-radius: 0 0 5px 5px;
    box-shadow:
        0 10px 0 rgba(0, 0, 0, 0.08),
        inset 0 0 20px 5px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    padding: 1.25rem 1.5rem;
}

.panel-preview-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-bottom: 0.8rem;
}

.legacy-button,
.buttonss {
    background:
        linear-gradient(#2f9bd3, #0d5b87);
    border: 1px solid rgba(13, 91, 135, 0.85);
    border-radius: 4px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        0 1px 2px rgba(0, 0, 0, 0.22);
    color: #fff !important;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    min-height: 31px;
    padding: 0.45rem 1.05rem;
    text-align: center;
    text-decoration: none !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.45);
}

.legacy-button:hover,
.buttonss:hover {
    background:
        linear-gradient(#37a9e5, #116b9e);
    color: #fff !important;
}

.panel-preview-links .legacy-button {
    background: transparent;
    border-color: #343a40;
    box-shadow: none;
    color: #343a40 !important;
    text-shadow: none;
}

.panel-preview-links .legacy-button:hover,
.panel-preview-links .legacy-button:focus {
    background: #343a40;
    border-color: #343a40;
    color: #fff !important;
}

.module-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.module-actions .btn {
    font-size: 0.82rem;
    font-weight: 700;
}

.stat-card {
    background: var(--panel-content-light);
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    box-shadow: 0 3px 2px rgba(0, 0, 0, 0.04);
    min-height: 82px;
    padding: 0.85rem;
    text-shadow: 1px 1px 0 #fff;
}

.stat-card strong {
    color: var(--panel-link);
    display: block;
    font-size: 1.55rem;
    line-height: 1;
    margin-bottom: 0.35rem;
}

.stat-card span,
.stat-card small {
    display: block;
}

.stat-card small {
    color: var(--panel-muted);
    margin-top: 0.2rem;
}

.stats-dashboard {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stats-subtitle {
    color: var(--panel-text);
    font-size: 0.86rem;
    font-weight: 700;
    margin: 0 0 0.7rem;
}

.content-section {
    background: #f7f7f7;
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    overflow: hidden;
}

.section-heading {
    align-items: center;
    background:
        linear-gradient(rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.05)),
        #d4dadd;
    border-bottom: 1px solid #c2c8cb;
    color: var(--panel-text);
    display: flex;
    font-size: 0.78rem;
    font-weight: 800;
    gap: 0.5rem;
    letter-spacing: 0;
    padding: 0.65rem 0.85rem;
    text-shadow: 1px 1px 0 #fff;
}

.admin-table {
    margin: 0;
}

.sorting.table,
.admin-table,
.stats-mini-table {
    background: #f8f8f8;
    border: 1px solid #cbd2d5;
    color: var(--panel-text);
    font-size: 0.82rem;
}

.admin-table thead th {
    background: #eceff1;
    color: var(--panel-text);
    font-size: 0.74rem;
    text-transform: uppercase;
}

.admin-table td,
.admin-table th,
.stats-mini-table td,
.stats-mini-table th {
    border-color: #cbd2d5;
    padding: 0.7rem 0.85rem;
}

.sorting thead th {
    background:
        linear-gradient(rgba(255, 255, 255, 0.22), rgba(0, 0, 0, 0.04)),
        #d4dadd;
    color: var(--panel-text);
    font-size: 0.74rem;
    text-shadow: 1px 1px 0 #fff;
    text-transform: uppercase;
}

.center {
    text-align: center;
}

.align_left {
    text-align: left;
}

.action-cell {
    white-space: nowrap;
}

.action-icon {
    align-items: center;
    background: #a0a7ab;
    border: 0;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    height: 24px;
    justify-content: center;
    margin: 0 0.12rem;
    padding: 0;
    width: 24px;
    position: relative;
    transition: background .15s, transform .12s;
    cursor: pointer;
}

.action-icon:hover {
    transform: scale(1.15);
}

.action-edit:hover,
.action-save:hover,
.action-add:hover {
    background: rgba(0, 117, 58, 0.82);
}

.action-delete:hover {
    background: rgba(193, 0, 0, 0.72);
}

.dashboard-song-media-edit:hover,
.dashboard-waiting-promote:hover {
    background: rgba(13, 110, 253, 0.85);
}

/* Ukryj poziomy scrollbar pod tabelami */
.dataTables_scrollBody,
.dataTables_scroll,
.dataTables_scrollFoot,
.dataTables_wrapper,
.dataTables_wrapper > div {
    overflow-x: hidden !important;
}

.box_content .table-responsive {
    overflow-x: auto;
    scrollbar-width: none;       /* Firefox */
    -ms-overflow-style: none;    /* IE/Edge */
}

.box_content .table-responsive::-webkit-scrollbar {
    display: none;               /* Chrome/Safari */
}

/* Tooltips dla action-icon */
.action-icon[title] {
    overflow: visible;
}

.action-icon::after {
    content: attr(title);
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) scale(0.85);
    background: rgba(30, 35, 40, 0.93);
    color: #fff;
    font-size: .68rem;
    font-weight: 500;
    white-space: nowrap;
    padding: .22rem .55rem;
    border-radius: 4px;
    pointer-events: none;
    opacity: 0;
    transition: opacity .15s, transform .15s;
    z-index: 99;
    letter-spacing: .02em;
}

.action-icon::before {
    content: '';
    position: absolute;
    bottom: calc(100% + 1px);
    left: 50%;
    transform: translateX(-50%);
    border: 4px solid transparent;
    border-top-color: rgba(30, 35, 40, 0.93);
    pointer-events: none;
    opacity: 0;
    transition: opacity .15s;
    z-index: 99;
}

.action-icon:hover::after,
.action-icon:hover::before {
    opacity: 1;
    transform: translateX(-50%) scale(1);
}

.legacy-form {
    background: #f8f8f8;
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    padding: 1rem;
}

.legacy-form label {
    color: #555;
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.legacy-form .form-control,
.legacy-form .form-select {
    border-color: #b9cbd4;
    border-radius: 4px;
    font-size: 0.84rem;
}

.form-select {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    background-color: #f8fafb;
    background-image:
        linear-gradient(45deg, transparent 50%, #52636b 50%),
        linear-gradient(135deg, #52636b 50%, transparent 50%);
    background-position:
        calc(100% - 16px) 50%,
        calc(100% - 10px) 50%;
    background-size:
        6px 6px,
        6px 6px;
    background-repeat: no-repeat;
    color: #45565f;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 700;
    padding-right: 2.2rem;
}

.form-select:focus {
    background-color: #fff;
    border-color: #8eb8ca;
    box-shadow: 0 0 0 0.18rem rgba(38, 125, 166, 0.16);
    color: #34444b;
}

.form-select option {
    background: #fff;
    color: #45565f;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.84rem;
    font-weight: 700;
}

.legacy-actions {
    margin-top: 1rem;
    text-align: center;
}

.song-add-panel .box_content {
    padding: 1rem;
}

.song-add-form {
    margin: 0 auto;
    max-width: 760px;
}

.song-add-fields {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.song-add-field {
    width: 100%;
}

.song-add-label-row {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    justify-content: center;
    margin-bottom: 0.35rem;
}

.song-add-label-row label {
    margin-bottom: 0;
    text-align: center;
}

.song-add-help {
    align-items: center;
    background: #eef3f5;
    border: 1px solid #c6d2d8;
    border-radius: 50%;
    color: #52636b;
    display: inline-flex;
    height: 24px;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 24px;
}

.song-add-help:hover,
.song-add-help:focus {
    background: #fff;
    border-color: #8eb8ca;
    color: #273942;
}

.song-add-upload-row {
    align-items: stretch;
    display: flex;
    gap: 0.5rem;
}

.song-add-upload-row .form-control {
    min-width: 0;
}

.song-add-upload-button {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 0.35rem;
    margin: 0;
    min-width: 104px;
    justify-content: center;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, opacity 0.18s ease;
}

.song-add-upload-button.is-busy {
    background: #2f596b;
    border-color: #2f596b;
    color: #fff;
    cursor: wait;
    opacity: 0.95;
}

.song-add-upload-button.is-busy:hover,
.song-add-upload-button.is-busy:focus {
    background: #2f596b;
    border-color: #2f596b;
    color: #fff;
}

.song-add-cover-preview {
    display: none;
    margin: 0.75rem auto 0;
    max-width: 220px;
}

.song-add-cover-preview-inner {
    align-items: center;
    background: #fff;
    border: 1px solid #cfd8dc;
    border-radius: 5px;
    display: flex;
    gap: 0.65rem;
    padding: 0.55rem;
}

.song-add-cover-preview img {
    aspect-ratio: 1 / 1;
    border-radius: 4px;
    height: 64px;
    object-fit: cover;
    width: 64px;
}

.song-add-cover-preview span {
    color: #52636b;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: left;
}

.song-add-save {
    min-width: 130px;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, opacity 0.18s ease;
}

.song-add-save.is-busy {
    background: #2f596b;
    border-color: #2f596b;
    color: #fff;
    cursor: wait;
    opacity: 0.95;
}

.song-add-save.is-success {
    background: #147247;
    border-color: #147247;
    color: #fff;
}

.song-add-save .fa-spinner {
    margin-right: 0.15rem;
}

.song-add-form input:disabled,
.song-add-upload-button.disabled {
    cursor: not-allowed;
    opacity: 0.72;
}

.song-add-actions {
    text-align: center;
}

.song-add-form.is-saving {
    position: relative;
}

.song-add-form.is-saving::after {
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.78), transparent);
    content: "";
    display: block;
    height: 1px;
    margin: 1rem auto 0;
    max-width: 420px;
}

.song-add-result {
    display: none;
    margin: 1.15rem auto 0;
    max-width: 640px;
    text-align: center;
}

.song-add-result.is-visible {
    display: block;
}

.song-add-result-notice {
    border-radius: 5px;
    margin: 0;
    padding: 0.95rem 1.1rem;
}

.song-add-result-notice p {
    align-items: center;
    display: inline-flex;
    font-size: 0.95rem;
    font-weight: 700;
    gap: 0.45rem;
    justify-content: center;
    margin: 0;
}

.song-add-result-notice .fa-circle-check {
    color: #147247;
}

.song-add-result-notice .fa-triangle-exclamation {
    color: #b00020;
}

.song-add-tooltip.tooltip {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.78rem;
}

.song-add-tooltip .tooltip-inner {
    background: #26343b;
    border-radius: 4px;
    box-shadow: none;
    line-height: 1.35;
    max-width: 280px;
    padding: 0.45rem 0.6rem;
    text-align: left;
}

.song-add-tooltip.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before,
.song-add-tooltip.bs-tooltip-end .tooltip-arrow::before {
    border-right-color: #26343b;
}

.song-add-tooltip.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before,
.song-add-tooltip.bs-tooltip-top .tooltip-arrow::before {
    border-top-color: #26343b;
}

.song-add-tooltip.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before,
.song-add-tooltip.bs-tooltip-bottom .tooltip-arrow::before {
    border-bottom-color: #26343b;
}

.song-add-tooltip.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before,
.song-add-tooltip.bs-tooltip-start .tooltip-arrow::before {
    border-left-color: #26343b;
}

@media (max-width: 575.98px) {
    .song-add-upload-row {
        flex-direction: column;
    }

    .song-add-upload-button {
        justify-content: center;
    }
}

.quick-start {
    margin: 0 1.25rem 1rem;
}

.quick-start .container-xxl {
    max-width: 1180px;
    padding: 0;
}

.quick-start-top {
    min-height: 58px;
}

.quick-start-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
}

.quick-action {
    align-items: center;
    background: #f8f8f8;
    border: 1px solid #c9ced1;
    border-radius: 5px;
    box-shadow: 0 3px 2px rgba(0, 0, 0, 0.04);
    color: #7d878e;
    display: inline-flex;
    flex-direction: column;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 0.4rem;
    min-height: 74px;
    min-width: 118px;
    justify-content: center;
    padding: 0.65rem 0.8rem;
    text-transform: lowercase;
    text-shadow: 1px 1px 0 #fff;
}

.quick-action i {
    color: var(--panel-link);
    font-size: 1.4rem;
}

.quick-action:hover {
    border-color: #b8c4ca;
    color: var(--panel-link-hover);
}

.footer {
    background:
        linear-gradient(rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.12)),
        var(--panel-dark);
    border: 1px solid var(--panel-border);
    border-radius: 5px;
    box-shadow: 0 10px 0 rgba(0, 0, 0, 0.08);
    color: #d6dcdf;
    margin: 0 1.25rem 1.5rem;
    padding: 1rem 1.5rem;
    text-shadow: -1px -1px 0 #1f1f1f;
}

.footer-links a {
    align-items: center;
    color: #c5cdcf;
    display: inline-flex;
    font-size: 0.76rem;
    gap: 0.35rem;
}

.footer-links a:hover {
    color: #fff;
}

.auth-page {
    align-items: center;
    display: flex;
    min-height: 100vh;
    padding: 1.25rem;
}

.auth-shell {
    margin: 0 auto;
    max-width: 480px;
    width: 100%;
}

.auth-card {
    background: var(--panel-content);
    border: 1px solid var(--panel-border);
    border-radius: 5px;
    box-shadow:
        0 14px 0 rgba(0, 0, 0, 0.08),
        0 22px 45px rgba(0, 0, 0, 0.18);
    overflow: hidden;
}

.auth-card-header {
    align-items: center;
    background:
        linear-gradient(rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.12)),
        var(--panel-dark);
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    min-height: 65px;
    padding: 1rem 1.25rem;
    text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.5);
}

.auth-brand {
    align-items: center;
    color: #fff;
    display: inline-flex;
    font-size: 1rem;
    font-weight: 700;
    gap: 0.55rem;
}

.auth-brand:hover,
.auth-brand:focus {
    color: #fff;
}

.auth-badge {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 4px;
    color: #d3dde1;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 0.32rem 0.55rem;
    text-transform: uppercase;
}

.auth-card-body {
    box-shadow: inset 0 0 20px 5px rgba(0, 0, 0, 0.08);
    padding: 1.5rem;
}

.auth-heading {
    margin-bottom: 1.2rem;
}

.auth-heading h1 {
    color: #3e474b;
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0 0 0.35rem;
}

.auth-heading p {
    color: var(--panel-text);
    margin: 0;
}

.auth-form .form-label {
    color: #4f5a5e;
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.auth-form .form-control,
.auth-form .input-group-text {
    border-color: #b9cbd4;
    border-radius: 4px;
    font-size: 0.9rem;
}

.auth-form .input-group-text {
    background: #f4f6f7;
    color: var(--panel-link);
    min-width: 42px;
    justify-content: center;
}

.auth-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1rem;
}

.auth-actions .btn {
    align-items: center;
    display: inline-flex;
    font-size: 0.86rem;
    font-weight: 700;
    gap: 0.45rem;
    min-height: 38px;
}

.auth-alert {
    align-items: flex-start;
    display: flex;
    gap: 0.55rem;
    margin-bottom: 1rem;
}

.auth-card-footer {
    align-items: center;
    background: #f4f6f7;
    border-top: 1px solid #ccd2d5;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: space-between;
    padding: 0.85rem 1.25rem;
}

.auth-card-footer span,
.auth-card-footer strong,
.auth-card-footer a {
    font-size: 0.8rem;
    font-weight: 700;
}

.logs-filter-form {
    background: #f8f8f8;
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    margin-bottom: 1rem;
    padding: 1rem;
}

.logs-filter-form .form-label {
    color: #4f5a5e;
    font-size: 0.78rem;
    font-weight: 800;
    margin-bottom: 0.35rem;
}

.logs-filter-form .form-control,
.logs-filter-form .form-select {
    border-color: #b9cbd4;
    border-radius: 4px;
    font-size: 0.84rem;
}

.logs-filter-actions {
    display: flex;
    gap: 0.5rem;
}

.logs-filter-actions .btn,
.logs-toolbar .btn,
.logs-pager .btn {
    align-items: center;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 700;
    gap: 0.4rem;
    justify-content: center;
    min-height: 36px;
}

.logs-listing {
    margin-top: 0.85rem;
}

.logs-toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.logs-count {
    align-items: baseline;
    color: var(--panel-text);
    display: flex;
    gap: 0.35rem;
}

.logs-count strong {
    color: var(--panel-link);
    font-size: 1.25rem;
}

.logs-table-wrap {
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    background: #f8f8f8;
}

.logs-table {
    min-width: 1060px;
}

.logs-table tbody td {
    vertical-align: top;
}

.logs-check-cell {
    text-align: center;
    width: 42px;
}

.logs-action {
    background: #e9eef1;
    border: 1px solid #d3dde2;
    border-radius: 4px;
    color: #45565f;
    display: inline-block;
    font-size: 0.74rem;
    font-weight: 800;
    max-width: 180px;
    overflow-wrap: anywhere;
    padding: 0.18rem 0.42rem;
}

.logs-meta {
    background: transparent;
    border: 0;
    color: #46545c;
    font-family: Consolas, "Liberation Mono", monospace;
    font-size: 0.72rem;
    line-height: 1.35;
    margin: 0;
    max-width: 300px;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.logs-pager {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 1rem;
}

.logs-pager span {
    color: var(--panel-text);
    font-weight: 700;
}

.users-create-form {
    align-items: end;
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
}

.users-create-form .form-label,
.users-inline-form .form-label,
.users-panel .form-label {
    color: #4f5a5e;
    font-size: 0.78rem;
    font-weight: 800;
    margin-bottom: 0.35rem;
}

.users-create-form .form-control,
.users-create-form .form-select,
.users-inline-form .form-control,
.users-role-form .form-select,
.users-password-form .form-control {
    border-color: #b9cbd4;
    border-radius: 4px;
    font-size: 0.84rem;
}

.users-create-form .btn,
.users-inline-form .btn,
.users-role-form .btn,
.users-password-form .btn,
.users-account-actions > .btn {
    align-items: center;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 700;
    gap: 0.4rem;
    justify-content: center;
    min-height: 36px;
    white-space: nowrap;
}

.users-note {
    margin-bottom: 1rem;
}

.users-table-wrap {
    background: #f8f8f8;
    border: 1px solid #ccd2d5;
    border-radius: 4px;
}

.users-table {
    min-width: 1120px;
}

.users-table tbody td {
    vertical-align: top;
}

.users-id {
    color: var(--panel-link);
    font-weight: 800;
    width: 54px;
}

.users-inline-form,
.users-role-form,
.users-password-form {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0;
}

.users-inline-form .form-control {
    max-width: 190px;
}

.users-role-form {
    justify-content: center;
}

.users-role-select {
    max-width: 190px;
    min-width: 170px;
    min-height: 36px;
    text-align: left;
}

.users-password-form {
    justify-content: center;
    margin-bottom: 0.45rem;
}

.users-password-form .form-control {
    max-width: 132px;
}

.users-account-actions {
    min-width: 280px;
}

.role-badge,
.status-badge {
    border-radius: 4px;
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.25rem 0.5rem;
    text-shadow: none;
}

.role-badge {
    background: #eef4f7;
    border: 1px solid #d1e0e6;
    color: var(--panel-link);
}

.role-badge.role-super-admin {
    color: #c9515c;
}

.role-badge.role-admin {
    color: #a7621c;
}

.role-badge.role-presenter {
    color: #2f8f68;
}

.role-badge.role-guest {
    background: #9aa3aa;
    border-color: #8a949c;
    color: #fff;
}

.status-badge {
    background: #edf7e9;
    border: 1px solid #c8d8c0;
    color: #3b7b31;
}

.status-badge.inactive {
    background: #f8eeee;
    border-color: #d6b7b7;
    color: #9b3333;
}

.roles-note {
    margin-bottom: 1rem;
}

.roles-grid {
    display: grid;
    gap: 1rem;
}

.role-permissions-form {
    margin: 0;
}

.role-card {
    background: #f8f8f8;
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    overflow: hidden;
}

.role-card.locked {
    background: #f3f5f6;
}

.role-card-head {
    align-items: center;
    background:
        linear-gradient(rgba(255, 255, 255, 0.22), rgba(0, 0, 0, 0.04)),
        #d4dadd;
    border-bottom: 1px solid #c2c8cb;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    padding: 0.85rem 1rem;
}

.role-card-head h2 {
    color: var(--panel-link);
    font-size: 0.98rem;
    font-weight: 800;
    margin: 0;
}

.role-card.role-super-admin .role-card-head h2,
.role-card.locked .role-card-head h2 {
    color: #c9515c;
}

.role-card.role-moderator .role-card-head h2 {
    color: #c57922;
}

.role-card.role-presenter .role-card-head h2 {
    color: #267da6;
}

.role-card.role-guest .role-card-head h2 {
    color: #2f8f68;
}

.role-card.role-super-admin .permission-group-title {
    color: #c9515c;
}

.role-card.role-moderator .permission-group-title {
    color: #c57922;
}

.role-card.role-presenter .permission-group-title {
    color: #267da6;
}

.role-card.role-guest .permission-group-title {
    color: #2f8f68;
}

.role-card-head p {
    color: var(--panel-text);
    font-size: 0.8rem;
    margin: 0.25rem 0 0;
}

.role-lock-note {
    align-items: center;
    color: #735757;
    display: inline-flex;
    font-size: 0.76rem;
    font-weight: 800;
    gap: 0.35rem;
    white-space: nowrap;
}

.role-permission-groups {
    display: grid;
    gap: 0.85rem;
    padding: 1rem;
}

.permission-group {
    border: 1px solid #d3dde2;
    border-radius: 4px;
    margin: 0;
    padding: 0.85rem;
}

.permission-group-title {
    background: #eef4f7;
    border: 1px solid #d1e0e6;
    border-radius: 4px;
    color: var(--panel-link);
    float: none;
    font-size: 0.74rem;
    font-weight: 900;
    margin: 0 0 0.65rem;
    padding: 0.32rem 0.55rem;
    text-transform: uppercase;
    width: auto;
}

.permission-options {
    display: grid;
    gap: 0.55rem 0.9rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.permission-option {
    align-items: flex-start;
    background: #fff;
    border: 1px solid #d9e2e6;
    border-radius: 4px;
    min-height: 56px;
    padding: 0.55rem 0.65rem;
}

.permission-option .form-check-input {
    margin-top: 0.18rem;
}

.permission-option .form-check-label {
    cursor: pointer;
    display: block;
    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1.3;
}

.permission-option .form-check-label small {
    color: var(--panel-muted);
    display: block;
    font-size: 0.72rem;
    font-weight: 400;
    margin-top: 0.2rem;
}

.role-card.locked .permission-option {
    opacity: 0.72;
}

.role-actions {
    align-items: center;
    background: #f4f6f7;
    border-top: 1px solid #ccd2d5;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-end;
    padding: 0.85rem 1rem;
}

.role-actions > span {
    color: var(--panel-text);
    font-size: 0.78rem;
    font-weight: 700;
}

.role-actions .btn {
    align-items: center;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 700;
    gap: 0.4rem;
    justify-content: center;
    min-height: 36px;
}

.role-actions .btn-danger {
    color: #fff;
}

.role-actions .btn-danger span,
.role-actions .btn-danger i {
    color: #fff;
}

.role-actions .btn-danger:hover,
.role-actions .btn-danger:focus {
    color: #fff;
}

.role-actions .btn-danger:hover span,
.role-actions .btn-danger:focus span,
.role-actions .btn-danger:hover i,
.role-actions .btn-danger:focus i {
    color: #fff;
}

.voting-stats {
    margin-bottom: 1rem;
}

.voter-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.voting-table {
    min-width: 820px;
}

.voter-table {
    min-width: 980px;
}

.voting-table tbody td {
    vertical-align: middle;
}

.voter-table tbody td {
    vertical-align: middle;
}

.voting-table td:first-child,
.voting-table th:first-child {
    width: 56px;
}

.voting-source {
    background: #eceff1;
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    color: var(--panel-text);
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.24rem 0.45rem;
    text-transform: uppercase;
}

.voting-song strong,
.voting-song span {
    display: block;
}

.voting-song strong {
    color: var(--panel-link);
    font-size: 0.86rem;
}

.voting-song span {
    color: var(--panel-text);
    margin-top: 0.15rem;
}

.voter-code {
    background: #eef2f4;
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    color: var(--panel-text);
    display: inline-flex;
    font-size: 0.76rem;
    padding: 0.2rem 0.4rem;
}

.voter-vote,
.voter-status {
    border-radius: 4px;
    display: inline-flex;
    font-size: 0.74rem;
    font-weight: 800;
    padding: 0.24rem 0.45rem;
}

.voter-vote.positive,
.voter-status.accepted {
    background: #e8f5ee;
    border: 1px solid #b9dcc8;
    color: #216b3f;
}

.voter-vote.negative,
.voter-status.rejected {
    background: #fbe9e9;
    border: 1px solid #e2b8b8;
    color: #8a2d2d;
}

.proposals-stats {
    grid-template-columns: repeat(3, minmax(220px, 320px));
    margin-bottom: 1rem;
}

.proposals-table {
    min-width: 1120px;
}

.proposals-table tbody td {
    vertical-align: middle;
}

.proposal-title {
    color: var(--panel-link);
    font-weight: 800;
}

.proposal-ip {
    background: #eef2f4;
    border: 1px solid #ccd2d5;
    border-radius: 4px;
    color: var(--panel-text);
    display: inline-flex;
    font-size: 0.76rem;
    padding: 0.2rem 0.4rem;
}

.proposal-rank-count {
    align-items: center;
    background: var(--panel-link);
    border-radius: 4px;
    color: #fff;
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    min-width: 2.1rem;
    padding: 0.18rem 0.45rem;
}

.proposal-ids,
.proposal-more {
    color: var(--panel-muted);
    display: block;
    font-size: 0.72rem;
    margin-top: 0.22rem;
}

.proposal-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    white-space: nowrap;
}

.settings-note {
    margin-bottom: 0;
}

.settings-cards-row {
    align-items: stretch;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 1rem;
}

.settings-cards-row .grid_6,
.settings-cards-row .grid_12 {
    margin-top: 0;
}

.settings-cards-row .grid_12 {
    grid-column: span 2;
}

.settings-card .box_top,
.settings-limits-card .box_top,
.settings-smtp-card .box_top {
    min-height: 48px;
    padding: 0.68rem 0.95rem;
}

.settings-card .box_top h2,
.settings-limits-card .box_top h2,
.settings-smtp-card .box_top h2 {
    align-items: center;
    display: flex;
    gap: 0.35rem;
    line-height: 1.1;
}

.settings-card-content {
    min-height: 128px;
    position: relative;
}

.settings-card-status {
    color: #366b18;
    font-size: 0.82rem;
    font-weight: 800;
    margin: 0;
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.8);
}

.settings-card-field {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 56px;
}

.settings-switch {
    display: inline-block;
    height: 34px;
    margin: 0;
    min-height: 0;
    padding: 0;
    position: relative;
    width: 86px;
}

.settings-switch .form-check-input {
    appearance: none;
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 34px;
    left: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 86px;
    -webkit-appearance: none;
    z-index: 2;
}

.settings-switch .form-check-input:focus {
    box-shadow: none;
}

.settings-switch-state {
    background: #b92828;
    border: 1px solid #8f1d1d;
    border-radius: 999px;
    box-shadow:
        inset 0 2px 5px rgba(0, 0, 0, 0.24),
        0 1px 2px rgba(0, 0, 0, 0.18);
    color: #fff;
    display: block;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 34px;
    pointer-events: none;
    position: absolute;
    right: 0;
    text-align: right;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.45);
    top: 0;
    transition: background 0.18s ease, border-color 0.18s ease;
    width: 86px;
}

.settings-switch-state::before {
    content: "WYŁ";
    display: block;
    padding-right: 12px;
}

.settings-switch-state::after {
    background: linear-gradient(#fff, #dce5e9);
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.38);
    content: "";
    display: block;
    height: 26px;
    left: 4px;
    position: absolute;
    top: 3px;
    transition: left 0.18s ease;
    width: 26px;
}

.settings-switch.is-on .settings-switch-state {
    background: #21883a;
    border-color: #16652b;
    text-align: left;
}

.settings-switch.is-saving .settings-switch-state {
    opacity: 0.68;
}

.settings-switch .form-check-input:focus + .settings-switch-state {
    box-shadow:
        inset 0 2px 5px rgba(0, 0, 0, 0.24),
        0 0 0 0.18rem rgba(38, 125, 166, 0.22);
}

.settings-switch.is-on .settings-switch-state::before {
    content: "WŁ";
    padding-left: 12px;
    padding-right: 0;
}

.settings-switch.is-on .settings-switch-state::after {
    left: 54px;
}

.settings-help-button {
    background: transparent;
    border: 0;
    bottom: 0.75rem;
    color: #1f6c92;
    font-size: 1rem;
    line-height: 1;
    padding: 0;
    position: absolute;
    right: 0.85rem;
}

.settings-help-button:hover,
.settings-help-button:focus {
    color: #12485f;
}

.settings-tooltip {
    --bs-tooltip-bg: #21323b;
    --bs-tooltip-color: #f8fbfc;
    --bs-tooltip-max-width: 260px;
    --bs-tooltip-opacity: 1;
    --bs-tooltip-padding-x: 0.8rem;
    --bs-tooltip-padding-y: 0.62rem;
}

.settings-tooltip .tooltip-inner {
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 5px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
}

.settings-preview-button {
    font-size: 0.8rem;
    font-weight: 800;
}

.settings-limit-preview {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.6rem;
}

.settings-limit-message {
    display: none;
}

.settings-inline-notice {
    margin: 0.65rem 0 0.7rem;
    padding: 0.58rem 0.7rem;
}

.settings-inline-notice p {
    align-items: center;
    display: flex;
    gap: 0.4rem;
}

.settings-limit-row {
    align-items: center;
    display: grid;
    gap: 0.5rem;
    grid-template-columns: minmax(0, 1fr) 105px;
}

.settings-limit-row label {
    color: #4f5a5e;
    font-size: 0.78rem;
    font-weight: 800;
    margin: 0;
}

.settings-limit-row .form-control,
.settings-limit-row .form-select {
    border-color: #b9cbd4;
    border-radius: 4px;
    font-size: 0.78rem;
}

.settings-limit-note {
    color: #62727a;
    font-size: 0.76rem;
    line-height: 1.35;
    margin: 0.75rem 0 0;
}

.settings-limit-actions {
    margin-top: 0.8rem;
    text-align: center;
}

.settings-limits-save {
    align-items: center;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 800;
    gap: 0.4rem;
    justify-content: center;
    min-height: 34px;
}

.settings-smtp-form {
    margin-top: 0.6rem;
}

.settings-smtp-grid {
    display: grid;
    gap: 0.55rem 0.7rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.settings-smtp-wide {
    grid-column: span 2;
}

.settings-smtp-field label {
    color: #4f5a5e;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    margin-bottom: 0.25rem;
}

.settings-smtp-field .form-control,
.settings-smtp-field .form-select {
    border-color: #b9cbd4;
    border-radius: 4px;
    font-size: 0.78rem;
    min-height: 32px;
}

.settings-smtp-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-top: 0.8rem;
}

.settings-smtp-actions .btn {
    font-size: 0.78rem;
    font-weight: 800;
}

.settings-list-header-form {
    display: grid;
    gap: 0.9rem;
    margin: 1rem auto 0;
    max-width: 720px;
}

.settings-header-field label {
    color: #4f5a5e;
    display: block;
    font-size: 0.8rem;
    font-weight: 800;
    margin-bottom: 0.35rem;
    text-align: center;
}

.settings-header-field .form-control {
    border-color: #b9cbd4;
    border-radius: 4px;
    font-size: 0.86rem;
    text-align: center;
}

.settings-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: center;
    margin-top: 0.4rem;
}

.settings-header-actions .btn {
    font-size: 0.82rem;
    font-weight: 800;
    min-width: 130px;
}

.settings-list-header-save {
    overflow: hidden;
    position: relative;
}

.settings-list-header-save .settings-button-content {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
    justify-content: center;
    position: relative;
    z-index: 2;
}

.settings-list-header-save .settings-button-progress {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.44));
    bottom: 0;
    display: block;
    left: 0;
    position: absolute;
    top: 0;
    width: 0;
    z-index: 1;
}

.settings-list-header-save.is-progressing .settings-button-progress {
    animation: settings-button-progress 4s linear forwards;
}

@keyframes settings-button-progress {
    from {
        width: 0;
    }

    to {
        width: 100%;
    }
}

.restart-panel {
    margin-left: auto;
    margin-right: auto;
}

.restart-warning {
    background: #b93a3a;
    border: 2px solid #8f2525;
    border-radius: 4px;
    color: #fff;
    display: block;
    font-size: 1.08rem;
    font-weight: 900;
    letter-spacing: 0.01em;
    line-height: 1.6;
    margin: 0 0 1.2rem;
    padding: 1.1rem 1.2rem;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.restart-warning p {
    margin: 0;
}

.restart-warning b {
    color: #fff;
}

.restart-summary {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 1rem 0 1.1rem;
}

.restart-summary div {
    background: #f6f9fa;
    border: 1px solid #d5e2e7;
    border-radius: 4px;
    min-height: 64px;
    padding: 0.65rem 0.5rem;
    text-align: center;
}

.restart-summary span {
    color: #59666b;
    display: block;
    font-size: 0.74rem;
    font-weight: 800;
    text-transform: uppercase;
}

.restart-summary strong {
    color: #20282c;
    display: block;
    font-size: 1rem;
    font-weight: 900;
    margin-top: 0.25rem;
}

.restart-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: center;
    margin-top: 0.8rem;
}

.restart-action-row .btn {
    font-size: 0.84rem;
    font-weight: 900;
    min-width: 135px;
}

.restart-save {
    overflow: hidden;
    position: relative;
}

.restart-save .restart-button-content {
    align-items: center;
    display: inline-flex;
    gap: 0.4rem;
    justify-content: center;
    position: relative;
    z-index: 2;
}

.restart-save .restart-button-progress {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.44));
    bottom: 0;
    display: block;
    left: 0;
    position: absolute;
    top: 0;
    width: 0;
    z-index: 1;
}

.restart-save.is-progressing .restart-button-progress {
    animation: restart-button-progress 4s linear forwards;
}

@keyframes restart-button-progress {
    from {
        width: 0;
    }

    to {
        width: 100%;
    }
}

.restart-info {
    align-items: center;
    border-radius: 4px;
    display: none;
    font-size: 0.86rem;
    font-weight: 800;
    gap: 0.45rem;
    justify-content: center;
    line-height: 1.45;
    margin: 1rem 0 0;
    padding: 0.75rem 0.9rem;
    text-align: center;
}

.restart-info.success {
    background: #edf7e9;
    border: 1px solid #c8d8c0;
    color: #2f7328;
}

.restart-info.error {
    background: #f8eeee;
    border: 1px solid #d6b7b7;
    color: #9b3333;
}

.restart-info i {
    margin-right: 0.35rem;
}

@media (max-width: 991.98px) {
    .settings-cards-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .restart-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .settings-cards-row {
        grid-template-columns: 1fr;
    }

    .settings-cards-row .grid_12 {
        grid-column: auto;
    }

    .settings-smtp-grid {
        grid-template-columns: 1fr;
    }

    .settings-smtp-wide {
        grid-column: auto;
    }

    .restart-summary {
        grid-template-columns: 1fr;
    }
}

.proposal-actions .btn {
    align-items: center;
    display: inline-flex;
    font-size: 0.76rem;
    font-weight: 800;
    gap: 0.35rem;
}

.proposal-removing {
    opacity: 0.58;
}

.dashboard-panel {
    margin-bottom: 1rem;
}

.dashboard-panel .box_top,
.dashboard-panel .box_top h1,
.dashboard-panel .box_top h2,
.dashboard-panel .box_top p,
.dashboard-panel .box_top .sorting a,
.dashboard-panel .box_top .sorting button {
    text-shadow: none;
}

.dashboard-preview-links {
    margin-bottom: 0;
}

.dashboard-tabs {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.dashboard-tabs button {
    background: #eef2f4;
    border: 1px solid #c7d0d5;
    border-radius: 4px;
    color: var(--panel-text);
    font-size: 0.74rem;
    font-weight: 800;
    padding: 0.38rem 0.65rem;
    text-shadow: none;
    text-transform: uppercase;
}

.dashboard-tabs button.active,
.dashboard-tabs button:hover,
.dashboard-tabs button:focus {
    background: var(--panel-link);
    border-color: var(--panel-link);
    color: #fff;
    text-shadow: none;
}

.dashboard-tab-panel {
    display: none;
}

.dashboard-tab-panel.active {
    display: block;
}

.dashboard-stats {
    margin-bottom: 0;
}

.dashboard-table {
    min-width: 940px;
}

.dashboard-waiting-table {
    min-width: 980px;
}

.dashboard-proposals-table {
    min-width: 1040px;
}

.dashboard-table tbody td,
.dashboard-waiting-table tbody td,
.dashboard-proposals-table tbody td {
    vertical-align: middle;
}

.dashboard-table .form-control-sm {
    border-color: #b9cbd4;
    border-radius: 4px;
    font-size: 0.78rem;
    min-width: 92px;
}

.dashboard-edit-input[data-edit-field="tytul"],
.dashboard-edit-input[data-edit-field="wykonawca"] {
    min-width: 150px;
}

.dashboard-missing-badge {
    background: #fff3cd;
    border: 1px solid #e7d38b;
    border-radius: 4px;
    color: #8a6d1d;
    display: inline-flex;
    font-size: 0.68rem;
    font-weight: 800;
    margin-left: 0.25rem;
    padding: 0.14rem 0.35rem;
    text-transform: uppercase;
}

.dashboard-waiting-form {
    max-width: 980px;
}

.dashboard-save-button {
    align-items: center;
    display: inline-flex;
    font-size: 0.84rem;
    font-weight: 800;
    gap: 0.4rem;
}

.dt-container {
    color: var(--panel-text);
    font-size: 0.82rem;
}

.dt-container .form-control,
.dt-container .form-select {
    border-color: #c9ced1;
    border-radius: 4px;
    color: var(--panel-text);
    font-size: 0.78rem;
}

.dt-container .page-link {
    color: var(--panel-link);
}

.dt-container .active > .page-link {
    background: var(--panel-link);
    border-color: var(--panel-link);
    color: #fff;
}

[data-panel-width="fixed"] .admin-shell {
    max-width: 1060px;
}

[data-panel-theme="light"] {
    --panel-body: #d8e0e4;
    --panel-dark: #47565d;
    --panel-mid: #60747d;
}

[data-panel-theme="red"] {
    --panel-body: #5a3e42;
    --panel-dark: #493238;
    --panel-mid: #70454c;
    --panel-link: #aa4650;
    --panel-link-hover: #c9515c;
}

[data-panel-theme="green"] {
    --panel-body: #3f5549;
    --panel-dark: #31463a;
    --panel-mid: #426653;
    --panel-link: #2f8f68;
    --panel-link-hover: #36a878;
}

[data-panel-theme="purple"] {
    --panel-body: #4d455c;
    --panel-dark: #3e354d;
    --panel-mid: #5b5070;
    --panel-link: #7157a8;
    --panel-link-hover: #8367bf;
}

[data-panel-theme="brown"] {
    --panel-body: #574c41;
    --panel-dark: #493d32;
    --panel-mid: #695645;
    --panel-link: #806349;
    --panel-link-hover: #967356;
}

[data-panel-theme="dark"] {
    --panel-body: #30383d;
    --panel-dark: #242b30;
    --panel-mid: #343f45;
}

@media (max-width: 767.98px) {
    .admin-shell {
        margin-top: 1rem;
    }

    .shortcut-bar {
        display: none;
    }

    .main-header,
    .box_top,
    .box_content,
    .footer {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .box_top {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.8rem;
    }

    .module-actions {
        justify-content: flex-start;
    }

    .quick-action {
        flex: 1 1 130px;
    }
}

@media (max-width: 991.98px) {
    .stats-dashboard {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .stats-dashboard {
        grid-template-columns: 1fr;
    }

    .shortcut-list,
    .footer-links,
    .panel-preview-links {
        gap: 0.5rem;
    }

    .legacy-button,
    .buttonss {
        width: 100%;
    }

    .auth-page {
        align-items: flex-start;
        padding: 0.75rem;
    }

    .auth-card-body {
        padding: 1.15rem;
    }

    .auth-actions .btn {
        justify-content: center;
        width: 100%;
    }

    .logs-filter-actions,
    .logs-toolbar,
    .users-inline-form,
    .users-role-form,
    .users-password-form,
    .role-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .logs-filter-actions .btn,
    .logs-toolbar .btn,
    .users-inline-form .btn,
    .users-role-form .btn,
    .users-password-form .btn,
    .users-account-actions > .btn,
    .users-inline-form .form-control,
    .users-role-form .form-select,
    .users-password-form .form-control,
    .role-actions .btn {
        width: 100%;
    }
}

@media (max-width: 1199.98px) {
    .users-create-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .users-create-form .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .users-create-form {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1199.98px) {
    .permission-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .permission-options {
        grid-template-columns: 1fr;
    }

    .role-card-head {
        align-items: flex-start;
        flex-direction: column;
    }
}
