:root{--brand:#1f3a5f;--brand-strong:#152a45;--brand-soft:#e8eef6;--bg:#f5f7fa;--surface:#fff;--text:#1b2430;--muted:#5b6676;--border:#d9dee6;--danger:#b42318;--danger-soft:#fdecea;--success:#1e7b45;--success-soft:#e6f4ec;--warning:#9a6700;--warning-soft:#fff4d6;--radius:10px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018281a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}a{color:var(--brand)}h1{margin:0 0 1rem;font-size:1.5rem}h2{margin:0 0 .75rem;font-size:1.15rem}.auth-page{place-items:center;min-height:100dvh;padding:1rem;display:grid}.auth-card{background:var(--surface);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow);padding:2rem 1.5rem}.auth-brand{color:var(--brand);align-items:center;gap:.6rem;margin-bottom:1.25rem;font-weight:700;display:flex}.auth-brand img{width:36px;height:36px}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}label.field{flex-direction:column;gap:.3rem;font-size:.95rem;font-weight:500;display:flex}.field small,.help{color:var(--muted);font-size:.85rem;font-weight:400}input,select{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;min-height:44px;padding:.6rem .75rem}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid color-mix(in srgb, var(--brand) 35%, transparent);outline-offset:1px}input[type=checkbox]{width:20px;height:20px;min-height:auto}label.check{align-items:center;gap:.6rem;display:flex}.code-input{letter-spacing:.4em;text-align:center;font-size:1.5rem}button,.button{font:inherit;cursor:pointer;background:var(--brand);color:#fff;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.55rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--brand-strong)}button:disabled{opacity:.6;cursor:default}button.secondary,.button.secondary{color:var(--brand);border-color:var(--border);background:#fff}button.secondary:hover,.button.secondary:hover{background:var(--brand-soft)}button.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, white);background:#fff}button.danger:hover{background:var(--danger-soft)}button.small,.button.small{min-height:34px;padding:.3rem .7rem;font-size:.875rem}button.link{color:var(--brand);background:0 0;min-height:auto;padding:0;font-weight:500}.alert{border-radius:8px;padding:.75rem 1rem;font-size:.95rem}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.success{background:var(--success-soft);color:var(--success)}.alert.info{background:var(--brand-soft);color:var(--brand-strong)}.shell{grid-template-columns:250px 1fr;min-height:100dvh;display:grid}.sidebar{background:var(--brand);color:#fff;flex-direction:column;gap:1rem;height:100dvh;padding:1rem .75rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar .brand{align-items:center;gap:.6rem;padding:0 .5rem;font-weight:700;display:flex}.sidebar .brand img{width:32px;height:32px}.sidebar nav{flex-direction:column;gap:2px;display:flex}.sidebar .nav-section{text-transform:uppercase;letter-spacing:.06em;opacity:.7;padding:.75rem .75rem .25rem;font-size:.75rem}.sidebar a,.sidebar .nav-disabled{color:#fff;border-radius:8px;justify-content:space-between;align-items:center;padding:.55rem .75rem;text-decoration:none;display:flex}.sidebar a:hover,.sidebar a[aria-current=page]{background:#ffffff24}.sidebar .nav-disabled{opacity:.55}.sidebar .badge{background:#ffffff2e;border-radius:99px;padding:.1rem .4rem;font-size:.7rem}.sidebar-footer{flex-direction:column;gap:.5rem;margin-top:auto;font-size:.9rem;display:flex}.sidebar-footer select{color:#fff;background:#ffffff1a;border-color:#ffffff40;min-height:38px;padding:.35rem .5rem}.sidebar-footer select option{color:var(--text)}.sidebar-footer button{background:#ffffff1f;min-height:38px}.sidebar-footer button:hover{background:#ffffff38}.topbar{display:none}.content{width:100%;min-width:0;max-width:1200px;padding:2rem}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.module-card{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.module-card .muted,.muted{color:var(--muted);font-size:.9rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.page-header h1{margin:0}.table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.7rem .9rem}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc;font-size:.8rem}.table tr:last-child td{border-bottom:none}.tag{background:var(--brand-soft);color:var(--brand);white-space:nowrap;border-radius:99px;padding:.1rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.tag.success{background:var(--success-soft);color:var(--success)}.tag.warning{background:var(--warning-soft);color:var(--warning)}.tag.danger{background:var(--danger-soft);color:var(--danger)}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem 0;display:flex}.list li:last-child{border-bottom:none}.list li.selected{color:var(--brand);background:var(--brand-soft);border-radius:8px;padding-left:.5rem;padding-right:.5rem;font-weight:600}.org-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1rem;display:grid}dialog{border-radius:var(--radius);border:none;width:min(560px,100vw - 2rem);max-height:calc(100dvh - 2rem);padding:1.5rem;box-shadow:0 10px 40px #10182840}dialog::backdrop{background:#10182873}.secret{background:var(--bg);word-break:break-all;border-radius:8px;padding:.6rem .8rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.15rem}.qr{align-self:center;width:200px;height:200px}.menu-actions{flex-wrap:wrap;gap:.35rem;display:flex}.org-grid.split-grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.tabs{border-bottom:1px solid var(--border);gap:.25rem;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;background:0 0;border-bottom:3px solid #0000;border-radius:8px 8px 0 0}.tab:hover{background:var(--brand-soft)}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}.schedule-day{grid-template-columns:140px 1fr;align-items:center;gap:.5rem;display:grid}.schedule-day input[type=time]{width:120px}.card-inset{background:var(--bg);border-radius:var(--radius);padding:1rem}textarea{font:inherit;border:1px solid var(--border);border-radius:8px;width:100%;padding:.6rem .75rem}details summary{cursor:pointer;color:var(--brand);font-weight:500}@media (max-width:1000px){.org-grid,.org-grid.split-grid{grid-template-columns:1fr}}@media (max-width:800px){.shell{grid-template-columns:1fr;align-content:start}.topbar{background:var(--brand);color:#fff;z-index:10;justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex;position:sticky;top:0}.topbar .brand{align-items:center;gap:.5rem;font-weight:700;display:flex}.topbar .brand img{width:28px;height:28px}.topbar button{background:#ffffff1f}.sidebar{z-index:20;height:auto;display:none;position:fixed;inset:52px 0 0}.sidebar.open{display:flex}.sidebar .brand{display:none}.content{padding:1rem}.schedule-day{grid-template-columns:1fr}.table.responsive thead{display:none}.table.responsive,.table.responsive tbody,.table.responsive tr,.table.responsive td{width:100%;display:block}.table.responsive{box-shadow:none;background:0 0}.table.responsive tr{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:.75rem;padding:.5rem 0}.table.responsive td{border:none;padding:.3rem 1rem}.table.responsive td[data-label]:before{content:attr(data-label);text-transform:uppercase;color:var(--muted);font-size:.75rem;display:block}}fieldset.month-day{border:0;margin:0;padding:0}fieldset.month-day legend{margin-bottom:.3rem;padding:0;font-size:.95rem;font-weight:500}fieldset.month-day select:first-child{flex:none;width:5rem}fieldset.month-day select:last-child{flex:1}.time-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.home-clock{max-width:560px}.clock-worked{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.clock-worked strong{font-variant-numeric:tabular-nums;font-size:2rem}.clock-actions{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}button.clock-button{padding:1rem;font-size:1.1rem}.tag.state-working{background:var(--success-soft);color:var(--success)}.tag.state-lunch{background:var(--warning-soft);color:var(--warning)}.tag.state-off{background:var(--border);color:var(--muted)}.entry-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.entry-line{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.entry-time{font-variant-numeric:tabular-nums;min-width:3.2rem;font-weight:600}.history-list>li{display:block}.history-list>li .entry-list{margin-top:.4rem;font-size:.92rem}.incident-list>li{align-items:flex-start}@media (max-width:1000px){.time-layout{grid-template-columns:1fr}}.date-nav{flex-wrap:nowrap}.date-nav input[type=date]{flex:0 12rem;width:auto;min-width:0}.history-list .entry-list li{border:none;justify-content:flex-start;padding:0}a.module-card{color:inherit;text-decoration:none}a.module-card:hover{box-shadow:0 0 0 2px var(--brand)}.absence-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.document-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.document-list li{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.92rem;display:flex}.upload-row label.button{cursor:pointer}.upload-row label.button.disabled{opacity:.6;pointer-events:none}.tag.absence-sick_leave,.tag.absence-work_accident{background:var(--danger-soft);color:var(--danger)}.tag.absence-sick,.tag.absence-medical_appointment{background:var(--warning-soft);color:var(--warning)}.month-label{text-align:center;min-width:9rem;display:inline-block}.month-label:first-letter{text-transform:uppercase}.alert.warning{background:var(--warning-soft);color:var(--warning);border-color:#0000}.tag.vacation{background:var(--success-soft);color:var(--success)}.negative{color:var(--danger)}.balance-card{grid-template-columns:auto 1fr;align-items:center;gap:.75rem 2rem;display:grid}.balance-card>.help,.balance-card>.alert{grid-column:1/-1;margin:0}.balance-main{flex-direction:column;align-items:center;min-width:7rem;display:flex}.balance-main strong{color:var(--brand);font-size:2.6rem;line-height:1.1}.balance-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin:0;display:grid}.balance-grid dt{color:var(--muted);font-size:.8rem}.balance-grid dd{margin:0;font-size:1.25rem;font-weight:600}.vacation-item{justify-content:space-between;align-items:flex-start;gap:.75rem;list-style:none;display:flex}.overlap-list{margin:.3rem 0 0;padding-left:1.1rem}.allowance-form input{width:5.5rem}.calendar-legend{color:var(--muted);gap:1rem;font-size:.85rem}.calendar-legend span{align-items:center;gap:.35rem;display:inline-flex}.cell{border:1px solid var(--border);border-radius:3px;width:.9rem;height:.9rem;display:inline-block}.calendar-scroll{padding:0;overflow-x:auto}.vacation-calendar{border-collapse:collapse;min-width:100%;font-size:.8rem}.vacation-calendar th,.vacation-calendar td{border:1px solid var(--border);text-align:center;min-width:1.6rem;padding:.25rem 0;font-weight:500}.vacation-calendar thead th span{color:var(--muted);font-size:.7rem;display:block}.vacation-calendar th.person{text-align:left;background:var(--surface);z-index:1;min-width:10rem;padding:.35rem .6rem;position:sticky;left:0}.vacation-calendar th.overlap,.cell.overlap-mark{background:var(--danger-soft);color:var(--danger)}.vacation-calendar td.off,.cell.off{background:#eef0f3}.vacation-calendar td.approved,.cell.approved{background:var(--success)}.vacation-calendar td.pending,.cell.pending{background:repeating-linear-gradient(45deg, var(--warning-soft), var(--warning-soft) 3px, #f0c94a 3px, #f0c94a 6px)}@media (max-width:800px){.balance-card{grid-template-columns:1fr}.balance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vacation-item{flex-direction:column}.vacation-calendar th.person{min-width:7rem}}.upload-form{align-items:flex-end}.upload-form .field{min-width:10rem}.table tr.row-warning td{background:var(--warning-soft)}.menu-actions .tag{align-self:center}@media (max-width:800px){.upload-form .field{flex:100%}}.profile-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:1rem;display:grid}.profile-card{border:1px solid var(--border);border-radius:var(--radius);gap:.6rem;padding:.9rem 1rem}.profile-perms{gap:.45rem;margin:0;display:grid}.profile-perms dt{color:var(--muted);font-size:.85rem}.profile-perms dd{gap:.25rem 1rem;margin:0}.bell{margin-left:auto;position:relative}.bell-button{color:#fff;background:#ffffff1f;justify-content:center;align-items:center;width:40px;min-height:38px;padding:0;display:inline-flex;position:relative}.bell-button:hover{background:#ffffff38}.bell-count{min-width:19px;height:19px;color:var(--brand);text-align:center;background:#fff;border-radius:99px;padding:0 5px;font-size:.72rem;font-weight:700;line-height:19px;position:absolute;top:-4px;right:-4px}.bell-button.urgent .bell-count{background:var(--danger);color:#fff}.bell-panel{background:var(--surface);width:min(400px,100vw - 1rem);max-height:calc(100dvh - 2rem);color:var(--text);border-radius:var(--radius);z-index:40;flex-direction:column;font-weight:400;display:flex;position:fixed;top:1rem;left:262px;box-shadow:0 10px 30px #10182838}.bell-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.bell-list{margin:0;padding:0;list-style:none;overflow-y:auto}.bell-list li+li{border-top:1px solid var(--border)}.bell-empty{margin:0;padding:1rem}.bell-panel .bell-all{text-align:center;border-top:1px solid var(--border);color:var(--brand);padding:.65rem;font-weight:600;display:block}.link-button{color:var(--brand);background:0 0;min-height:0;padding:0;font-weight:600}.link-button:hover{background:0 0;text-decoration:underline}.notif-row{text-align:left;width:100%;color:var(--text);border-left:4px solid var(--imp);background:0 0;border-radius:0;justify-content:flex-start;align-items:flex-start;gap:.75rem;min-height:0;padding:.65rem 1rem .65rem .75rem;font-weight:400;display:flex}.notif-row:hover{background:var(--bg)}.imp-urgent{--imp:var(--danger);--imp-soft:var(--danger-soft)}.imp-action{--imp:var(--warning);--imp-soft:var(--warning-soft)}.imp-info{--imp:var(--brand);--imp-soft:var(--brand-soft)}.imp-success{--imp:var(--success);--imp-soft:var(--success-soft)}.notif-icon{color:var(--imp);background:var(--imp-soft);border-radius:8px;flex:none;width:32px;height:32px;padding:6px}.notif-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.notif-title{overflow-wrap:anywhere}.unread .notif-title{font-weight:700}.notif-body{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;font-size:.9rem}.notif-time{color:var(--muted);font-size:.8rem}.notif-list{margin:0;padding:0;list-style:none}.notif-item{border-left:4px solid var(--imp);border-bottom:1px solid var(--border);align-items:flex-start;gap:.75rem;padding:.85rem 1rem .85rem .75rem;display:flex}.notif-item.unread{background:color-mix(in srgb, var(--imp-soft) 45%, transparent)}.notif-item>input[type=checkbox]{margin-top:.5rem}.notif-item .notif-text{flex:1}.notif-item .menu-actions{margin-top:.4rem}.notif-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}@media (max-width:800px){.bell-panel{width:auto;max-height:calc(100dvh - 64px);top:56px;left:.5rem;right:.5rem}.bell-button{min-height:36px}}.holiday-year{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem;display:grid}.holiday-month h3{text-transform:capitalize;margin:0 0 .35rem;font-size:.95rem}.holiday-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.holiday-weekday{color:var(--muted);text-transform:uppercase;font-size:.72rem}.holiday-day{height:28px;min-height:0;color:var(--text);background:0 0;border-radius:6px;padding:0;font-size:.82rem;font-weight:400}.holiday-day:hover{background:var(--brand-soft)}.holiday-day.weekend{color:var(--muted);background:var(--bg)}.holiday-day.holiday{background:var(--danger);color:#fff;font-weight:700}.holiday-day.today{box-shadow:inset 0 0 0 2px var(--brand)}.holiday-legend{color:var(--muted);flex-wrap:wrap;gap:1rem;font-size:.85rem;display:flex}.holiday-legend span{align-items:center;gap:.35rem;display:inline-flex}.swatch{border-radius:4px;width:14px;height:14px;display:inline-block}.swatch.holiday{background:var(--danger)}.swatch.weekend{background:var(--bg);border:1px solid var(--border)}.swatch.today{box-shadow:inset 0 0 0 2px var(--brand)}.orgchart{--org-line:var(--border);--org-department:#6b3fa0;--org-department-soft:#f1eaf8;flex-direction:column;align-items:center;max-width:100%;display:flex}.org-root{border-radius:var(--radius);background:var(--brand);color:#fff;box-shadow:var(--shadow);align-items:center;gap:.6rem;padding:.75rem 1.25rem;font-size:1.1rem;display:flex}.org-root .tag{color:#fff;background:#ffffff2e}.org-tree{border-top:2px solid var(--org-line);grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));align-items:start;gap:1rem;width:100%;margin:1.25rem 0 0;padding:1.25rem 0 0;list-style:none;display:grid;position:relative}.org-tree:before{content:"";border-left:2px solid var(--org-line);height:1.25rem;position:absolute;top:calc(-1.25rem - 2px);left:50%}.org-tree>li{min-width:0}.org-office{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);border-top:4px solid var(--brand);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.org-office.loose{border-top-style:dashed;border-top-color:var(--muted)}.org-office-head{color:var(--brand);justify-content:space-between;align-items:center;gap:.5rem;font-weight:700;display:flex}.org-office.loose .org-office-head>span:first-child{color:var(--muted);font-style:italic}.org-office .tag.warning{background:var(--warning-soft);color:var(--warning)}.org-nodes,.org-people{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.org-node details{border:1px solid var(--border);border-left:4px solid var(--org-department);background:var(--bg);border-radius:8px}.org-node.empty details{border-left-style:dashed;border-left-color:var(--muted)}.org-node summary{cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .75rem;font-weight:600;display:flex}.org-node summary .tag{background:var(--org-department-soft);color:var(--org-department)}.org-node.empty .org-node-name{color:var(--muted);font-style:italic}.org-people{gap:.4rem;padding:0 .75rem .75rem}.org-people li{align-items:center;gap:.6rem;display:flex}.org-avatar{background:var(--org-department-soft);width:2rem;height:2rem;color:var(--org-department);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:grid}.org-person{flex:1;min-width:0}.org-hint{text-align:center;margin:0 0 .75rem}.org-root,.org-office-head,.org-node summary,.org-people li{cursor:pointer;-webkit-user-select:none;user-select:none}.org-people li{border-radius:8px;margin-inline:-.25rem;padding:.15rem .25rem}.org-people li[draggable=true]{cursor:grab}.org-people li:hover,.org-node summary:hover,.org-office-head:hover{background:var(--brand-soft);color:var(--text)}.org-office-head{border-radius:8px;margin:-.2rem -.35rem;padding:.2rem .35rem}.org-root:focus-visible,.org-office-head:focus-visible,.org-node summary:focus-visible,.org-people li:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.org-office.drop-over,.org-node.drop-over details{outline:2px dashed var(--brand);outline-offset:2px;background:var(--brand-soft)}.dragging{opacity:.45}
