.sidenav .navbar-brand {
    padding: 0;
    margin-right: 0;
}
.navbar-vertical .navbar-brand-img, .navbar-vertical .navbar-brand > img {
    max-width: 100%;
    max-height: 100%;
}
input[type="tel"].day, input[type="tel"].month, input[type="tel"].year{
    width: calc(30% - 13px) !important;
    margin-right: 3%;
    display: inline-block;
}
label.datetimepicker-cal {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 15px;
    color: #344767;
    cursor: pointer;
    font-size: 24px;
    z-index: 10;
     display: flex;
    align-items: center;
    justify-content: center;
}
label.datetimepicker-cal span {
    font-size: 28px !important;
}
label.datetimepicker-cal:hover {
    color: #cb0c9f;
}
label.datetimepicker-cal:after {
    content: '' !important;
}
.datetimepicker-wrapper input:not(.day):not(.month):not(.year) {
    /* Don't use display:none, otherwise focus() won't work and calendar won't open */
    opacity: 0;
    position: absolute;
    width: 1px;
    height: 100%; /* Height full to vertically align somewhat */
    top: 0;
    right: 15px; /* Position it near the icon on the right */
    z-index: -1;
    border: none;
    padding: 0;
    margin: 0;
    pointer-events: none; 
}
.datetimepicker-wrapper input.has-error {
    -webkit-box-shadow: inset 0px 0px 0px -7px rgba(208,1,27,1);
    -moz-box-shadow: inset 0px 0px 0px -7px rgba(208,1,27,1);
    box-shadow: inset 0px 0px 0px -7px rgba(208,1,27,1);
}
.datetimepicker-wrapper {
    position: relative;
    overflow: hidden; 
}
.form-check {
    padding-left: 0;
}
.form-check input.form-check-input {
    margin-right: 6px;
}
.form-check label, .form-check input.form-check-input{
    margin-right: 6px;
    cursor: pointer;
}
.form-check:not(.form-switch) .form-check-input[type="radio"]::after {
    width: 70%;
    height: 70%;
    top: 2px;
    bottom: unset;
    right: 2px;
    left: unset;
}
.plusminus-wrapper input{
    width: 60% !important;
    -webkit-border-radius: 0px !important;
    -moz-border-radius: 0px !important;
    border-radius: 0px !important;
    border-top-left-radius: 0px !important;
    border-bottom-left-radius: 0px !important;
    text-align: center;
    padding-left: 0px;
    display: inline-block;
}
.plusminus-wrapper button{
    width: 20% !important;
    height: 40.2px !important;
    background-color: #00c5ff;
    top: 1px;
    position: relative;
}
button#button-minus{
    border-left: 1px solid #d6d6d6;
    border-top: 1px solid #d6d6d6;
    border-bottom: 1px solid #d6d6d6;
    -webkit-border-radius: .375rem 0px 0px .375rem;
    -moz-border-radius: .375rem 0px 0px .375rem;
    border-radius: .375rem 0px 0px .375rem;
    border-right: none;
}
button#button-plus{
    border-right: 1px solid #d6d6d6;
    border-top: 1px solid #d6d6d6;
    border-bottom: 1px solid #d6d6d6;
    -webkit-border-radius: 0px .375rem .375rem 0px;
    -moz-border-radius: 0px .375rem .375rem 0px;
    border-radius: 0px .375rem .375rem 0px;
    border-left: none;
}
.flash-stack {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1070;
    width: min(560px, calc(100vw - 32px));
    display: flex;
    flex-direction: column;
    gap: 14px;
    pointer-events: none;
}

.flmsg {
    background: #fff;
    color: #1f2937;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    border-radius: 14px;
    border-left: 5px solid #57b95a;
    box-shadow: 0 18px 34px -20px rgba(15, 23, 42, 0.45), 0 12px 24px -16px rgba(15, 23, 42, 0.22);
    display: grid;
    grid-template-columns: 64px 1fr 28px;
    align-items: center;
    column-gap: 16px;
    padding: 20px 18px 20px 14px;
    pointer-events: auto;
    animation: flmsg-slide-in 0.25s ease-out;
}

.flmsg.warning,
.flmsg.danger,
.flmsg.error {
    border-left-color: #d32020;
}

.flmsg-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: #e8f5ea;
    color: #31a24c;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.flmsg.warning .flmsg-icon,
.flmsg.danger .flmsg-icon,
.flmsg.error .flmsg-icon {
    background: #fbeaea;
    color: #cf1d1d;
}
.template-mode-alert {
    border: 2px solid #0dcaf0 !important;
    box-shadow: 0 4px 12px rgba(13, 202, 240, 0.3) !important;
    align-items: center !important;
    padding: 1rem 1.25rem !important;
    min-height: 60px !important;
}
.template-mode-alert .btn {
    align-self: center !important;
    margin: 0 !important;
}
#templateActivityModal .alert-success {
    background-color: #d1f2dd !important;
    border-color: #b8e6c9 !important;
    color: #0f5132 !important;
}
#templateActivityModal .table td {
    vertical-align: middle !important;
}
#templateActivityModal .table tbody tr td {
    vertical-align: middle !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
}
#templateActivityModal .table .btn {
    margin: 0 !important;
}
.btn-group .dropdown-menu {
    z-index: 1050 !important;
}
.calendar-day-cell .btn-group {
    position: static !important;
}
.calendar-day-cell .btn-group .dropdown-menu {
    z-index: 9999 !important;
    position: fixed !important;
}
.calendar-day-cell .btn-group.show .dropdown-toggle {
    position: relative;
    z-index: 10000;
}
.template-contract-header {
    background: linear-gradient(195deg, #42424a 0%, #191919 100%);
    color: white;
    padding: 10px 16px;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 0.875rem;
}
.flmsg-content {
    min-width: 0;
}

.flmsg-content > br {
    display: block;
    content: '';
    margin-top: 4px;
}

.flmsg-close-bar {
    border: 0;
    background: transparent;
    font-size: 36px;
    line-height: 1;
    color: #4b5563;
    opacity: 0.85;
    cursor: pointer;
    padding: 0;
    margin: 0;
}

.flmsg-close-bar:hover {
    opacity: 1;
}

@media (min-width: 1200px) {
    .person-files-box--fill-height {
        min-height: calc(100% - 1.5rem) !important;
    }

    .person-contract-files-box--fill-height {
        min-height: calc(100% - 1.5rem) !important;
    }
}

.person-contract-draggable {
    cursor: grab;
}

.person-contract-draggable:active {
    cursor: grabbing;
}

.person-contract-dropzone {
    border-radius: 10px;
    transition: background-color 0.15s ease;
}

.person-contract-dropzone.is-drop-active {
    background-color: rgba(52, 71, 103, 0.08);
}

.person-contract-drag-indicator {
    opacity: 0.6;
}

@keyframes flmsg-slide-in {
    from {
        transform: translateY(12px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@media (max-width: 576px) {
    .flash-stack {
        right: 10px;
        left: 10px;
        bottom: 10px;
        width: auto;
    }

    .flmsg {
        font-size: 18px;
        grid-template-columns: 52px 1fr 24px;
        column-gap: 12px;
        padding: 16px 12px 16px 10px;
    }

    .flmsg-icon {
        width: 40px;
        height: 40px;
        border-radius: 12px;
        font-size: 18px;
    }

    .flmsg-close-bar {
        font-size: 30px;
    }
}
select{
    appearance: auto !important;
}
.timeonly {
    width: calc(50% - 13px) !important;
    display: inline-block;
}
.fa-fa::before {
    color: black; /*pokud zmenis barvu, zmen ji i u .color-dpc a .bg-dpc*/
    content: "\f56c";
}
.fa-dpc::before {
    color: #85a4cd; /*pokud zmenis barvu, zmen ji i u .color-dpc a .bg-dpc*/
    content: "\f56c";
}
.fa-dpp::before {
    color: #008000;
    content: "\f56c";
}
.fa-hpp::before {
    color: #ad1457;
    content: "\f56c";
}
.fa-dpp-dpc::before, .fa-dp::before {
    color: #b7d3d1;
    content: "\f56c";
}
.fa-all-types::before {
    color: #344767;
    content: "\f56c";
}
.color-fa::before {
    color: black; /*pokud zmenis barvu, zmen ji i u .fa-fa a .bg-fa*/
}
.color-dpc::before {
    color: #85a4cd; /*pokud zmenis barvu, zmen ji i u .fa-dpc a .bg-dpc*/
}
.color-dpp::before {
    color: #008000;
}
.color-hpp::before {
    color: #ad1457;
}
.color-dpp-dpc::before, .color-dp::before {
    color: #b7d3d1;
}
.color-all-types::before {
    color: #344767;
}
.bg-fa {
     background-color: black; /*pokud zmenis barvu, zmen ji i u .color-fa a .fa-fa*/
}
.bg-dpc {
     background-color: #85a4cd; /*pokud zmenis barvu, zmen ji i u .fa-dpc a .color-dpc*/
}
.bg-dpp {
     background-color: #008000;
}
.bg-hpp {
    background-color: #ad1457;
}
.bg-dpp-dpc, .bg-dp  {
    background-color: #b7d3d1;
}
.bg-all-types, .bg- {
    background-color: #344767;
}
.workflow .fa-times::before {
    color: red;
}
.incarnation:before, .incarnation:after {
    content: "";
    position: fixed;
    background: #b00;
    left: 0;
    right: 0;
    height: 5px;
}
.incarnation:before {
    top: 0;
}
.incarnation:after {
    bottom: 0;
}
.incarnation {
    border-left: 5px solid #b00;
    border-right: 5px solid #b00;
}
.incarnation-back:before{
    content: "\f6e2";
    font-size: 80vh;
    font-family: FontAwesome;
    left: calc(50vw - 30vh);
    position:fixed;
    top: -13vh;
    color: #b00;
    z-index: -1000;
    opacity: 0.1;
}
.registration .form-control {
    min-width: 303px;
}
.copy-to-description {
    cursor: pointer;
    margin-right: 20px
}
.copy-to-description:hover {
    color: rgb(76, 175, 80);    
}
.vacationBudgetSumOfSpend, .vacationBudgetRest {
    padding: 20px 0 0 10px;
    font-weight: bold;
}
.vacationBudgetRest {
    padding: 10px 0 20px 0;
    font-weight: bold;
}
.vacationBudgetDates {
    cursor: help;
    text-decoration-line: underline;
    text-decoration-style: dotted;
}
.activity  {
    color: #666;
    margin-top: 6px;
}
.activity .date {
    border-right-width: 2px;
    border-right-style: solid;
    text-align: center;
    padding-right: 2px;
    align-self: center;
}
.needConfirm {
    font-weight: 600;
    color: #285786;
}
.needConfirm.rejected {
    color: #e91e63;
}
.needConfirm.approved{
    color: #4caf50;
    font-weight: 300;
}
.activity .status:first-letter {
    text-transform: uppercase;
}
.activity .status {
    font-weight: 600;
}
.activity hr {
    margin: 5px;
}
.activity .activityGroup {
    border: 1px solid silver;
    border-radius: 5px;
    padding: 0 8px;
    display: inline-block;
    margin-left: 5px;
}
.activity .edit {
    align-self: center;
    font-size: 120%;
    padding: 5px;
}
.activity .text {
    align-self: center; 
}

.report-footer {
    border-top: 2px dashed silver;
}
.calendar-cloning-day {
    background-color: #7cacdb !important;
    color: black;
    border-radius: 10px;
}
#tableCloneActivity th {
    background-color: #f1f1f1;
}
.btn_looks_like_link {
    background: none!important;
    border: none;
    padding: 0 !important;
    margin: 0 !important;
    color: #344767 !important;
    text-decoration: none;
    cursor: pointer;
    box-shadow: none;
    text-transform: none;
    font-family: Roboto,Helvetica,Arial,sans-serif;
    font-weight: 400;
    line-height: 1.6;
    border-radius: 0;
    font-size: 1rem;
}
.btn_looks_like_link:active, .btn_looks_like_link:focus, .btn_looks_like_link:hover  {
    border-width: 0px !important;
    box-shadow: none !important;
    border: none !important;
}
.btn_looks_like_link:hover  {
    color: #e91e63 !important;
}
.reportBtns {
    display: none;
    margin: 5px 0 0 0;
}
#reportBtnsMore {
    font-size: 90%;
    color: silver;
    display: block;
    margin-top: 0px;
}

.table thead th {
  text-transform: none;
}
.nav-item.active a {
  text-decoration: underline;
}

@media (max-width: 576px) {
    .activity .date {
        border-right-width: 0px;
        text-align: center;
        padding-right: 0;
    }
    .activity .text, .activity .status, .activity .desc, .activity .edit {
        text-align: center;
    }   
    .activity .status span {
        border-right-width: 2px;
        border-right-style: solid;
        border-left-width: 2px;
        border-left-style: solid;        
        padding: 0 5px;
    }    
}
@media (min-width: 576px) {
    .activity .date-mobile {
        display: none;
    }
}
.watermark-calcellation{
    position: relative;
}
.watermark-calcellation:before{
    content: 'Stornováno';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 0;
    color: #b00;
    font-size: 5vh;
    font-weight: 600;
    display: grid;
    justify-content: center;
    align-content: center;
    opacity: 0.25;
    transform: rotate(-35deg);
}
.custom-tabs {
    margin-top: 30px;
    border-bottom: 2px solid rgba(76, 171, 215, 0.2);
    display: flex;
    width: 100%;
}
.custom-tabs .nav-item {
    flex: 1;
}
.custom-tabs .nav-link {
    color: #666;
    border: none;
    padding: 12px 20px;
    position: relative;
    transition: all 0.3s ease;
    width: 100%;
    text-align: center;
}
.custom-tabs .nav-link:hover {
    color: #4cabd7;
    background-color: rgba(76, 171, 215, 0.05);
}
.custom-tabs .nav-link.active {
    color: #4cabd7;
    background-color: rgba(76, 171, 215, 0.1);
}
.custom-tabs .nav-link.active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #4cabd7;
}
.custom-tab-content {
    padding: 20px;
}
@media (min-width: 1000px) {
    .sidenav:hover {
      max-width: 15.625rem; }
    .sidenav .sidenav-toggler {
      padding: 1.5rem; }
    .sidenav.fixed-start + .main-content {
      margin-left: 17.125rem; }
    .sidenav.fixed-end + .main-content {
      margin-right: 17.125rem; } }
@media (max-width: 999.98px) {
  .g-sidenav-show.rtl .sidenav {
    transform: translateX(17.125rem); }
  .g-sidenav-show:not(.rtl) .sidenav {
    transform: translateX(-17.125rem); }
  .g-sidenav-show .sidenav.fixed-start + .main-content {
    margin-left: 0 !important; }
  .g-sidenav-show.g-sidenav-pinned .sidenav {
    transform: translateX(0); } }

.report-status .status {
    border-radius: 0.5rem;
    padding: 0.625rem 1.5rem;
    border: 1px solid silver;
    cursor: default;
}
.report-status .dropdown-toggle.status::after {
    display: none; /*skryjeme sipku dolu, která u addColumnStatus normalne je*/
}
.report-status .status-approved {
    background-color: #008000;
    color: white;
}
.report-status .status-concept {
    background-color: yellow;
}
.report-status .status-proposal {
    background-color: #56b4d3;
    color: white;
}
.report-status .status-disapproved {
    background-color: red;
    color: white;
}
.search-input-multiselect {
  background: url('/img/search.png') no-repeat right center;
  border: 1px solid #cccccc;
  width: 100%;
  margin-bottom: -2px;
}
.notification-message{
    width: calc(100% - 20px);
    margin-right: 20px;
}
.notification-close{
    position: absolute;
    right: 5px;
    top: 10px;
}
.dashboard-message{
    display: block;
    padding: 0.3rem 1rem;
    clear: both;
    font-weight: 400;
    color: #7b809a;
    text-align: inherit;
    background-color: transparent;
    border: 0;
}
.dashboard-message:hover, .dashboard-message:focus {
  color: #344767;
  background-color: #f0f2f5;
}
.hoursInWeekWrap {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f0f2f5;
    margin: 5px 0;
    position: relative;
    top: -5px;
}
.hoursInWeekWrap {
    position: relative;
    top:4px;
}
#dashboardReports h6 small {
    font-size: 100%;
    font-weight: normal;
}
.week {
    border: 1px solid #7e7e7e;
    margin-bottom: 10px;
}
day {
    border-bottom: 1px solid silver;
    padding: 5px 0 10px 0;
    margin: 0 !important;
}
day:last-of-type {
    border-bottom: 0;
    padding-bottom: 3px;
}
.daySumRow {
    border-top: 1px dashed #c8cdd5;
    margin: 2px 0 0 0;
    padding: 3px 0 4px 0;
}
.daySumRow .daySum {
    font-size: 85%;
    color: #7e7e7e;
    padding: 2px 8px;
    display: flex;
    align-items: center;
    gap: 5px;
}
.hoursInWeekWrap>div {
    padding-top: 5px;
}
.hoursInWeekWrap h3 {
    font-size: 100%;
    font-family: "Roboto", Helvetica, Arial, sans-serif;
}
.hoursInWeekWrap h3 .weekHours {
    float: right;
}
hr.lastActivityInWeek {
    display: none;
}

/*osklivej fix na spodni scrollbar*/
@media (min-width: 1200px) {
    body {
        overflow-x: hidden;
    }
}
.scrollbar-wrapper{ 
    width: 100%;
    border: none 0 RED;
    overflow-x: scroll; 
    overflow-y:hidden; 
    display: none; 
    height: 20px;
}
.scrollbar-div { 
    height: 20px;
}
.btn small {
    text-transform: none !important;
}
.datagrid-group-action-title {
    display: none;
}
.datagrid .btn {
    margin: 5px;
    padding: 7px 10px;
}
#snippet-appovalList-grid input[name="group_action[2]"] {
    background-color: red;
}
#snippet-appovalList-grid .btn {
    margin-right: 5px;
}
#weekendApprovels .desc {
    text-transform: none !important;
}
#weekendApprovels button {
    max-width: 460px;
    white-space: normal;
}
#weekendApprovels td {
    white-space: normal !important;
}
#weekendApprovels tr {
    border-width: 2px;
}
.ajaxing {
    background-image: url("../img/loading.gif") !important;
    background-position: center;
    background-size: 80%;
}
.minical {
    display: inline-block;
    border: .1px solid #CCCAC5;
    background-color: #FFF;
    width: 65px;
    text-align: center;
    margin-top: 2px;
}
.minical .dayname {
    height: 19px;
    font-size: 0.7rem;
    text-transform: uppercase;
    background-color: #289ff5;
    color: #FFF;
}
.minical .datenum {
    font-size: 1rem;
    color: #585858;
    line-height: 30px;
}
.minical .daytotal {
    font-size: 0.7rem;
    font-weight: 600;
    color: #6c757d;
    background: #f1f3f5;
    border-top: 1px solid #e3e6ea;
    line-height: 20px;
}
@media (max-width: 1600px) {
    .table thead th {
        padding: 0.8rem 0.2rem;
        text-align: center;
    }
}

/* Custom alert-info styling */
.alert-info {
    background-image: linear-gradient(195deg, #f2f2f2 0%, #E7F2FF 100%);
}

/* Active menu item styling - same as hover effect */
.sidenav .nav-link.active {
    background-color: rgba(0, 0, 0, 0.05);
    border-radius: 0.5rem;
}
.sidenav .nav-link.active,
.sidenav .nav-link.active .nav-link-text,
.sidenav .nav-link.active i,
.sidenav .nav-link.active .fa {
    color: #344767 !important;
}
.sidenav .nav-link.active i::before {
    color: #344767 !important;
}

/* === Patička pro přihlášené uživatele (brand footer) === */
.footer-brand {
    background-color: transparent;
    border-top: 1px solid #dee2e6;
    border-radius: 0;
    box-shadow: none;
}
.footer-brand .container-fluid {
    padding-top: 1rem;
    padding-bottom: 1rem;
}
/* Text patičky zarovnáváme na stejné okraje jako obsah stránky. */
.footer-brand .container {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}
.footer-brand .copyright {
    --bs-gutter-x: 0;
}
.footer-brand .copyright {
    margin: 0;
}
.footer-brand-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 1rem;
}
.footer-brand .copy,
.footer-brand .operator {
    line-height: 1.6;
}
.footer-brand .operator {
    color: #67748e;
    font-size: 0.8rem;
}
.footer-brand .operator-name {
    color: #1f7fb0;
    font-weight: 600;
}
.footer-brand .copy {
    color: #344767;
    font-weight: 700;
    font-size: 0.8rem;
}

/* === Dashboard: karta „Moje pracovní výkazy“ === */
.min-width-0 {
    min-width: 0;
}
.dashboard-report-month-badge {
    display: inline-block;
    padding: 0.25rem 0.6rem;
    border-radius: 0.5rem;
    background-color: rgba(76, 171, 215, 0.12);
    color: #1f7fb0;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}
.dashboard-report-tabs {
    display: flex;
    gap: 0.25rem;
    padding: 0.25rem;
    margin-bottom: 1rem;
    border: 0;
    border-radius: 0.75rem;
    background-color: #f0f2f5;
}
.dashboard-report-tabs .nav-item {
    flex: 1 1 0;
    min-width: 0;
}
.dashboard-report-tabs .nav-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.45rem 0.75rem;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: #67748e;
    font-size: 0.8rem;
    font-weight: 600;
    transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.dashboard-report-tabs .nav-link:hover {
    color: #344767;
}
.dashboard-report-tabs .nav-link.active {
    background-color: #fff;
    color: #1f7fb0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.dashboard-report-tabs .nav-link .text-truncate {
    display: block;
    min-width: 0;
}
.dashboard-report-tabs .nav-link.active::after {
    content: '';
    flex: 0 0 auto;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background-color: #4cabd7;
}
.dashboard-report-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 0.75rem 0;
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    background-color: #f8f9fa;
    transition: background-color 0.2s ease;
}
.dashboard-report-stats:hover {
    background-color: #f0f2f5;
}
.dashboard-report-stat {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
    padding: 0 0.75rem;
}
.dashboard-report-stat + .dashboard-report-stat {
    border-left: 1px solid #dee2e6;
}
.dashboard-report-stat-label {
    overflow: hidden;
    color: #7b809a;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.dashboard-report-stat-value {
    color: #344767;
    font-size: 1.05rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}
.dashboard-report-stat-unit {
    color: #7b809a;
    font-size: 0.7rem;
}
.dashboard-report-progress .progress {
    height: 6px;
    overflow: hidden;
    border-radius: 3px;
    background-color: #e9ecef;
}
.dashboard-report-progress .progress-bar {
    border-radius: 3px;
}
.dashboard-report-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #7b809a;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.dashboard-report-divider::before,
.dashboard-report-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: #dee2e6;
}
.dashboard-report-today {
    padding: 0.75rem;
    border: 1px dashed #cfd5dd;
    border-radius: 0.75rem;
}
.dashboard-report-today-empty {
    padding: 1rem 0.75rem;
}
.dashboard-report-today-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    margin: 0 auto 0.6rem;
    border-radius: 50%;
    background-color: #f0f2f5;
    color: #7b809a;
}
.dashboard-report-activity {
    padding: 0.4rem 0.5rem;
    border-radius: 0.5rem;
}
.dashboard-report-activity + .dashboard-report-activity {
    border-top: 1px solid #f0f2f5;
}
.dashboard-report-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    background-color: #f8f9fa;
    transition: background-color 0.2s ease;
}
.dashboard-report-row:hover {
    background-color: #f0f2f5;
}
.dashboard-report-row-icon {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.6rem;
    font-size: 0.85rem;
}
.dashboard-report-row-icon.is-vacation {
    background-color: #fdebd3;
    color: #c9711a;
}
.dashboard-report-row-icon.is-overtime {
    background-color: #e3ecfb;
    color: #3b62c4;
}

/* === Dashboard: karta „Dnešní aktivity zaměstnanců“ === */
.dashboard-activity-tabs {
    margin-bottom: 0;
    padding: 0.2rem;
}
.dashboard-activity-tabs .nav-item {
    flex: 0 0 auto;
}
.dashboard-activity-tabs .nav-link {
    gap: 0.35rem;
    padding: 0.3rem 0.65rem;
    font-size: 0.72rem;
}
.dashboard-activity-tabs .nav-link.active::after {
    display: none;
}
.dashboard-activity-count {
    display: inline-block;
    min-width: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 0.5rem;
    background-color: rgba(76, 171, 215, 0.15);
    color: #1f7fb0;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1.35rem;
    text-align: center;
}
.dashboard-activity-tabs .nav-link:not(.active) .dashboard-activity-count {
    background-color: rgba(0, 0, 0, 0.06);
    color: #67748e;
}
.dashboard-activity-section + .dashboard-activity-section {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid #e9ecef;
}
.dashboard-activity-section-title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0 0 0.5rem;
    color: #344767;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.dashboard-activity-dot {
    flex: 0 0 auto;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background-color: #4cabd7;
}
.dashboard-activity-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    background-color: #f8f9fa;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}
.dashboard-activity-row + .dashboard-activity-row {
    margin-top: 0.5rem;
}
a.dashboard-activity-row:hover {
    border-color: #dee2e6;
    background-color: #f0f2f5;
}
.dashboard-activity-avatar {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background-color: #e3ecfb;
    color: #344767;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}
.dashboard-activity-avatar::after {
    content: '';
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 0.6rem;
    height: 0.6rem;
    border: 2px solid #f8f9fa;
    border-radius: 50%;
    background-color: #adb5bd;
}
.dashboard-activity-avatar.is-running::after {
    background-color: #4caf50;
}
.dashboard-activity-meta {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.1rem;
    white-space: nowrap;
}
.dashboard-activity-sep {
    color: #adb5bd;
}
.dashboard-activity-hours {
    color: #2e7d32;
    font-weight: 600;
}
.dashboard-activity-badge {
    flex: 0 0 auto;
    max-width: 45%;
    overflow: hidden;
    padding: 0.2rem 0.5rem;
    border: 1px solid rgba(76, 171, 215, 0.35);
    border-radius: 0.4rem;
    background-color: rgba(76, 171, 215, 0.1);
    color: #1f7fb0;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
/* Odstín štítku nese barvu typu činnosti z inline stylu. */
.dashboard-activity-badge.is-absence {
    border-color: transparent;
    color: #344767;
    font-size: 0.65rem;
    letter-spacing: 0;
    text-transform: none;
}
.dashboard-activity-section.is-absence .dashboard-activity-row {
    padding: 0.45rem 0.75rem;
}

/* === Dashboard: karta „Dnešní nepřítomnosti“ === */
.dashboard-absence-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid #e9ecef;
    border-left: 3px solid #7b809a;
    border-radius: 0.25rem 0.75rem 0.75rem 0.25rem;
    background-color: #f8f9fa;
    transition: background-color 0.2s ease;
}
.dashboard-absence-row + .dashboard-absence-row {
    margin-top: 0.5rem;
}
a.dashboard-absence-row:hover {
    background-color: #f0f2f5;
}
.dashboard-absence-row .dashboard-activity-avatar::after {
    display: none;
}
.dashboard-absence-dot {
    flex: 0 0 auto;
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background-color: #7b809a;
}
.dashboard-absence-badge {
    flex: 0 0 auto;
    max-width: 45%;
    overflow: hidden;
    padding: 0.2rem 0.5rem;
    border: 1px solid transparent;
    border-radius: 0.4rem;
    color: #344767;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.dashboard-absence-row .dashboard-activity-meta {
    min-width: 0;
    white-space: nowrap;
}
.dashboard-absence-row .dashboard-activity-meta em {
    font-style: normal;
    opacity: 0.85;
}

/* === Dashboard: filtr a sekce v kartě „Dnešní aktivity“ === */
/* Výška se předává jen přes flex, žádné height: 100 %. Procentní výšku uvnitř
   flexbox položky Firefox nevyhodnotí, seznam by pak neměl co rolovat. */
.dashboard-activity-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}
.dashboard-activity-body > .tab-content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.dashboard-activity-pane.active {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.dashboard-activity-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}
.dashboard-activity-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
}
.dashboard-activity-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.6rem;
    border: 1px solid #e9ecef;
    border-radius: 0.5rem;
    background-color: #fff;
    color: #67748e;
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.dashboard-activity-chip:hover {
    border-color: #cfd5dd;
    color: #344767;
}
.dashboard-activity-chip.is-active {
    border-color: #344767;
    background-color: #344767;
    color: #fff;
}
.dashboard-activity-chip-label {
    display: inline-block;
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-activity-chip-count {
    display: inline-block;
    min-width: 1.1rem;
    padding: 0 0.3rem;
    border-radius: 0.35rem;
    background-color: rgba(0, 0, 0, 0.06);
    font-size: 0.65rem;
    font-weight: 700;
    text-align: center;
}
.dashboard-activity-chip.is-active .dashboard-activity-chip-count {
    background-color: rgba(255, 255, 255, 0.22);
}
.dashboard-activity-dropdown {
    max-height: 16rem;
    overflow-y: auto;
    font-size: 0.75rem;
}
.dashboard-activity-dropdown .dropdown-item {
    padding: 0.35rem 0.75rem;
}
.dashboard-activity-dropdown .dropdown-item.is-active {
    background-color: #f0f2f5;
    font-weight: 600;
}
.dashboard-activity-section {
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    background-color: #fff;
}
.dashboard-activity-section + .dashboard-activity-section {
    margin-top: 0.75rem;
    padding-top: 0;
    border-top: 1px solid #e9ecef;
}
.dashboard-activity-section:last-child {
    margin-bottom: 0.25rem;
}
.dashboard-activity-section-title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    margin: 0;
    padding: 0.55rem 0.75rem;
    border: 0;
    border-radius: 0.75rem;
    background-color: #f8f9fa;
    color: #344767;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.dashboard-activity-section-count {
    flex: 0 0 auto;
    padding: 0.1rem 0.45rem;
    border-radius: 0.35rem;
    color: #344767;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    white-space: nowrap;
}
.dashboard-activity-chevron {
    flex: 0 0 auto;
    color: #adb5bd;
    font-size: 0.7rem;
    transition: transform 0.2s ease;
}
.dashboard-activity-section-title.collapsed .dashboard-activity-chevron {
    transform: rotate(180deg);
}
.dashboard-activity-section-title.collapsed {
    border-radius: 0.75rem;
}
.dashboard-activity-section-body {
    padding: 0.5rem;
}

/* === Dashboard: karta „Narozeniny“ === */
.dashboard-birthday-row .dashboard-activity-avatar {
    background-color: #fde7ef;
    color: #d81b60;
}
.dashboard-birthday-row .dashboard-activity-avatar::after {
    display: none;
}
.dashboard-birthday-badge {
    flex: 0 0 auto;
    padding: 0.2rem 0.6rem;
    border: 1px solid rgba(216, 27, 96, 0.25);
    border-radius: 999px;
    background-color: #fde7ef;
    color: #d81b60;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Tlačítko úpravy dnešní činnosti v kartě pracovního výkazu. */
.dashboard-report-edit {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    border-radius: 0.5rem;
    color: #7b809a;
    font-size: 0.9rem;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.dashboard-report-edit:hover,
.dashboard-report-edit:focus {
    background-color: #f0f2f5;
    color: #344767;
}

/* === Dashboard: karta „Zprávy“ === */
.dashboard-message-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    background-color: #f8f9fa;
}
.dashboard-message-row + .dashboard-message-row {
    margin-top: 0.5rem;
}
.dashboard-message-body {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}
a.dashboard-message-body:hover .text-dark {
    color: #1f7fb0 !important;
}
.dashboard-message-icon {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background-color: rgba(76, 171, 215, 0.15);
    color: #1f7fb0;
    font-size: 0.7rem;
}
.dashboard-message-count {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 0.35rem;
    background-color: rgba(0, 0, 0, 0.06);
    color: #67748e;
    font-size: 0.65rem;
    font-weight: 700;
}
.dashboard-message-close {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border: 0;
    border-radius: 0.4rem;
    background: transparent;
    color: #adb5bd;
    font-size: 0.8rem;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.dashboard-message-close:hover {
    background-color: #f0f2f5;
    color: #344767;
}

/* Horní navbar zůstal po přesunu ovládacích prvků do hlavního menu prázdný.
   Element v DOM necháváme kvůli skriptu motivu, jen ať nezabírá výšku. */
#navbarBlur {
    display: none;
}

/* Kompaktnější rozestupy mezi řadami karet na dashboardu. */
#dashboardReports > .row {
    --bs-gutter-y: 1rem;
}
#dashboardReports > .row > [class*="col-"] {
    margin-bottom: 0 !important;
}

/* === Dashboard: karty se řídí šířkou sloupce, ne šířkou okna ===
   Karta je vždy třetina řádku, takže se zužuje i na notebooku, kde mobilní
   breakpoint neplatí. Proto se prvky zalamují podle místa, ne podle velikosti okna.
   Ovládací prvek v hlavičce spadne pod nadpis, jakmile se vedle něj nevejde,
   a řádky v kartách se smí zalomit místo drcení textu do sloupce písmen. */
#dashboardReports .card-header > .d-flex {
    flex-wrap: wrap;
    row-gap: 0.5rem;
}
#dashboardReports .card-header > .d-flex > .flex-grow-1 {
    flex-basis: 0;
    min-width: 9rem;
}
.dashboard-report-row,
.dashboard-activity-row,
.dashboard-absence-row,
.dashboard-message-row {
    flex-wrap: wrap;
    row-gap: 0.35rem;
}
.dashboard-report-row > .flex-grow-1,
.dashboard-activity-row > .flex-grow-1,
.dashboard-absence-row > .flex-grow-1,
.dashboard-message-body {
    flex-basis: 0;
    min-width: 7rem;
}
.dashboard-report-stat-label {
    white-space: normal;
}

@media (max-width: 575.98px) {
    .dashboard-report-stat {
        padding-left: 0.4rem;
        padding-right: 0.4rem;
    }
    .dashboard-report-stat-label {
        font-size: 0.55rem;
    }
    /* Na telefonu má zalomený štítek k dispozici celou šířku řádku. */
    .dashboard-activity-badge,
    .dashboard-absence-badge,
    .dashboard-birthday-badge,
    .dashboard-training-badge {
        max-width: 100%;
    }
}

/* === Dashboard: karta „Nadcházející školení“ === */
.dashboard-training-row .dashboard-activity-avatar {
    background-color: #fdebd3;
    color: #c9711a;
    font-size: 0.85rem;
}
.dashboard-training-row .dashboard-activity-avatar::after {
    display: none;
}
.dashboard-training-badge {
    flex: 0 0 auto;
    max-width: 45%;
    overflow: hidden;
    padding: 0.2rem 0.5rem;
    border: 1px solid rgba(201, 113, 26, 0.25);
    border-radius: 0.4rem;
    background-color: #fdebd3;
    color: #c9711a;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
