/* The existing desktop application is the visual reference. Mobile adjustments
   are scoped below; table layouts are selected explicitly by their renderers. */
:root {
  --ink:#19354f;
  --muted:#536779;
  --blue:#0071bc;
  --blue-dark:#005c99;
  --line:#d8e3ed;
  --canvas:#f3f6f9;
  --accent:#f7931e;
  --radius:4px;
  --page-width:1220px;
  --content-padding:20px;
  font:14px/1.5 Arial,Helvetica,sans-serif;
}
body { padding:18px; }
h1 { font:500 21px/1.4 Arial,Helvetica,sans-serif; letter-spacing:normal; }
h2 { font:600 17px/1.4 Arial,Helvetica,sans-serif; }
h3 { font:600 15px/1.4 Arial,Helvetica,sans-serif; }
p { line-height:1.65; }
.oa-topbar {
  position:relative; top:auto; height:auto; min-height:82px;
  max-width:var(--page-width); margin:0 auto 25px; padding:0 0 15px;
  border:0; border-bottom:2px solid var(--line); background:transparent;
}
.oa-topbar-brand { gap:18px; min-width:0; }
.oa-brand { gap:18px; min-width:0; font:500 25px/1.25 Arial,Helvetica,sans-serif; letter-spacing:normal; }
.oa-brand img { width:44px; height:44px; }
.oa-login-brand img { width:calc(56px * 2 / 3); height:calc(56px * 2 / 3); }
.oa-account { display:flex; align-items:center; gap:6px; min-width:0; margin-right:0; font-size:14px; color:var(--ink); }
.oa-account>svg { width:18px; height:18px; flex:none; }
.oa-account>span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.oa-topbar-actions { gap:12px; min-width:0; }
.oa-header-link { font-size:14px; min-height:40px; border:1px solid var(--line); border-radius:4px; padding:6px 10px; background:#fff; }
.oa-topbar-actions>.oa-header-link { flex:none; }
.oa-header-link svg { width:16px; height:16px; }
.oa-layout { display:block; min-height:0; }
.oa-sidebar { display:none; }
.oa-menu-toggle { display:none!important; }
.oa-workspace { width:100%; max-width:var(--page-width); padding:0; margin:0 auto 25px; }
.oa-data-page,.oa-calendar-page,.oa-periods-page,.oa-home {
  min-width:0; border:1px solid var(--line); border-radius:4px; background:#fff;
}
.oa-page-header {
  margin:0; padding:15px 20px; border-bottom:1px solid var(--line);
  background:#eaf2fa; border-radius:4px 4px 0 0; align-items:center; gap:14px;
}
.oa-page-heading { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:0 12px; min-width:0; flex:1; }
.oa-page-heading:has(>.oa-back-link[hidden]) { display:block; }
.oa-page-header h1 { margin:0; }
.oa-page-header .oa-page-subtitle { font-size:13px; margin:0; max-width:50%; text-align:right; }
.oa-icon-button.oa-back-link { width:32px; height:32px; padding:6px; border:1px solid currentColor; border-radius:4px; background:transparent; color:inherit; }
.oa-icon-button.oa-back-link:hover { background:#fff; }
.oa-back-link svg { width:18px; height:18px; }
.oa-toolbar {
  padding:15px var(--content-padding); margin:0; gap:12px 15px;
  border:0; border-bottom:1px solid var(--line); border-radius:0; background:#fff;
}
.oa-toolbar .oa-print-button { margin-left:auto; }
.oa-toolbar .oa-report-actions { display:flex; align-items:center; gap:10px; margin-left:auto; flex:none; }
.oa-toolbar .oa-report-actions .oa-print-button { margin-left:0; }
.oa-report-detail-toggle[aria-pressed=true] { background:#eaf2fa; border-color:var(--blue); color:var(--blue); }
.oa-page-balances>.oa-toolbar>.oa-employee-control { margin-left:auto; }
.oa-page-employee-details>.oa-toolbar { justify-content:flex-end; }
.oa-page-employee-details>.oa-toolbar>.oa-employee-control { margin-right:auto; }
.oa-toolbar .oa-field { gap:2px; flex:none; font-size:13px; }
.oa-toolbar .oa-field>span { font-weight:600; }
.oa-toolbar input:not([type=checkbox]),.oa-toolbar select {
  width:155px; min-height:26px; height:26px; padding:0 5px; font-size:14px;
}
.oa-toolbar .oa-employee-picker select { width:210px; }
.oa-employee-picker { gap:12px; }
.oa-employee-picker .oa-check { padding-bottom:3px; }
.oa-button.oa-employee-control { max-width:290px; justify-content:flex-start; }
.oa-employee-control>span { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.oa-employee-heading { display:flex; align-items:center; gap:8px; overflow-wrap:anywhere; }
.oa-employee-heading>svg { width:19px; height:19px; flex:none; }
.oa-employee-dialog { width:420px; }
.oa-employee-dialog form { display:grid; gap:16px; }
.oa-employee-dialog select { width:100%; }
.oa-toolbar>.oa-check { min-height:26px; }
.oa-data-body { padding:var(--content-padding); }
.oa-data-body>h2:first-child { margin-top:0; }
.oa-help { font-size:13px; line-height:1.6; color:var(--muted); margin:8px 0 14px; }
.oa-button,.oa-text-link,.oa-icon-button { font-size:14px; }
.oa-button { border-radius:4px; min-height:40px; padding:8px 14px; }
.oa-button.is-secondary { color:var(--blue); border-color:#aabed0; }
.oa-icon-button { border-radius:4px; color:var(--blue); }
.oa-field { gap:6px; font-size:13px; }
.oa-field>span { color:var(--muted); font-weight:600; }
.oa-date-control { display:flex; align-items:stretch; position:relative; min-width:0; }
.oa-date-control>input[data-local-date] { width:100%; min-width:0; flex:1; color:var(--ink); font-weight:400; }
.oa-date-choose { flex:none; width:36px; height:40px; margin-left:4px; padding:8px; }
.oa-toolbar .oa-date-control { width:155px; max-width:100%; }
.oa-toolbar .oa-date-control>input[data-local-date] { width:0; }
.oa-toolbar .oa-date-choose { width:26px; min-height:26px; height:26px; padding:4px; }
input:not([type=checkbox]),select,textarea {
  border-color:#aabed0; border-radius:4px; font-size:14px; min-height:40px;
}
.oa-check { font-size:13px; }
.oa-message { border-radius:4px; padding:10px 14px; font-size:14px; }
.oa-panel { padding:15px; border-radius:4px; margin:15px 0; }
.oa-panel>summary { font-size:14px; }
.oa-summary-grid { border-radius:4px; background:transparent; gap:16px 24px; padding:18px; }
.oa-summary-grid>div { padding:0; }
.oa-summary-grid dt { font-size:13px; }
.oa-summary-grid dd { font-size:20px; }
.oa-reconciliation-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:16px 0; }
.oa-reconciliation-fields { display:grid; grid-template-columns:max-content minmax(0,1fr); align-items:end; gap:12px; }
.oa-reconciliation-fields .oa-field { min-width:0; }
.oa-reconciliation-fields input { width:100%; min-width:0; }
.oa-reconciliation-summary>section { min-width:0; border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.oa-reconciliation-summary h4 { margin:0; padding:8px 10px; background:#dbe9f5; border-bottom:4px solid var(--accent); font-size:14px; }
.oa-reconciliation-summary>section:nth-child(even) h4 { border-bottom-color:var(--blue); }
.oa-reconciliation-summary dl { display:grid; gap:8px; margin:12px 10px; }
.oa-reconciliation-summary dl>div { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.oa-reconciliation-summary dt { font-size:13px; overflow-wrap:anywhere; }
.oa-reconciliation-summary dd { margin:0; font-size:18px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.oa-reconciliation-breakdown { margin:12px 10px; font-size:13px; }
.oa-reconciliation-breakdown>summary { cursor:pointer; }
.oa-reconciliation-breakdown dl { margin:10px 0 0; }
.oa-reconciliation-breakdown dd { font-size:14px; }
@media (max-width:800px) { .oa-reconciliation-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:480px) { .oa-reconciliation-summary { grid-template-columns:1fr; } }
.oa-status { border-radius:4px; font-size:12px; padding:3px 7px; white-space:normal; }
.oa-dialog { border-radius:4px; box-shadow:0 12px 40px #19354f26; }
.oa-dialog.is-wide { width:880px; }
.oa-dialog-header { background:#eaf2fa; padding:15px 20px; }
.oa-dialog-header h2 { font-size:18px; text-transform:none; }
.oa-dialog::backdrop { background:rgba(25,53,79,.18); backdrop-filter:none; }
@media screen { html:has(.oa-dialog[open]) { overflow:hidden; } }
.oa-dialog-header { cursor:grab; touch-action:none; user-select:none; }
.oa-dialog-header button { cursor:pointer; }
.oa-dialog-header:focus-visible { outline:2px solid var(--accent); outline-offset:-3px; }
.oa-dialog.is-dragging,.oa-dialog.is-dragging * { cursor:grabbing!important; }
.oa-dialog-content { padding:20px; }
.oa-dialog-footer { padding:15px 20px; }
.oa-slot { border-radius:4px; }
.oa-calendar-editor.oa-dialog {
  position:fixed; inset:0 0 0 auto; margin:0; width:560px; max-width:100%;
  height:100dvh; max-height:100dvh; border-radius:0; border-width:0 0 0 1px;
}
.oa-calendar-editor[open] { display:flex; flex-direction:column; }
.oa-calendar-editor .oa-dialog-header,.oa-calendar-editor .oa-dialog-footer { flex:none; position:static; }
.oa-calendar-editor .oa-dialog-header { background:#fff; }
.oa-calendar-editor .oa-dialog-content { flex:1; min-height:0; overflow:auto; }
.oa-ignore-closures { margin-top:10px; max-width:100%; white-space:normal; }
.oa-week-actions { align-items:center; }
.oa-calendar-editor .oa-tabs { display:flex; flex:none; flex-wrap:wrap; gap:0; margin:0; padding:0 20px; border-bottom:1px solid var(--line); }
.oa-calendar-editor .oa-tabs button { border-radius:0; padding:10px 6px; border-bottom:3px solid transparent; font-size:13px; }
.oa-calendar-editor .oa-tabs button[aria-pressed=true] { border-bottom-color:var(--blue); color:var(--blue); background:#f5f9fc; }
.oa-calendar-editor .oa-slots { grid-template-columns:1fr; }
.oa-calendar-editor .oa-weekday { border:1px solid var(--line); border-radius:4px; padding:12px; margin:14px 0; }
.oa-calendar-editor .oa-weekday .oa-slots { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:0; }
.oa-calendar-editor .oa-weekday .oa-help { font-size:12px; }
.oa-form-grid,.oa-form-columns { gap:18px; }
.oa-input-row { padding:10px 0; }
.oa-attendance-pairs .oa-input-row,.oa-allocations .oa-input-row { border-radius:4px; padding:12px; }
.oa-allocations .oa-input-row>.oa-field { flex:1; max-width:none; flex-direction:row; align-items:center; justify-content:space-between; }
.oa-allocations .oa-input-row>.oa-field input { width:95px; flex:none; }
.oa-allocations .oa-input-row>.oa-field>span { color:var(--ink); }

/* The home page follows the three columns and descriptive buttons of the old menu. */
.oa-home-groups { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:20px; }
.oa-home-group-column { gap:16px; }
.oa-home-group { border-radius:4px; }
.oa-home-group>summary { padding:18px; align-items:center; gap:12px; }
.oa-home-group h2 { display:flex; align-items:center; gap:8px; font-size:17px; font-weight:600; line-height:1.4; }
.oa-home-group h2>svg { width:20px; height:20px; flex:none; }
.oa-disclosure-triangle { line-height:1.4; font-size:12px; }
.oa-home-group-content { padding:0 18px 18px; }
.oa-home-menu-item { width:100%; min-height:40px; padding:8px 10px; justify-content:center; border-radius:4px; background:var(--blue); color:#fff; font-size:14px; font-weight:600; gap:6px; }
.oa-home-menu-item:hover { color:#fff; background:var(--blue-dark); }
.oa-home-menu-item>svg { width:16px; height:16px; flex:none; }
.oa-home-menu-item>svg:first-child { color:inherit; }
.oa-home-menu-item>svg:last-child { margin:0; width:16px; }
.oa-home-menu-description { font-size:13px; line-height:1.5; margin:8px 0 18px; }
.oa-home-group-content>div:last-child>.oa-home-menu-description { margin-bottom:0; }
.oa-home-warnings { padding:20px 20px 0; margin:0; }
.oa-home-warnings:empty { padding:0; }
.oa-home-warnings .oa-panel { margin:0 0 12px; background:#fff1ee; border-color:#ecd2c9; border-left:2px solid #8b2f1d; color:#8b2f1d; }
.oa-home-warnings .oa-panel.is-pending { background:#fff0d9; color:#7d4200; border-color:#edcfaa; border-left-color:#bd6500; }
.oa-home-warnings .oa-panel>summary { display:flex; flex-wrap:wrap; align-items:center; gap:6px; list-style:none; font-weight:400; }
.oa-home-warnings .oa-panel>summary::-webkit-details-marker { display:none; }
.oa-home-warnings .oa-panel>summary>svg { width:16px; height:16px; flex:none; }
.oa-home-warnings .oa-panel>summary::after { content:'▼'; margin-left:auto; font-size:11px; }
.oa-home-warnings .oa-panel[open]>summary::after { content:'▲'; }
.oa-home-warning-count { font-size:13px; margin-left:10px; }
.oa-home-groups.is-employee { grid-template-columns:1fr; max-width:620px; }
.oa-database-shortcut { box-shadow:none; border-radius:4px; font-size:13px; color:var(--blue); }

/* Real table geometry: text wraps, dates stay together, quantities align right. */
.oa-table-scroll,.oa-table-region {
  width:100%; max-width:100%; max-height:65vh; max-height:65dvh;
  position:relative; isolation:isolate; overflow:auto; scrollbar-width:auto;
  border:1px solid var(--line); border-radius:4px; background:#fff;
}
.oa-table-scroll { margin:12px 0 20px; }
.oa-table-scroll .oa-table,.oa-table-region .oa-table {
  width:100%; min-width:0; border-collapse:separate; border-spacing:0;
  table-layout:auto; font:13px/1.5 Arial,Helvetica,sans-serif; white-space:normal;
}
.oa-table-scroll .oa-table :is(th,td),.oa-table-region .oa-table :is(th,td) {
  padding:9px 10px; vertical-align:middle; border:0;
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
}
.oa-table-scroll .oa-table tr>:last-child,.oa-table-region .oa-table tr>:last-child { border-right:0; }
.oa-table-scroll .oa-table tbody tr:last-child>*,.oa-table-region .oa-table tbody tr:last-child>* { border-bottom:1px solid var(--line); }
.oa-table thead { position:sticky; top:0; z-index:4; }
.oa-table-scroll .oa-table thead th,.oa-table-region .oa-table thead th {
  color:var(--ink); background:#eaf2fa; font-size:13px; line-height:1.4;
  font-weight:600; vertical-align:middle; white-space:normal;
}
.oa-table-scroll .oa-table th:first-child { position:static; }
.oa-table :is(tbody,tfoot) tr { --row-background:#fff; }
.oa-table tbody tr:nth-child(even) { --row-background:#eef8ff; }
.oa-table tbody tr:hover,.oa-table tbody tr:focus-within { --row-background:#e6f1fb; }
.oa-table :is(tbody,tfoot) tr>* { background:var(--row-background); }
.oa-table-scroll.has-row-heading .oa-table tr>:first-child:not([colspan]),
.oa-table-region .oa-table tr>:first-child:not([colspan]) {
  position:sticky; left:0; z-index:2; box-shadow:2px 0 3px #12324f15;
}
.oa-table-scroll.has-row-heading .oa-table thead tr>:first-child,
.oa-table-region .oa-table thead tr>:first-child { z-index:5; background:#eaf2fa; }
.oa-table-scroll.has-row-heading .oa-table .oa-table-groups+tr>:first-child { position:static; box-shadow:none; }
.oa-table-scroll .oa-table tbody th { font-weight:400; }
.oa-table-scroll .oa-table :is(tbody,tfoot) tr>:first-child { background:var(--row-background); }
.oa-table-scroll .oa-table :is(.oa-col-hours,.oa-col-number),.oa-table-region .oa-table .oa-col-number {
  text-align:right; white-space:nowrap; min-width:72px; font-variant-numeric:tabular-nums;
}
.oa-table-scroll .oa-table thead :is(.oa-col-hours,.oa-col-number) { white-space:normal; }
.oa-table-scroll .oa-table .oa-col-name { min-width:180px; max-width:240px; overflow-wrap:anywhere; }
.oa-table-scroll .oa-table .oa-col-text { min-width:120px; max-width:240px; overflow-wrap:anywhere; }
.oa-table-scroll .oa-table .oa-col-date { min-width:100px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.oa-table-scroll .oa-table .oa-col-state { min-width:100px; max-width:150px; }
.oa-table-scroll .oa-table .oa-col-flag { width:85px; min-width:70px; text-align:center; }
.oa-table-scroll .oa-table .oa-col-type { min-width:185px; max-width:240px; }
.oa-table-scroll .oa-table .oa-col-note { min-width:180px; max-width:300px; overflow-wrap:anywhere; white-space:pre-wrap; }
.oa-table-scroll .oa-table .oa-col-actions { width:1%; min-width:105px; white-space:nowrap; }
.oa-table-scroll .oa-table .oa-col-grip { width:45px; min-width:45px; padding:4px; }
.oa-table-scroll .oa-table .oa-col-day { min-width:95px; text-align:center; white-space:normal; }
.oa-table .oa-actions,.oa-table .oa-row-actions { margin:0; gap:6px; align-items:center; }
.oa-table .oa-table-action {
  min-height:28px; padding:4px 8px; font-size:13px; line-height:18px; border-radius:4px; gap:5px;
}
.oa-table .oa-table-action>svg { width:14px; height:14px; }
.oa-table .oa-col-name .oa-table-action { white-space:normal; text-align:left; justify-content:flex-start; }
.oa-table .oa-grip { min-width:30px; min-height:36px; font-size:22px; }
.oa-table tr.is-dragging>* { --row-background:#fff4e4; background:var(--row-background)!important; }
.oa-table tfoot tr { --row-background:#eaf2fa; font-weight:600; }
.oa-table tfoot tr>* { border-top:2px solid #aabed0; }
.oa-table-scroll .oa-table .oa-table-add-row>td { padding:0; border-top:0; }
.oa-add-row.oa-table-action { width:100%; min-height:40px; padding:12px; justify-content:flex-start; border:0; border-radius:0; background:#f3f7fb; font-size:14px; white-space:normal; text-align:left; }
.oa-add-row.oa-table-action:is(:hover,:focus-visible) { background:#e3edf7; }
.oa-add-row:focus-visible { outline-offset:-2px; }
.oa-table .oa-empty { position:static!important; padding:24px!important; }
.oa-table-groups>th[scope=colgroup] {
  text-align:center; background:#dbe9f5!important;
  border-bottom:2px solid var(--table-group-color,var(--accent))!important;
  print-color-adjust:exact; -webkit-print-color-adjust:exact;
}
.oa-table-months .oa-table-groups>th[scope=colgroup] { border-bottom-width:4px!important; }
.oa-table-months :is(.oa-table-group-reconciliation,.oa-table-group-totals) { --table-group-color:var(--blue); }
.oa-table-months .oa-table { min-width:1100px; }
.oa-table-months .oa-col-hours { width:75px; }
@media screen { .oa-table-months .oa-table .oa-table-groups+tr>th { padding-inline:5px; text-align:left; } }
.oa-table-months .oa-col-actions .oa-actions { flex-flow:row nowrap; align-items:center; }
.oa-table-months .oa-month-issues>span { flex:0 0 2ch; text-align:right; font-variant-numeric:tabular-nums; }
.oa-table-daily { width:800px; max-width:100%; }
.oa-table-activities,.oa-table-departments { width:650px; max-width:100%; }
.oa-data-page :is(.oa-table-users,.oa-table-activities,.oa-table-departments,.oa-table-types) { max-height:none; }
.oa-table-daily .oa-table { min-width:760px; }
.oa-table-activities .oa-table,.oa-table-departments .oa-table { min-width:560px; }
.oa-table-balances .oa-table { min-width:950px; }
.oa-table-balances .oa-table input { width:85px; min-height:32px; padding:5px; text-align:right; font-size:14px; font-variant-numeric:tabular-nums; }
.oa-table-balances .oa-type-name { align-items:flex-start; white-space:normal; }
.oa-table-balances .oa-col-hours .oa-navigation-link { display:flex; font-size:11px; margin-top:5px; }
.oa-table-users .oa-table { min-width:1120px; }
.oa-table-types .oa-table { min-width:900px; }
.oa-table-types .oa-type-name { white-space:normal; }
.oa-table-types .oa-col-name { min-width:200px; }
.oa-table-hours-report .oa-table { width:max-content; min-width:100%; table-layout:fixed; }
@media screen {
  .oa-table-hours-report .oa-table :is(thead,tbody) tr>:last-child:not([colspan]) {
    position:sticky; right:0; z-index:2; background:var(--row-background,#fff);
    box-shadow:-2px 0 3px #12324f15;
  }
  .oa-table-hours-report .oa-table thead tr>:last-child:not([colspan]) { z-index:5; background:#eaf2fa; }
}
.oa-table-hours-report .oa-col-name { width:190px; min-width:190px; max-width:190px; }
.oa-report-employee { display:flex; align-items:center; gap:7px; min-width:0; }
.oa-report-employee>span { min-width:0; overflow-wrap:anywhere; }
.oa-report-info { width:28px; height:28px; padding:4px; flex:none; }
.oa-report-info>svg { width:16px; height:16px; }
.oa-icon-button.oa-month-status,.oa-icon-button.oa-month-status:hover { color:#fff; background:var(--month-status-colour); border-color:var(--month-status-colour); print-color-adjust:exact; -webkit-print-color-adjust:exact; }
.oa-report-legend.oa-month-status-legend i { background:var(--month-status-colour); border-color:var(--month-status-colour); }
.oa-department-count { display:inline-flex; align-items:center; gap:7px; }
.oa-department-employees { margin:0; padding-left:20px; overflow-wrap:anywhere; }
.oa-table-hours-report .oa-table .oa-col-day { width:48px; min-width:48px; max-width:48px; padding:5px 3px; }
.oa-table-hours-report .oa-table .oa-col-hours { min-width:85px; width:85px; }
.oa-table-hours-report.has-absence-details .oa-table .oa-col-day { width:64px; min-width:64px; max-width:64px; }
.oa-table-hours-report.has-absence-details .oa-table .oa-col-hours { min-width:105px; width:105px; }
.oa-table-hours-report.has-absence-details .oa-report-detail-absence { font-size:11px; white-space:nowrap; margin-top:0; color:#000; font-weight:700; background:transparent; }
.oa-table-hours-report .oa-report-detail-swatch { display:inline-block; width:9px; height:9px; margin-right:4px; border:0; border-radius:0; vertical-align:baseline; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
.oa-table-hours-report.has-absence-details .oa-hours-cell { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
.oa-hours-date-heading { display:flex; flex-direction:column; align-items:center; gap:2px; }
.oa-hours-date-heading small { font-size:11px; font-weight:400; }
.oa-table-hours-report .oa-hours-day { position:relative; }
.oa-table-hours-report .oa-hours-day,.oa-report-legend i { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
.oa-table-hours-report .oa-hours-day-link { position:absolute; inset:0; z-index:1; padding:0; }
.oa-table-hours-report .oa-hours-day-link:hover { box-shadow:inset 0 0 0 2px #0071bc70; }
.oa-table-hours-report .oa-hours-day-link:focus-visible { outline-offset:-3px; }
.oa-table-hours-report .oa-hours-cell { min-width:0; min-height:32px; padding:0; gap:2px; font-size:13px; justify-content:center; }
.oa-table-hours-report .oa-hours-cell small { font-size:10px; line-height:1.3; }
.oa-table-hours-report .oa-report-absence { min-width:0; font-size:10px; }
.oa-table-hours-report .oa-extra-hours { font-weight:600; }
.oa-table-hours-report .oa-table .oa-hours-day.is-pending { background:#fff0d9; color:#7d4200; }
.oa-table-hours-report .oa-table .oa-hours-day.is-missing { background:#fff1ee; color:#8b2f1d; }
.oa-table-hours-report .oa-table .oa-hours-day.is-inactive { background:#edf1f5; color:var(--muted); }
.oa-report-legend { display:flex; gap:10px 18px; flex-wrap:wrap; font-size:13px; margin-bottom:10px; }
.oa-report-legend>span { display:inline-flex; align-items:center; gap:6px; }
.oa-report-legend i { display:inline-block; width:13px; height:13px; border:1px solid #c4d0db; }
.oa-report-legend .is-pending { background:#fff0d9; }
.oa-report-legend .is-missing { background:#fff1ee; }
.oa-report-legend .is-inactive { background:#edf1f5; }
.oa-table-activity-report .oa-table { min-width:750px; }
.oa-table-activity-report .oa-col-hours { min-width:100px; }
.oa-attendance-week .oa-table { min-width:980px; }
.oa-attendance-week .oa-table :is(th,td) { vertical-align:top; }
.oa-attendance-week .oa-table .oa-col-name { min-width:185px; max-width:220px; }
.oa-attendance-week .oa-table .oa-col-hours { min-width:105px; text-align:right; }
.oa-attendance-week .oa-attendance-day-heading { align-items:stretch; gap:6px; }
.oa-attendance-day-heading .oa-status { align-self:flex-start; }
.oa-attendance-week .oa-table tfoot th,.oa-attendance-week .oa-table tfoot td { font-weight:600; }
.oa-table-consultation .oa-table { min-width:820px; }
.oa-table-consultation .oa-col-day { font-variant-numeric:tabular-nums; }
.oa-table-consultation .oa-table tbody td,.oa-table-company-week .oa-table tbody td { position:relative; }
.oa-consultation-day { min-height:3em; line-height:1.5; display:flex; flex-direction:column; justify-content:center; }
.oa-consultation-change {
  position:absolute; top:3px; right:3px; z-index:1;
  display:block; width:16px; height:16px; line-height:0; color:var(--blue);
}
.oa-consultation-change>svg { display:block; width:100%; height:100%; }
.oa-table-company-week .oa-consultation-change {
  top:0; transform:translateY(-50%); z-index:5;
  width:22px; height:22px; padding:3px;
  border:0; border-radius:50%; background:var(--blue); color:#fff;
  print-color-adjust:exact; -webkit-print-color-adjust:exact;
}
.oa-table-company-week .oa-table { min-width:700px; table-layout:fixed; }
.oa-table-company-week .oa-table .oa-col-day { min-width:95px; }
.oa-row-note svg { width:15px; height:15px; }
.oa-table-scroll .oa-table textarea { min-height:70px; width:220px; text-align:left; }
.oa-row-note .oa-field { white-space:normal; }
.oa-dialog .oa-table-scroll { max-height:45dvh; }
.oa-calendar-panel { border:0; border-radius:0; }
.oa-calendar-toolbar { padding:15px 20px; border-radius:0; }
.oa-calendar-toolbar h2 { font-size:18px; text-align:center; }
.oa-calendar-extra { padding:10px 20px; font-size:13px; }
.oa-calendar-toolbar.oa-calendar-period-toolbar { justify-content:space-between; border-bottom:1px solid var(--line); }
.oa-calendar-toolbar.oa-calendar-period-toolbar h2 { order:0; width:auto; flex:1 0 auto; }
.oa-calendar-period-toolbar .oa-calendar-actions { width:auto; margin-left:auto; justify-content:flex-end; justify-self:end; }
.oa-calendar-period-toolbar .oa-segmented { border:0; padding:0; background:transparent; gap:6px; }
.oa-calendar-period-toolbar .oa-segmented>button { min-height:40px; padding:8px 14px; border:1px solid #aabed0; border-radius:4px; background:transparent; color:var(--blue); font-size:14px; font-weight:600; }
.oa-calendar-period-toolbar .oa-segmented>button:hover { background:var(--canvas); }
.oa-calendar-period-toolbar .oa-segmented>button[aria-pressed=true] { border-color:var(--blue); background:#eaf2fa; box-shadow:none; }
.oa-calendar-controls { justify-content:flex-end; border-top:0; border-bottom:1px solid var(--line); }
.oa-calendar-controls>.oa-employee-control { margin-right:auto; }
.oa-calendar-controls .oa-button[aria-pressed=true] { background:#eaf2fa; border-color:var(--blue); }
.oa-calendar-employee-heading { margin:15px var(--content-padding); }
.oa-calendar-scroll { margin:0 20px 20px; border:1px solid var(--line); min-height:0; max-height:65dvh; }
.oa-month,.oa-week { font-size:13px; }
.oa-month th,.oa-week th { color:var(--ink); font-size:13px; }
.oa-month td[data-day],.oa-month td[data-day] *,.oa-week td:has(.oa-week-column),.oa-week-column,.oa-week-column * { cursor:pointer; }
.oa-month td[data-day]:hover,.oa-month td[data-day]:focus-within,.oa-week td:has(.oa-week-column):hover { outline:1px solid #71869a; outline-offset:-1px; }
.oa-week-day { flex-direction:column; gap:2px; min-height:42px; font-size:13px; }
.oa-week-day strong { font-size:17px; }
.oa-time-axis>span { font-size:11px; }
.oa-calendar-event { border:1px solid #d8e7f4; border-left:3px solid #538cba; border-radius:3px; font-size:12px; }
.oa-calendar-event small { font-size:11px; }
.oa-calendar-work { padding-inline:2px; }
.oa-calendar-hours { display:inline-flex; align-items:center; gap:2px; max-width:100%; }
.oa-calendar-hours>svg { width:12px; height:12px; flex:none; }
.oa-calendar-legend { display:flex; flex-wrap:wrap; gap:10px 20px; margin:0 var(--content-padding) 20px; font-size:12px; }
.oa-calendar-key { display:inline-flex; align-items:center; gap:5px; padding:2px 6px; border:1px solid #d8e7f4; border-radius:3px; background:#edf4fb; color:#000; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
.oa-calendar-key>svg { width:15px; height:15px; flex:none; }
.oa-calendar-key.is-personal { background:#f5eef9; border-color:#ddc9e8; }
.oa-calendar-key.is-company { border-color:#b4d7cf; }
.oa-calendar-key.is-company,.oa-company-reference.is-company,.oa-company-band.is-company,.oa-calendar-event.is-company { background-color:#e4f1ed; }
.oa-calendar-key.is-closure,.oa-company-reference.is-closure,.oa-company-band.is-closure,.oa-calendar-event.is-closure { background-color:#fceaea; }
.oa-calendar-key.is-closure,.oa-calendar-event.is-closure { border-color:#e4b8b8; }
.oa-calendar-event.is-closure { border-left-color:#ad2828; }
.oa-company-reference.is-closure,.oa-company-band.is-closure,.oa-calendar-event.is-closure,.oa-calendar-key.is-closure>svg { color:#ad2828; }
.oa-calendar-event.is-personal { color:#743c92; }
.oa-calendar-event.is-personal { background:#f5eef9; border-color:#ddc9e8; border-left-color:#8c50a6; }
.oa-company-reference.is-company,.oa-company-band.is-company,.oa-calendar-event.is-company,.oa-calendar-controls .oa-button.is-company>svg { color:#277568; }
.oa-calendar-event.is-company { border-color:#b4d7cf; border-left-color:#277568; }
.oa-company-reference { display:flex; align-items:center; gap:3px; margin:4px 0 0; padding:3px 2px; border:0; border-radius:3px; }
.oa-company-reference>svg { width:12px; height:12px; flex:none; }
.oa-company-hours { min-width:0; }
.oa-company-time { white-space:nowrap; }
.oa-readonly-marker { display:inline-flex; color:var(--muted); }
.oa-readonly-marker>svg { width:14px; height:14px; }
.oa-company-band.is-company { background-image:repeating-linear-gradient(135deg,#cde7e155 0,#cde7e155 4px,transparent 4px,transparent 8px); }
.oa-company-band.is-closure { background-image:repeating-linear-gradient(135deg,#efc7c755 0,#efc7c755 4px,transparent 4px,transparent 8px); }
.oa-company-band>svg { position:absolute; bottom:2px; right:2px; z-index:2; width:12px; height:12px; }
.oa-company-reference,.oa-empty-day { font-size:12px; }
.oa-day-label { font-size:11px; }
.oa-balances { padding:0 20px 15px; }
.oa-balance-editor { width:560px; }
.oa-balance-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:start; }
.oa-balance-fields .oa-field { margin:0; }
.oa-balance-fields input { width:100%; text-align:right; font-variant-numeric:tabular-nums; }
.oa-balance-fields input.is-modified { background:#eaf6e6; }
@media(max-width:480px){ .oa-balance-fields { grid-template-columns:1fr; } }
.oa-periods-page>.oa-section-actions,.oa-periods-page>.oa-pagination { margin:15px 20px; }
.oa-periods-toolbar .oa-employee-control { margin-left:auto; }
.oa-periods-toolbar .oa-button.is-secondary { background:transparent; }
.oa-absence-heading { margin:15px var(--content-padding); }
.oa-periods-page>.oa-table-region { margin:0 20px; width:calc(100% - 40px); }
.oa-periods-page.is-company>.oa-table-region { margin-top:15px; }
.oa-periods-page>.oa-table-region .oa-table-scroll { border:0; border-radius:0; margin:0; max-height:none; }
.oa-periods-page>.oa-table-region .oa-table { min-width:800px; }
.oa-periods-page>.oa-table-region thead { z-index:4; }
.oa-periods-page>.oa-table-region:has(.oa-table-scroll) { overflow:visible; max-height:none; }
.oa-periods-page>.oa-table-region .oa-table-scroll { max-height:65dvh; overflow:auto; }
.oa-note-cell { white-space:pre-wrap; }
.oa-periods-page>.oa-status:empty { display:none; }
.oa-login { min-height:calc(100dvh - 36px); }
.oa-login-card { border-radius:4px; box-shadow:none; }

@media screen and (min-width:1200px) {
  .oa-company-weeks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .oa-company-week { min-width:0; }
  .oa-company-week>h3 { margin:0 0 10px; }
  .oa-company-week>.oa-table-scroll { margin:0; }
  .oa-company-week .oa-table { min-width:0; }
  .oa-company-week .oa-table .oa-col-day { min-width:0; padding-left:2px; padding-right:2px; white-space:nowrap; }
}
@media (min-width:1101px) {
  .oa-calendar-toolbar.oa-calendar-period-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
}
@media (max-width:1100px) {
  .oa-page-header .oa-page-subtitle { display:none; }
}
@media (max-width:1050px) {
  .oa-home-groups { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .oa-home-group-column:last-child { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  :root { --content-padding:15px; }
  body { padding:10px; }
  .oa-topbar { min-height:60px; margin-bottom:15px; gap:8px; padding-bottom:10px; flex-wrap:wrap; }
  .oa-topbar-brand { gap:8px; }
  .oa-brand { font-size:17px; gap:8px; }
  .oa-brand img { width:calc(40px * 2 / 3); height:calc(40px * 2 / 3); }
  .oa-topbar-actions { gap:4px; flex:0 0 100%; justify-content:flex-end; }
  .oa-account { max-width:none; }
  .oa-header-link { padding:6px; }
  .oa-header-link>span { display:none; }
  .oa-header-link svg { width:18px; height:18px; }
  .oa-menu-toggle { display:inline-flex!important; width:36px; height:40px; }
  .oa-sidebar {
    display:block; position:fixed; top:0; bottom:0; left:0; z-index:21;
    width:min(300px,85vw); background:#fff; transform:translateX(-100%);
    border-right:1px solid var(--line); overflow:auto;
  }
  .is-menu-open .oa-sidebar { transform:translateX(0); }
  .oa-menu-scrim { inset:0; z-index:20; }
  .oa-nav { position:static; max-height:none; padding:20px 15px; }
  .oa-nav-group>summary { font-size:14px; }
  .oa-nav-group-links>a { min-height:44px; font-size:14px; }
  .oa-workspace { padding:0; margin-bottom:20px; }
  .oa-page-header { padding:12px 15px; flex-wrap:wrap; align-items:flex-start; }
  .oa-page-header h1 { font-size:20px; }
  .oa-icon-button.oa-back-link { width:36px; height:36px; }
  .oa-page-header>.oa-employee-picker { width:100%; }
  .oa-page-header .oa-employee-picker select { width:100%; }
  .oa-data-page .oa-page-header .oa-text-link { margin:0; }
  .oa-toolbar { gap:10px; }
  .oa-toolbar>.oa-field { min-width:130px; flex:1; }
  .oa-toolbar .oa-field input,.oa-toolbar .oa-field select { width:100%; min-height:36px; height:36px; }
  .oa-toolbar .oa-employee-picker { width:100%; }
  .oa-toolbar .oa-employee-picker .oa-field { flex:1; min-width:130px; }
  .oa-employee-picker .oa-check { padding-bottom:8px; }
  .oa-button.oa-employee-control { max-width:100%; }
  .oa-period-navigation { flex-basis:100%; }
  .oa-period-navigation>.oa-field { min-width:0; }
  .oa-period-navigation>.oa-button { min-width:36px; padding:8px; }
  .oa-home-groups { grid-template-columns:1fr; padding:15px; }
  .oa-home-group-column:last-child { display:flex; grid-column:auto; }
  .oa-home-group>summary { padding:15px; }
  .oa-home-group h2 { font-size:16px; }
  .oa-home-group-content { padding:0 15px 15px; }
  .oa-home-warnings { padding:15px 15px 0; }
  .oa-home-menu-item { min-height:44px; }
  .oa-table-scroll,.oa-table-region { max-height:65dvh; border-radius:4px; }
  .oa-table .oa-table-action { min-height:36px; padding:6px 8px; }
  .oa-report-info { width:36px; height:36px; }
  .oa-table-scroll .oa-table .oa-col-name { min-width:145px; max-width:175px; }
  .oa-table-hours-report .oa-col-name { width:145px; min-width:145px; max-width:145px; }
  .oa-table-scroll .oa-table :is(th,td) { padding:8px; }
  .oa-table-balances .oa-table input { min-height:36px; }
  .oa-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:15px; }
  .oa-dialog { max-width:calc(100vw - 18px); max-height:calc(100dvh - 20px); }
  .oa-dialog-header,.oa-dialog-content,.oa-dialog-footer { padding:15px; }
  .oa-calendar-editor .oa-tabs { padding:0 15px; }
  .oa-dialog-footer { gap:8px; }
  .oa-allocations .oa-input-row>.oa-field { flex-basis:100%; }
  .oa-calendar-toolbar { padding:12px 15px; }
  .oa-calendar-scroll { margin:0 15px 15px; max-height:65dvh; }
  .oa-calendar-extra { padding:10px 15px; }
  .oa-calendar-actions { width:100%; justify-content:space-between; }
  .oa-calendar-toolbar h2 { order:-1; width:100%; }
  .oa-calendar-actions>.oa-field { flex:1 1 170px; max-width:170px; }
  .oa-balances { padding:0 15px 15px; }
  .oa-periods-page>.oa-section-actions,.oa-periods-page>.oa-pagination { margin:15px; }
  .oa-periods-page>.oa-table-region { margin:0 15px; width:calc(100% - 30px); }
  .oa-pagination { flex-wrap:wrap; gap:8px; }
  .oa-form-columns,.oa-form-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .oa-sidebar { transition:none; }
}
@media print {
  body { padding:0; background:#fff; }
  .oa-back-link { display:none!important; }
  .oa-page-heading { display:block; }
  .oa-workspace { max-width:none; margin:0; padding:0; }
  .oa-data-page,.oa-calendar-page,.oa-periods-page { border:0; }
  .oa-page-header { background:#fff; padding:0 0 10px; border:0; }
  .oa-data-body { padding:0; }
  .oa-table-scroll,.oa-table-region,.oa-periods-page>.oa-table-region .oa-table-scroll {
    max-height:none!important; height:auto!important; overflow:visible!important;
    max-width:none!important; width:100%!important; margin:0 0 12px!important; border:0;
  }
  .oa-table-scroll .oa-table,.oa-table-region .oa-table {
    width:100%; min-width:0!important; table-layout:auto; font-size:9px;
  }
  .oa-table col { width:auto!important; min-width:0!important; max-width:none!important; }
  .oa-table-scroll .oa-table :is(th,td),.oa-table-region .oa-table :is(th,td) {
    position:static!important; padding:4px; min-width:0!important; max-width:none;
    width:auto; box-shadow:none!important; font-size:9px;
  }
  .oa-table-scroll .oa-table thead { display:table-header-group; position:static; }
  .oa-table thead th { font-size:9px!important; }
  .oa-table tfoot { display:table-row-group; }
  .oa-table .oa-table-action { min-height:0; padding:0; border:0; font-size:9px; }
  .oa-table .oa-table-action>svg,.oa-table-add-row,.oa-add-row { display:none; }
  .oa-table .oa-actions { display:none!important; }
  .oa-calendar-editor.oa-dialog { height:auto!important; }
  .oa-calendar-editor .oa-tabs { display:none!important; }
  .oa-hours-cell { font-size:9px; }
  .oa-table-hours-report .oa-table :is(th,td) { padding:2px; }
  .oa-table-hours-report .oa-hours-day-link { display:none; }
  .oa-report-info { display:none; }
  .oa-table-months .oa-month-status { display:inline-flex; width:14px; height:14px; padding:1px; }
  .oa-table-months .oa-month-status>svg { width:12px; height:12px; }
  .oa-table-consultation .oa-table tbody td,.oa-table-company-week .oa-table tbody td { position:relative!important; }
  .oa-consultation-change { top:2px; right:2px; width:12px; height:12px; }
  .oa-table-company-week .oa-consultation-change { width:18px; height:18px; }
  .oa-table-hours-report .oa-hours-cell { min-height:0; font-size:8px; }
  .oa-table-hours-report.has-absence-details .oa-table { width:100%; min-width:0!important; table-layout:auto; }
  .oa-table-hours-report.has-absence-details .oa-table :is(.oa-col-day,.oa-col-hours) { width:auto!important; min-width:0!important; max-width:none!important; }
  .oa-table-hours-report.has-absence-details .oa-report-detail-absence { font-size:8px; white-space:normal; }
  .oa-calendar-scroll { margin:0; max-height:none; }
}
