* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

/* jQuery UI accessibility live region — skrýt vizuálně, zachovat pro screen readery */
.ui-helper-hidden-accessible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
}

body {
    margin: 0px;
    padding: 0px;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 13px;
    color: #2a2a2a;
    background-color: white;
    height: 100vh;
    min-height: 100vh;;
}

html {
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

h1, h2, h3 {
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
}

p, h4, h5, h6, table, div, td, th, ul, ol, dt, dd, button
{
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-size: 13px;
}

.hr {
    border-bottom: 2px solid #E5E5E5;
    padding: 16px;
    margin-top: 10px;
}

body .uitooltip,
body .ui-tooltip {
    -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important;
    border-width: 2px;
}

.topMenu {
    /**border-top: 1px dashed #AF1014;*/
    background-color: #F1F1F1;
    border-bottom: 1px solid #E5E5E5;
    padding-top: 8px;
    padding-bottom: 8px;
    text-align: center;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}

.topMenuMinWidth {
    min-width: 820px;
}

.impersonate {
    display: inline-block;
    color: #2a2a2a;
}

.topMenuItem {
    padding-left: 6px;
    padding-right: 6px;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;    
}

.topMenu.bottomBar {
    position: relative;
    clear: both;
    z-index:1;
    text-align: center;
    margin-top: 10px;
    background-color: transparent;
}

.statusBar {
    color: #e4e4e4;
    border-color: #666666;
    padding: 8px 8px 12px;
    margin-bottom: 8px;
    width: 100%;
    white-space: nowrap;
}

.statusBar a:link, .statusBar a:visited {
    color: #e4e4e4;
    padding-top: 6px;
    padding-bottom: 6px;
    border-bottom: none;
}

.statusBar a:hover {
/*    background-color: #f6f6f6;*/
    padding-top: 6px;
    padding-bottom: 6px;
    color: #428bca;
}

.statusBarMain {
    background-color:#2D2D2D;
    text-align: left;
}

.statusBarRight {
    border-left: solid 2px #848181;
    background-color: #4a4a4a;
}

.statusBarRight a:link, .statusBarRight a:visited {
    color: #e4e4e4;
    transition: all 0.5s;
}

.statusBarRight a:hover {
    /*
    background-color: #f6f6f6;
    padding-top: 6px;
    padding-bottom: 6px;
    color: #2D2D2D;
    */
    padding-top: 6px;
    padding-bottom: 6px;
    color: #428bca;
    border-bottom: 4px solid #428bca;
}

.logout {
    color: #AF1014;
}

.topMenuItem {
    padding: 8px;
}

.important {
    color: #AF1014;
}

.none {
    display: none;
}

.bkg {
    clear: both;
    height: 2px;
    background-color: #E5E5E5;
    font-size: 1px;
}

.input {
    display: inline-block!important;
    width: 120px!important;
    margin-left: 3px;
    margin-right: 3px;

    /*background-color: #F3F5F9;*/
}

.button {
    margin-right: 3px;
    margin-left: 3px;
}

.textBig {
    font-size: 15px;
}

.rating, .rating-disabled{
    display: inline-block;
}

.show {
    color: #AF1014;
    text-align: center;
}

.jidelnicekMain {
    width: 100%;
    min-width: 240px;
}

.jidelnicekItem {
    padding: 8px 8px;
    border-top: solid 1px #E5E5E5;
    text-align: left;
}

.jidelnicekItemWrapper {
    display: flex;
    width: 100%;
    align-items: center;
    flex-direction: row;
    position: relative; /* kotva pro absolutní timing dropdown */
}

.jidWrapLeft {
    order: 1;
    flex: 0 0 auto;

}

.jidWrapRight {
    order: 3;
    text-align: right;
    flex: 0 1 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
}

.jidWrapRight .input-group {
    margin-bottom: 0;
}

.jidWrapCenter {
    order: 2;
    text-align: left;
    min-width: 250px;
    display: inline-block;
    word-wrap: break-word;
    vertical-align: middle;;
    padding: 0px 8px;
    flex: 1 1 auto;
}

.jidelnicekTv {
    font-size: 24px;
}

.jidelnicekTv .jidelnicekTop {
    font-size: 26px;
}

.jidelnicekTv .smallBoldTitle {
    font-size: 24px;
}

.jidelnicekTv .jidelnicekItem {
    font-size: 24px;
}

.jidelnicekTv .textGrey {
    font-size: 20px;
    white-space: nowrap;
}

.jidelnicekTv.serveryLine {
    font-size: 28px;
    background-color: #2D2D2D;
    color: #e4e4e4;
    padding: 12px;
}

.jidelnicekTv #Clock {
    float:right;
    width:350px;
    font-size: 20px;
    padding-top: 6px;
}

/* CSS pro separator typu chodu */
.typ-chodu-separator {
    display: flex;
    align-items: center;
    margin: 4px 0 0 2px;
}
.typ-chodu-separator .line {
    flex: 1;
    border-bottom: 1px solid #ccc;
}
.typ-chodu-separator .text {
    padding: 0 1em;
    white-space: nowrap;
    font-weight: bold;
    color: #555;
}

/* --- nadpisy dnů (day headers) --- */
.jidelnicekTop {
    text-align: center;                /* text uprostřed */
    background-color: #F1F1F1;
    padding: 0.75em 0;                 /* vertikální odsazení */
    margin: 1em 0 0.5em;             /* prostor nad i pod */
    font-size: 1.2em;                  /* o něco větší písmo */
    font-weight: 600;                  /* zvýrazněné tučné */
    border-radius: 0.5em;              /* jemně zaoblené rohy */
    box-shadow: 0 1px 3px rgba(0,0,0,0.1); /* lehký stín */
}

/* Input groups uvnitř .icons — výchozí display (nahrazuje inline style) */
.icons > .input-group.icons-collapsible,
.icons > .input-group.icons-semi { display: inline-table; }

/* Note input span — vždy skrytý, odkrývá se JS fadeToggle (na kliknutí edit ikony) */
.note-input-span { display: none; vertical-align: middle; }

@media all and (max-width: 920px) {
    .jidelnicekItemWrapper {
        flex-wrap: wrap;
        position: relative;   /* kotva pro absolutní šipku */
        padding-right: 20px;  /* prostor pro šipku */
        min-width: 365px;
    }

    .jidWrapLeft {
        flex: 1 1 auto;
        display: flex;
        white-space: nowrap;
        align-items: center;
    }

    /* maxbutton vyplní zbylý prostor po checkboxu */
    .maxbutton {
        flex: 1 1 0;
        min-width: 0;
        width: auto !important;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* checkbox se nesmí stlačit */
    .jidWrapLeft > .order-checkbox {
        flex: 0 0 auto;
    }

    /* šipka přišpendlená vpravo nahoře — nemění pozici při rozbalení */
    .iconsRight {
        position: absolute;
        top: 8px;
        right: 0;
        color: #5d5d5d;
    }

    .limits {
        padding: 6px 6px 6px 8px;
    }

    /* ≤920px: šipka viditelná */
    .timing-arrow-trigger { display: inline; }

    /* ≤920px: icons-collapsible skryté DOKUD parent nemá .icons-expanded
       Specifita zvýšena přes .jidWrapRight aby přebila .input-group.icons-collapsible display:inline-table */
    .icons.jidWrapRight:not(.icons-expanded) > .icons-collapsible { display: none; }

    .button-link-tick {
        float:right;
        display: inline-block;
        vertical-align: middle;
        color: #428bca;
        padding-left: 4px;
    }

    /* Mobile ≤920px: hodiny (details) skryté — timing data je inline */
    .session-mobile details.timing-desktop-details { display: none !important; }
}

@media all and (max-width: 420px) {
    /* ≤420px: icons-semi skryté DOKUD parent nemá .icons-expanded */
    .icons.jidWrapRight:not(.icons-expanded) > .icons-semi { display: none; }

    /* Desktop ≤420px: celý .icons div skrytý */
    .session-desktop .icons:not(.icons-expanded) {
        display: none;
        padding-left: 8px;
    }

    /* Mobile ≤420px: .icons zůstává viditelný (hodiny/zákaz/timing inline) */
    .session-mobile .icons {
        padding-left: 8px;
    }

    .timing-card {
        margin-top: 6px;
    }

    .iconsRight {
        padding-left: 8px;
        color: #5d5d5d;
    }

    .jidWrapCenter {
        padding-top: 4px;
        padding-bottom: 4px;
        width: 100%;
        order: 2;
    }

    .jidWrapRight {
        padding-top: 4px;
        padding-bottom: 4px;
        padding-right: 16px;
        width: 100%;
        order: 3;
        flex: 0 1 auto;
        flex-wrap: wrap;
    }
}

@media all and (min-width: 421px) and (max-width: 920px) {
    /* 421–920px: .icons viditelný (hodiny/zákaz/timing inline, collapsible skryté) */
    .icons {
        padding-left: 8px;
    }

    /* icons-semi na řádku s tlačítkem (zabalený stav) */
    .jidWrapRight {
        padding-top: 0;
        padding-bottom: 0;
        padding-right: 4px;
        width: auto;
        order: 1;
        flex: 0 1 auto;
        flex-wrap: wrap;
    }

    /* popis jídla hned pod tlačítkem */
    .jidWrapCenter {
        padding-top: 4px;
        padding-bottom: 4px;
        width: 100%;
        order: 2;
    }

    /* rozbalený stav — ikony pod popisem */
    .jidWrapRight.icons-expanded {
        order: 3;
        width: 100%;
        padding-top: 4px;
    }
}

@media all and (min-width: 921px) {
    .icons {
        white-space: nowrap;
        float: right;
        display: inline-block;
        line-height: 15px;
    }

    /* .jidWrapRight.icons přebíjí .icons a zajišťuje flex zarovnání pro obsah (note input, ikony) */
    .jidWrapRight.icons {
        display: flex;
        align-items: center;
        line-height: normal;
    }

    /* ≥921px: šipka skrytá, vše viditelné inline */
    .iconsRight {
        display: none;
    }

    /* ≥921px: ŽÁDNÉ force-show pravidlo — elementy si ponechávají svůj přirozený display
       (note span zůstane display:none, amount zůstane inline-table, atd.) */

    .button-link-tick {
        float:right;
        display: inline-block;
        vertical-align: middle;
        color: #428bca;
        padding-left: 4px;
    }
}

/* ── Timing card (mobile/tablet: časy výdeje a limity) ──────────────── */
.timing-card {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 10px;
    font-size: 12px;
    color: #555;
    margin-top: 6px;
    padding: 6px 8px;
    border-left: 2px solid #d0d0d0;
    background: #fafafa;
    border-radius: 0 4px 4px 0;
}

/* display:contents — řádek se stává "průhledným" pro grid,
   jeho label a value se sami zarovnají do sloupců rodiče */
.timing-row {
    display: contents;
}

.timing-label,
.timing-row > span {
    padding: 3px 0;
    border-bottom: 1px solid #efefef;
}

.timing-row:last-child > .timing-label,
.timing-row:last-child > span {
    border-bottom: none;
}

.timing-label {
    color: #888;
    white-space: nowrap;
}

/* Timing: mobile inline — žádný globální display:grid, dědí z .timing-card.
   Na ≥801px skrýt (timing je přes details dropdown) */
@media (min-width: 921px) {
    .timing-mobile-inline { display: none !important; }
}

/* Timing: details/summary dropdown — výchozí skrytý */
details.timing-desktop-details { display: none; }

/* ≥801px: details dropdown viditelný */
@media (min-width: 921px) {
    details.timing-desktop-details {
        display: inline-block;
        position: relative;
        vertical-align: middle;
    }
}

/* Desktop 401-800px: details dropdown viditelný (hodiny) */
@media (min-width: 421px) and (max-width: 920px) {
    .session-desktop details.timing-desktop-details {
        display: inline-block;
        position: relative;
        vertical-align: middle;
    }
}

.timing-desktop-summary {
    list-style: none;
    cursor: pointer;
    display: inline;
}
.timing-desktop-summary::-webkit-details-marker { display: none; }

/* Panel se otevře jako dropdown pod hodinama */
.timing-desktop-details[open] > .timing-desktop-card {
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 200;
    min-width: 280px;
    background: #fff;
    border: 1px solid #d0d0d0;
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    padding: 6px 10px;
    margin-top: 4px;
}
/* ─────────────────────────────────────────────────────────────────── */

article {
    display: table;
    width: 100%;
}

.container {
    display: table-row;

}

.shrinkedColumn {
    display: table-cell;
    width: 0.1%;
    white-space: nowrap;
}

.column {
    display: table-cell;
}

@media all and (max-width: 920px) {
    .container {
        display: table-row;
    }

    .shrinkedColumn {
        display: table-cell;
        width: 50%;
        float: left;
        white-space: nowrap;
    }

    .column {
        display: table-cell;
        width: 100%;
        float: left;
    }
}

.jidelnicekItemNoBorder {
    border-top: none!important;
}


form {
    text-align: center;
}

.mainMenuItem {
    display: block;
    height: 100%;
    width: 100%;
    font-weight: 600;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
    padding-top: 8px;
    padding-bottom: 4px;
    border-bottom: 4px solid transparent;
    transition: all 0.5s;
}

.mainMenuItem:hover {
    border-bottom: 4px solid #428bca;
}

.mainMenuText {
    padding-top: 6px;
    padding-left: 4px;
    padding-right: 4px;
    white-space: nowrap;
    display: block;
}

.calendar-text { margin-top: .3em; }

.mainMenu a:link {
    color: #5d5d5d;
    font-size: 15px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
}

.mainMenu a:visited {
    color: #5d5d5d;
    text-decoration: none;
}

.mainMenu a:hover {
    color: #428bca;
    text-decoration: none;
}

.fa-stock-lg {
    font-size: 1.5em
}

.fa-newmessage  {
    background-color: red;
    margin-left: -17px;
    margin-right: 4px;
    padding-left: 4px;
    padding-right: 4px;
    border-radius: 4px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;    
}

.smallBoldTitle {
    font-weight: bold;
    font-size: 13px;
    white-space:nowrap;
}

.bold {
    font-weight: bold;
}

.semibold {
    font-weight: 600;
}

.mainDiv {
    text-align: center;
    width: 100%;
}
.printSummary {
    text-align: center;
    width: 500px;
    display: inline-block;
}

.printSummaryRow {
    padding: 5px;
    margin: 5px;
    text-align: left;
}

.publicTemplate {
    text-align: center;
    width: 600px;
    display: inline-block;
}

.publicTemplate li {
    border:0;
    margin:0;
    padding:0;
    list-style: none;
}

.tableDataShow {
    color:#666;
    font-size:12px;
    text-shadow: 1px 1px 0px #fff;
    background:#eaebec;
    margin:8px;
    width: 99%;
    border: #ccc 1px solid;

    -moz-border-radius:3px;
    -webkit-border-radius:3px;
    border-radius:3px;

    -moz-box-shadow: 0 1px 2px #d1d1d1;
    -webkit-box-shadow: 0 1px 2px #d1d1d1;
    box-shadow: 0 1px 2px #d1d1d1;
    border-collapse: separate;
}
.tableDataShow th {
    padding:11px 15px 12px 15px;
    border-top:1px solid #fafafa;
    border-bottom:1px solid #e0e0e0;

    background: #ededed;
    background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#ebebeb));
    background: -moz-linear-gradient(top,  #ededed,  #ebebeb);
}
.tableDataShow th:first-child{
    text-align: left;
    padding-left:10px;
}
.tableDataShow tr:first-child th:first-child{
    -moz-border-radius-topleft:3px;
    -webkit-border-top-left-radius:3px;
    border-top-left-radius:3px;
}
.tableDataShow tr:first-child th:last-child{
    -moz-border-radius-topright:3px;
    -webkit-border-top-right-radius:3px;
    border-top-right-radius:3px;
}
.tableDataShow tr{
    text-align: left;
    padding-left:10px;
}
.tableDataShow tr td:first-child{
    text-align: left;
    padding-left:10px;
    border-left: 0;
}
.tableDataShow tr td {
    padding:6px;
    border-top: 1px solid #ffffff;
    border-bottom:1px solid #e0e0e0;
    border-left: 1px solid #e0e0e0;

    background: #fafafa;
    background: -webkit-gradient(linear, left top, left bottom, from(#fbfbfb), to(#fafafa));
    background: -moz-linear-gradient(top,  #fbfbfb,  #fafafa);
}
.tableDataShow tr.even td{
    background: #f6f6f6;
    background: -webkit-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f6f6f6));
    background: -moz-linear-gradient(top,  #f8f8f8,  #f6f6f6);
}
.tableDataShow tr:last-child td{
    border-bottom:0;
}
.tableDataShow tr:last-child td:first-child{
    -moz-border-radius-bottomleft:3px;
    -webkit-border-bottom-left-radius:3px;
    border-bottom-left-radius:3px;
}
.tableDataShow tr:last-child td:last-child{
    -moz-border-radius-bottomright:3px;
    -webkit-border-bottom-right-radius:3px;
    border-bottom-right-radius:3px;
}
.tableDataShow tr:hover td{
    background: #f2f2f2;
    background: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#f0f0f0));
    background: -moz-linear-gradient(top,  #f2f2f2,  #f0f0f0);	
}

table {
    text-align: center;
    border-collapse: collapse;
    border-color: #666666;
    padding: 1px;
}

.KalZahlavi {
    font-weight: normal;
/*    color: #FFFFFF;
    background-color:#2D2D2D;
    border-color: #666666;*/
    font-size: 14px;
    padding: 4px;
}

.KalWeekend {
    color: #a94442;
}

.KalZahlavi a:hover {
    /*color: #FFFFFF;*/
}

.KalZahlavi a:link {
    /*color: #FFFFFF;*/
}

.KalZahlavi a:visited {
    /*color: #FFFFFF;*/
}

.KalTable {
    /*border:1px solid #666666;*/
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
    background-color:#F1F1F1;
    border-collapse: initial;
    border-spacing: 4px;
    font-size: 15px;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}
.KalDatum.td {
    /*border: 1px solid #666666;*/
}

.KalDatum {
    background-color: #F1F1F1;
    color: black;
    font-weight: bold;
    font-size: 15px;
    text-decoration: none;
    box-shadow: none;
}

.KalPassed {
    filter: opacity(40%);
}

.Kal1 {
    background-color: #FBE983;
    font-weight: bold;
    font-size: 15px;
    cursor: pointer;
    box-shadow: none;
    transition: all 0.5s;
}

.Kal1:hover {
    background-color: #BCB279;
    cursor: pointer;
}

.Kal1:active {
    background-color: #A3912B;
    cursor: pointer;
}

.KalRadius {
    border-radius: 50%;
}

.Kal6 {
    background-color: #C9DAF8;
    font-weight: bold;
    font-size: 15px;
    cursor: pointer;
    box-shadow: none;
    transition: all 0.5s;
}

.Kal6:hover {
    background-color: #b4c4df;
    cursor: pointer;
}

.Kal6:active {
    background-color: #a0aec6;
    cursor: pointer;
}

.KalDnes {
    /**BACKGROUND-COLOR: #6C7EAA;*/
    font-weight: bold;
    font-size: 16px;
    text-decoration:underline;
    box-shadow: none;
}

.Kal5 {
    background-color: #428bca;
    font-size: 15px;
    color: white;
    box-shadow: none;
}

.KalOtherMonth {
    color: #666666;
    text-decoration: none;
    font-weight: normal;
}

.warning {
    font-weight: bold!important;
}
.information {
    font-weight: bold;
    color: #99cc00;
}
.tableRow {
    background-color: #F3F5F9;
    color: #000000;
}
a:link {
    color: #000000;
}
a:hover {
    color: #000000;
    text-decoration: underline;
}
a:visited {
    color: #000000;
}
.textGrey {
    font-size: 12px;
    font-style:italic;
    color: #454545b5;
    text-align: left;
}

.textGrey a:link, .textGrey a:visited {
    color: #454545b5;
    text-decoration: none;
}

.textGrey a:hover {
    text-decoration: underline;
}

.orderContent .textGrey {
    padding-top: 12px;
}


.text-ok {
    color: green;
}

.text-danger {
    color: #a94442;
}

a.text-danger:hover {
    color: #843534;
}

.right {
    float: right;
    padding: 8px;
}

.clearfix {
    overflow: auto;
    width: 90%;
    max-width: 1280px;
    text-align: left;
    display: inline-block;
    overflow: hidden;
}

.clearfix img {
    max-width: 98%;
}

.help {
    position:fixed;
    right: 16px;
    bottom: 16px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: #E5E5E5;
    padding-top: 12px;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    text-align: center;
    vertical-align: middle;
    opacity:0.7;
    transition: all 0.5s;
}

.help:hover {
    background-color: #b9b9b9;
}

.helpContent em {
    font-weight: bold;
}


.helpContent {
    margin: 16px;
    text-align: center;
}

.helpContent p {
    text-align: left;
    max-width: 1280px;
}

.helpContent h3 {
    text-align: left;
    max-width: 1280px;
}


.helpContent > img {
    width: 95%;
}

.helpContent a {
    text-decoration: none;
}

.helpContent a:hover {
    text-decoration: underline;
}

.tickList {
    list-style: none;
}

.shadow {
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    margin: 12px;
}

#fixedtipdiv{
    position:absolute;
    padding: 2px;
    border:1px solid black;
    font-size: 13px;
    line-height:18px;
    z-index:100;
    text-align: left;
}

#bodyContext {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.sectionDivider {
    background: linear-gradient(0deg, #428bca 0%, rgba(0, 0, 0, 0.69) 100%);
    margin: 24px auto 8px;
    display: block;
    width: 120px;
    height: 3px
}

hr {  
    color: #E5E5E5;
    background-color: #E5E5E5;
    padding: 16px;
    margin-bottom: 8px;
}
.medium {
    vertical-align: top; 
    text-align: left;
}

.subtitlebig {
    padding-top: 10px;
    font-size: 15px;
    text-align: left;
}

.mainContext {
    padding: 10px 8px 8px;
    width : 100%; 
    height : 100%;
    overflow : auto;
    flex: 1 1 auto;
}

.mainContextMinWidth {
    min-width: 800px;
}

@media screen { 
    .noScreen {
        display: none;
    }

    .fitToScreen {
        height: 100%;
    }
}

@media print { 
    .mainContext {
        height: 100%!important; 
        width: 100%!important; 
        overflow: auto;
    }

    .noPrint {
        display: none;
    }  
}

.topContext {
    padding : 0px;
    width : 100%;
    flex: 0 0 auto;
}

#icon {
    vertical-align: middle; 
    width: 36px;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    height: 22px;
    margin-right: 3px;
}

.inlineIcon {
    vertical-align: middle;
}

.iconsLeft {
    vertical-align: middle;
    padding-right: 4px;
    color: #5d5d5d
}

/* === Order checkbox (before order button) === */
.order-checkbox {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-width: 34px;
    font-size: 1.8em;
    color: #cccccc;
    text-decoration: none !important;
    cursor: pointer;
    transition: color 0.2s, transform 0.1s;
    vertical-align: middle;
    flex-shrink: 0;
}

.order-checkbox.checked {
    color: #428bca;
}

.order-checkbox.order-checkbox-disabled {
    color: #d0d0d0;
    cursor: default;
    pointer-events: none;
    opacity: 0.8;
}

.order-checkbox.checked.order-checkbox-disabled {
    color: #428bca;
}

.order-checkbox:hover:not(.order-checkbox-disabled) {
    transform: scale(1.15);
    text-decoration: none !important;
}

.order-checkbox.checked:hover:not(.order-checkbox-disabled) {
    color: #c0392b;
}

.order-checkbox.order-checkbox-disabled:hover {
    transform: none;
    color: #d0d0d0;
    text-decoration: none !important;
}

/* === Button === */
/* .btn.button-link má specificitu (0,2,0) — přebíjí .btn (0,1,0) i když je .btn pozdější v souboru */
.btn.button-link {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    gap: 4px;
    line-height: 2!important;
    margin-right: 2px;
    background: #FBE983;
    border: solid 1px #D6C252;
    min-width: 180px;
    white-space: nowrap;
    text-decoration: none;
}

.button-link-align {
    float: left;
    display: inline-block;
    margin-right: 3px;
}

/* Uvnitř flex kontejneru nepotřebujeme float ani margin-right (gap ho nahrazuje) */
.button-link .button-link-align {
    float: none;
    margin-right: 0;
}

.btn.button-link:hover {
    background: #BCB279;
    border: solid 1px #9A8E54;
    text-decoration: none;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.14);
}
.btn.button-link:active {
    background: #A3912B;
    border: solid 1px #7A6C1E;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.15);
}

.btn.button-link-vydejna {
    min-width: 100px;
    border-bottom-left-radius: 0px!important;
    border-bottom-right-radius: 0px!important;
    text-decoration: none;
    box-shadow: none;
}

.btn.vydejna-selected {
    border-bottom: 5px #428bca solid;
}

.btn.vydejna-unselected {
    border-bottom: 5px #C9DAF8 solid;
}

.btn.vydejna-unselected:hover {
    border-bottom: 5px #428bca solid;
}

.btn.vydejna-unselected:active {
    border-bottom: 5px #646d7c solid;
    background: #CCCCCC;
    border: solid 1px #999999;
}

.btn.disabled {
    background: #FFCCCC;
    border: solid 1px #DDA0A0;
    cursor: auto;
}

.btn.disabled:hover {
    background: #FFCCCC;
    border: solid 1px #DDA0A0;
}

.btn.disabled:active {
    background: #FFCCCC;
    border: solid 1px #DDA0A0;
}

.btn.enabled {
    background: #BEDEBE;
    border: solid 1px #93C893;
}

.btn.enabled:hover {
    background: #93C893;
    border: solid 1px #65AA65;
}

.btn.enabled:active {
    background: #65AA65;
    border: solid 1px #3C8C3C;
}

.btn.ordered {
    background: #C9DAF8;
    border: solid 1px #90B4EC;
    vertical-align: middle;
}

.btn.ordered:hover {
    background: #b4c4df;
    border: solid 1px #7A9FC8;
}

.btn.ordered:active {
    background: #a0aec6;
    border: solid 1px #5A7CA8;
}

.btn.unknown {
    background: #E5E5E5;
    border: solid 1px #999999;
    border-bottom: 0px;
    margin-bottom: 0px;
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px;
}

.btn.unknown:hover {
    background: #CCCCCC;
    border: solid 1px #999999;
    border-bottom: 0px;
    margin-bottom: 0px;
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px;
}

.btn.unknown:active {
    background: #CCCCCC;
    border: solid 1px #999999;
    border-bottom: 0px;
    margin-bottom: 0px;
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px;
}

.form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
}

.form-inline .input-group > .form-control {
    width: 100%;
}
.margin-bottom-sm {
    margin-bottom: 5px !important;
}

.input-group-addon,
.input-group-btn {
    width: 1%;
    white-space: nowrap;
    vertical-align: middle;
    font-size: 19px;
}

.input-group-addon,
.input-group-btn,
.input-group .form-control {
    display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
    border-radius: 0;
}
.input-group-addon,
.input-group-btn {
    width: 1%;
    white-space: nowrap;
    vertical-align: middle;
}
.input-group-addon {
    padding: 6px 12px;
    font-size: 14px;
    font-weight: normal;
    line-height: 1;
    color: #555555;
    text-align: center;
    background-color: #eeeeee;
    border: 1px solid #cccccc;
    border-radius: 4px;
}

.input-group {
    position: relative;
    display: table;
    margin-bottom: 8px;
/*    border-collapse: separate;*/
}
.input-group .btn {
    margin: 0;
}
.input-group[class*="col-"] {
    float: none;
    padding-left: 0;
    padding-right: 0;
}
.input-group .form-control {
    position: relative;
    z-index: 2;
    float: left;
    width: 100%;
    height: 40px;
    vertical-align: middle;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
    height: 46px;
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.33;
    border-radius: 6px;
}

.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
    line-height: 1.42857143;
}
.input-group-addon:first-child {
    border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
    line-height: 1.42857143;
    height: 40px;
    margin-bottom: 0px;
}

.form-control {
    display: block;
    width: 100%;
    height: 34px;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857143;
    color: #555555;
    background-color: #ffffff;
    background-image: none;
    border: 1px solid #cccccc;
    border-radius: 4px;
/*    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);*/
    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.10), 0 1px 2px rgba(0, 0, 0, 0.06);
}
.form-control:focus {
    border-color: #66afe9;
    outline: 0;
/*    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);*/
}
.form-control::-moz-placeholder {
    color: #777777;
    opacity: 1;
}
.form-control:-ms-input-placeholder {
    color: #777777;
}
.form-control::-webkit-input-placeholder {
    color: #777777;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
    cursor: not-allowed;
    background-color: #eeeeee;
    opacity: 1;
}
textarea.form-control {
    height: auto;
}
input[type="search"] {
    -webkit-appearance: none;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
    line-height: 34px;
    line-height: 1.42857143 \0;
}
input[type="date"].input-sm,
input[type="time"].input-sm,
input[type="datetime-local"].input-sm,
input[type="month"].input-sm {
    line-height: 30px;
}
input[type="date"].input-lg,
input[type="time"].input-lg,
input[type="datetime-local"].input-lg,
input[type="month"].input-lg {
    line-height: 46px;
}
.form-group {
    margin-bottom: 15px;
}

.btn {
    display: inline-block;
    margin-top: 2px;
    margin-bottom: 2px;
    font-weight: normal;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    border: 1px solid transparent;
    white-space: nowrap;
    padding: 6px 8px;
    font-size: 13px;
    line-height: 1.42857143;
    border-radius: 6px;
    user-select: none;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.10), 0 1px 2px rgba(0, 0, 0, 0.06);
    transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease, border-color 0.15s ease;
}

.btn:focus,
.btn:active:focus,
.btn.active:focus {
    outline: thin dotted;
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px;
}
.btn:hover,
.btn:focus {
    color: #2a2a2a;
    text-decoration: none;
}
.btn:active,
.btn.active {
    outline: 0;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
    cursor: not-allowed;
    pointer-events: none;
    opacity: 0.65;
    box-shadow: none;
    transform: none;
}

.btn-primary, .btn-success, .btn-warning, .btn-danger, .btn-info {
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}

.btn-primary {
    color: #ffffff;
    background-color: #428bca;
    border-color: #357ebd;
    margin-bottom: 4px;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
    color: #ffffff;
    background-color: #3071a9;
    border-color: #285e8e;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
    background-image: none;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
    background-color: #428bca;
    border-color: #357ebd;
}
button,
input,
optgroup,
select,
textarea {
    color: inherit;
    font: inherit;
    margin: 0;
}
button {
    overflow: visible;
}
button,
select {
    text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button;
    cursor: pointer;
}
button[disabled],
html input[disabled] {
    cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
    border: 0;
    padding: 0;
}
input {
    line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box;
    padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    height: auto;
}
input[type="search"] {
    -webkit-appearance: textfield;
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

.mobileMenu {
    display: none;
}

.paymentForm {
    text-align: center;
    background:#999999;
    padding: 12px;
    color:#FFFFFF;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}

.paymentForm img {
    vertical-align:middle;
    height:48px;
    padding-left: 8px;
}

.pending {
    color: #428bca;
}

.success {
    color: #99cc00;
}

.rowodd, .roweven {
    vertical-align: top;
}

.flex-row {
    display: flex;
}

.flex-column {
    flex: 50%;
    padding: 10px;
}

.warning-box {
    position: relative;
    margin: 1rem 0;
    padding: 1rem;
    background: #fff;
    border: 3px solid #ffc107;
    border-radius: 8px;
    text-align: center;
}

.warning-box::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    border: 1px solid #ffc107;
    border-radius: 10px;
    pointer-events: none;
}

.warning-content {
    color: #856404;
    font-weight: 600;
    font-size: 1.1em;
}

/* ============================================================
   AJAX loading overlay (náhrada za jQuery BlockUI)
   ============================================================ */
@keyframes ajaxSpinner {
    to { transform: rotate(360deg); }
}

#ajaxBlockOverlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    background: rgba(255, 255, 255, 0);
    display: none;
}

#ajaxBlockMsg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    border: 1px solid #ccc;
    padding: 14px 22px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    white-space: nowrap;
}

#ajaxBlockSpinner {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    border: 3px solid #e0e0e0;
    border-top-color: #555;
    border-radius: 50%;
    animation: ajaxSpinner 0.7s linear infinite;
}

/* ===== Lazy loading — day placeholder skeleton ===== */
.day-placeholder {
    padding: 4px 0 8px;
}

.day-placeholder-row {
    height: 36px;
    border-radius: 6px;
    margin-bottom: 8px;
    background: linear-gradient(90deg, #ebebeb 25%, #f7f7f7 50%, #ebebeb 75%);
    background-size: 200% 100%;
    animation: day-placeholder-shimmer 1.4s infinite linear;
}

.day-placeholder-row--sm {
    width: 55%;
}

@keyframes day-placeholder-shimmer {
    from { background-position: 200% 0; }
    to   { background-position: -200% 0; }
}

/* ===== Native toast notification (#ic-toast) — mobile fallback bez jQuery UI ===== */
#ic-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    z-index: 9999;
    min-width: 260px;
    max-width: calc(100vw - 32px);
    background: #323232;
    color: #fff;
    border-radius: 8px;
    padding: 14px 44px 14px 16px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.35);
    font-size: 14px;
    line-height: 1.45;
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: auto;
    box-sizing: border-box;
}

#ic-toast.ic-toast--visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

#ic-toast strong {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #ffd54f;
}

#ic-toast span {
    display: block;
}

.ic-toast-close {
    position: absolute;
    top: 8px;
    right: 10px;
    background: none;
    border: none;
    color: rgba(255,255,255,0.7);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
}

.ic-toast-close:hover {
    color: #fff;
}
