:root{--bg: #0F1112;--surface: #17191B;--surface-2: #1F2225;--surface-3: #25292D;--border: #2A2E31;--border-strong: #3A4045;--text: #F5F5F4;--text-dim: #A8A29E;--text-mute: #78716C;--crimson: #D40011;--crimson-hi: #EA1A2B;--crimson-bg: rgba(212, 0, 17, .16);--crimson-text: #FF7A85;--rental: #3D63DC;--rental-text: #9DB6FF;--ok: #2EC27E;--ok-text: #6EE0A8;--loss: #E8323A;--warn: #F0A31A;--holiday: #B07CFF;--fs-bg: #23272B;--sun-bg: #1B2230;--concert: #19C2C7;--party: #F0479E;--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Barlow Condensed", "IBM Plex Sans", sans-serif;--radius: 8px;--radius-lg: 10px;--ctl: 36px;--row: 34px;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.4;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--crimson-hi)}button{font:inherit;color:inherit}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:600;letter-spacing:.01em;text-wrap:balance}h1{font-size:30px;line-height:1}h2{font-size:22px;line-height:1.1}h3{font-size:18px;line-height:1.1}.dsp{font-family:var(--font-display);font-weight:600;letter-spacing:.01em}.title-lg{font-size:30px;line-height:1}.title-md{font-size:24px;line-height:1}:focus-visible{outline:2px solid var(--crimson);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--ctl);padding:0 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--surface-2);color:var(--text)}.btn:disabled{opacity:.5;cursor:default}.btn.pri{background:var(--crimson);border-color:var(--crimson);color:#fff}.btn.pri:hover{background:var(--crimson-hi)}.btn.sm{height:30px;padding:0 10px;font-size:13px}.btn.icon{width:var(--ctl);padding:0}.btn.danger{color:var(--loss)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.seg>button,.seg>a{height:calc(var(--ctl) - 2px);padding:0 12px;border:0;background:transparent;color:var(--text-dim);font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.seg>button:hover,.seg>a:hover{color:var(--text)}.seg>.on{background:var(--crimson-bg);color:var(--text);box-shadow:inset 0 -2px 0 var(--crimson)}.seg.fill{display:flex}.seg.fill>button{flex:1}.lbl{display:block;flex:none;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}input,select,textarea{font:inherit;font-size:15px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:0 10px;height:var(--ctl);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--crimson);outline-offset:1px}textarea{height:auto;min-height:72px;padding:8px 10px;resize:vertical}input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--crimson)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}input[type=file]{padding:5px 8px;font-size:13px}.field{display:flex;flex-direction:column;min-width:0}.check{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;white-space:nowrap}.chip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:11px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.chip.ok{background:#2ec27e2e;color:var(--ok-text)}.chip.warn{background:#f0a31a33;color:#ffc85c}.chip.dim{background:var(--surface-2);color:var(--text-dim)}.chip.crimson{background:var(--crimson-bg);color:var(--crimson-text)}.chip.rental{background:#3d63dc38;color:var(--rental-text)}.chip.loss{background:#e8323a2e;color:#ff8a90}.card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-width:0}.row{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:4px 0;border-bottom:1px solid #22262A;min-width:0}.row>:first-child{color:var(--text-dim);flex:none}.row>:last-child{text-align:right;min-width:0;overflow-wrap:anywhere}.row:last-child{border-bottom:0}.alert{width:18px;height:18px;border-radius:4px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;color:var(--bg);flex:none}.alert.red{background:var(--loss);color:#fff}.alert.yellow{background:var(--warn)}.alert.grey{background:var(--text-mute)}.msg-error{padding:8px 12px;border-radius:var(--radius);background:#e5484d24;color:#f5f5f4;font-size:14px}.msg-ok{padding:8px 12px;border-radius:var(--radius);background:#3fb27f24;color:#f5f5f4;font-size:14px}.hint{font-size:13px;color:var(--text-dim)}.dim{color:var(--text-dim)}.mute{color:var(--text-mute)}.topbar{height:56px;display:flex;align-items:center;gap:20px;padding:0 24px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:env(safe-area-inset-top,0px);z-index:20}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:600;font-size:26px;color:var(--text);letter-spacing:.08em}.brand span{color:var(--text);font-weight:600}.brand:hover{color:var(--text)}.brand-logo{height:.78em;width:auto;display:block}.nav{display:flex;gap:2px;margin-left:8px}.nav a{padding:8px 12px;border-radius:var(--radius);font-size:15px;font-weight:500;color:var(--text-dim)}.nav a:hover{color:var(--text);background:var(--surface-2)}.nav a.on{color:var(--text);background:var(--crimson-bg);box-shadow:inset 0 -2px 0 var(--crimson)}.userchip{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:18px;background:var(--surface-2);font-size:14px}.avatar{width:26px;height:26px;border-radius:50%;background:var(--rental);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px}.page{padding:14px 24px 24px;display:flex;flex-direction:column;gap:12px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--text-dim)}.legend>span{display:inline-flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%;flex:none}.dow-fs{font-weight:700;text-transform:uppercase;color:var(--text)}.sw{width:14px;height:14px;border-radius:3px;border:1px solid var(--border-strong);flex:none}.menu-btn{position:relative}.menu-badge{position:absolute;top:-6px;right:-6px;height:18px;padding:0 5px}.mobile-only{display:none!important}@media(max-width:900px){.topbar{padding:0 12px;gap:10px}.nav{display:none}.page{padding:10px 12px 20px}.desktop-only{display:none!important}.mobile-only{display:revert!important}.brand{font-size:22px;gap:8px}.userchip{padding:4px}.nav-panel{position:fixed;left:0;right:0;top:calc(56px + env(safe-area-inset-top,0px));bottom:0;z-index:19;background:#08090a99}.nav-panel>nav{display:flex;flex-direction:column;gap:2px;padding:8px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 20px 40px #00000080}.nav-panel a,.nav-panel button{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;border:0;border-radius:var(--radius);background:transparent;font-size:16px;font-weight:500;color:var(--text-dim);text-align:left;cursor:pointer}.nav-panel a:hover,.nav-panel button:hover{color:var(--text);background:var(--surface-2)}.nav-panel a.on{color:var(--text);background:var(--crimson-bg);box-shadow:inset 3px 0 0 var(--crimson)}.nav-panel button{border-top:1px solid var(--border);border-radius:0;margin-top:4px}}dialog.modal{border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);padding:0;width:min(1000px,calc(100vw - 32px));height:min(920px,calc(100vh - 48px));box-shadow:0 30px 80px #0009}dialog.modal::backdrop{background:#08090ab8}.modal-head{display:flex;flex-direction:column;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface-2)}.modal-head-row{display:flex;align-items:center;gap:12px;min-width:0}.modal-head-row>.btn.icon{margin-left:auto}.ellipsis{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}dialog.modal.unsaved{width:min(560px,calc(100vw - 32px));height:auto}.field.changed .lbl{color:var(--warn)}.field.changed input,.field.changed select,.field.changed textarea,.field.changed .seg{border-color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}.modal-body{padding:16px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px;overflow:auto;flex:1;min-height:0;align-content:start}.modal-body.fill{overflow:hidden;align-content:stretch;align-items:stretch}.modal-body.fill>.card{min-height:0;overflow:auto}.tbl.scroll{overflow:auto;flex:1;min-height:0}.modal-body.finance{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.modal-body.lineup{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.modal-foot{display:flex;gap:8px;padding:10px 16px;border-top:1px solid var(--border);align-items:center}@media(max-width:900px){.modal-body,.modal-body.finance,.modal-body.lineup{grid-template-columns:1fr}}@media(max-width:700px){.modal-body.fill{overflow:auto;align-content:start;align-items:start}.modal-body.fill>.card{overflow:visible;min-height:auto}.modal-body.fill .tbl.scroll{flex:none;max-height:60vh}}.tbl{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface)}.tbl-scroll{overflow-x:auto}.hd{height:36px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);padding:0 8px;display:flex;align-items:center;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.hd>span{overflow:hidden;text-overflow:ellipsis}.cell{height:var(--row);padding:0 8px;display:flex;align-items:center;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.tbl>div:not(:has(.hd)):hover,.tbl>form:hover,.tbl>button:hover{outline:1px solid var(--text-mute);outline-offset:-1px}.row:hover{outline:1px solid var(--border-strong);outline-offset:-1px;border-radius:4px}.cell.ed{cursor:pointer}.tbl button.cell{border:0;background:transparent}.cell.ed:hover{background:#ffffff14;border-radius:6px}.picker-input:focus{outline:none;background:#ffffff14;border-color:var(--border-strong)}.cell select,.cell input{height:28px;padding:0 6px;font-size:13px}.cell input[type=checkbox]{height:18px;width:18px}.evname{font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:.01em}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}.tab{height:42px;padding:0 16px;border:0;background:transparent;color:var(--text-dim);font-size:15px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;border-bottom:3px solid transparent;white-space:nowrap}.tab:hover{color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--crimson)}@media(max-width:900px){.tabs{overflow-x:auto}.tab{height:40px;padding:0 12px;font-size:14px}}.print-page{background:#fff;color:#111;min-height:100%}.print-page .no-print{background:var(--bg);color:var(--text)}.sheet{max-width:210mm;margin:0 auto;padding:14mm 12mm;font-family:var(--font);font-size:12pt;color:#111}.sheet-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:2px solid #111;padding-bottom:6px;margin-bottom:8px}.sheet-title{font-family:var(--font-display);font-weight:700;font-size:24pt;letter-spacing:.02em}.sheet-note{margin:0 0 10px;font-size:11pt}.sheet-table{width:100%;border-collapse:collapse;margin-bottom:14px;page-break-inside:auto}.sheet-table th,.sheet-table td{border:1px solid #333;padding:3px 6px;height:22px;font-size:11pt;text-align:left}.sheet-table th{background:#eee;font-size:9.5pt;text-transform:uppercase;letter-spacing:.04em}.sheet-table th.sec{background:#111;color:#fff;font-family:var(--font-display);font-size:13pt;letter-spacing:.04em;text-transform:none}.sheet-table td.num{text-align:right;width:32px;color:#555}.sheet-table tr{page-break-inside:avoid}@media print{.topbar,.no-print,dialog{display:none!important}body,.print-page{background:#fff!important}.sheet{max-width:none;padding:0}@page{size:A4;margin:12mm}}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-content:start}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.grid-23{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:14px;align-items:start}.grid-side{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}@media(max-width:1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.grid-3,.grid-2,.grid-23,.grid-side{grid-template-columns:1fr}}.stars{display:inline-flex;gap:1px;align-items:center}.stars>span,.stars>button{font-size:16px;line-height:1;color:var(--text-mute);border:0;background:transparent;padding:0}.stars>button{cursor:pointer;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.stars>button:hover{background:var(--surface-3);color:var(--warn)}.stars .on{color:var(--warn)}.linkchip{display:inline-flex;align-items:center;height:22px;padding:0 6px;border-radius:4px;border:1px solid var(--border-strong);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text-dim)}.linkchip:hover{color:var(--text);border-color:var(--text-dim)}.embed{width:100%;border:0;border-radius:var(--radius);background:var(--bg);display:block}.rowlink{cursor:pointer}.rowlink:hover{background:var(--surface-2)}.seg.sm>button{height:26px;padding:0 8px;font-size:12px}.timebox{display:flex;align-items:center;gap:2px;min-width:0}.timebox select{width:auto;flex:1 1 0;min-width:0;padding:0 2px 0 6px}.timebox .colon{color:var(--text-dim);flex:none}.card.changed-card{border-color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}.day-group{outline:1px solid var(--border-strong);outline-offset:-1px}.cal-add{position:absolute;right:4px;top:3px;width:20px;height:20px;border:0;border-radius:4px;background:var(--surface-3);color:var(--text-dim);font-size:14px;line-height:1;cursor:pointer;opacity:0}.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}.cal-add:hover{color:var(--text);background:var(--crimson-bg)}.cal-day.picking{cursor:crosshair}.cal-day.picking:hover{outline:2px solid var(--warn);outline-offset:-2px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-mute);background-clip:padding-box}.back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;height:32px;padding:0 10px 0 8px;margin-left:-8px;border-radius:var(--radius);font-size:15px;font-weight:500;color:var(--text-dim)}.back:hover{color:var(--text);background:var(--surface-2)}.dayline{display:flex;align-items:center;gap:6px;height:26px;width:100%;padding:0 8px 0 9px;border:0;background:transparent;text-align:left;font-size:15px;color:var(--text);cursor:pointer}.dayline.tall{height:var(--row)}.dayline-num{width:22px;flex:none;text-align:right}.dayline-dow{width:22px;flex:none;font-size:13px;color:var(--text-mute)}.dayline-dow.dow-fs{color:var(--text)}.dayline-name{flex:1;min-width:0;font-family:var(--font-display);font-weight:600;letter-spacing:.01em;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chev{flex:none;font-size:10px;color:var(--text-mute)}.dayline.other{height:18px;font-size:12px;color:var(--text-mute);cursor:default}.dayline.other>.ellipsis{flex:1}@media(max-width:1400px)and (min-width:901px){.nav a{padding:8px 9px;font-size:14px}.topbar{gap:12px;padding:0 16px}}@media(max-width:1250px)and (min-width:901px){.userchip>span:last-child{display:none}.userchip{padding:4px}}.expand{display:flex;flex-direction:column;gap:8px;padding:8px 12px 12px;border-top:1px dashed var(--border-strong);background:var(--surface-2)}.expand>button.cell{border:1px dashed var(--border-strong);border-radius:6px;background:transparent}.msg-warn{padding:6px 10px;border-radius:var(--radius);background:#f0a31a29;color:var(--text);font-size:13px}.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}.slot{display:flex;flex-direction:column;min-width:0}.slot>.lbl{margin-bottom:2px}.slot>.cell,.tbl .slot>.cell{height:32px;width:100%;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);justify-content:flex-start}.slot>.cell:disabled{opacity:.7}.slot>.cell.ed:hover,.tbl .slot>.cell.ed:hover{background:#ffffff14}.slot.missing>.lbl{color:var(--warn)}.slot.missing>.cell,.tbl .slot.missing>.cell{border-color:var(--warn)}.slot.missing>.cell:empty:before{content:"chybí";color:var(--warn);font-style:italic;font-size:13px}.picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#08090ab3}.picker-sheet{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 12px;background:var(--surface)}.picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.picker-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2)}@media(max-width:700px){.tbl.wide{overflow-x:auto}.tbl.wide>*{min-width:720px}.toolbar>.seg,.page>.seg{max-width:100%;overflow-x:auto;flex:none}dialog.modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.modal-head{padding:8px 12px}.modal-head-row:first-child>.chip{display:none}.modal-head-row+.modal-head-row{flex-wrap:wrap;gap:8px}.modal-head-row+.modal-head-row>.hint{display:none}.modal-head .seg>button{padding:0 8px;font-size:13px}.modal-body{padding:12px;gap:12px}.modal-foot{padding:8px 12px;flex-wrap:wrap}dialog.modal .tabs{padding:0 8px!important}}
