@media all {
    .kCalendar {
        clear: both;
        min-width: 0px;
    }

    .kCalendar .hidden {
        display: none !important;
    }

    .kCalendar .kcal-loading {
        position: absolute;
        width: 100%;
        z-index: 100;
        background: url('../img/common/ajax-loader-bar.gif') no-repeat 50% 50%;
        height: 100%;
        background-color: #eee;
        opacity: 0.4;
        text-align: center;
        font-weight: bold;
    }

    .kCalendar .kcal-loading .text-loading {
        margin-top: 25% !important;
        position: absolute;
        margin-left: -30px;
    }

    .kCalendar table, .kCalendar div.kcal-textview {
        clear: both;
        border: solid 2px #ddd;
        border-spacing: 0;
        border-top: none;
        width: 100%;
        background-color: #fff;
    }

    .kCalendar div.kcal-textview {
        width: auto;
        padding: 10px;
    }

    .kCalendar .kcal-menu {
        font-size: 1rem;
        padding: 5px 0;
        width: auto;
        background: none;
        background-color: #f2f6fa;
        border-bottom: 2px solid #bdd4ea;
        xborder-bottom: none;
        border-radius: 0;
        display: flex;
        flex-flow: row wrap;
        flex-basis: 0;
        justify-content: space-around;
    }

    .kCalendar .kcal-menu>span {
        display: flex;
        flex-flow: row wrap;
        color: #005a9f;
        margin: .4rem 0 .4rem;
        padding: 0.2rem .8rem;
    }

    .kCalendar .kcal-menu>span span,
    .kCalendar .kcal-menu .item {
        margin: 0 !important;
        align-self: center;
        padding-right: .8rem;
        display: block;
    }


    .kCalendar .kcal-menu a.item {
        xmargin: 3px 5px -3px 5px;
    }

    .kCalendar .kcal-menu input {
        color: #005a9f;
        border: 1px solid #005a9f;
        min-width: 2.4rem;
        height: 2.4rem;
        display: inline-block;
        padding: .5rem;
    }

    .kCalendar .kcal-menu input[type="button"] {
        background-color: transparent;
        cursor: pointer;
        border: 1px solid #005a9f;
        padding: 0.2rem .2rem;
    }

    .kCalendar .kcal-menu input.direct {
        width: 10.5rem;
    }

    .kCalendar .kcal-menu .item .hidden {
        display: none !important;
    }

    .kCalendar .kcal-menu .item.toggle-mode {
        xmargin-left: 4em;
    }

    .kCalendar table thead tr {
        display: table-row;
    }

    .kCalendar table thead td {
        font-size: 85%;
        text-align: center;
        border-bottom: solid 1px #ccc;
    }

    .kCalendar table thead td .kcal-dayofweek {
        font-weight: normal;
    }

    .kCalendar table thead td .kcal-dayofweek.kcal-current-day {
        font-weight: bold;
    }

    .kCalendar table td.kcal-scale {
        width: 46px;
        min-width: 46px;
        border-left: none !important;
        text-align: right
    }

    .kCalendar table td.kcal-scale span {
        position: relative;
        top: -5px;
        right: 5px;
        padding: 0 2px;
        background-color: #fff;
        font-size: 75%;
    }

    .kCalendar table td.kcal-day {
        width: auto;
        min-width: 100px;
    }

    .kCalendar table tbody tr td div.kcal-toggle-view {
        width: 100%;
        overflow: hidden;
        display: block;
    }

    .kCalendar table.kcal-inner {
        width: 100%;
        border: none !important;
        border-collapse: collapse;
    }

    .kCalendar table.kcal-inner tbody {
        width: 100%;
        display: block;
    }

    .kCalendar table.kcal-inner tr {
        position: relative;
        width: 100%;
        display: table;
    }

    .kCalendar table.kcal-inner td {
        position: relative;
        height: 10px;
        line-height: 10px;
        padding: 0;
    }

    .kCalendar table.kcal-inner td.kcal-slot-minor {
        border-top: dotted 1px #ddd;
        border-left: solid 1px #777;
    }

    .kCalendar table.kcal-inner td.kcal-slot-major {
        border-top: dashed 1px #bbb;
        border-left: solid 1px #777;
    }

    .kCalendar table.kcal-inner td.kcal-slot-hour {
        border-top: solid 1px #ccc;
        border-left: solid 1px #777;
    }

    .kCalendar table.kcal-inner td.kcal-slot-major.kcal-scale {
        border-top: none;
    }

    .kCalendar table.kcal-inner td.kcal-slot-minor.kcal-scale {
        border-top: none;
    }

    .kCalendar .kcal-appointment-wrapper {
        position: relative;
    }

    .kCalendar .kcal-appointment:before {
        content: ".";
        font-size: 0;
        height: 0;
    }

    .kCalendar .kcal-appointment {
        width: 100%;
        font-size: 80%;
        z-index: 10;
        position: absolute;
        border: solid 1px #999;
        border-radius: 5px;
        moz-border-radius: 5px;
        webkit-border-radius: 5px;
        overflow: hidden;
        line-height: 1em;
    }

    .kCalendar .kcal-appointment .kcal-time {
        margin: -8px 0 0 3px;
        font-weight: bold;
    }

    .kCalendar.ie .kcal-appointment .kcal-time {
        margin: 4px 0 4px 3px;
    }

    .kCalendar .kcal-appointment .kcal-time {
        margin: -8px 0 0 3px;
        font-weight: bold
    }

    .kCalendar .kcal-appointment .kcal-text {
        margin-left: 3px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .kCalendar table div.collapsed {
        height: 300px;
        overflow-y: auto !important;
    }

    .kCalendar .kcal-tooltip {
        z-index: 20 ;
        width: 250px;
        line-height: 18px;
        padding: 5px;
        border: solid 1px #333;
        background-color: #fff;
    }

    .kCalendar div.kcal-legend-container {
        font-size: 80%;
    }

    .kCalendar div.kcal-legend-container .kcal-legend-headline {
        font-weight: bold;
    }
}

/* Smartphones & Tablets */
@media only screen and (max-width: 750px) {
    .kCalendar {
        min-width: 1px;
    }

    .kcal-menu-date {
        display: none;
    }
}

/* Tablets */
@media only screen and (max-width: 1024px) {
    .kCalendar {
        min-width: 2px;
    }

    .kcal-menu-pagination {
        display: none;
    }
}

@media only screen and (max-device-width: 480px) {
    .kCalendar .kcal-menu a.item {
        font-weight: bold;
        vertical-align: baseline;
        margin: 5px 10px 3px 12px;
    }

    .kCalendar .kcal-menu a.item.prev {
        margin-left: 15px;
    }

    .kCalendar .kcal-menu input.direct {
        font-size: 90%;
        padding-top: 3px;
        margin-left: 20px;
    }

    .kCalendar .kcal-textview .kcal-time, .kCalendar .kcal-textview .kcal-name {
        font-weight: bold;
    }
}

@media print {
    .kCalendar {
        page-break-before: always;
        page-break-after: auto;
    }

    .kCalendar .kcal-menu {
        display: none;
    }

    .kCalendar table {
        border: solid 2px #ddd !important;
    }

    .kCalendar table div.collapsed {
        height: auto;
    }

    .kCalendar .kcal-appointment {
        background-color: #fff;
        border: solid 1px #333;
    }
}
