.month-title{text-align:center;min-width:150px;margin:0}.legend{flex-wrap:wrap;gap:14px;margin:0 0 12px;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend .sw{border-radius:3px;width:22px;height:12px;display:inline-block}.legend .sw.status-rejected{width:20px;height:10px}.type-vacation{background-color:var(--c-vacation)}.type-sick{background-color:var(--c-sick)}.type-sick.cert{background-color:var(--c-sick-cert)}.type-unpaid{background-color:var(--c-unpaid)}.type-child_sick{background-color:var(--c-child-sick)}.type-parental_leave{background-color:var(--c-parental)}.type-absent{background-color:var(--c-absent)}.status-pending,.status-deletion_requested{background-image:var(--hatch)}.status-rejected{border:1.5px dashed #888;background:0 0!important}.tl-scroll{border:1px solid var(--c-line);border-radius:6px;overflow-x:auto}.tl{font-size:11px;display:grid}.tl .h{text-align:center;border-bottom:1px solid var(--c-line);grid-row:1;padding:3px 0;font-weight:600}.tl .name-h,.tl .name{z-index:3;background:canvas;grid-column:1;position:sticky;left:0}.tl .name-h{border-bottom:1px solid var(--c-line)}.tl .name{white-space:nowrap;border-bottom:1px solid #80808026;padding:6px 8px;font-size:12px}.tl .cell{border-bottom:1px solid #80808026;border-left:1px solid #80808014;min-height:28px}.tl .cell.click{cursor:pointer}.tl .cell.click:hover{box-shadow:inset 0 0 0 100px var(--c-accent-soft)}.tl .we{background-color:#80808024}.tl .hol,.legend .sw.hol{background-color:var(--c-holiday)}.tl .cell.today{background-image:linear-gradient(var(--c-today-tint), var(--c-today-tint))}.tl .h.today{box-shadow:inset 0 -3px 0 var(--c-today);font-weight:800}.tl .bar{color:#fff;height:18px;font:inherit;white-space:nowrap;text-align:left;z-index:1;cursor:pointer;border:0;border-radius:4px;align-self:start;margin:5px 1px;padding:0 4px;font-size:10px;line-height:18px;overflow:hidden}.tl .bar.clip-l{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.tl .bar.clip-r{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.tl .bar.status-deletion_requested{text-decoration:line-through}.tl .bar.status-rejected{color:#888;border:1.5px dashed #888;line-height:15px;text-decoration:line-through}.type-pick{border:0;min-width:0;margin:0;padding:0}.type-pick legend{opacity:.7;margin-bottom:4px;padding:0;font-size:12px}.type-pick .opts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.type-pick label{border:1px solid var(--c-line);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;display:flex}.type-pick label:hover{background:var(--c-accent-soft)}.type-pick label.on{border-color:var(--c-vacation);box-shadow:inset 0 0 0 1px var(--c-vacation);background:var(--c-accent-soft);font-weight:600}.type-pick label:focus-within{outline:2px solid var(--c-vacation);outline-offset:1px}.type-pick input{opacity:0;pointer-events:none;position:absolute}.type-pick .sw{border-radius:3px;flex-shrink:0;width:12px;height:12px}@media (width<=480px){.type-pick .opts{grid-template-columns:repeat(2,minmax(0,1fr))}}textarea{font:inherit;color:inherit;resize:vertical;background:0 0;border:1px solid #80808073;border-radius:5px;padding:6px 8px}.preview{min-height:44px}.preview p{margin:0 0 4px}.notice{background:#f59e0b2e;border-radius:5px;margin:0 0 6px;padding:6px 10px}.detail{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 14px;display:grid}.detail dt{opacity:.65}.detail dd{margin:0}.actions.wrap{flex-wrap:wrap}.overview .rest{font-weight:700}.rest.neg{color:var(--c-sick-cert)}.overview .dim{opacity:.5}.table tr.click{cursor:pointer}.table tr.click:hover{background:var(--c-accent-soft)}.table.overview,.table.pending,.table.own{max-width:none}.row-actions{white-space:nowrap;gap:6px;display:flex}.note{opacity:.7;margin:8px 0;font-size:13px}.entitlements{margin-top:20px}:root{--c-vacation:#3b82f6;--c-sick-cert:#dc2626;--c-sick:#f59e0b;--c-absent:#94a3b8;--c-unpaid:#8b5cf6;--c-child-sick:#ec4899;--c-parental:#65a30d;--c-holiday:#eab3084d;--c-today:#0d9488;--c-today-tint:#0d94881f;--c-ok:#16a34a;--c-line:#8080804d;--c-side:#80808014;--c-accent-soft:#3b82f626;--hatch:repeating-linear-gradient(45deg, #ffffff8c 0 4px, transparent 4px 8px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{margin:0}h1{margin:0 0 14px;font-size:18px}h2{margin:0 0 12px;font-size:16px}.shell{min-height:100vh;display:flex}.topbar{display:none}.side{background:var(--c-side);flex-direction:column;flex-shrink:0;width:200px;padding:12px 0;display:flex}.side .brand{padding:0 14px 12px;font-size:15px;font-weight:700}.side .grp{text-transform:uppercase;opacity:.55;letter-spacing:.05em;padding:10px 14px 4px;font-size:10px}.side a{color:inherit;padding:7px 14px;text-decoration:none;display:block}.side a.on{background:var(--c-accent-soft);border-left:3px solid var(--c-vacation);padding-left:11px;font-weight:600}.badge{background:var(--c-sick-cert);color:#fff;border-radius:9px;margin-left:6px;padding:0 6px;font-size:10px}.usermenu{margin-top:auto;padding:12px 14px 0;position:relative}.user-btn{text-align:left;width:100%}.menu{border:1px solid var(--c-line);background:canvas;border-radius:6px;flex-direction:column;display:flex;position:absolute;bottom:100%;left:14px;right:14px;box-shadow:0 6px 20px #00000026}.menu button{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:8px 12px}.menu button:hover{background:var(--c-accent-soft)}.main{flex:1;min-width:0;padding:16px 20px;overflow-x:auto}.brand-link{color:inherit;font-weight:700;text-decoration:none}.side a.back{opacity:.7;padding-top:0;font-size:12px}.usermenu.down{margin-top:0;padding:0}.usermenu.down .user-btn{width:auto}.usermenu.down .menu{z-index:10;min-width:180px;inset:calc(100% + 4px) 0 auto auto}.home-shell{flex-direction:column;min-height:100vh;display:flex}.home-head{background:var(--c-side);justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;font-size:15px;display:flex}.home-main{width:100%;max-width:1000px;margin:0 auto}.tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.tile{border:1px solid var(--c-line);color:inherit;border-radius:10px;flex-direction:column;gap:8px;min-height:120px;padding:18px;text-decoration:none;display:flex}.tile:hover,.tile:focus-visible{border-color:var(--c-vacation);background:var(--c-accent-soft)}.tile-title{font-size:16px}.tile-desc{opacity:.75;font-size:13px}.tile-badges{flex-wrap:wrap;gap:12px;margin-top:auto;font-size:12px;display:flex}.loading{padding:20px}button,input,select{font:inherit}input,select{color:inherit;background:0 0;border:1px solid #80808073;border-radius:5px;padding:6px 8px}.btn,.user-btn,.menu-toggle{color:inherit;cursor:pointer;background:0 0;border:1px solid #80808080;border-radius:5px;padding:6px 12px}.btn.primary{background:var(--c-vacation);color:#fff;border-color:var(--c-vacation)}.btn:disabled{opacity:.6;cursor:default}.card{border:1px solid var(--c-line);border-radius:10px;flex-direction:column;gap:12px;max-width:380px;padding:18px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field>span{opacity:.7;font-size:12px}.error{color:var(--c-sick-cert);margin:0}.ok{color:var(--c-ok);margin:0}.login{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login .card{width:100%}.dialog-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{color:canvastext;border:1px solid var(--c-line);background:canvas;border-radius:10px;width:min(520px,94vw);max-height:90vh;padding:18px;overflow:auto;box-shadow:0 6px 20px #0003}@media (width<=767px){.shell{flex-direction:column}.topbar{background:var(--c-side);align-items:center;gap:12px;padding:10px 14px;display:flex}.side{width:auto;display:none}.side.open{display:flex}.side .brand{display:none}.usermenu{margin-top:8px}.menu{margin-top:4px;position:static}.main{padding:12px}.home-head{padding:10px 14px}.datamodel{flex-direction:column}.type-list{width:100%}.attr-actions{white-space:normal}.dialog-backdrop{align-items:stretch}.dialog{border:0;border-radius:0;width:100%;height:100%;max-height:none}}.table{border-collapse:collapse;width:100%;max-width:900px}.table th,.table td{text-align:left;border-bottom:1px solid var(--c-line);padding:7px 10px}.table th{opacity:.7;font-size:12px;font-weight:600}.table tr.muted td{opacity:.55}.toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.form{flex-direction:column;gap:12px;display:flex}.form.wide{max-width:520px}.actions{gap:8px;margin-top:4px;display:flex}.chk{gap:4px;display:inline-flex}.chk button{border:1px solid var(--c-line);color:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:3px 7px;font-size:12px}.chk button.on{background:var(--c-vacation);border-color:var(--c-vacation);color:#fff}.chk button:disabled{cursor:default}.panel{border:1px solid var(--c-line);border-radius:10px;max-width:900px;margin-bottom:16px;padding:16px}.row{flex-wrap:wrap;gap:12px;display:flex}.row>.field{flex:1;min-width:150px}.inline-check{align-items:center;gap:8px;display:flex}.hint{opacity:.65;font-size:12px}small.error{font-size:12px}.custom-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.with-unit{align-items:center;gap:6px;display:flex}.with-unit input{flex:1;min-width:0}.option-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.option-row>input{flex:1}.datamodel{align-items:flex-start;gap:16px;display:flex}.type-list{border:1px solid var(--c-line);border-radius:10px;flex-shrink:0;width:160px;padding:6px 0}.type-list .grp{text-transform:uppercase;opacity:.55;letter-spacing:.05em;padding:4px 12px;font-size:10px}.type-list button{text-align:left;width:100%;color:inherit;font:inherit;background:0 0;border:0;padding:7px 12px;display:block}.type-list button.on{background:var(--c-accent-soft);font-weight:600}.type-detail{flex:1;min-width:0}.type-detail h2{margin:0}.table tr.system td{opacity:.6}.attr-actions{white-space:nowrap;text-align:right}.attr-actions .btn{margin:2px 0 2px 4px;padding:3px 7px;font-size:12px}.backup .panel h2{margin:0 0 12px;font-size:17px}.backup .toolbar h2{margin:0}.backup .form{max-width:520px}.table-scroll{max-width:900px;overflow-x:auto}.warn{border:1px solid var(--c-sick);background:#f59e0b1f;border-radius:8px;max-width:872px;margin:0 0 16px;padding:10px 14px}.backup td.fingerprint,.backup .table td:first-child{white-space:nowrap}.fingerprint{letter-spacing:.03em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.path{word-break:break-all}.date-input{gap:4px;display:flex;position:relative}.date-input>input{flex:1;min-width:0}.date-toggle{cursor:pointer;background:0 0;border:1px solid #80808073;border-radius:5px;padding:0 8px}.date-pop{z-index:200;color:canvastext;border:1px solid var(--c-line);background:canvas;border-radius:8px;width:252px;padding:8px;position:fixed;box-shadow:0 6px 20px #0000002e}.date-head{justify-content:space-between;align-items:center;margin-bottom:6px;font-weight:600;display:flex}.date-head button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 8px;font-size:18px}.date-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-wd{opacity:.6;padding:2px 0;font-size:11px}.date-day{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:5px 0}.date-day:hover:not(:disabled){background:var(--c-accent-soft)}.date-day.out{opacity:.4}.date-day.today{box-shadow:inset 0 0 0 1px var(--c-today)}.date-day.sel{background:var(--c-vacation);color:#fff;opacity:1}.date-day:disabled{opacity:.25;cursor:default}
