[hidden]{display:none!important}
:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#263138;background:#f5f6f8}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:1px solid #cfd5dc;background:#fff;color:#263138;border-radius:9px;padding:9px 12px;font-weight:600}button:hover{filter:brightness(.96)}button:disabled{opacity:.45;cursor:not-allowed}.primary,.login-panel button[type=submit]{background:#b51e2a;border-color:#b51e2a;color:white}.subtle{border-color:transparent;background:#eff1f4}header{height:auto;min-height:66px;background:white;border-bottom:1px solid #dde0e4;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 3%;gap:10px}.brand,.logo{font-weight:900;letter-spacing:.02em;color:#bc2230;font-size:24px}.brand span,.logo span{font-size:13px;font-weight:750;color:#555;letter-spacing:.1em;margin-left:6px}.account{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.account span{font-size:13px}main{max-width:1700px;margin:auto;padding:18px 20px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.toolbar-right,.month-control{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.month-control strong{font-size:20px;min-width:166px;text-align:center;text-transform:capitalize}.selected{box-shadow:inset 0 -3px #bc2230}.legend{display:flex;flex-wrap:wrap;gap:14px;margin:16px 2px;font-size:13px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;display:inline-block;border-radius:3px}.green{background:#46a477}.legend i.elapsed-brown{background:#decbb1;border:1px solid #bea98c}.amber{background:#edae45}.hint{color:#69747f;font-size:13px}.calendar-outer{width:100%;overflow-x:auto;background:white;border:1px solid #dce1e6;border-radius:12px;box-shadow:0 2px 9px #17252e08;touch-action:pan-x pan-y}.empty-calendar{padding:20px}.calendar{width:var(--calendar-min,100%);min-width:var(--calendar-min,100%);position:relative}.calendar-head,.employee-line{display:grid;grid-template-columns:var(--name-width,138px) repeat(var(--days),minmax(0,1fr));align-items:stretch}.calendar-head{position:sticky;top:0;z-index:2;background:#eff2f5}.day-head{height:45px;text-align:center;font-size:11px;border-left:1px solid #e1e5ea;display:flex;flex-direction:column;justify-content:center}.day-head b{font-size:12px}.day-head.weekend{background:#e1e6eb}.name-head{font-weight:700;padding:12px 8px;font-size:12px}.employee-line{height:24px;position:relative;border-top:1px solid #e1e5e9}.employee-line:hover{background:#f9fafb}.emp-name{font-size:12px;font-weight:650;display:flex;align-items:center;padding:0 7px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;z-index:1;background:#fff;border-right:2px solid #d3d9df}.date-cell{border-left:1px solid #eceef1;height:23px}.date-cell.weekend{background:#f2f4f6}.date-cell.today{background:#fef4e4}.leave-strip{height:16px;position:absolute;top:4px;border-radius:6px;font-size:11px;font-weight:700;color:#133526;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;z-index:1;box-shadow:0 1px 2px #0001;cursor:help}.leave-strip.approved{background:#82d7aa}.leave-strip.approved.elapsed{background:#decbb1;color:#513a24}.leave-strip.approved.partly-elapsed{background:linear-gradient(to right,#decbb1 0%,#decbb1 var(--elapsed-percent),#82d7aa var(--elapsed-percent),#82d7aa 100%);color:#133526}.leave-strip.pending{background:#ffd17c;color:#754b09;border:1px dashed #c78c2b}.leave-strip .clip-text{overflow:hidden;text-overflow:ellipsis;padding:0 4px}.below{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.panel{background:white;border:1px solid #dce1e6;border-radius:12px;padding:18px;min-height:145px}.panel h2{font-size:18px;margin:0 0 14px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.record{border-top:1px solid #e7eaed;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;font-size:13px}.record:first-child{border-top:0}.rec-main strong{display:block;font-size:14px}.rec-main small{color:#65717b}.record-actions{display:flex;gap:5px;flex-wrap:wrap}.approve{color:#17774d;border-color:#6dbb91}.reject{color:#b51e2a;border-color:#efb6b9}.chip{display:inline-block;border-radius:20px;padding:4px 8px;font-size:11px;font-weight:700}.chip.approved{background:#dcf6e7;color:#17673f}.chip.pending{background:#fff1d6;color:#78570c}.chip.rejected,.chip.cancelled{background:#f1f2f3;color:#606b73}footer{font-size:12px;color:#717b82;text-align:center;margin:20px}.year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.year-month{background:white;border:1px solid #ddd;border-radius:12px;padding:16px;min-height:120px;text-align:left}.year-month strong{display:block;margin-bottom:9px}.year-month small{color:#69747f}.month-mini{height:8px;background:#edf0f2;border-radius:4px;overflow:hidden;margin:8px 0}.month-mini div{height:100%;background:#70bf96}dialog{border:0;box-shadow:0 20px 70px #0005;border-radius:14px;width:min(94vw,420px);padding:24px}dialog::backdrop{background:#1e27368c}.dialog-form{display:grid;gap:13px}.dialog-form h2{margin:0 0 6px}.dialog-form label,.login-panel label{display:grid;gap:6px;font-size:13px;font-weight:650}.dialog-form input,.login-panel input{border:1px solid #bbc4ce;border-radius:8px;padding:11px;width:100%;font-size:16px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end}.error{color:#b51e2a;font-size:13px;min-height:14px;margin:0}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-panel{width:min(100%,400px);background:white;padding:32px;border-radius:16px;box-shadow:0 10px 35px #00000012;display:grid;gap:18px}.login-panel h1{font-size:23px;margin:0}.login-panel button{padding:12px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#263138;color:#fff;border-radius:9px;padding:11px 18px;max-width:90vw;display:none;z-index:10}@media(max-width:760px){main{padding:12px 8px}.below{grid-template-columns:1fr}.brand{font-size:20px}.account span{max-width:100px}.toolbar-right{width:100%}.toolbar-right .primary{margin-left:auto}.month-control strong{min-width:145px}.year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.name-head,.emp-name{font-size:9px}.day-head{font-size:9px}.day-head b{font-size:10px}.calendar-head,.employee-line{grid-template-columns:var(--name-width,80px) repeat(var(--days),minmax(0,1fr))}}@media(orientation:landscape) and (max-height:530px){header{padding:6px 2%}main{padding-top:6px}.legend{margin:6px 2px}.toolbar{gap:6px}}

/* V100_013: dosud neregistrovani zamestnanci jsou sedi. */
.emp-name.not-registered{color:#89929e!important;font-weight:400!important;}

/* V100_014: pouze tlacitko vedouci a zobrazeni nove vydanych kodu. */
.registration-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
#codesDialog{width:min(94vw,660px)}
#codesOutput{box-sizing:border-box;width:100%;min-height:210px;padding:10px;border:1px solid #bbc4ce;border-radius:8px;font:12px/1.5 monospace;white-space:pre;resize:vertical}
.codes-info,.codes-hint{margin:0;font-size:13px;line-height:1.4}
.codes-hint{color:#55616c}

.dialog-form select{font:inherit;border:1px solid #bbc4ce;border-radius:8px;padding:11px;width:100%;font-size:16px}

/* V100_025: pouze vizualni oznaceni prihlaseneho uzivatele v kalendari a hlavicce. */
.account #who{font-size:20px;font-weight:800;color:#1c3c60;line-height:1.2}
.employee-line.is-current .emp-name{background:#d9eaff;color:#16446f;font-weight:800}
.employee-line.is-current .date-cell{background:#eaf3ff}
.employee-line.is-current .date-cell.weekend{background:#dfeeff}
.employee-line.is-current .date-cell.today{background:#d5e8ff}
@media(max-width:760px){.account #who{font-size:17px;max-width:220px}}

/* V100_026: docasny vyber terminu mysi/dotykem, pred odeslanim cervene. */
.employee-line.is-selectable .date-cell[data-day]{cursor:crosshair;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.employee-line.is-selectable .date-cell.is-selected,
.employee-line.is-selectable .date-cell.is-selected.weekend,
.employee-line.is-selectable .date-cell.is-selected.today{background:#d9434c!important;box-shadow:inset 0 0 0 1px #b51e2a}
.employee-line.is-selectable .leave-strip{pointer-events:none}

.legend i.selection-red{background:#d9434c}

/* V100_027: nedorucene zadosti jsou ulozene v databazi, schvalovani storna s historii. */
.leave-strip.rejected,.leave-strip.cancelled{background:#d1d5da;color:#34383e;min-width:0}
.leave-strip.cancel-pending{background:#ffd17c;color:#754b09;border:1px dashed #c78c2b}
.chip.cancel-pending{background:#fff1d6;color:#78570c}
.email-list{max-height:55vh;overflow:auto;display:grid;gap:8px}
.email-person{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1.5fr) auto;align-items:center;gap:7px;font-size:13px}
.email-person input{min-width:0;padding:7px;font-size:13px}
#emailDialog{width:min(95vw,790px)}
#mailDialog{width:min(95vw,520px)}
@media(max-width:550px){.email-person{grid-template-columns:1fr;gap:3px}}

/* V100_029: oddelena mobilni ergonomie bez zasahu do desktopoveho vzhledu. */
@media(max-width:760px){.calendar-outer{overscroll-behavior-x:contain}.month-control button,.toolbar-right button,.record-actions button{min-height:42px}.record{align-items:flex-start;flex-wrap:wrap}.toolbar-right{row-gap:8px}.dialog-actions{flex-wrap:wrap}dialog{max-height:90dvh;overflow-y:auto}.login-panel{padding:23px}.employee-line.is-current{height:30px}.employee-line.is-current .date-cell{height:29px}.employee-line.is-current .leave-strip{top:7px}}

/* V100_031: dotykovy vyber vedoucim v radku libovolneho zamestnance. */
@media(max-width:760px){.employee-line.is-selectable{min-height:30px}.employee-line.is-selectable .date-cell{height:29px}.employee-line.is-selectable .leave-strip{top:7px}}

/* V100_033: neschvaleny i zruseny pruh lze skryt pouze vedoucim. */
.employee-line.is-selectable .leave-strip.hideable-closed,.employee-line.is-current .leave-strip.hideable-closed{cursor:pointer;pointer-events:auto}
.leave-strip.hideable-closed:focus-visible{outline:2px solid #b51e2a;outline-offset:2px}

/* V100_034: mobil na sirku - posouvat radky svisle uvnitr kalendare. */
@media(orientation:landscape) and (max-height:530px) and (pointer:coarse){
 .calendar-outer{max-height:65dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
}

/* V100_035: horni ovladaci lista kalendare na mobilu zustava v jednom radku.
   PC vzhled se nemeni; u obzvlaste uzkych telefonu lze posunout samotnou listu. */
@media (max-width:960px){
 .toolbar{flex-wrap:nowrap;gap:5px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;align-items:center}
 .toolbar::-webkit-scrollbar{display:none}
 .toolbar .month-control,.toolbar .toolbar-right{display:flex;flex-wrap:nowrap;width:auto;gap:3px;flex-shrink:0;align-items:center}
 .toolbar .month-control strong{min-width:0;font-size:14px;white-space:nowrap;padding:0 3px}
 .toolbar button{font-size:12px;padding:6px 7px;min-height:34px;white-space:nowrap;border-radius:7px}
 .toolbar #zoomLabel{font-size:11px;white-space:nowrap}
 .toolbar #newRequest{font-size:0;margin-left:0}
 .toolbar #newRequest::after{content:'+ Žádost';font-size:12px}
}
@media (max-width:480px){
 .toolbar{gap:3px}
 .toolbar button{font-size:11px;padding:5px 5px;min-height:32px}
 .toolbar .month-control strong{font-size:12px;padding:0 1px}
 .toolbar #newRequest::after{font-size:11px}
 .toolbar #zoomLabel{font-size:10px}
}

/* V100_036: mobilni vyska patri kalendari, nikoliv menu.
   Dotykove zarizeni do sirky 960 px: kompaktni header, rozbalovaci profil,
   kratka ovladaci lista i legenda; deskop nezmenen. */
.mobile-account-toggle{display:none}
.account-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media (max-width:960px) and (pointer:coarse), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
 header{position:relative;z-index:5;min-height:0;height:auto;flex-wrap:nowrap;gap:5px;padding:5px 8px;align-items:center}
 header .brand{font-size:16px;line-height:1.25;white-space:nowrap;flex-shrink:0}
 header .brand span{font-size:9px;letter-spacing:0;margin-left:2px}
 header .brand b{display:none}
 header .account{display:flex;flex:1;min-width:0;justify-content:flex-end;flex-wrap:nowrap;gap:4px}
 header .account #who{display:block;font-size:12px;line-height:1.15;max-width:32vw;min-width:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
 header .mobile-account-toggle{display:inline-block;flex-shrink:0;font-size:12px;min-height:30px;padding:4px 8px}
 header .account-actions{position:absolute;right:7px;top:calc(100% - 1px);display:none;flex-direction:column;align-items:stretch;gap:3px;background:white;border:1px solid #dce1e6;border-radius:9px;padding:8px;box-shadow:0 7px 22px #0003;min-width:160px;max-width:86vw;z-index:7}
 header .account-actions.is-open{display:flex}
 header .account-actions button{text-align:left;font-size:13px;min-height:36px}
 main{padding:5px 7px 12px}
 .toolbar{margin:0;gap:3px}
 .toolbar button{min-height:30px;padding:4px 6px}
 .legend{margin:5px 1px 5px;font-size:10px;gap:8px;flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;scrollbar-width:none}
 .legend::-webkit-scrollbar{display:none}
 .legend span{gap:3px}
 .legend i{width:9px;height:9px;flex-shrink:0}
 .calendar-outer{max-height:calc(100dvh - 120px);min-height:150px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
}
@media(max-width:390px) and (pointer:coarse){
 header .brand{font-size:14px}
 header .brand span{font-size:8px}
 header .account #who{font-size:11px;max-width:25vw}
}

/* V100_036: historical dates remain visible but cannot start a new leave selection. */
.date-cell.past-day{cursor:default}

/* V100_038: svátky jsou nepracovní dny; přehledné i přes uložené pruhy dovolených. */
.day-head.holiday{background:#f8d6a4;color:#8e4611}
.day-head.holiday b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}
.date-cell.holiday,.employee-line.is-current .date-cell.holiday,
.employee-line.is-current .date-cell.today.holiday{background:#fff0d5!important;position:relative;z-index:2;pointer-events:none}
.date-cell.holiday{background-image:repeating-linear-gradient(135deg,transparent,transparent 5px,#efd6ac 5px,#efd6ac 6px)!important}
.legend i.holiday-gold{background:#f8d6a4;border:1px solid #dba65b}

/* V100_039: 1/2 dne, cislo poradi na konci kazde tydenni casti, bez dalsiho sloupce. */
.day-part-options{border:1px solid #dce1e6;border-radius:9px;margin:0;padding:9px 12px;display:grid;gap:7px}
.day-part-options[hidden]{display:none!important}
.day-part-options legend{font-size:13px;font-weight:700;padding:0 5px}
.day-part-options label{display:flex;align-items:center;gap:8px;font-weight:500}
.day-part-options input{width:auto!important;margin:0;accent-color:#b51e2a}
.leave-strip .clip-text{flex:1;min-width:0;text-align:center}
.leave-strip .week-number{flex-shrink:0;min-width:13px;height:13px;line-height:13px;text-align:center;border-radius:8px;background:#fff;color:#263138;font-weight:900;font-size:10px;margin-right:1px}
.leave-strip.half-am{top:1px;height:10px;border-radius:4px;font-size:9px}
.leave-strip.half-pm{top:12px;height:10px;border-radius:4px;font-size:9px}
.leave-strip.half-am .week-number,.leave-strip.half-pm .week-number{height:10px;min-width:11px;line-height:10px;font-size:9px}
.employee-line.is-selectable .leave-strip[data-action],.employee-line.is-current .leave-strip[data-action]{pointer-events:auto;cursor:pointer}
.leave-strip[data-action]:focus-visible{outline:2px solid #b51e2a;outline-offset:1px}
.leave-details-text{white-space:pre-line;font-size:14px;line-height:1.65}
@media(max-width:760px){.employee-line.is-selectable .leave-strip.half-am{top:2px;height:11px}.employee-line.is-selectable .leave-strip.half-pm{top:16px;height:11px}}

/* V100_040: kompaktni prehled 4 mesicu pro vedouciho, bez zmeny mobilniho kalendare. */
#fourMonthOpen[hidden],#fourMonthSection[hidden]{display:none!important}
@media(max-width:1023px),(pointer:coarse){#fourMonthOpen{display:none!important}}
#app.four-month-active{min-height:100dvh}
#app.four-month-active>header,#app.four-month-active .toolbar,#app.four-month-active .legend,
#app.four-month-active #calendarSection,#app.four-month-active #yearSection,#app.four-month-active .below{display:none!important}
#app.four-month-active main{max-width:none;margin:0;padding:4px 7px}
.four-nav{height:35px;display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 5px;font-size:13px}
.four-nav button{padding:3px 10px;min-width:29px;min-height:28px}
.four-nav strong{text-transform:capitalize;white-space:nowrap;min-width:265px;text-align:center;font-size:14px}
.four-nav #fourBack{margin-left:4px}
.four-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 9px;align-items:start}
.four-month{border:1px solid #d5dce3;border-radius:5px;overflow:hidden;min-width:0;background:#fff}
.four-month-title{display:block;width:100%;height:25px;padding:2px 0;background:#eaf0f5;color:#263d4b;border:0;border-bottom:1px solid #cbd3dc;border-radius:0;font-size:12px;font-weight:700;text-align:center;text-transform:capitalize;cursor:pointer}
.four-month-title:hover{background:#dceaf5;text-decoration:underline}
.four-month-body{overflow:hidden}
.mini-calendar{width:100%;min-width:100%;--calendar-min:100%;--name-width:94px}
.mini-calendar .calendar-head,.mini-calendar .employee-line{grid-template-columns:var(--name-width,94px) repeat(var(--days),minmax(0,1fr))}
.mini-calendar .calendar-head{position:static}
.mini-calendar .name-head,.mini-calendar .day-head{height:20px;font-size:8px;padding:0;line-height:9px}
.mini-calendar .name-head{padding-left:3px;display:flex;align-items:center}
.mini-calendar .day-head b{font-size:9px;line-height:10px}
.mini-calendar .employee-line,.mini-calendar .employee-line.is-current{height:var(--four-row-height,17px);min-height:0}
.mini-calendar .date-cell,.mini-calendar .employee-line.is-current .date-cell{height:calc(var(--four-row-height,17px) - 1px)}
.mini-calendar .emp-name,.mini-calendar .employee-line.is-current .emp-name{font-size:10px;padding:0 2px;line-height:1.1}
.mini-calendar .leave-strip{top:2px;height:calc(var(--four-row-height,17px) - 4px);font-size:9px;border-radius:2px;box-shadow:none;pointer-events:auto;cursor:pointer;z-index:3}
.mini-calendar .leave-strip.half-am{top:1px;height:calc(var(--four-row-height,17px) / 2 - 1px);font-size:8px}
.mini-calendar .leave-strip.half-pm{top:calc(var(--four-row-height,17px) / 2);height:calc(var(--four-row-height,17px) / 2 - 1px);font-size:8px}
.mini-calendar .leave-strip .clip-text{display:none}
.mini-calendar .leave-strip .week-number{font-size:9px;height:12px;line-height:12px;min-width:12px;margin:0 1px 0 auto}
.mini-calendar .leave-strip.half-am .week-number,.mini-calendar .leave-strip.half-pm .week-number{font-size:8px;height:9px;line-height:9px;min-width:9px}
@media(max-width:1023px){.four-grid{grid-template-columns:1fr}}

/* V100_041: pouze evidence zustatku; existujici kalendar bez zmeny. */
.balance-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0 0 8px;width:100%;font-size:12px;color:#215f7c}
.balance-stat{background:#edf3f6;border-radius:6px;min-width:0;text-align:center;padding:5px 2px;display:flex;flex-direction:column;gap:1px}
.balance-stat span{font-size:11px;white-space:nowrap}
.balance-stat strong{font-size:18px;line-height:1.2;font-variant-numeric:tabular-nums}
.balance-stat-remain{background:#e2f4e9;color:#17673f}
.balance-dialog{width:min(1160px,98vw);max-width:98vw;max-height:90vh}
.balance-dialog .dialog-form{max-width:none;width:auto;min-width:0}
.balance-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.balance-header h2{margin:0}
.balance-header label{display:flex;align-items:center;gap:7px;font-size:14px}
.balance-header select{width:100px;padding:5px}
.balance-table-scroll{max-height:62vh;overflow:auto;min-width:0}
.balance-table{width:100%;border-collapse:collapse;font-size:13px}
.balance-table th,.balance-table td{padding:5px 7px;border-bottom:1px solid #d9e6ee;text-align:left;white-space:nowrap}
.balance-table th{position:sticky;top:0;background:#eef5fa;z-index:1}
.balance-table td:first-child{font-weight:600}
.balance-table input[type=date]{width:135px;padding:5px;min-width:0}
.balance-table input.balance-days{width:72px;padding:5px;min-width:0}
.balance-table button{padding:4px 8px}
.balance-table .missing{color:#6f7c87;font-weight:normal}
.balance-table .negative{color:#ab2830;font-weight:700}
.balance-history{max-height:55vh;overflow:auto;line-height:1.6}
.balance-history .history-line{padding:6px 0;border-bottom:1px solid #dce5eb;font-size:13px}
@media(max-width:760px){.balance-info{gap:3px}.balance-stat{padding:4px 1px}.balance-stat span{font-size:10px}.balance-stat strong{font-size:17px}.balance-dialog{max-width:98vw}.balance-table th,.balance-table td{padding:4px}}

/* V100_042: zůstatek zaměstnance před kalendářem, nikoli až pod tabulkou. */
.employee-balance-strip{margin:5px 0 3px;min-width:0}
.employee-balance-strip .balance-info{margin:0}
@media(max-width:960px) and (pointer:coarse){
 .employee-balance-strip{margin:3px 0 2px}
 .employee-balance-strip .balance-info{gap:3px}
 .employee-balance-strip .balance-stat{padding:2px 1px;gap:0}
 .employee-balance-strip .balance-stat span{font-size:9px}
 .employee-balance-strip .balance-stat strong{font-size:15px;line-height:1.12}
}

/* V100_054 REPLACE: phone landscape only. Extra toolbar width used for request button,
   all original buttons, 4 full balance labels unchanged, and the full month remains visible at 100 %.
   The prior 26px / 9px condensed header has been completely replaced.
   Portrait, PC, and the manager layout are untouched. */
@media (orientation:landscape) and (max-height:600px) and (pointer:coarse){
 #app>header.employee-topline{
  box-sizing:border-box;min-height:42px;height:42px;
  width:100%;max-width:none;margin:0;
  padding:2px calc(4px + env(safe-area-inset-right,0px)) 2px calc(4px + env(safe-area-inset-left,0px));
  display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;
  gap:clamp(2px,.32vw,5px);white-space:nowrap;overflow:visible;
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
 }
 #app>header.employee-topline .brand,
 #app>header.employee-topline .account #who{display:none}
 #app>header.employee-topline .month-control{
  display:flex;align-items:center;flex:0 0 auto;flex-wrap:nowrap;
  gap:3px;min-width:0;margin:0
 }
 #app>header.employee-topline .month-control strong{
  min-width:0;max-width:none;font-size:clamp(11px,1.45vw,16px);
  font-weight:800;padding:0 2px;white-space:nowrap
 }
 #app>header.employee-topline .month-control button{
  min-height:38px;height:38px;font-size:clamp(11px,1.42vw,15px);
  line-height:1;padding:2px clamp(6px,.75vw,12px);border-radius:7px;white-space:nowrap
 }
 #app>header.employee-topline .toolbar-right{
  display:flex;align-items:center;flex:1 1 auto;width:auto;flex-wrap:nowrap;
  gap:3px;margin:0;min-width:0;white-space:nowrap
 }
 #app>header.employee-topline .toolbar-right button{
  min-height:38px;height:38px;line-height:1;
  font-size:clamp(10px,1.32vw,14px);border-radius:7px;
  padding:2px clamp(4px,.58vw,9px);white-space:nowrap;margin:0
 }
 #app>header.employee-topline #zoomLabel{font-size:clamp(10px,1.25vw,14px);white-space:nowrap;margin:0 2px;padding:0}
 #app>header.employee-topline #newRequest{flex:1 1 auto;min-width:70px;font-size:0;padding:2px clamp(8px,1vw,14px);min-height:38px;height:38px;margin:0}
 #app>header.employee-topline #newRequest::after{content:'+ Žádost';font-size:clamp(13px,1.6vw,17px);white-space:nowrap}
 #app>header.employee-topline .employee-balance-strip{
  display:block;flex:0 0 auto;width:auto;max-width:none;
  margin:0 2px 0 0;padding:0;min-width:0;overflow:visible
 }
 #app>header.employee-topline .balance-info{
  display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;
  width:100%;max-width:none;gap:clamp(4px,.7vw,12px);margin:0;padding:0;
  line-height:1.05;overflow:visible;white-space:nowrap
 }
 #app>header.employee-topline .balance-stat{
  box-sizing:border-box;min-width:0;min-height:0;height:auto;width:auto;
  display:inline-flex;flex:0 1 auto;flex-direction:row;align-items:baseline;justify-content:flex-start;
  background:transparent;border:0;border-radius:0;
  padding:0;margin:0;gap:2px;line-height:1.05;white-space:nowrap
 }
 #app>header.employee-topline .balance-stat span{
  font-size:clamp(10px,1.34vw,16px);font-weight:800;letter-spacing:-.2px;white-space:nowrap
 }
 #app>header.employee-topline .balance-stat strong{
  font-size:clamp(12px,1.72vw,21px);font-weight:900;line-height:1;white-space:nowrap
 }
 #app>header.employee-topline .balance-stat-remain{background:transparent;color:#17673f}
 #app>header.employee-topline .account{flex:0 0 auto;min-width:0;gap:0;margin:0;padding:0}
 #app>header.employee-topline .mobile-account-toggle{
  display:inline-flex;align-items:center;justify-content:center;min-height:38px;height:38px;
  min-width:clamp(58px,7.6vw,82px);font-size:clamp(11px,1.32vw,15px);font-weight:800;
  border-radius:7px;padding:2px clamp(8px,1vw,14px);line-height:1
 }
 #app>main>.toolbar:empty{display:none}
 #app>main{
  width:100%;max-width:none;margin:0;padding:2px 0 0;
  padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)
 }
 #app>main>.legend{margin:3px 4px 4px;font-size:clamp(10px,1.15vw,13px);gap:clamp(7px,1.6vw,18px)}
 #app>main>#calendarSection{
  width:100%;height:auto;max-height:none;min-height:0;
  overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;
  overscroll-behavior-y:auto
 }
 #app>main>#calendarSection>.calendar{
  height:auto;min-height:0;display:block
 }
 #app>main>#calendarSection>.calendar>.calendar-head{height:46px}
 #app>main>#calendarSection>.calendar>.employee-line{
  height:var(--landscape-row-height,30.4px)!important;
  min-height:var(--landscape-row-height,30.4px);
  flex:none
 }
 #app>main>.below{margin-top:6px}
 #app>main>#calendarSection>.calendar>.employee-line>.date-cell{height:100%!important}
 #app>main>#calendarSection>.calendar .name-head{
  display:flex;align-items:center;font-size:clamp(12px,1.55vw,17px);padding:4px 7px
 }
 #app>main>#calendarSection>.calendar .emp-name{
  font-size:clamp(11px,1.45vw,16px);font-weight:750;padding:0 5px
 }
 #app>main>#calendarSection>.calendar .day-head{height:46px;font-size:clamp(9px,1.12vw,12px)}
 #app>main>#calendarSection>.calendar .day-head b{font-size:clamp(11px,1.45vw,16px)}
 #app>main>#calendarSection>.calendar>.employee-line .leave-strip:not(.half-am):not(.half-pm){
  top:50%!important;transform:translateY(-50%);height:clamp(19px,3.7dvh,27px);
  font-size:clamp(10px,1.3vw,13px)
 }
 #app>main>#calendarSection>.calendar>.employee-line .leave-strip.half-am{
  top:4px!important;height:calc(50% - 6px);min-height:10px
 }
 #app>main>#calendarSection>.calendar>.employee-line .leave-strip.half-pm{
  top:calc(50% + 2px)!important;height:calc(50% - 6px);min-height:10px
 }
}
/* On narrower phones keep every label unchanged; use proportionally smaller controls. */
@media (orientation:landscape) and (max-height:600px) and (max-width:720px) and (pointer:coarse){
 #app>header.employee-topline{gap:1px;padding-left:2px;padding-right:2px}
 #app>header.employee-topline .month-control{gap:1px}
 #app>header.employee-topline .month-control button{padding:1px 4px;font-size:10px;min-height:37px;height:37px}
 #app>header.employee-topline .month-control strong{font-size:10px;padding:0 1px}
 #app>header.employee-topline .toolbar-right{gap:1px}
 #app>header.employee-topline .toolbar-right button{padding:1px 3px;font-size:10px;min-height:37px;height:37px}
 #app>header.employee-topline #newRequest{min-width:57px;padding:1px 5px;min-height:37px;height:37px}
 #app>header.employee-topline #newRequest::after{font-size:12px}
 #app>header.employee-topline #zoomLabel{font-size:10px;margin:0}
 #app>header.employee-topline .employee-balance-strip{margin-left:0;margin-right:1px}
 #app>header.employee-topline .balance-info{gap:3px}
 #app>header.employee-topline .balance-stat{gap:1px}
 #app>header.employee-topline .balance-stat span{font-size:10px;letter-spacing:-.3px}
 #app>header.employee-topline .balance-stat strong{font-size:12px}
 #app>header.employee-topline .mobile-account-toggle{padding:1px 5px;font-size:10px;min-width:50px;min-height:37px;height:37px}
}

/* V100_055: Payroll opening form; annual carryover years are read-only. */
.balance-table th,.balance-table td{padding:5px 5px}
.balance-table .opening-total,.balance-table .opening-used{width:82px;min-width:65px;box-sizing:border-box}
@media print{#app{display:none}}

/* V100_061 REPLACE: single read-only personal leave-history dialog. */
.my-leave-history-dialog{width:min(94vw,690px);max-height:90dvh;overflow-y:auto}
.my-leave-history-list{max-height:65dvh;overflow-y:auto;min-height:45px}
.my-leave-year{margin:0 0 12px}
.my-leave-year h3{font-size:16px;margin:5px 0 6px}
.my-leave-row{display:flex;justify-content:space-between;align-items:baseline;gap:15px;padding:7px 2px;border-bottom:1px solid #e2e6eb;font-size:13px}
.my-leave-row strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.my-leave-total{font-weight:700;background:#eef3f6;padding:9px 6px;border-radius:5px}

/* V100_062: vyber jednotlivych budoucich pracovnich dnu */
.cancel-day-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:46dvh;overflow-y:auto}
.cancel-day{display:flex!important;align-items:center;gap:8px;border:1px solid #d8e1e7;border-radius:9px;padding:11px;background:#f7faf8;cursor:pointer;font-weight:600!important}
.cancel-day input{width:18px!important;height:18px;flex:0 0 18px;margin:0;accent-color:#b51e2a}
.cancel-day:has(input:checked){background:#e0f4e8;border-color:#73b58f}
