:root{--bg: #f3f4f6;--surface: #fff;--surface-2: #f7f8fa;--text: #1a1a1a;--muted: #70757d;--line: #dcdfe4;--topbar: #1f2d3d;--topbar-text: #fff;--topbar-link: #cfe3ff;--primary: #2271b1;--primary-hover: #185a8d;--primary-text: #fff;--shadow: 0 1px 2px rgba(0, 0, 0, .05);--ok-bg: #e6f4ea;--ok-text: #176335;--off-bg: #eceef1;--off-text: #646970;--diff-old-bg: #fdecec;--diff-new-bg: #e6f4ea;--approve: #15803d;--reject: #991b1b}[data-theme=dark]{--bg: #000;--surface: #0c0c0d;--surface-2: #161618;--text: #f2f2f2;--muted: #9a9aa0;--line: #2a2a2d;--topbar: #000;--topbar-text: #fff;--topbar-link: #8ab4ff;--primary: #3a8ee6;--primary-hover: #59a2ed;--primary-text: #fff;--shadow: 0 1px 2px rgba(0, 0, 0, .65);--ok-bg: #0f2417;--ok-text: #89d7a5;--off-bg: #222225;--off-text: #aaaab0;--diff-old-bg: #3f1d25;--diff-new-bg: #123524;--approve: #15803d;--reject: #991b1b}*{box-sizing:border-box}html,body{max-width:100%;min-height:100%;overflow-x:hidden}body{margin:0;color:var(--text);background:var(--bg);font:15px/1.5 system-ui,Segoe UI,Roboto,Arial,sans-serif}a{color:var(--primary);text-underline-offset:3px}button,input,select,textarea{font:inherit}.topbar{display:flex;align-items:center;gap:.65rem 1rem;padding:.7rem 1rem;color:var(--topbar-text);background:var(--topbar);border-bottom:1px solid var(--line)}.brand{color:inherit;font-size:1.05rem;font-weight:760;text-decoration:none}.topbar nav{display:flex;flex:1;gap:.4rem 1rem;align-items:center}.topbar nav a{color:var(--topbar-link);text-decoration:none;white-space:nowrap}.topbar nav a:hover{color:var(--topbar-text)}.nav-toggle{display:none;width:40px;height:38px;color:var(--topbar-text);background:transparent;border:1px solid rgba(255,255,255,.32);border-radius:7px}.nav-disabled{color:var(--muted);white-space:nowrap;cursor:not-allowed}.userline{color:var(--topbar-link);font-size:.84rem;white-space:nowrap}.topbar form{margin:0}.wrap{width:min(1100px,100%);margin:1.4rem auto;padding:0 1rem}h1{margin:0 0 1rem;font-size:clamp(1.35rem,2vw,1.65rem);line-height:1.2}h2{margin:0 0 .35rem;font-size:1.08rem}p{margin:.25rem 0}.muted{color:var(--muted)}.card{margin-bottom:1.1rem;padding:1.1rem;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.dashcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.metric{display:flex;min-height:112px;flex-direction:column;justify-content:space-between}.metric span{color:var(--muted);font-size:.88rem;font-weight:650}.metric strong{color:var(--primary);font-size:2rem;line-height:1}.intro{display:flex;gap:1.2rem;align-items:center;justify-content:space-between}.filters,.bulkbar,.form-actions{display:flex;gap:.7rem;align-items:end;flex-wrap:wrap}.filters{margin-top:1rem;padding:.8rem}.filters label,.form-grid label,.shift-row label{display:grid;gap:.25rem;color:var(--muted);font-size:.82rem;font-weight:700}.filters input,.filters select,.bulkbar select,.form-grid input,.form-grid select,.form-grid textarea,.shift-row input{width:100%;min-height:38px;padding:.48rem .6rem;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:7px}.bulkbar{margin:.7rem 0}.form-stack{max-width:900px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.form-grid .wide{grid-column:1 / -1}.form-grid .check,.shift-row .check{display:flex;align-items:center;color:var(--text)}.form-grid .check input,.shift-row .check input{width:auto;min-height:auto}.form-actions{margin-top:1rem}.form-errors{color:#8f2525;background:#feecec}.shift-list{display:grid;gap:.7rem}.shift-row{display:grid;grid-template-columns:1.4fr repeat(4,1fr) auto auto;gap:.6rem;align-items:end;padding:.7rem;background:var(--surface-2);border:1px solid var(--line);border-radius:8px}.shift-add{margin-top:.7rem}.assignment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.assignment-grid fieldset{min-width:0;border:1px solid var(--line);border-radius:8px}.assignment-grid legend{font-weight:750}.checklist{display:grid;gap:.35rem;max-height:360px;overflow-y:auto}.checklist label{overflow-wrap:anywhere}.btn{display:inline-flex;min-height:38px;align-items:center;justify-content:center;padding:.48rem .85rem;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:7px;cursor:pointer;font-weight:650;text-decoration:none;white-space:nowrap}.btn:hover{border-color:var(--primary)}.btn-primary{color:var(--primary-text);background:var(--primary);border-color:var(--primary)}.btn-primary:hover{color:var(--primary-text);background:var(--primary-hover)}.btn-ghost{color:var(--topbar-text);background:transparent;border-color:#ffffff52}.btn-small{min-height:30px;padding:.26rem .55rem;font-size:.84rem}.theme-toggle{width:38px;height:38px;padding:0;color:var(--topbar-text);background:transparent;border:1px solid rgba(255,255,255,.32);border-radius:7px;cursor:pointer}.table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:10px}.grid{width:100%;border-collapse:collapse;background:var(--surface)}.grid th,.grid td{padding:.62rem .7rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.grid th{color:var(--muted);background:var(--surface-2);font-size:.8rem;letter-spacing:.02em;text-transform:uppercase}.grid td{font-size:.9rem}.grid tbody tr:last-child td{border-bottom:0}.badge,.status{display:inline-flex;align-items:center;padding:.12rem .48rem;border-radius:999px;font-size:.76rem;font-weight:700}.badge{color:var(--primary);background:color-mix(in srgb,var(--primary) 14%,transparent)}.status-ok{color:var(--ok-text);background:var(--ok-bg)}.status-off{color:var(--off-text);background:var(--off-bg)}.detail-card{max-width:760px}.detail-head{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--line)}.details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.details div{padding:.85rem 0;border-bottom:1px solid var(--line)}.details div:nth-child(odd){padding-right:1rem}.details dt{color:var(--muted);font-size:.8rem;font-weight:700}.details dd{margin:.18rem 0 0;overflow-wrap:anywhere}.flash{margin-bottom:1rem;padding:.65rem .9rem;border-radius:8px}.flash-ok{color:var(--ok-text);background:var(--ok-bg)}.sitefoot{margin-top:2rem;padding:1.2rem;color:var(--muted);background:var(--surface);border-top:1px solid var(--line);font-size:.8rem;text-align:center}.sitefoot h2{margin:0;color:var(--muted);font-size:.8rem;font-weight:400;line-height:1.7}.sitefoot a{color:var(--link);text-decoration:none}.sitefoot a:hover{text-decoration:underline}.approval-list{display:grid;gap:1rem}.approval-card{margin:0}.approval-card>header,.attendance-meta,.approval-actions{display:flex;gap:.65rem 1rem;align-items:center;flex-wrap:wrap}.approval-card>header{justify-content:space-between;padding-bottom:.65rem;border-bottom:1px solid var(--line)}.approval-select{font-weight:750}.attendance-meta{padding:.75rem 0;color:var(--muted)}.attendance-meta strong{color:var(--text)}.diff-grid{border:1px solid var(--line);border-radius:8px;overflow:hidden}.diff-head,.diff-row{display:grid;grid-template-columns:minmax(7rem,.7fr) repeat(2,minmax(0,1fr));gap:.75rem;padding:.55rem .7rem}.diff-head{color:var(--muted);background:var(--surface-2);font-size:.78rem;text-transform:uppercase}.diff-row{border-top:1px solid var(--line)}.diff-row>strong{color:var(--muted);font-size:.82rem}.diff-row span{min-width:0;overflow-wrap:anywhere}.diff-row.is-changed .diff-old,.diff-row.is-changed .diff-new{margin:-.2rem;padding:.2rem;border-radius:5px}.diff-row.is-changed .diff-old{background:var(--diff-old-bg)}.diff-row.is-changed .diff-new{background:var(--diff-new-bg)}.approval-actions{margin-top:.8rem}.approval-actions form{display:flex;gap:.5rem;align-items:center;margin:0}.approval-actions input,#approval-bulk input{min-height:38px;padding:.48rem .6rem;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:7px}.btn-approve,.btn-reject{color:#fff;border-color:transparent}.btn-approve,.btn-approve:hover{color:#fff;background:var(--approve)}.btn-reject,.btn-reject:hover{color:#fff;background:var(--reject)}.photo-picker{display:grid;gap:.55rem;padding:.8rem;background:var(--surface-2);border:1px solid var(--line);border-radius:8px}.photo-preview{display:grid;gap:.5rem}.photo-preview-item{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:.65rem;align-items:center}.photo-preview-item img{width:72px;height:54px;object-fit:cover;border-radius:6px}.evidence-block{margin-top:1rem}.evidence-block h3{margin:0 0 .6rem;font-size:.95rem}.evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:.7rem}.evidence-grid a{display:grid;gap:.3rem;color:var(--text);text-decoration:none}.evidence-grid img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border:1px solid var(--line);border-radius:8px}.evidence-grid span{color:var(--muted);font-size:.75rem}.login-page{display:grid;min-height:100vh;place-items:center;padding:1rem}.login-shell{width:min(420px,100%)}.login-card{padding:clamp(1.25rem,5vw,2rem);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 35px #0000001f}.login-brand{margin-bottom:1.4rem;color:var(--primary);font-size:.92rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.login-form{display:grid;gap:.9rem}.login-form label{display:grid;gap:.3rem;font-size:.9rem;font-weight:700}.login-form input{width:100%;padding:.62rem .7rem;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:7px;outline:none}.login-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.login-form [role=alert]{margin:0;color:#c43838;font-size:.85rem}.login-form .btn{width:100%;margin-top:.25rem}.login-theme{position:fixed;top:.8rem;right:.8rem;color:var(--text);border-color:var(--line)}@media(max-width:720px){.topbar{flex-wrap:wrap;align-items:center}.nav-toggle{display:inline-grid;place-items:center;margin-left:auto}.topbar nav{display:none;order:5;width:100%;max-height:calc(100vh - 80px);align-items:stretch;flex-basis:100%;flex-direction:column;overflow:auto;padding:.55rem 0}.topbar nav.is-open{display:flex}.topbar nav a,.topbar nav .nav-disabled{width:100%;padding:.65rem .75rem;white-space:normal;border-radius:7px}.topbar nav a:hover{background:#ffffff14}.userline{margin-left:auto}.wrap{margin:.9rem auto;padding:0 .75rem}.dashcards{grid-template-columns:repeat(2,minmax(0,1fr))}.dashcards .metric:last-child{grid-column:1 / -1}.intro{align-items:stretch;flex-direction:column}.intro .btn{width:100%}.table-wrap{overflow:visible;border:0}.grid,.grid tbody,.grid tr,.grid td{display:block;width:100%}.grid thead{position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);overflow:hidden}.grid tbody{display:grid;gap:.7rem}.grid tr{padding:.55rem .7rem;background:var(--surface);border:1px solid var(--line);border-radius:9px}.grid td{display:grid;grid-template-columns:minmax(7rem,37%) minmax(0,1fr);gap:.6rem;padding:.38rem 0;border:0;white-space:normal}.grid td:before{content:attr(data-label);color:var(--muted);font-size:.8rem;font-weight:700}.grid td[data-label=""]:before{display:none}.details{grid-template-columns:1fr}.details div:nth-child(odd){padding-right:0}.filters,.bulkbar,.form-actions{align-items:stretch;flex-direction:column}.form-grid,.shift-row,.assignment-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.diff-head{display:none}.diff-row{grid-template-columns:1fr;gap:.2rem;padding:.7rem}.diff-row span:before{display:block;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase}.diff-row span:nth-child(2):before{content:"Původní"}.diff-row span:nth-child(3):before{content:"Navržené"}.approval-actions,.approval-actions form{align-items:stretch;flex-direction:column}.photo-preview-item{grid-template-columns:64px minmax(0,1fr)}.photo-preview-item .btn{grid-column:1 / -1}}@media(max-width:410px){.userline{display:none}.dashcards{grid-template-columns:1fr}.dashcards .metric:last-child{grid-column:auto}}@media(prefers-reduced-motion:no-preference){.btn,a{transition:color .16s ease,background-color .16s ease,border-color .16s ease}}
