/* Ovdimly application finish. Shared by owner and employee pages; loaded after
   page styles. Presentation only: forms, permissions and report states stay in
   their server-rendered templates. Keep calendar/table overflow local. */
.ovd-app {
  --app-navy: #17203c;
  --app-muted: #59657b;
  --app-line: #e0e4ed;
  --app-lilac: #eeeaff;
  --ovd-bg: #f5f6fa;
  --ovd-border: #e0e4ed;
  --ovd-r-md: 18px;
  --ovd-text: #17203c;
  background: radial-gradient(ellipse at 95% 0, #eae7f64d, transparent 48%), #f5f6fa;
}
.ovd-app .ovd-shell { padding-block-start: 28px; }
.ovd-app .ovd-nav { background: #ffffffed; border-color: var(--app-line); box-shadow: 0 3px 20px -18px #17203c80; }
.ovd-app .ovd-nav a.navlink { border-radius: 11px; font-size: 13px; padding: 10px 12px; }
.ovd-app .ovd-nav a.navlink.active { background: var(--app-lilac); color: #493daa; }
.ovd-app .ovd-brand .mark { border-radius: 11px; }
.ovd-app .ovd-user-chip { background: #f7f7fc; border-color: var(--app-line); }
.ovd-app .ovd-drawer { border-radius: 22px 0 0 22px; }
.ovd-app .ovd-drawer-daily { display: block; }
.ovd-app .ovd-drawer-head {
  position: sticky;
  inset-block-start: -8px;
  z-index: 1;
  background: var(--ovd-surface);
}
.ovd-app .ovd-notification-link > span:first-child { display: inline-flex; vertical-align: middle; }
.ovd-app .ovd-tab-ico { display: grid; place-items: center; }
.ovd-app .ovd-tab.active { background: #eeeaff; color: #5140a5; }
.ovd-app .ovd-tabbar { border-color: var(--app-line); box-shadow: 0 -6px 22px -16px #17203c55; }

/* One recognisable page entrance, at the same scale as the dashboard. */
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) {
  position: relative;
  isolation: isolate;
  padding: 28px 32px;
  margin-block: 0 26px;
  border: 1px solid #232d4c;
  border-radius: 24px;
  background: radial-gradient(ellipse at 10% 0, #493d806b, transparent 65%), var(--app-navy);
  box-shadow: 0 12px 32px -22px #17203c80;
  color: #fff;
  min-width: 0;
}
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header)::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset-inline-end: 18px;
  inset-block-start: 12px;
  width: 92px;
  height: 92px;
  border: 18px solid #c7c2ff0b;
  border-radius: 50%;
  pointer-events: none;
}
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) h1 {
  color: #fff;
  font-size: clamp(26px, 2.7vw, 35px);
  line-height: 1.3;
  letter-spacing: -.025em;
  margin: 0 0 9px;
}
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) p {
  color: #c9d0e2;
  opacity: 1;
  font-size: 14px;
  line-height: 1.8;
  max-width: 72ch;
  margin: 0;
}
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) :is(.ovd-muted, .wp-eyebrow, .ovd-page-eyebrow) { color: #c9c3ff; }
.ovd-page-eyebrow { display: block; font-size: 12px; font-weight: 600; margin-block-end: 10px; }
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) :is(a:not([class]), .wp-text-link) { color: #e4dfff; }
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) :is(.ovd-btn, .wp-button) {
  background: #eeeaff;
  color: #302757;
  border: 1px solid #f3efff;
  box-shadow: none;
}
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) :is(.ovd-btn, .wp-button):hover { background: #dcd5ff; }
.ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) :is(a, button, summary):focus-visible { outline-color: #e3ddff; }
.ovd-app .ovd-hero > :is(a, button) { margin-block-start: 16px; }
.ovd-app .ovd-workflow-head > div { min-width: 0; }
.ovd-app .ovd-workflow-actions { flex-shrink: 0; }

/* Shared rhythm for everyday work, detail panels and settings. */
.ovd-app :is(.ovd-card, .wp-card, .wp-home-panel) {
  border-color: var(--app-line);
  border-radius: 20px;
  box-shadow: 0 6px 24px -18px #17203c3d;
}
.ovd-app .ovd-card { padding: 26px; }
.ovd-app :is(.ovd-card, .wp-card) h2 { letter-spacing: -.02em; }
.ovd-app :is(.ovd-card, .wp-card) > h2 { font-size: 20px; }
.ovd-app :is(.ovd-card, .wp-card) > h1 { font-size: 25px; line-height: 1.4; margin-block-start: 0; }
.ovd-app :is(.ovd-stat, .ovd-month-summary) { border-color: var(--app-line); border-radius: 18px; box-shadow: none; background: linear-gradient(145deg, #fff, #fbfbfe); }
.ovd-app .ovd-stat { padding: 22px; }
.ovd-app .ovd-stat .n { color: var(--app-navy); }
.ovd-app .ovd-stat .ico { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: #f0edfa; }
.ovd-app :is(.ovd-facts, .ovd-workflow-details) { border-color: var(--app-line); }
.ovd-app .ovd-fact { border-radius: 12px; background: #f8f9fd; padding: 16px; min-width: 0; }
.ovd-app .ovd-fact dt { color: var(--app-muted); font-size: 12px; }
.ovd-app .ovd-fact dd { overflow-wrap: anywhere; }
.ovd-app .ovd-emp-detail-head { gap: 16px; padding-block-end: 22px; }
.ovd-app .ovd-emp-detail-title h1 { font-size: 25px; }
.ovd-app .ovd-emp-detail-title h2 { font-size: 25px; margin: 0 0 4px; }
.ovd-app .ovd-card-art { max-width: 180px; margin: 16px auto 0; border-radius: 24px; }
.ovd-app .ovd-card-art img { max-height: 135px; object-fit: contain; }
.ovd-app .ovd-back { font-size: 13px; margin-block: 0 18px; }
.ovd-app .ovd-back a { min-height: 36px; display: inline-flex; align-items: center; gap: 6px; }

/* Consistent controls; semantic danger/OK treatments retain their own colors. */
.ovd-app :is(.ovd-btn, .wp-button) { min-height: 44px; border-radius: 11px; font-weight: 600; box-shadow: 0 6px 16px -12px #493daa80; }
.ovd-app .ovd-btn { background-image: none; background-color: #6250bd; }
.ovd-app .ovd-btn:hover { background-color: #5140a5; box-shadow: 0 8px 18px -12px #493daa80; transform: none; text-decoration: none; }
.ovd-app :is(.ovd-btn-export, .ovd-btn-icon) { min-height: 44px; height: auto; padding: 11px 18px; border-radius: 11px; background: #6250bd; color: #fff; box-shadow: 0 6px 16px -12px #493daa80; font-weight: 600; white-space: normal; text-align: center; }
.ovd-app :is(.ovd-btn-export, .ovd-btn-icon):hover { background: #5140a5; transform: none; filter: none; box-shadow: 0 8px 18px -12px #493daa80; }
.ovd-app .ovd-btn.ghost { background: #fff; color: #51449a; border-color: #ddd9ee; }
.ovd-app .ovd-btn.ghost:hover { background: #f4f1ff; }
.ovd-app .ovd-btn--ghost { background: #fff; color: #51449a; border: 1px solid #ddd9ee; }
.ovd-app .ovd-btn--ghost:hover { background: #f4f1ff; }
.ovd-app .ovd-btn--danger { background: #b4364a; }
.ovd-app .ovd-btn--danger:hover { background: #96283b; }
.ovd-app .ovd-btn--success { background: #178069; }
.ovd-app .ovd-btn--success:hover { background: #126652; }
.ovd-app .ovd-dash-header-calendar { background: #eeeaff; color: #292053; }
.ovd-app .ovd-dash-header-calendar:hover { background: #dcd5ff; }
.ovd-app :is(.ovd-btn, .wp-button)[disabled] { opacity: .5; cursor: not-allowed; box-shadow: none; }
.ovd-app :is(.ovd-input, .ovd-field input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .ovd-field select, .ovd-field textarea, .wp-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .wp-form select, .wp-form textarea) {
  border: 1px solid #d6dce8;
  border-radius: 11px;
  background: #fcfcfe;
  color: var(--app-navy);
  min-height: 44px;
  max-width: 100%;
}
.ovd-app :is(input, select, textarea):focus-visible { outline: 3px solid #a99ae84d; outline-offset: 2px; border-color: #7e6bca; }
.ovd-app :is(.ovd-label, .ovd-field > span, .wp-field > label) { color: #46516b; font-size: 13px; font-weight: 600; }
.ovd-app :is(.ovd-pill, .wp-badge) { border-radius: 8px; font-weight: 600; }
.ovd-app .ovd-table-wrap { border-color: var(--app-line); border-radius: 14px; }
.ovd-app .ovd-table thead th { background: #f6f7fc; color: #59657b; letter-spacing: 0; padding-block: 15px; }
.ovd-app .ovd-table tbody td { padding-block: 17px; border-color: #edf0f6; }
.ovd-app .ovd-table tbody tr:hover { background: #faf9ff; }
.ovd-app .ovd-empty { padding: 48px 24px; color: var(--app-muted); }
.ovd-app .ovd-empty > p:first-of-type { color: var(--app-navy); font-size: 19px; font-weight: 600; }
.ovd-app .ovd-empty > .big { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 18px; border-radius: 24px; background: #f0edfa; font-size: 30px; }
.ovd-app .ovd-dialog { border-radius: 22px; border-color: var(--app-line); }

/* Vacation review: readable request cards and explicit separate actions. */
.ovd-leave-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ovd-leave-total { flex: 0 0 auto; display: grid; gap: 5px; padding: 15px 22px; border: 1px solid #ffffff25; border-radius: 16px; background: #ffffff0a; text-align: center; }
.ovd-leave-total strong { font-size: 32px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.ovd-leave-total span { font-size: 12px; color: #c9d0e2; }
.ovd-leave-list { display: grid; gap: 18px; }
.ovd-app .ovd-leave-request { padding: 0; margin: 0; overflow: hidden; }
.ovd-leave-person { display: flex; gap: 12px; align-items: center; padding: 22px 24px; border-block-end: 1px solid #edf0f6; }
.ovd-leave-person > div { flex: 1; min-width: 0; }
.ovd-app .ovd-leave-person h2 { font-size: 18px; margin: 0 0 4px; overflow-wrap: anywhere; }
.ovd-leave-person p { margin: 0; color: var(--app-muted); font-size: 13px; }
.ovd-leave-avatar { display: grid; place-items: center; flex: 0 0 44px; height: 44px; border-radius: 14px; background: #eeeafa; color: #6654a9; font-size: 20px; font-weight: 600; }
.ovd-leave-dates { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; padding: 22px 24px; margin: 0; }
.ovd-leave-dates dt { color: var(--app-muted); font-size: 12px; margin-block-end: 7px; }
.ovd-leave-dates dd { margin: 0; color: var(--app-navy); font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ovd-leave-note { margin: 0 24px 22px; padding: 14px 16px; border-radius: 12px; background: #f8f9fc; color: #46516b; font-size: 14px; overflow-wrap: anywhere; }
.ovd-leave-note strong { display: block; font-size: 12px; margin-block-end: 5px; }
.ovd-leave-actions { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; padding: 18px 24px; background: #fcfcfe; border-block-start: 1px solid #edf0f6; }
.ovd-leave-actions form { margin: 0; }
.ovd-leave-reject > summary { display: flex; align-items: center; justify-content: center; padding: 10px 16px; min-height: 44px; box-sizing: border-box; border: 1px solid #ead9dd; border-radius: 11px; color: #a13f53; font-size: 14px; cursor: pointer; list-style: none; }
.ovd-leave-reject > summary::-webkit-details-marker { display: none; }
.ovd-leave-reject[open] { flex: 1 1 280px; }
.ovd-leave-reject[open] > summary { justify-content: flex-start; margin-block-end: 12px; background: #fff5f6; }
.ovd-leave-reject form { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; }
.ovd-leave-reject label { display: grid; gap: 7px; flex: 1 1 200px; color: #46516b; font-size: 12px; }
.ovd-app .ovd-leave-reject .ovd-btn { background: #a13f53; }
.ovd-app .ovd-leave-reject .ovd-btn:hover { background: #852d40; }
.ovd-leave-reject summary:focus-visible { outline: 3px solid #a99ae8; outline-offset: 3px; }
.ovd-app .ovd-notice-list { display: grid; gap: 12px; }
.ovd-app .ovd-notice-item { display: flex; gap: 14px; align-items: flex-start; padding: 20px; border: 1px solid #e6e9f1; border-radius: 15px; background: #fcfcfe; }
.ovd-notice-icon { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border-radius: 12px; background: #eeeafa; font-size: 18px; }
.ovd-notice-body { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.ovd-notice-title { font-weight: 600; line-height: 1.7; }
.ovd-notice-description { margin-block-start: 5px; font-size: 14px; }
.ovd-notice-date { display: block; margin-block-start: 9px; color: var(--app-muted); font-size: 12px; }

/* Workplace pages inherit the same finish while keeping their dense calendars. */
.ovd-app .wp-shell { max-width: none; }
.ovd-app .wp-subnav { gap: 6px; padding: 6px; margin-block-end: 22px; border: 1px solid var(--app-line); border-radius: 14px; background: #fff; }
.ovd-app .wp-subnav a { border-radius: 9px; }
.ovd-app .wp-subnav a[aria-current=page] { background: #eeeaff; color: #493daa; box-shadow: none; }
.ovd-app .wp-heading { align-items: center; gap: 20px; }
.ovd-app .wp-heading > div { min-width: 0; }
.ovd-app .wp-heading .wp-actions { flex-shrink: 0; }
.ovd-app .wp-empty { border: 1px dashed #d7d3e7; border-radius: 16px; background: #faf9fe; color: var(--app-muted); padding: 30px 24px; }
.ovd-app .wp-item { border-radius: 13px; }
.ovd-app .wp-calendar { border-color: var(--app-line); border-radius: 18px; }
.ovd-app .wp-calendar-day { border-color: #e6e9f1; }
.ovd-app .wp-field input,.ovd-app .wp-field select,.ovd-app .wp-field textarea { border-radius: 11px; }
.ovd-app .ovd-oc-header .ovd-oc-eyebrow { color: #c9c3ff; font-size: 12px; margin-block-end: 8px; }
.ovd-app .ovd-oc-header .ovd-oc-settings { background: #eeeaff; border-color: #f3efff; color: #302757; }
.ovd-app .ovd-employee-welcome { background: radial-gradient(ellipse at 10% 0, #493d806b, transparent 65%), var(--app-navy); border-color: #232d4c; color: #fff; box-shadow: 0 12px 32px -22px #17203c80; }
.ovd-app .ovd-employee-welcome .ovd-employee-eyebrow { color: #c9c3ff; }
.ovd-app .ovd-employee-welcome p:last-child { color: #c9d0e2; }
.ovd-app .ovd-employee-welcome-art { mix-blend-mode: normal; border: 4px solid #ffffff16; }
@media (max-width: 760px) {
  .ovd-app .ovd-shell { padding: 22px 16px 96px; }
  .ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) { padding: 24px 22px; border-radius: 20px; margin-block-end: 20px; }
  .ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) p { font-size: 13px; }
  .ovd-app .ovd-card { padding: 22px 18px; }
  .ovd-app .ovd-workflow-head,.ovd-app .wp-heading { flex-direction: column; align-items: stretch; }
  .ovd-app .ovd-workflow-actions { flex-shrink: 1; }
  .ovd-app .wp-heading .wp-actions { flex-shrink: 1; flex-wrap: wrap; }
  .ovd-app .ovd-leave-request { padding: 0; }
  .ovd-leave-person,.ovd-leave-dates { padding: 20px 18px; }
  .ovd-leave-person { flex-wrap: wrap; }
  .ovd-leave-dates { gap: 12px; }
  .ovd-leave-dates dd { font-size: 14px; }
  .ovd-leave-note { margin-inline: 18px; }
  .ovd-leave-actions { padding: 16px 18px; }
  .ovd-leave-head { align-items: flex-start; gap: 12px; }
  .ovd-leave-total { padding: 12px; min-width: 60px; }
  .ovd-leave-total strong { font-size: 26px; }
  .ovd-leave-total span { max-width: 8ch; }
  .ovd-app .ovd-notice-item { padding: 16px; }
  .ovd-app .ovd-emp-detail-head { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: no-preference) {
  .ovd-app :is(.ovd-hero, .ovd-page-heading, .ovd-workflow-head, .wp-heading) { animation: ovd-page-arrive .32s ease-out both; }
  @keyframes ovd-page-arrive { from { opacity: .65; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}
@media print {
  .ovd-app { background: #fff; }
  .ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) { background: #fff; color: #17203c; box-shadow: none; border-color: #d6dce8; }
  .ovd-app :is(.ovd-hero, .ovd-workflow-head, .ovd-page-heading, .wp-heading, .ovd-oc-header) :is(h1,p) { color: #17203c; }
}
